@br-validators/core 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -3
- package/dist/bancos.js +1 -1
- package/dist/batch.js +18 -17
- package/dist/brcode.js +5 -5
- package/dist/cbo.d.ts +41 -0
- package/dist/cbo.js +10832 -0
- package/dist/cbo.js.map +1 -0
- package/dist/cep.d.ts +38 -1
- package/dist/cep.js +4 -3
- package/dist/cfop.d.ts +41 -0
- package/dist/cfop.js +2812 -0
- package/dist/cfop.js.map +1 -0
- package/dist/chunk-5CBVZIQC.js +30 -0
- package/dist/chunk-5CBVZIQC.js.map +1 -0
- package/dist/{chunk-LAEUXOF6.js → chunk-5EJAENH5.js} +3 -3
- package/dist/{chunk-LAEUXOF6.js.map → chunk-5EJAENH5.js.map} +1 -1
- package/dist/chunk-DQUMIETC.js +30 -0
- package/dist/chunk-DQUMIETC.js.map +1 -0
- package/dist/{chunk-JCWQDTZB.js → chunk-DYX5XSJ6.js} +3 -3
- package/dist/{chunk-JCWQDTZB.js.map → chunk-DYX5XSJ6.js.map} +1 -1
- package/dist/{chunk-TJCE4TVX.js → chunk-EN7PVDYB.js} +4 -4
- package/dist/{chunk-TJCE4TVX.js.map → chunk-EN7PVDYB.js.map} +1 -1
- package/dist/{chunk-VWVQWN2G.js → chunk-EQV33L7H.js} +3 -3
- package/dist/{chunk-VWVQWN2G.js.map → chunk-EQV33L7H.js.map} +1 -1
- package/dist/{chunk-5V6N4JWQ.js → chunk-GWAYWBHN.js} +5 -5
- package/dist/{chunk-5V6N4JWQ.js.map → chunk-GWAYWBHN.js.map} +1 -1
- package/dist/{chunk-ASQ2XIN2.js → chunk-ITHT54NC.js} +11 -11
- package/dist/{chunk-ASQ2XIN2.js.map → chunk-ITHT54NC.js.map} +1 -1
- package/dist/{chunk-IYOPXJLY.js → chunk-JSNXKBZA.js} +3 -3
- package/dist/{chunk-IYOPXJLY.js.map → chunk-JSNXKBZA.js.map} +1 -1
- package/dist/{chunk-P2KNN6ZR.js → chunk-KGCLQ7QX.js} +3 -3
- package/dist/{chunk-P2KNN6ZR.js.map → chunk-KGCLQ7QX.js.map} +1 -1
- package/dist/{chunk-H3MLGGFI.js → chunk-KLONQL76.js} +5 -5
- package/dist/{chunk-H3MLGGFI.js.map → chunk-KLONQL76.js.map} +1 -1
- package/dist/{chunk-63G7QO73.js → chunk-L7PF4KD6.js} +3 -3
- package/dist/{chunk-63G7QO73.js.map → chunk-L7PF4KD6.js.map} +1 -1
- package/dist/{chunk-PNPESCSP.js → chunk-MAM4U3UR.js} +3 -3
- package/dist/{chunk-PNPESCSP.js.map → chunk-MAM4U3UR.js.map} +1 -1
- package/dist/{chunk-V7UJ55KW.js → chunk-MZDCVTN6.js} +3 -3
- package/dist/{chunk-V7UJ55KW.js.map → chunk-MZDCVTN6.js.map} +1 -1
- package/dist/{chunk-FOP5LO7W.js → chunk-NHFSEWO2.js} +14 -14
- package/dist/{chunk-FOP5LO7W.js.map → chunk-NHFSEWO2.js.map} +1 -1
- package/dist/{chunk-I66ZRSEN.js → chunk-NT3TNF3R.js} +3 -3
- package/dist/{chunk-I66ZRSEN.js.map → chunk-NT3TNF3R.js.map} +1 -1
- package/dist/{chunk-EVULAGR5.js → chunk-O3T7PUBI.js} +3 -3
- package/dist/{chunk-EVULAGR5.js.map → chunk-O3T7PUBI.js.map} +1 -1
- package/dist/{chunk-EFEE6CMO.js → chunk-OOUEURR7.js} +3 -3
- package/dist/{chunk-EFEE6CMO.js.map → chunk-OOUEURR7.js.map} +1 -1
- package/dist/chunk-P6TOL5VY.js +147973 -0
- package/dist/chunk-P6TOL5VY.js.map +1 -0
- package/dist/{chunk-PCP77SLS.js → chunk-QB7SZS2C.js} +12 -12
- package/dist/{chunk-PCP77SLS.js.map → chunk-QB7SZS2C.js.map} +1 -1
- package/dist/{chunk-N5CER3QZ.js → chunk-QK27VDVB.js} +13 -13
- package/dist/{chunk-N5CER3QZ.js.map → chunk-QK27VDVB.js.map} +1 -1
- package/dist/{chunk-KTEQPYYN.js → chunk-RRVGW333.js} +6 -6
- package/dist/{chunk-KTEQPYYN.js.map → chunk-RRVGW333.js.map} +1 -1
- package/dist/{chunk-LRUZVPLR.js → chunk-S4WWYHQM.js} +3 -3
- package/dist/{chunk-LRUZVPLR.js.map → chunk-S4WWYHQM.js.map} +1 -1
- package/dist/chunk-SC6YCHT7.js +30 -0
- package/dist/chunk-SC6YCHT7.js.map +1 -0
- package/dist/{chunk-MESOO5GZ.js → chunk-SDEJD2J7.js} +3 -3
- package/dist/{chunk-MESOO5GZ.js.map → chunk-SDEJD2J7.js.map} +1 -1
- package/dist/{chunk-BA3FAVK4.js → chunk-SKDMG3FK.js} +23 -23
- package/dist/{chunk-BA3FAVK4.js.map → chunk-SKDMG3FK.js.map} +1 -1
- package/dist/chunk-UGW266DF.js +30 -0
- package/dist/chunk-UGW266DF.js.map +1 -0
- package/dist/{chunk-YNVMVDFN.js → chunk-VKG7UEN5.js} +3 -3
- package/dist/{chunk-YNVMVDFN.js.map → chunk-VKG7UEN5.js.map} +1 -1
- package/dist/{chunk-XADVBV73.js → chunk-WH6W3NUA.js} +6 -6
- package/dist/{chunk-XADVBV73.js.map → chunk-WH6W3NUA.js.map} +1 -1
- package/dist/{chunk-UCNPXHIJ.js → chunk-WSUAPD5M.js} +6 -6
- package/dist/{chunk-UCNPXHIJ.js.map → chunk-WSUAPD5M.js.map} +1 -1
- package/dist/{chunk-CSVGWTCG.js → chunk-XHDRWM46.js} +3 -3
- package/dist/{chunk-CSVGWTCG.js.map → chunk-XHDRWM46.js.map} +1 -1
- package/dist/chunk-XQ6MMGV2.js +30 -0
- package/dist/chunk-XQ6MMGV2.js.map +1 -0
- package/dist/chunk-YOL43ZNQ.js +35 -0
- package/dist/chunk-YOL43ZNQ.js.map +1 -0
- package/dist/{chunk-MKYCKCZ6.js → chunk-ZTDLGGYE.js} +12 -12
- package/dist/{chunk-MKYCKCZ6.js.map → chunk-ZTDLGGYE.js.map} +1 -1
- package/dist/cnaes.d.ts +41 -0
- package/dist/cnaes.js +5384 -0
- package/dist/cnaes.js.map +1 -0
- package/dist/cnh.js +4 -4
- package/dist/compare.js +20 -19
- package/dist/cpf.js +4 -4
- package/dist/data-catalog.js +16 -4
- package/dist/data-catalog.js.map +1 -1
- package/dist/detect.js +17 -16
- package/dist/diff.js +20 -19
- package/dist/feriados.d.ts +73 -0
- package/dist/feriados.js +243 -0
- package/dist/feriados.js.map +1 -0
- package/dist/generate.js +27 -26
- package/dist/ibge.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +47 -46
- package/dist/index.js.map +1 -1
- package/dist/inscricao-estadual-produtor-rural.js +1 -1
- package/dist/mask.js +26 -25
- package/dist/ncm.d.ts +41 -0
- package/dist/ncm.js +42116 -0
- package/dist/ncm.js.map +1 -0
- package/dist/pix.js +5 -5
- package/dist/placa.js +1 -1
- package/dist/renavam.js +4 -4
- package/dist/sanitize.js +15 -14
- package/dist/telefone.js +3 -3
- package/dist/titulo-eleitor.js +4 -4
- package/package.json +26 -1
- package/dist/chunk-TE6NSONR.js +0 -43
- package/dist/chunk-TE6NSONR.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/titulo-eleitor/constants.ts","../src/core/titulo-eleitor/check-digits.ts","../src/core/titulo-eleitor/parse.ts","../src/core/titulo-eleitor/index.ts"],"names":[],"mappings":"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","file":"chunk-CSVGWTCG.js","sourcesContent":["/**\n * Título de Eleitor constants — modulo 11 (TSE Res. 20.132/1998 + algorithm cross-checks).\n * @see https://www.tse.jus.br/legislacao/compilada/res/1998/resolucao-no-20-132-de-19-de-marco-de-1998 — Art. 10 (structure, mod 11)\n * @see https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador — weights + SP/MG rule\n * @see http://ghiorzi.org/DVnew.htm#e — algorithm cross-check\n */\nimport type { UfCode } from '../../types/validation-result.js';\n\nexport const TITULO_ELEITOR_DV1_WEIGHTS_8 = [2, 3, 4, 5, 6, 7, 8, 9] as const;\nexport const TITULO_ELEITOR_DV1_WEIGHTS_9 = [9, 2, 3, 4, 5, 6, 7, 8, 9] as const;\nexport const TITULO_ELEITOR_DV2_WEIGHTS = [7, 8, 9] as const;\nexport const TITULO_ELEITOR_SEQUENTIAL_LENGTH = 8;\nexport const TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED = 9;\nexport const TITULO_ELEITOR_LENGTH = 12;\nexport const TITULO_ELEITOR_LENGTH_EXTENDED = 13;\nexport const TITULO_ELEITOR_UF_LENGTH = 2;\nexport const TITULO_ELEITOR_DV_LENGTH = 2;\nexport const TITULO_ELEITOR_MIN_UF_CODE = 1;\nexport const TITULO_ELEITOR_MAX_UF_CODE = 28;\nexport const TITULO_ELEITOR_NUMERIC_PATTERN_12 = /^\\d{12}$/;\nexport const TITULO_ELEITOR_NUMERIC_PATTERN_13 = /^\\d{13}$/;\n\n/** TSE UF codes where remainder 0 maps DV to 1 instead of 0. */\nexport const TITULO_ELEITOR_SPECIAL_UF_CODES = [1, 2] as const;\n\n/** Golden primary — SC (UF=09), Wikipedia PT walkthrough. */\nexport const TITULO_ELEITOR_GOLDEN_PRIMARY = '004356870906';\nexport const TITULO_ELEITOR_GOLDEN_SP_SPECIAL = '000000000116';\nexport const TITULO_ELEITOR_GOLDEN_SP_EXTENDED = '1234567890175';\nexport const TITULO_ELEITOR_GOLDEN_EXTERIOR = '000000012895';\nexport const TITULO_ELEITOR_GOLDEN_MASKED_INPUT = '0043 5687 0906';\n\n/** Normative — Resolução TSE 20.132/1998, Art. 10 (8 seq + 2 UF + 2 DV, mod 11). */\nexport const TITULO_ELEITOR_OFFICIAL_SOURCE_URL =\n 'https://www.tse.jus.br/legislacao/compilada/res/1998/resolucao-no-20-132-de-19-de-marco-de-1998';\n\n/** Normative — Resolução TSE 23.659/2021 (Cadastro Eleitoral; confirms UF + DV structure). */\nexport const TITULO_ELEITOR_NORMATIVE_SECONDARY_URL =\n 'https://www.tse.jus.br/legislacao/compilada/res/2021/resolucao-no-23-659-de-26-de-outubro-de-2021';\n\n/**\n * Algorithm weights + SP/MG remainder-zero rule — not in TSE resolution text.\n * Community consensus validated empirically (Wikipedia PT worked example).\n */\nexport const TITULO_ELEITOR_ALGORITHM_WEIGHTS_REF_URL =\n 'https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador';\n\n/** Algorithm cross-check — Ghiorzi DV table. */\nexport const TITULO_ELEITOR_ALGORITHM_REF_URL = 'http://ghiorzi.org/DVnew.htm#e';\n\nexport const TITULO_ELEITOR_TSE_PORTAL_URL = 'https://www.tse.jus.br/';\n\nexport const TITULO_ELEITOR_ETITULO_URL =\n 'https://www.tse.jus.br/eleitor/servicos/aplicativo-e-titulo';\n\n/** TSE electoral UF code → Brazilian UF (28 = exterior / ZZ). */\nexport const TITULO_ELEITOR_UF_BY_CODE: Readonly<Record<number, UfCode>> = {\n 1: 'SP',\n 2: 'MG',\n 3: 'RJ',\n 4: 'RS',\n 5: 'BA',\n 6: 'PR',\n 7: 'CE',\n 8: 'PE',\n 9: 'SC',\n 10: 'GO',\n 11: 'MA',\n 12: 'PB',\n 13: 'PA',\n 14: 'ES',\n 15: 'PI',\n 16: 'RN',\n 17: 'AL',\n 18: 'MT',\n 19: 'MS',\n 20: 'DF',\n 21: 'SE',\n 22: 'AM',\n 23: 'RO',\n 24: 'AC',\n 25: 'AP',\n 26: 'RR',\n 27: 'TO',\n};\n\nexport const TITULO_ELEITOR_EXTERIOR_UF_CODE = 28;\n","/**\n * Título de Eleitor check digits — modulo 11 (TSE / Wikipedia PT + Ghiorzi).\n * @see https://www.tse.jus.br/legislacao/compilada/res/1998/resolucao-no-20-132-de-19-de-marco-de-1998\n * @see https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador\n * @see http://ghiorzi.org/DVnew.htm#e\n */\nimport { weightedSum } from '../cnpj/modulo11.js';\nimport {\n TITULO_ELEITOR_DV1_WEIGHTS_8,\n TITULO_ELEITOR_DV1_WEIGHTS_9,\n TITULO_ELEITOR_DV2_WEIGHTS,\n TITULO_ELEITOR_SPECIAL_UF_CODES,\n} from './constants.js';\n\nfunction digitValues(chars: string): number[] {\n const values: number[] = [];\n for (let i = 0; i < chars.length; i++) {\n values.push(Number(chars.charAt(i)));\n }\n return values;\n}\n\nfunction isSpecialUf(ufCode: number): boolean {\n return (TITULO_ELEITOR_SPECIAL_UF_CODES as readonly number[]).includes(ufCode);\n}\n\nexport function resolveTituloEleitorCheckDigit(remainder: number, ufCode: number): number {\n if (remainder >= 10) {\n return 0;\n }\n if (remainder === 0 && isSpecialUf(ufCode)) {\n return 1;\n }\n return remainder;\n}\n\nexport function computeTituloEleitorFirstCheckDigit(sequential: string, ufCode: number): number {\n const weights =\n sequential.length === 8 ? TITULO_ELEITOR_DV1_WEIGHTS_8 : TITULO_ELEITOR_DV1_WEIGHTS_9;\n const remainder = weightedSum(digitValues(sequential), weights) % 11;\n return resolveTituloEleitorCheckDigit(remainder, ufCode);\n}\n\nexport function computeTituloEleitorSecondCheckDigit(\n ufDigits: string,\n firstDv: number,\n ufCode: number,\n): number {\n const uf1 = Number(ufDigits.charAt(0));\n const uf2 = Number(ufDigits.charAt(1));\n const remainder = weightedSum([uf1, uf2, firstDv], TITULO_ELEITOR_DV2_WEIGHTS) % 11;\n return resolveTituloEleitorCheckDigit(remainder, ufCode);\n}\n\nexport function computeTituloEleitorCheckDigits(\n sequential: string,\n ufDigits: string,\n ufCode: number,\n): string {\n const dv1 = computeTituloEleitorFirstCheckDigit(sequential, ufCode);\n const dv2 = computeTituloEleitorSecondCheckDigit(ufDigits, dv1, ufCode);\n return `${String(dv1)}${String(dv2)}`;\n}\n","import {\n TITULO_ELEITOR_LENGTH,\n TITULO_ELEITOR_LENGTH_EXTENDED,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED,\n TITULO_ELEITOR_SPECIAL_UF_CODES,\n} from './constants.js';\n\nexport type TituloEleitorParts = {\n sequential: string;\n ufDigits: string;\n ufCode: number;\n checkDigits: string;\n};\n\nexport function parseTituloEleitorParts(stripped: string): TituloEleitorParts | null {\n if (stripped.length === TITULO_ELEITOR_LENGTH) {\n return {\n sequential: stripped.slice(0, TITULO_ELEITOR_SEQUENTIAL_LENGTH),\n ufDigits: stripped.slice(TITULO_ELEITOR_SEQUENTIAL_LENGTH, TITULO_ELEITOR_LENGTH - 2),\n ufCode: Number(stripped.slice(TITULO_ELEITOR_SEQUENTIAL_LENGTH, TITULO_ELEITOR_LENGTH - 2)),\n checkDigits: stripped.slice(TITULO_ELEITOR_LENGTH - 2),\n };\n }\n\n if (stripped.length === TITULO_ELEITOR_LENGTH_EXTENDED) {\n const ufDigits = stripped.slice(\n TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED + 2,\n );\n const ufCode = Number(ufDigits);\n if (!(TITULO_ELEITOR_SPECIAL_UF_CODES as readonly number[]).includes(ufCode)) {\n return null;\n }\n return {\n sequential: stripped.slice(0, TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED),\n ufDigits,\n ufCode,\n checkDigits: stripped.slice(TITULO_ELEITOR_LENGTH_EXTENDED - 2),\n };\n }\n\n return null;\n}\n","/**\n * Título de Eleitor validation — modulo 11 (TSE Res. 20.132/1998 + algorithm cross-checks).\n * @see https://www.tse.jus.br/legislacao/compilada/res/1998/resolucao-no-20-132-de-19-de-marco-de-1998\n * @see https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador\n * @see http://ghiorzi.org/DVnew.htm#e\n */\nimport { stripTituloEleitor } from '../../strip/index.js';\nimport type { TituloEleitorValidationResult, UfCode } from '../../types/validation-result.js';\nimport { brandTituloEleitor } from '../../types/validation-result.js';\nimport { computeTituloEleitorCheckDigits } from './check-digits.js';\nimport {\n TITULO_ELEITOR_EXTERIOR_UF_CODE,\n TITULO_ELEITOR_LENGTH,\n TITULO_ELEITOR_LENGTH_EXTENDED,\n TITULO_ELEITOR_MAX_UF_CODE,\n TITULO_ELEITOR_MIN_UF_CODE,\n TITULO_ELEITOR_UF_BY_CODE,\n} from './constants.js';\nimport { parseTituloEleitorParts } from './parse.js';\n\nexport {\n TITULO_ELEITOR_ALGORITHM_REF_URL,\n TITULO_ELEITOR_ALGORITHM_WEIGHTS_REF_URL,\n TITULO_ELEITOR_DV1_WEIGHTS_8,\n TITULO_ELEITOR_DV1_WEIGHTS_9,\n TITULO_ELEITOR_DV2_WEIGHTS,\n TITULO_ELEITOR_ETITULO_URL,\n TITULO_ELEITOR_EXTERIOR_UF_CODE,\n TITULO_ELEITOR_GOLDEN_EXTERIOR,\n TITULO_ELEITOR_GOLDEN_MASKED_INPUT,\n TITULO_ELEITOR_GOLDEN_PRIMARY,\n TITULO_ELEITOR_GOLDEN_SP_EXTENDED,\n TITULO_ELEITOR_GOLDEN_SP_SPECIAL,\n TITULO_ELEITOR_LENGTH,\n TITULO_ELEITOR_LENGTH_EXTENDED,\n TITULO_ELEITOR_NORMATIVE_SECONDARY_URL,\n TITULO_ELEITOR_NUMERIC_PATTERN_12,\n TITULO_ELEITOR_NUMERIC_PATTERN_13,\n TITULO_ELEITOR_OFFICIAL_SOURCE_URL,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED,\n TITULO_ELEITOR_SPECIAL_UF_CODES,\n TITULO_ELEITOR_TSE_PORTAL_URL,\n TITULO_ELEITOR_UF_BY_CODE,\n} from './constants.js';\n\ntype FailedResult = Extract<TituloEleitorValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string, ufCode?: number): FailedResult {\n if (ufCode === undefined) {\n return { ok: false, code, message };\n }\n return { ok: false, code, message, ufCode };\n}\n\nfunction hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidUfCode(ufCode: number): boolean {\n return ufCode >= TITULO_ELEITOR_MIN_UF_CODE && ufCode <= TITULO_ELEITOR_MAX_UF_CODE;\n}\n\nfunction resolveUf(ufCode: number): UfCode | undefined {\n return TITULO_ELEITOR_UF_BY_CODE[ufCode];\n}\n\ntype StructureResult =\n | { ok: false; error: FailedResult }\n | { ok: true; parts: NonNullable<ReturnType<typeof parseTituloEleitorParts>> };\n\nfunction validateStructure(input: string, stripped: string): StructureResult {\n if (stripped.length === 0) {\n return { ok: false, error: failure('EMPTY_INPUT', 'Título de Eleitor input is empty') };\n }\n\n if (/[^0-9\\s]/.test(input.replace(/\\s/g, ''))) {\n return { ok: false, error: failure('INVALID_CHARACTER', 'Título de Eleitor contains invalid characters') };\n }\n\n if (stripped.length !== TITULO_ELEITOR_LENGTH && stripped.length !== TITULO_ELEITOR_LENGTH_EXTENDED) {\n return {\n ok: false,\n error: failure(\n 'INVALID_LENGTH',\n `Título de Eleitor must have ${TITULO_ELEITOR_LENGTH} or ${TITULO_ELEITOR_LENGTH_EXTENDED} digits after normalization`,\n ),\n };\n }\n\n const parts = parseTituloEleitorParts(stripped);\n if (!parts) {\n return {\n ok: false,\n error: failure(\n 'UNSUPPORTED_FORMAT',\n `13-digit Título de Eleitor is only valid for SP (01) or MG (02)`,\n ),\n };\n }\n\n if (!isValidUfCode(parts.ufCode)) {\n return {\n ok: false,\n error: failure(\n 'KNOWN_INVALID_PATTERN',\n `Título de Eleitor UF code ${parts.ufDigits} is not a valid TSE electoral code`,\n parts.ufCode,\n ),\n };\n }\n\n if (hasRepeatedDigits(stripped)) {\n return {\n ok: false,\n error: failure('KNOWN_INVALID_PATTERN', 'Título de Eleitor with all identical digits is invalid'),\n };\n }\n\n return { ok: true, parts };\n}\n\nfunction isValidTituloEleitorChecksum(parts: {\n sequential: string;\n ufDigits: string;\n ufCode: number;\n checkDigits: string;\n}): boolean {\n const expected = computeTituloEleitorCheckDigits(parts.sequential, parts.ufDigits, parts.ufCode);\n return parts.checkDigits === expected;\n}\n\nexport function isValidTituloEleitor(input: string): boolean {\n return validateTituloEleitor(input).ok;\n}\n\nexport function validateTituloEleitor(input: string): TituloEleitorValidationResult {\n const stripped = stripTituloEleitor(input);\n const structure = validateStructure(input, stripped);\n if (!structure.ok) {\n return structure.error;\n }\n\n const { parts } = structure;\n\n if (!isValidTituloEleitorChecksum(parts)) {\n return failure('INVALID_CHECK_DIGIT', 'Título de Eleitor check digits are invalid', parts.ufCode);\n }\n\n const uf = resolveUf(parts.ufCode);\n const success: Extract<TituloEleitorValidationResult, { ok: true }> = {\n ok: true,\n value: brandTituloEleitor(stripped),\n format: 'numeric',\n ufCode: parts.ufCode,\n };\n if (uf !== undefined) {\n success.uf = uf;\n } else if (parts.ufCode === TITULO_ELEITOR_EXTERIOR_UF_CODE) {\n success.exterior = true;\n }\n return success;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/titulo-eleitor/constants.ts","../src/core/titulo-eleitor/check-digits.ts","../src/core/titulo-eleitor/parse.ts","../src/core/titulo-eleitor/index.ts"],"names":[],"mappings":"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","file":"chunk-XHDRWM46.js","sourcesContent":["/**\n * Título de Eleitor constants — modulo 11 (TSE Res. 20.132/1998 + algorithm cross-checks).\n * @see https://www.tse.jus.br/legislacao/compilada/res/1998/resolucao-no-20-132-de-19-de-marco-de-1998 — Art. 10 (structure, mod 11)\n * @see https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador — weights + SP/MG rule\n * @see http://ghiorzi.org/DVnew.htm#e — algorithm cross-check\n */\nimport type { UfCode } from '../../types/validation-result.js';\n\nexport const TITULO_ELEITOR_DV1_WEIGHTS_8 = [2, 3, 4, 5, 6, 7, 8, 9] as const;\nexport const TITULO_ELEITOR_DV1_WEIGHTS_9 = [9, 2, 3, 4, 5, 6, 7, 8, 9] as const;\nexport const TITULO_ELEITOR_DV2_WEIGHTS = [7, 8, 9] as const;\nexport const TITULO_ELEITOR_SEQUENTIAL_LENGTH = 8;\nexport const TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED = 9;\nexport const TITULO_ELEITOR_LENGTH = 12;\nexport const TITULO_ELEITOR_LENGTH_EXTENDED = 13;\nexport const TITULO_ELEITOR_UF_LENGTH = 2;\nexport const TITULO_ELEITOR_DV_LENGTH = 2;\nexport const TITULO_ELEITOR_MIN_UF_CODE = 1;\nexport const TITULO_ELEITOR_MAX_UF_CODE = 28;\nexport const TITULO_ELEITOR_NUMERIC_PATTERN_12 = /^\\d{12}$/;\nexport const TITULO_ELEITOR_NUMERIC_PATTERN_13 = /^\\d{13}$/;\n\n/** TSE UF codes where remainder 0 maps DV to 1 instead of 0. */\nexport const TITULO_ELEITOR_SPECIAL_UF_CODES = [1, 2] as const;\n\n/** Golden primary — SC (UF=09), Wikipedia PT walkthrough. */\nexport const TITULO_ELEITOR_GOLDEN_PRIMARY = '004356870906';\nexport const TITULO_ELEITOR_GOLDEN_SP_SPECIAL = '000000000116';\nexport const TITULO_ELEITOR_GOLDEN_SP_EXTENDED = '1234567890175';\nexport const TITULO_ELEITOR_GOLDEN_EXTERIOR = '000000012895';\nexport const TITULO_ELEITOR_GOLDEN_MASKED_INPUT = '0043 5687 0906';\n\n/** Normative — Resolução TSE 20.132/1998, Art. 10 (8 seq + 2 UF + 2 DV, mod 11). */\nexport const TITULO_ELEITOR_OFFICIAL_SOURCE_URL =\n 'https://www.tse.jus.br/legislacao/compilada/res/1998/resolucao-no-20-132-de-19-de-marco-de-1998';\n\n/** Normative — Resolução TSE 23.659/2021 (Cadastro Eleitoral; confirms UF + DV structure). */\nexport const TITULO_ELEITOR_NORMATIVE_SECONDARY_URL =\n 'https://www.tse.jus.br/legislacao/compilada/res/2021/resolucao-no-23-659-de-26-de-outubro-de-2021';\n\n/**\n * Algorithm weights + SP/MG remainder-zero rule — not in TSE resolution text.\n * Community consensus validated empirically (Wikipedia PT worked example).\n */\nexport const TITULO_ELEITOR_ALGORITHM_WEIGHTS_REF_URL =\n 'https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador';\n\n/** Algorithm cross-check — Ghiorzi DV table. */\nexport const TITULO_ELEITOR_ALGORITHM_REF_URL = 'http://ghiorzi.org/DVnew.htm#e';\n\nexport const TITULO_ELEITOR_TSE_PORTAL_URL = 'https://www.tse.jus.br/';\n\nexport const TITULO_ELEITOR_ETITULO_URL =\n 'https://www.tse.jus.br/eleitor/servicos/aplicativo-e-titulo';\n\n/** TSE electoral UF code → Brazilian UF (28 = exterior / ZZ). */\nexport const TITULO_ELEITOR_UF_BY_CODE: Readonly<Record<number, UfCode>> = {\n 1: 'SP',\n 2: 'MG',\n 3: 'RJ',\n 4: 'RS',\n 5: 'BA',\n 6: 'PR',\n 7: 'CE',\n 8: 'PE',\n 9: 'SC',\n 10: 'GO',\n 11: 'MA',\n 12: 'PB',\n 13: 'PA',\n 14: 'ES',\n 15: 'PI',\n 16: 'RN',\n 17: 'AL',\n 18: 'MT',\n 19: 'MS',\n 20: 'DF',\n 21: 'SE',\n 22: 'AM',\n 23: 'RO',\n 24: 'AC',\n 25: 'AP',\n 26: 'RR',\n 27: 'TO',\n};\n\nexport const TITULO_ELEITOR_EXTERIOR_UF_CODE = 28;\n","/**\n * Título de Eleitor check digits — modulo 11 (TSE / Wikipedia PT + Ghiorzi).\n * @see https://www.tse.jus.br/legislacao/compilada/res/1998/resolucao-no-20-132-de-19-de-marco-de-1998\n * @see https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador\n * @see http://ghiorzi.org/DVnew.htm#e\n */\nimport { weightedSum } from '../cnpj/modulo11.js';\nimport {\n TITULO_ELEITOR_DV1_WEIGHTS_8,\n TITULO_ELEITOR_DV1_WEIGHTS_9,\n TITULO_ELEITOR_DV2_WEIGHTS,\n TITULO_ELEITOR_SPECIAL_UF_CODES,\n} from './constants.js';\n\nfunction digitValues(chars: string): number[] {\n const values: number[] = [];\n for (let i = 0; i < chars.length; i++) {\n values.push(Number(chars.charAt(i)));\n }\n return values;\n}\n\nfunction isSpecialUf(ufCode: number): boolean {\n return (TITULO_ELEITOR_SPECIAL_UF_CODES as readonly number[]).includes(ufCode);\n}\n\nexport function resolveTituloEleitorCheckDigit(remainder: number, ufCode: number): number {\n if (remainder >= 10) {\n return 0;\n }\n if (remainder === 0 && isSpecialUf(ufCode)) {\n return 1;\n }\n return remainder;\n}\n\nexport function computeTituloEleitorFirstCheckDigit(sequential: string, ufCode: number): number {\n const weights =\n sequential.length === 8 ? TITULO_ELEITOR_DV1_WEIGHTS_8 : TITULO_ELEITOR_DV1_WEIGHTS_9;\n const remainder = weightedSum(digitValues(sequential), weights) % 11;\n return resolveTituloEleitorCheckDigit(remainder, ufCode);\n}\n\nexport function computeTituloEleitorSecondCheckDigit(\n ufDigits: string,\n firstDv: number,\n ufCode: number,\n): number {\n const uf1 = Number(ufDigits.charAt(0));\n const uf2 = Number(ufDigits.charAt(1));\n const remainder = weightedSum([uf1, uf2, firstDv], TITULO_ELEITOR_DV2_WEIGHTS) % 11;\n return resolveTituloEleitorCheckDigit(remainder, ufCode);\n}\n\nexport function computeTituloEleitorCheckDigits(\n sequential: string,\n ufDigits: string,\n ufCode: number,\n): string {\n const dv1 = computeTituloEleitorFirstCheckDigit(sequential, ufCode);\n const dv2 = computeTituloEleitorSecondCheckDigit(ufDigits, dv1, ufCode);\n return `${String(dv1)}${String(dv2)}`;\n}\n","import {\n TITULO_ELEITOR_LENGTH,\n TITULO_ELEITOR_LENGTH_EXTENDED,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED,\n TITULO_ELEITOR_SPECIAL_UF_CODES,\n} from './constants.js';\n\nexport type TituloEleitorParts = {\n sequential: string;\n ufDigits: string;\n ufCode: number;\n checkDigits: string;\n};\n\nexport function parseTituloEleitorParts(stripped: string): TituloEleitorParts | null {\n if (stripped.length === TITULO_ELEITOR_LENGTH) {\n return {\n sequential: stripped.slice(0, TITULO_ELEITOR_SEQUENTIAL_LENGTH),\n ufDigits: stripped.slice(TITULO_ELEITOR_SEQUENTIAL_LENGTH, TITULO_ELEITOR_LENGTH - 2),\n ufCode: Number(stripped.slice(TITULO_ELEITOR_SEQUENTIAL_LENGTH, TITULO_ELEITOR_LENGTH - 2)),\n checkDigits: stripped.slice(TITULO_ELEITOR_LENGTH - 2),\n };\n }\n\n if (stripped.length === TITULO_ELEITOR_LENGTH_EXTENDED) {\n const ufDigits = stripped.slice(\n TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED + 2,\n );\n const ufCode = Number(ufDigits);\n if (!(TITULO_ELEITOR_SPECIAL_UF_CODES as readonly number[]).includes(ufCode)) {\n return null;\n }\n return {\n sequential: stripped.slice(0, TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED),\n ufDigits,\n ufCode,\n checkDigits: stripped.slice(TITULO_ELEITOR_LENGTH_EXTENDED - 2),\n };\n }\n\n return null;\n}\n","/**\n * Título de Eleitor validation — modulo 11 (TSE Res. 20.132/1998 + algorithm cross-checks).\n * @see https://www.tse.jus.br/legislacao/compilada/res/1998/resolucao-no-20-132-de-19-de-marco-de-1998\n * @see https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador\n * @see http://ghiorzi.org/DVnew.htm#e\n */\nimport { stripTituloEleitor } from '../../strip/index.js';\nimport type { TituloEleitorValidationResult, UfCode } from '../../types/validation-result.js';\nimport { brandTituloEleitor } from '../../types/validation-result.js';\nimport { computeTituloEleitorCheckDigits } from './check-digits.js';\nimport {\n TITULO_ELEITOR_EXTERIOR_UF_CODE,\n TITULO_ELEITOR_LENGTH,\n TITULO_ELEITOR_LENGTH_EXTENDED,\n TITULO_ELEITOR_MAX_UF_CODE,\n TITULO_ELEITOR_MIN_UF_CODE,\n TITULO_ELEITOR_UF_BY_CODE,\n} from './constants.js';\nimport { parseTituloEleitorParts } from './parse.js';\n\nexport {\n TITULO_ELEITOR_ALGORITHM_REF_URL,\n TITULO_ELEITOR_ALGORITHM_WEIGHTS_REF_URL,\n TITULO_ELEITOR_DV1_WEIGHTS_8,\n TITULO_ELEITOR_DV1_WEIGHTS_9,\n TITULO_ELEITOR_DV2_WEIGHTS,\n TITULO_ELEITOR_ETITULO_URL,\n TITULO_ELEITOR_EXTERIOR_UF_CODE,\n TITULO_ELEITOR_GOLDEN_EXTERIOR,\n TITULO_ELEITOR_GOLDEN_MASKED_INPUT,\n TITULO_ELEITOR_GOLDEN_PRIMARY,\n TITULO_ELEITOR_GOLDEN_SP_EXTENDED,\n TITULO_ELEITOR_GOLDEN_SP_SPECIAL,\n TITULO_ELEITOR_LENGTH,\n TITULO_ELEITOR_LENGTH_EXTENDED,\n TITULO_ELEITOR_NORMATIVE_SECONDARY_URL,\n TITULO_ELEITOR_NUMERIC_PATTERN_12,\n TITULO_ELEITOR_NUMERIC_PATTERN_13,\n TITULO_ELEITOR_OFFICIAL_SOURCE_URL,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH,\n TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED,\n TITULO_ELEITOR_SPECIAL_UF_CODES,\n TITULO_ELEITOR_TSE_PORTAL_URL,\n TITULO_ELEITOR_UF_BY_CODE,\n} from './constants.js';\n\ntype FailedResult = Extract<TituloEleitorValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string, ufCode?: number): FailedResult {\n if (ufCode === undefined) {\n return { ok: false, code, message };\n }\n return { ok: false, code, message, ufCode };\n}\n\nfunction hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidUfCode(ufCode: number): boolean {\n return ufCode >= TITULO_ELEITOR_MIN_UF_CODE && ufCode <= TITULO_ELEITOR_MAX_UF_CODE;\n}\n\nfunction resolveUf(ufCode: number): UfCode | undefined {\n return TITULO_ELEITOR_UF_BY_CODE[ufCode];\n}\n\ntype StructureResult =\n | { ok: false; error: FailedResult }\n | { ok: true; parts: NonNullable<ReturnType<typeof parseTituloEleitorParts>> };\n\nfunction validateStructure(input: string, stripped: string): StructureResult {\n if (stripped.length === 0) {\n return { ok: false, error: failure('EMPTY_INPUT', 'Título de Eleitor input is empty') };\n }\n\n if (/[^0-9\\s]/.test(input.replace(/\\s/g, ''))) {\n return { ok: false, error: failure('INVALID_CHARACTER', 'Título de Eleitor contains invalid characters') };\n }\n\n if (stripped.length !== TITULO_ELEITOR_LENGTH && stripped.length !== TITULO_ELEITOR_LENGTH_EXTENDED) {\n return {\n ok: false,\n error: failure(\n 'INVALID_LENGTH',\n `Título de Eleitor must have ${TITULO_ELEITOR_LENGTH} or ${TITULO_ELEITOR_LENGTH_EXTENDED} digits after normalization`,\n ),\n };\n }\n\n const parts = parseTituloEleitorParts(stripped);\n if (!parts) {\n return {\n ok: false,\n error: failure(\n 'UNSUPPORTED_FORMAT',\n `13-digit Título de Eleitor is only valid for SP (01) or MG (02)`,\n ),\n };\n }\n\n if (!isValidUfCode(parts.ufCode)) {\n return {\n ok: false,\n error: failure(\n 'KNOWN_INVALID_PATTERN',\n `Título de Eleitor UF code ${parts.ufDigits} is not a valid TSE electoral code`,\n parts.ufCode,\n ),\n };\n }\n\n if (hasRepeatedDigits(stripped)) {\n return {\n ok: false,\n error: failure('KNOWN_INVALID_PATTERN', 'Título de Eleitor with all identical digits is invalid'),\n };\n }\n\n return { ok: true, parts };\n}\n\nfunction isValidTituloEleitorChecksum(parts: {\n sequential: string;\n ufDigits: string;\n ufCode: number;\n checkDigits: string;\n}): boolean {\n const expected = computeTituloEleitorCheckDigits(parts.sequential, parts.ufDigits, parts.ufCode);\n return parts.checkDigits === expected;\n}\n\nexport function isValidTituloEleitor(input: string): boolean {\n return validateTituloEleitor(input).ok;\n}\n\nexport function validateTituloEleitor(input: string): TituloEleitorValidationResult {\n const stripped = stripTituloEleitor(input);\n const structure = validateStructure(input, stripped);\n if (!structure.ok) {\n return structure.error;\n }\n\n const { parts } = structure;\n\n if (!isValidTituloEleitorChecksum(parts)) {\n return failure('INVALID_CHECK_DIGIT', 'Título de Eleitor check digits are invalid', parts.ufCode);\n }\n\n const uf = resolveUf(parts.ufCode);\n const success: Extract<TituloEleitorValidationResult, { ok: true }> = {\n ok: true,\n value: brandTituloEleitor(stripped),\n format: 'numeric',\n ufCode: parts.ufCode,\n };\n if (uf !== undefined) {\n success.uf = uf;\n } else if (parts.ufCode === TITULO_ELEITOR_EXTERIOR_UF_CODE) {\n success.exterior = true;\n }\n return success;\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// src/cbo/data/metadata.json
|
|
2
|
+
var metadata_default = {
|
|
3
|
+
id: "cbo",
|
|
4
|
+
nome: "CBO 2002 \u2014 Brazilian Occupations",
|
|
5
|
+
fonte: "MTE CBO 2002 ocupacao.csv",
|
|
6
|
+
endpoints: [
|
|
7
|
+
"https://www.gov.br/trabalho-e-emprego/pt-br/assuntos/cbo/servicos/downloads/cbo2002-ocupacao.csv"
|
|
8
|
+
],
|
|
9
|
+
capturadoEm: "2026-06-23",
|
|
10
|
+
atualizadoEm: "2026-06-23T16:12:08.064Z",
|
|
11
|
+
contagens: {
|
|
12
|
+
cbo: 2694
|
|
13
|
+
},
|
|
14
|
+
alteracoes: {
|
|
15
|
+
adicionados: 2694,
|
|
16
|
+
removidos: 0,
|
|
17
|
+
alterados: 0,
|
|
18
|
+
comparadoCom: null
|
|
19
|
+
},
|
|
20
|
+
verificacao: {
|
|
21
|
+
agendamento: "semanal",
|
|
22
|
+
workflow: "data-refresh-bot.yml",
|
|
23
|
+
ultimaExecucao: "2026-06-23T16:12:08.064Z"
|
|
24
|
+
},
|
|
25
|
+
documentacao: "docs/OFFICIAL-SOURCES.md#cbo-occupations"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { metadata_default };
|
|
29
|
+
//# sourceMappingURL=chunk-XQ6MMGV2.js.map
|
|
30
|
+
//# sourceMappingURL=chunk-XQ6MMGV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cbo/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAQ,uCAAA;AAAA,EACR,KAAA,EAAS,2BAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,GAAA,EAAO;AAAA,GACT;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,IAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,SAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-XQ6MMGV2.js","sourcesContent":["{\n \"id\": \"cbo\",\n \"nome\": \"CBO 2002 — Brazilian Occupations\",\n \"fonte\": \"MTE CBO 2002 ocupacao.csv\",\n \"endpoints\": [\n \"https://www.gov.br/trabalho-e-emprego/pt-br/assuntos/cbo/servicos/downloads/cbo2002-ocupacao.csv\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T16:12:08.064Z\",\n \"contagens\": {\n \"cbo\": 2694\n },\n \"alteracoes\": {\n \"adicionados\": 2694,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": null\n },\n \"verificacao\": {\n \"agendamento\": \"semanal\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-23T16:12:08.064Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cbo-occupations\"\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// src/feriados/data/metadata.json
|
|
2
|
+
var metadata_default = {
|
|
3
|
+
id: "feriados",
|
|
4
|
+
nome: "Feriados Nacionais Federais",
|
|
5
|
+
fonte: "Lei 662/1949 + Portaria MGI (calend\xE1rio federal)",
|
|
6
|
+
endpoints: [
|
|
7
|
+
"https://www.planalto.gov.br/ccivil_03/leis/l0662.htm",
|
|
8
|
+
"https://www.planalto.gov.br/ccivil_03/leis/l10607.htm",
|
|
9
|
+
"https://www.planalto.gov.br/ccivil_03/leis/l6802.htm",
|
|
10
|
+
"https://www.planalto.gov.br/ccivil_03/_ato2023-2026/2023/lei/L14759.htm",
|
|
11
|
+
"https://www.gov.br/gestao/pt-br/assuntos/noticias/2025/dezembro/confira-o-calendario-oficial-de-feriados-nacionais-e-pontos-facultativos-em-2026"
|
|
12
|
+
],
|
|
13
|
+
capturadoEm: "2026-06-23",
|
|
14
|
+
atualizadoEm: "2026-06-23T00:00:00.000Z",
|
|
15
|
+
contagens: {
|
|
16
|
+
feriadosNacionaisFixos: 9,
|
|
17
|
+
feriadosNacionaisMoveis: 1,
|
|
18
|
+
pontosFacultativosFederais: 9
|
|
19
|
+
},
|
|
20
|
+
alteracoes: {
|
|
21
|
+
adicionados: 0,
|
|
22
|
+
removidos: 0,
|
|
23
|
+
alterados: 0,
|
|
24
|
+
comparadoCom: null
|
|
25
|
+
},
|
|
26
|
+
verificacao: {
|
|
27
|
+
agendamento: "semanal",
|
|
28
|
+
workflow: "data-refresh-bot.yml"
|
|
29
|
+
},
|
|
30
|
+
documentacao: "docs/OFFICIAL-SOURCES.md#feriados-nacionais"
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { metadata_default };
|
|
34
|
+
//# sourceMappingURL=chunk-YOL43ZNQ.js.map
|
|
35
|
+
//# sourceMappingURL=chunk-YOL43ZNQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/feriados/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,UAAA;AAAA,EACN,IAAA,EAAQ,6BAAA;AAAA,EACR,KAAA,EAAS,qDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,sDAAA;AAAA,IACA,uDAAA;AAAA,IACA,sDAAA;AAAA,IACA,yEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,sBAAA,EAA0B,CAAA;AAAA,IAC1B,uBAAA,EAA2B,CAAA;AAAA,IAC3B,0BAAA,EAA8B;AAAA,GAChC;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,SAAA;AAAA,IACf,QAAA,EAAY;AAAA,GACd;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-YOL43ZNQ.js","sourcesContent":["{\n \"id\": \"feriados\",\n \"nome\": \"Feriados Nacionais Federais\",\n \"fonte\": \"Lei 662/1949 + Portaria MGI (calendário federal)\",\n \"endpoints\": [\n \"https://www.planalto.gov.br/ccivil_03/leis/l0662.htm\",\n \"https://www.planalto.gov.br/ccivil_03/leis/l10607.htm\",\n \"https://www.planalto.gov.br/ccivil_03/leis/l6802.htm\",\n \"https://www.planalto.gov.br/ccivil_03/_ato2023-2026/2023/lei/L14759.htm\",\n \"https://www.gov.br/gestao/pt-br/assuntos/noticias/2025/dezembro/confira-o-calendario-oficial-de-feriados-nacionais-e-pontos-facultativos-em-2026\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T00:00:00.000Z\",\n \"contagens\": {\n \"feriadosNacionaisFixos\": 9,\n \"feriadosNacionaisMoveis\": 1,\n \"pontosFacultativosFederais\": 9\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": null\n },\n \"verificacao\": {\n \"agendamento\": \"semanal\",\n \"workflow\": \"data-refresh-bot.yml\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#feriados-nacionais\"\n}\n"]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { applyFixes } from './chunk-
|
|
2
|
-
import { validateRenavam } from './chunk-
|
|
3
|
-
import { validateTelefone } from './chunk-EFEE6CMO.js';
|
|
4
|
-
import { validateTituloEleitor } from './chunk-CSVGWTCG.js';
|
|
5
|
-
import { validateInscricaoEstadual } from './chunk-665E36SC.js';
|
|
6
|
-
import { validateIeSpRural } from './chunk-CDNOUZEI.js';
|
|
1
|
+
import { applyFixes } from './chunk-GWAYWBHN.js';
|
|
2
|
+
import { validateRenavam } from './chunk-NT3TNF3R.js';
|
|
7
3
|
import { validateNfeChave } from './chunk-AO6UTQ4A.js';
|
|
8
4
|
import { validatePisPasep } from './chunk-JLCQ7MGC.js';
|
|
9
5
|
import { validatePlaca } from './chunk-3LMDBXU6.js';
|
|
6
|
+
import { validateTelefone } from './chunk-OOUEURR7.js';
|
|
7
|
+
import { validateTituloEleitor } from './chunk-XHDRWM46.js';
|
|
8
|
+
import { validateInscricaoEstadual } from './chunk-665E36SC.js';
|
|
9
|
+
import { validateIeSpRural } from './chunk-CDNOUZEI.js';
|
|
10
|
+
import { validateCnh } from './chunk-VKG7UEN5.js';
|
|
10
11
|
import { validateBoleto } from './chunk-AU6TW3GH.js';
|
|
11
|
-
import { validateCpf } from './chunk-63G7QO73.js';
|
|
12
|
-
import { validateCartaoCredito } from './chunk-ANWQBKGN.js';
|
|
13
|
-
import { validateCep } from './chunk-TE6NSONR.js';
|
|
14
|
-
import { validateCnh } from './chunk-YNVMVDFN.js';
|
|
15
12
|
import { validateCnpj } from './chunk-FBARVLLP.js';
|
|
13
|
+
import { validateCpf } from './chunk-L7PF4KD6.js';
|
|
14
|
+
import { validateCartaoCredito } from './chunk-ANWQBKGN.js';
|
|
15
|
+
import { validateCep } from './chunk-P6TOL5VY.js';
|
|
16
16
|
|
|
17
17
|
// src/sanitize/index.ts
|
|
18
18
|
function sanitize(raw, type, options = {}) {
|
|
@@ -96,5 +96,5 @@ function validateFixed(value, type, uf) {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
export { sanitize };
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
100
|
-
//# sourceMappingURL=chunk-
|
|
99
|
+
//# sourceMappingURL=chunk-ZTDLGGYE.js.map
|
|
100
|
+
//# sourceMappingURL=chunk-ZTDLGGYE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sanitize/index.ts"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/sanitize/index.ts"],"names":[],"mappings":"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","file":"chunk-ZTDLGGYE.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 { 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 { 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 | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural';\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 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 '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 '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 default: {\n const _exhaustive: never = type;\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message: `Unsupported type: ${String(_exhaustive)}` };\n }\n }\n}\n"]}
|
package/dist/cnaes.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { b as DatasetChanges, c as DatasetVerification } from './types-CBIZxgfG.js';
|
|
2
|
+
|
|
3
|
+
interface Cnae {
|
|
4
|
+
codigo: string;
|
|
5
|
+
descricao: string;
|
|
6
|
+
}
|
|
7
|
+
interface CnaesDataVersion {
|
|
8
|
+
id: 'cnaes';
|
|
9
|
+
nome: string;
|
|
10
|
+
fonte: string;
|
|
11
|
+
endpoints: string[];
|
|
12
|
+
capturadoEm: string;
|
|
13
|
+
atualizadoEm: string;
|
|
14
|
+
contagens: {
|
|
15
|
+
cnaes: number;
|
|
16
|
+
};
|
|
17
|
+
alteracoes: DatasetChanges;
|
|
18
|
+
verificacao: DatasetVerification;
|
|
19
|
+
documentacao: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* IBGE CNAE 2.3 subclass lookup — offline embedded data from official IBGE API.
|
|
24
|
+
* @see https://servicodados.ibge.gov.br/api/docs/cnae
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
declare function getCnaes(): readonly Cnae[];
|
|
28
|
+
declare function getCnaePorCodigo(codigo: string): Cnae | undefined;
|
|
29
|
+
declare function searchCnaes(query: string, options?: {
|
|
30
|
+
limit?: number;
|
|
31
|
+
}): readonly Cnae[];
|
|
32
|
+
|
|
33
|
+
declare const CNAES_SUBCLASSES_URL = "https://servicodados.ibge.gov.br/api/v2/cnae/subclasses";
|
|
34
|
+
declare const CNAES_GOLDEN_DESENVOLVIMENTO_PROGRAMAS = "6201501";
|
|
35
|
+
declare const CNAES_GOLDEN_WEB_DESIGN = "6201502";
|
|
36
|
+
declare const CNAES_MIN_SUBCLASSES = 1200;
|
|
37
|
+
declare const CNAES_MAX_SUBCLASSES = 1500;
|
|
38
|
+
|
|
39
|
+
declare const CNAES_DATA_VERSION: CnaesDataVersion;
|
|
40
|
+
|
|
41
|
+
export { CNAES_DATA_VERSION, CNAES_GOLDEN_DESENVOLVIMENTO_PROGRAMAS, CNAES_GOLDEN_WEB_DESIGN, CNAES_MAX_SUBCLASSES, CNAES_MIN_SUBCLASSES, CNAES_SUBCLASSES_URL, type Cnae, type CnaesDataVersion, getCnaePorCodigo, getCnaes, searchCnaes };
|