@br-validators/core 0.10.0-alpha.0 → 0.11.0-alpha.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 +3 -3
- package/dist/boleto.d.ts +2 -2
- package/dist/boleto.js +2 -2
- package/dist/brcode.d.ts +79 -0
- package/dist/brcode.js +10 -0
- package/dist/brcode.js.map +1 -0
- package/dist/cartao-credito.d.ts +2 -2
- package/dist/cartao-credito.js +2 -2
- package/dist/cep.d.ts +2 -2
- package/dist/cep.js +2 -2
- package/dist/{chunk-YY4M2YS6.js → chunk-2KTD23PD.js} +3 -3
- package/dist/{chunk-YY4M2YS6.js.map → chunk-2KTD23PD.js.map} +1 -1
- package/dist/chunk-465IC76U.js +211 -0
- package/dist/chunk-465IC76U.js.map +1 -0
- package/dist/{chunk-PBNVKDCF.js → chunk-5BBNLRZP.js} +3 -3
- package/dist/{chunk-PBNVKDCF.js.map → chunk-5BBNLRZP.js.map} +1 -1
- package/dist/{chunk-DKRM66US.js → chunk-BBL6ZPXH.js} +9 -3
- package/dist/chunk-BBL6ZPXH.js.map +1 -0
- package/dist/{chunk-54DTXC6V.js → chunk-CR45BOLS.js} +3 -3
- package/dist/{chunk-54DTXC6V.js.map → chunk-CR45BOLS.js.map} +1 -1
- package/dist/{chunk-SE33CFGM.js → chunk-D5JMGN7U.js} +6 -29
- package/dist/chunk-D5JMGN7U.js.map +1 -0
- package/dist/{chunk-Z4F75QEC.js → chunk-FLZ6IHOD.js} +3 -3
- package/dist/{chunk-Z4F75QEC.js.map → chunk-FLZ6IHOD.js.map} +1 -1
- package/dist/chunk-GEHAH4OH.js +241 -0
- package/dist/chunk-GEHAH4OH.js.map +1 -0
- package/dist/{chunk-RMKTJQBB.js → chunk-GLKGX552.js} +3 -3
- package/dist/{chunk-RMKTJQBB.js.map → chunk-GLKGX552.js.map} +1 -1
- package/dist/{chunk-OWJ5HN4T.js → chunk-GN7QIQE6.js} +3 -3
- package/dist/{chunk-OWJ5HN4T.js.map → chunk-GN7QIQE6.js.map} +1 -1
- package/dist/{chunk-AKJHIJ5E.js → chunk-IW3ESGWH.js} +3 -3
- package/dist/{chunk-AKJHIJ5E.js.map → chunk-IW3ESGWH.js.map} +1 -1
- package/dist/{chunk-7FOWIH6F.js → chunk-MQT25QN7.js} +3 -3
- package/dist/{chunk-7FOWIH6F.js.map → chunk-MQT25QN7.js.map} +1 -1
- package/dist/chunk-TVVNTLIH.js +28 -0
- package/dist/chunk-TVVNTLIH.js.map +1 -0
- package/dist/{chunk-M66MGLHE.js → chunk-UE4PVN6Y.js} +3 -3
- package/dist/{chunk-M66MGLHE.js.map → chunk-UE4PVN6Y.js.map} +1 -1
- package/dist/{chunk-RZ2JG5PP.js → chunk-V3OWDXRU.js} +3 -3
- package/dist/{chunk-RZ2JG5PP.js.map → chunk-V3OWDXRU.js.map} +1 -1
- package/dist/cnpj.d.ts +2 -2
- package/dist/cnpj.js +3 -3
- package/dist/cpf.d.ts +2 -2
- package/dist/cpf.js +3 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +23 -20
- package/dist/index.js.map +1 -1
- package/dist/inscricao-estadual.d.ts +2 -2
- package/dist/inscricao-estadual.js +2 -2
- package/dist/pis-pasep.d.ts +2 -2
- package/dist/pis-pasep.js +2 -2
- package/dist/{pix-DP6jnwpN.d.ts → pix-BtTx04Si.d.ts} +1 -1
- package/dist/pix.d.ts +2 -2
- package/dist/pix.js +5 -4
- package/dist/placa.d.ts +2 -2
- package/dist/placa.js +2 -2
- package/dist/telefone.d.ts +29 -0
- package/dist/telefone.js +4 -0
- package/dist/telefone.js.map +1 -0
- package/dist/{validation-result-BK4qJuei.d.ts → validation-result-C-Ei-lZH.d.ts} +35 -2
- package/package.json +14 -5
- package/dist/chunk-DKRM66US.js.map +0 -1
- package/dist/chunk-SE33CFGM.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/inscricao-estadual/constants.ts","../src/core/inscricao-estadual/ie-common.ts","../src/core/inscricao-estadual/modulo-ie.ts","../src/core/inscricao-estadual/ac.ts","../src/core/inscricao-estadual/al.ts","../src/core/inscricao-estadual/am.ts","../src/core/inscricao-estadual/ap.ts","../src/core/inscricao-estadual/ba.ts","../src/core/inscricao-estadual/ce.ts","../src/core/inscricao-estadual/df.ts","../src/core/inscricao-estadual/es.ts","../src/core/inscricao-estadual/go.ts","../src/core/inscricao-estadual/ma.ts","../src/core/inscricao-estadual/mg.ts","../src/core/inscricao-estadual/ms.ts","../src/core/inscricao-estadual/mt.ts","../src/core/inscricao-estadual/mask.ts","../src/core/inscricao-estadual/pa.ts","../src/core/inscricao-estadual/pb.ts","../src/core/inscricao-estadual/pe.ts","../src/core/inscricao-estadual/pi.ts","../src/core/inscricao-estadual/pr.ts","../src/core/inscricao-estadual/rj.ts","../src/core/inscricao-estadual/rn.ts","../src/core/inscricao-estadual/ro.ts","../src/core/inscricao-estadual/rr.ts","../src/core/inscricao-estadual/rs.ts","../src/core/inscricao-estadual/sc.ts","../src/core/inscricao-estadual/se.ts","../src/core/inscricao-estadual/sp.ts","../src/core/inscricao-estadual/to.ts","../src/core/inscricao-estadual/index.ts"],"names":["UF","LENGTH","failure"],"mappings":"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","file":"chunk-Z4F75QEC.js","sourcesContent":["/**\n * Inscrição Estadual — per-UF constants (27 UFs).\n * @see docs/IE-STATE-ALGORITHMS.md\n */\nimport type { UfCode } from '../../types/validation-result.js';\n\nexport type { UfCode };\n\nexport const IE_SUPPORTED_UFS: readonly UfCode[] = [\n 'AC', 'AL', 'AM', 'AP', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MG', 'MS', 'MT',\n 'PA', 'PB', 'PE', 'PI', 'PR', 'RJ', 'RN', 'RO', 'RR', 'RS', 'SC', 'SE', 'SP', 'TO',\n];\n\nexport const IE_OFFICIAL_SOURCE_URLS: Readonly<Record<UfCode, string>> = {\n AC: 'https://sefaz.ac.gov.br/',\n AL: 'https://www.sefaz.al.gov.br/calculo',\n AM: 'https://www.sefaz.am.gov.br/',\n AP: 'https://www.sefaz.ap.gov.br/',\n BA: 'https://www.sefaz.ba.gov.br/inspetoria-eletronica/icms/cadastro/calculo-dv/',\n CE: 'https://www.sefaz.ce.gov.br/',\n DF: 'https://www.receita.fazenda.df.gov.br/',\n ES: 'https://sitenet.es.gov.br/sefaz/',\n GO: 'http://www.sefaz.go.gov.br/ServicosAFA/ece.html',\n MA: 'https://www.sefaz.ma.gov.br/',\n MG: 'https://www.fazenda.mg.gov.br/empresas/Cadastro/cadastro/consultapublica.html',\n MS: 'https://www.sefaz.ms.gov.br/',\n MT: 'https://app1.sefaz.mt.gov.br/Sistema/legislacao/legislacaotribut.nsf/709f9c981a9d9f468425671300482be0/2217ddcf7a9b7cea03258c6c007324ba?OpenDocument=',\n PA: 'https://www.sefa.pa.gov.br/',\n PB: 'https://www.receita.pb.gov.br/',\n PE: 'https://www.sefaz.pe.gov.br/',\n PI: 'https://www.sefaz.pi.gov.br/',\n PR: 'https://www.fazenda.pr.gov.br/Pagina/calculo-digito-verificador',\n RJ: 'https://portal.fazenda.rj.gov.br/cadastro/',\n RN: 'https://www.set.rn.gov.br/',\n RO: 'https://www.sefin.ro.gov.br/',\n RR: 'https://www.sefaz.rr.gov.br/',\n RS: 'https://www.sefaz.rs.gov.br/',\n SC: 'https://sat.sef.sc.gov.br/',\n SE: 'https://www.sefaz.se.gov.br/',\n SP: 'https://portal.fazenda.sp.gov.br/servicos/icms/Paginas/sintegra-rotina-consistencia.aspx',\n TO: 'https://www.sefaz.to.gov.br/',\n};\n\nexport const IE_OFFICIAL_SOURCE_URL = 'docs/IE-STATE-ALGORITHMS.md';\n\nexport const IE_AC_PREFIX = '01';\nexport const IE_AL_PREFIX = '24';\nexport const IE_AM_PREFIX = '04';\nexport const IE_AP_PREFIX = '03';\nexport const IE_DF_PREFIX = '07';\nexport const IE_GO_PREFIXES = ['10', '11', '15', '20'] as const;\nexport const IE_MA_PREFIX = '12';\nexport const IE_MS_PREFIX = '28';\nexport const IE_MT_PREFIX = '13';\nexport const IE_PA_PREFIX = '15';\nexport const IE_RN_PREFIX = '20';\nexport const IE_RR_PREFIX = '24';\nexport const IE_TO_LEGACY_PREFIXES = ['01', '02', '03', '99'] as const;\n\nexport const IE_SP_LENGTH = 12;\nexport const IE_SP_DV1_WEIGHTS = [1, 3, 4, 5, 6, 7, 8, 10] as const;\nexport const IE_SP_DV2_WEIGHTS = [3, 2, 10, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_SP_GOLDEN = '110042490114';\nexport const IE_SP_GOLDEN_MASKED = '110.042.490.114';\nexport const IE_SP_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.SP;\n\nexport const IE_MT_CANONICAL_LENGTH = 9;\nexport const IE_MT_LEGACY_LENGTH = 11;\nexport const IE_MT_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_MT_GOLDEN_LEGACY = '00130000019';\nexport const IE_MT_GOLDEN_CANONICAL = '130000019';\nexport const IE_MT_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.MT;\n\nexport const IE_DF_LENGTH = 13;\nexport const IE_DF_DV1_WEIGHTS = [4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_DV2_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_GOLDEN = '0730000100109';\nexport const IE_DF_GOLDEN_MASKED = '073.00001.001-09';\nexport const IE_DF_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.DF;\n","/**\n * Shared helpers for per-UF IE validators.\n */\nimport type { InscricaoEstadualValidationResult, UfCode } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\n\nexport type IeFailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nexport function stripIeDigits(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function ieFailure(uf: UfCode, code: IeFailedResult['code'], message: string): IeFailedResult {\n return { ok: false, code, message, uf };\n}\n\nexport function ieEmptyInput(uf: UfCode): IeFailedResult {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf };\n}\n\nexport function ieSuccess(stripped: string, uf: UfCode): Extract<InscricaoEstadualValidationResult, { ok: true }> {\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf,\n format: 'inscricao-estadual',\n };\n}\n\nexport function checkTrimmedEmpty(trimmed: string, uf: UfCode): IeFailedResult | null {\n if (trimmed.length === 0) {\n return ieEmptyInput(uf);\n }\n return null;\n}\n\nexport function checkDigitChars(trimmed: string, uf: UfCode, pattern = /^[0-9.\\-\\s/]+$/): IeFailedResult | null {\n if (!pattern.test(trimmed)) {\n return ieFailure(uf, 'INVALID_CHARACTER', `${uf} Inscrição Estadual contains invalid characters`);\n }\n return null;\n}\n","/**\n * Shared modulo helpers for IE check digits.\n */\n\nexport function computeIeSpCheckDigit(digits: string, weights: readonly number[]): number {\n let sum = 0;\n for (let i = 0; i < weights.length; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder === 10 ? 0 : remainder % 10;\n}\n\nexport function computeIeMtCheckDigit(digits10: string): number {\n let sum = 0;\n const weights = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (let i = 0; i < 10; i++) {\n sum += Number(digits10[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\nexport function computeIeDfCheckDigit(\n digits: string,\n weights: readonly number[],\n includeDv1 = false,\n dv1 = 0,\n): number {\n let sum = 0;\n const digitCount = includeDv1 ? 11 : digits.length;\n for (let i = 0; i < digitCount; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n if (includeDv1) {\n sum += dv1 * weights[11];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\n/** CE / SC / SE / PB / PI — weights 9..2 on 8 body digits. */\nexport function computeIeCeCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AL — product×10 mod 11. */\nexport function computeIeAlCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const product = sum * 10;\n let digit = product - Math.floor(product / 11) * 11;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AM — descending weights with special remainder rule. */\nexport function computeIeAmCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n if (sum < 11) {\n return 11 - sum;\n }\n const remainder = sum % 11;\n let digit = 11 - remainder;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PR / AC style — mod11, weights cycle 2..7 from right. */\nexport function computeIePrStyleCheckDigit(body: string): number {\n let weight = body.length - 5;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 7;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AC — weights cycle 9..2 from left. */\nexport function computeIeAcCheckDigit(body: string): number {\n let weight = body.length - 7;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** BA — mod10 or mod11 by reference digit. */\nexport function computeIeBaModule(ie: string): number {\n const refIndex = ie.length === 9 ? 1 : 0;\n const refDigit = Number(ie[refIndex]);\n const mod10Digits = [0, 1, 2, 3, 4, 5, 8];\n return mod10Digits.includes(refDigit) ? 10 : 11;\n}\n\nexport function computeIeBaCheckDigit(body: string, mod: number): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % mod;\n let digit = mod - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PE — dual DV, weights length+1..2. */\nexport function computeIePeCheckDigit(body: string): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RJ / RS / RO — cyclic descending weights. */\nexport function computeIeCyclicMod11CheckDigit(\n body: string,\n startWeight: number,\n resetWeight: number,\n): number {\n let weight = startWeight;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = resetWeight;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RO — cyclic weights 6..9, subtract 10 when digit >= 10. */\nexport function computeIeRoCheckDigit(body: string): number {\n let weight = 6;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit -= 10;\n }\n return digit;\n}\n\n/** GO — mod11 with special range override. */\nexport function computeIeGoCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n const bodyInt = Number(body8);\n if (digit >= 10) {\n if (digit === 11 && bodyInt >= 10103105 && bodyInt <= 10119997) {\n digit = 1;\n } else {\n digit = 0;\n }\n }\n return digit;\n}\n\n/** AP — prefix 03 with range-based p/d constants. */\nexport function computeIeApCheckDigit(body8: string): number {\n const bodyInt = Number(body8);\n let p = 0;\n let d = 0;\n if (bodyInt >= 3000001 && bodyInt <= 3017000) {\n p = 5;\n d = 0;\n } else if (bodyInt >= 3017001 && bodyInt <= 3019022) {\n p = 9;\n d = 1;\n }\n let weight = 9;\n let sum = p;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n let digit = 11 - (sum % 11);\n if (digit === 10) {\n digit = 0;\n } else if (digit === 11) {\n digit = d;\n }\n return digit;\n}\n\n/** RR — mod9, ascending weights 1..8. */\nexport function computeIeRrCheckDigit(body8: string): number {\n let weight = 1;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight++;\n }\n return sum % 9;\n}\n\n/** TO — mod11, rest < 2 → DV 0. */\nexport function computeIeToCheckDigit(body: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n if (rest < 2) {\n return 0;\n }\n return 11 - rest;\n}\n\n/** MG — first DV via digit-sum on alternating products. */\nexport function computeIeMgFirstCheckDigit(body11: string): number {\n const bodyWithZero = `${body11.slice(0, 3)}0${body11.slice(3)}`;\n let weightedSum = '';\n for (let i = 0; i < bodyWithZero.length; i++) {\n const w = (i + 1) % 2 === 0 ? 2 : 1;\n weightedSum += (Number(bodyWithZero[i]) * w).toString();\n }\n let sum = 0;\n for (let i = 0; i < weightedSum.length; i++) {\n sum += Number(weightedSum[i]);\n }\n const lastDigit = Number(sum.toString().slice(-1));\n return lastDigit === 0 ? 0 : 10 - lastDigit;\n}\n\n/** MG — second DV, weights 3..11 cycling. */\nexport function computeIeMgSecondCheckDigit(body12: string): number {\n let weight = 3;\n let sum = 0;\n for (let i = 0; i < body12.length; i++) {\n sum += Number(body12[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 11;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n","/**\n * Acre IE validation — 13 digits, prefix 01, dual mod11 DVs.\n * @see BR-IE-AC-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AC_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAcCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AC' as const;\nconst LENGTH = 13;\n\nexport function stripIeAc(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAc(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAc(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AC Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AC_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AC Inscrição Estadual must start with prefix 01');\n }\n\n const body = stripped.slice(0, 11);\n const firstDig = computeIeAcCheckDigit(body);\n const secondDig = computeIeAcCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AC Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Alagoas IE validation — 9 digits, prefix 24, mod11 (SEFAZ-AL).\n * @see BR-IE-AL-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AL_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAlCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AL' as const;\nconst LENGTH = 9;\n\nexport function stripIeAl(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAl(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAl(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AL Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AL_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AL Inscrição Estadual must start with prefix 24');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeAlCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AL Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Amazonas IE validation — 9 digits, prefix 04.\n * @see BR-IE-AM-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAmCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AM' as const;\nconst LENGTH = 9;\n\nexport function stripIeAm(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAm(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAm(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AM Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeAmCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AM Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Amapá IE validation — 9 digits, prefix 03, range-based constants.\n * @see BR-IE-AP-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AP_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeApCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AP' as const;\nconst LENGTH = 9;\n\nexport function stripIeAp(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAp(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAp(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AP Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AP_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AP Inscrição Estadual must start with prefix 03');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeApCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AP Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Bahia IE validation — 8 or 9 digits, dual DV, mod10/mod11 by reference digit.\n * @see BR-IE-BA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeBaCheckDigit, computeIeBaModule } from './modulo-ie.js';\n\nconst UF = 'BA' as const;\n\nexport function stripIeBa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeBa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeBa(trimmed);\n if (stripped.length !== 8 && stripped.length !== 9) {\n return ieFailure(UF, 'INVALID_LENGTH', 'BA Inscrição Estadual must have 8 or 9 digits after normalization');\n }\n\n const body = stripped.slice(0, stripped.length - 2);\n const mod = computeIeBaModule(stripped);\n const secondDig = computeIeBaCheckDigit(body, mod);\n const firstDig = computeIeBaCheckDigit(body + String(secondDig), mod);\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'BA Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Ceará IE validation — 9 digits, mod11 (weights 9..2).\n * @see BR-IE-CE-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { computeIeCeCheckDigit } from './modulo-ie.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'CE' as const;\nconst LENGTH = 9;\n\nexport function stripIeCe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeCe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeCe(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `CE Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeCeCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'CE Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Distrito Federal IE validation — CF/DF 13 digits, dual modulo-11 DVs.\n * @see BR-IE-DF-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport { IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_DF_LENGTH, IE_DF_PREFIX } from './constants.js';\nimport { computeIeDfCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nconst DF_MASK_PATTERN = /^[0-9.-]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'DF' };\n}\n\nexport function stripIeDf(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateIeDf(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'DF' };\n }\n\n if (!DF_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'DF Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeDf(trimmed);\n if (stripped.length === 12) {\n return failure('INVALID_LENGTH', 'DF Inscrição Estadual legacy 12-digit format is not supported; use 13 digits');\n }\n\n if (stripped.length !== IE_DF_LENGTH) {\n return failure('INVALID_LENGTH', `DF Inscrição Estadual must have ${IE_DF_LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_DF_PREFIX)) {\n return failure('UNSUPPORTED_FORMAT', 'DF Inscrição Estadual must start with prefix 07');\n }\n\n const dv1 = computeIeDfCheckDigit(stripped.slice(0, 11), IE_DF_DV1_WEIGHTS);\n const dv2 = computeIeDfCheckDigit(stripped.slice(0, 11), IE_DF_DV2_WEIGHTS, true, dv1);\n\n if (Number(stripped.charAt(11)) !== dv1 || Number(stripped.charAt(12)) !== dv2) {\n return failure('INVALID_CHECK_DIGIT', 'DF Inscrição Estadual check digits are invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf: 'DF',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * Espírito Santo IE validation — 9 digits, CE mod11 roteiro.\n * @see BR-IE-ES-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'ES' as const;\n\nexport function stripIeEs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeEs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const ceResult = validateIeCe(stripIeEs(trimmed));\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Goiás IE validation — 9 digits, prefixes 10/11/15/20.\n * @see BR-IE-GO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_GO_PREFIXES } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeGoCheckDigit } from './modulo-ie.js';\n\nconst UF = 'GO' as const;\nconst LENGTH = 9;\n\nexport function stripIeGo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeGo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeGo(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `GO Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const prefix = stripped.slice(0, 2);\n if (!(IE_GO_PREFIXES as readonly string[]).includes(prefix)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'GO Inscrição Estadual prefix is not supported');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeGoCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'GO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Maranhão IE validation — prefix 12 + CE mod11.\n * @see BR-IE-MA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_MA_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'MA' as const;\n\nexport function stripIeMa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMa(trimmed);\n if (!stripped.startsWith(IE_MA_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'MA Inscrição Estadual must start with prefix 12');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Minas Gerais IE validation — 13 digits, alternate mod11.\n * @see BR-IE-MG-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit } from './modulo-ie.js';\n\nconst UF = 'MG' as const;\nconst LENGTH = 13;\n\nexport function stripIeMg(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMg(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMg(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `MG Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 11);\n const firstDig = computeIeMgFirstCheckDigit(body);\n const secondDig = computeIeMgSecondCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'MG Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Mato Grosso do Sul IE validation — prefix 28 + CE mod11.\n * @see BR-IE-MS-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_MS_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'MS' as const;\n\nexport function stripIeMs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMs(trimmed);\n if (!stripped.startsWith(IE_MS_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'MS Inscrição Estadual must start with prefix 28');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Mato Grosso IE validation — CCE/MT 9-digit + legacy 11-digit SINTEGRA pad.\n * @see BR-IE-MT-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport {\n IE_MT_CANONICAL_LENGTH,\n IE_MT_LEGACY_LENGTH,\n IE_MT_PREFIX,\n} from './constants.js';\nimport { computeIeMtCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'MT' };\n}\n\nexport function stripIeMt(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function normalizeMtToCanonical(padded11: string): string {\n const trimmed = padded11.replace(/^0+/, '');\n return trimmed.length === IE_MT_CANONICAL_LENGTH ? trimmed : padded11.slice(-IE_MT_CANONICAL_LENGTH);\n}\n\nexport function padMtLegacy(stripped: string): string | null {\n if (stripped.length < IE_MT_CANONICAL_LENGTH || stripped.length > IE_MT_LEGACY_LENGTH) {\n return null;\n }\n return stripped.padStart(IE_MT_LEGACY_LENGTH, '0');\n}\n\nexport function validateIeMt(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'MT' };\n }\n\n if (/[^0-9.\\-\\s]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'MT Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeMt(trimmed);\n if (stripped.length < IE_MT_CANONICAL_LENGTH || stripped.length > IE_MT_LEGACY_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `MT Inscrição Estadual must have ${IE_MT_CANONICAL_LENGTH} or ${IE_MT_LEGACY_LENGTH} digits after normalization`,\n );\n }\n\n const padded =\n stripped.length === IE_MT_LEGACY_LENGTH ? stripped : stripped.padStart(IE_MT_LEGACY_LENGTH, '0');\n const canonical = normalizeMtToCanonical(padded);\n if (!canonical.startsWith(IE_MT_PREFIX)) {\n return failure('UNSUPPORTED_FORMAT', 'MT Inscrição Estadual must start with prefix 13');\n }\n\n const expectedDv = computeIeMtCheckDigit(padded.slice(0, 10));\n if (Number(padded.charAt(10)) !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'MT Inscrição Estadual check digit is invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(canonical),\n uf: 'MT',\n format: 'inscricao-estadual',\n };\n}\n","import { IE_DF_LENGTH, IE_SP_LENGTH } from './constants.js';\n\nexport function applyIeSpMask(stripped: string): string {\n if (stripped.length !== IE_SP_LENGTH) {\n throw new Error('SP IE must have exactly 12 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 6)}.${stripped.slice(6, 9)}.${stripped.slice(9)}`;\n}\n\nexport function applyIeDfMask(stripped: string): string {\n if (stripped.length !== IE_DF_LENGTH) {\n throw new Error('DF IE must have exactly 13 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 8)}.${stripped.slice(8, 11)}-${stripped.slice(11)}`;\n}\n","/**\n * Pará IE validation — prefix 15 + CE mod11.\n * @see BR-IE-PA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_PA_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'PA' as const;\n\nexport function stripIePa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePa(trimmed);\n if (!stripped.startsWith(IE_PA_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'PA Inscrição Estadual must start with prefix 15');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/** Paraíba — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'PB' as const;\n\nexport function stripIePb(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePb(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIePb(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Pernambuco IE validation — 9 digits, dual mod11 DVs.\n * @see BR-IE-PE-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIePeCheckDigit } from './modulo-ie.js';\n\nconst UF = 'PE' as const;\nconst LENGTH = 9;\n\nexport function stripIePe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePe(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `PE Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 7);\n const firstDig = computeIePeCheckDigit(body);\n const secondDig = computeIePeCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'PE Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/** Piauí — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'PI' as const;\n\nexport function stripIePi(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePi(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIePi(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Paraná IE validation — 10 digits, dual mod11 DVs.\n * @see BR-IE-PR-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIePrStyleCheckDigit } from './modulo-ie.js';\n\nconst UF = 'PR' as const;\nconst LENGTH = 10;\n\nexport function stripIePr(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePr(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePr(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `PR Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const firstDig = computeIePrStyleCheckDigit(body);\n const secondDig = computeIePrStyleCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'PR Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio de Janeiro IE validation — 8 digits, cyclic weights 2,7,6,5,4,3,2.\n * @see BR-IE-RJ-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeCyclicMod11CheckDigit } from './modulo-ie.js';\n\nconst UF = 'RJ' as const;\nconst LENGTH = 8;\n\nexport function stripIeRj(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRj(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRj(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RJ Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 7);\n const expected = computeIeCyclicMod11CheckDigit(body, 2, 7);\n if (Number(stripped.charAt(7)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RJ Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio Grande do Norte IE validation — 9 digits, prefix 20, fixed weights 9..2.\n * @see BR-IE-RN-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_RN_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'RN' as const;\nconst LENGTH = 9;\nconst RN_WEIGHTS = [9, 8, 7, 6, 5, 4, 3, 2] as const;\n\nexport function stripIeRn(input: string): string {\n return stripIeDigits(input);\n}\n\nfunction computeRnCheckDigit(body8: string): number {\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * RN_WEIGHTS[i];\n }\n const mod = sum % 11;\n return mod < 2 ? 0 : 11 - mod;\n}\n\nexport function validateIeRn(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRn(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RN Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_RN_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'RN Inscrição Estadual must start with prefix 20');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeRnCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RN Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rondônia IE validation — 14 digits.\n * @see BR-IE-RO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeRoCheckDigit } from './modulo-ie.js';\n\nconst UF = 'RO' as const;\nconst LENGTH = 14;\n\nexport function stripIeRo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRo(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RO Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 13);\n const expected = computeIeRoCheckDigit(body);\n if (Number(stripped.charAt(13)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Roraima IE validation — 9 digits, prefix 24, mod9.\n * @see BR-IE-RR-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_RR_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeRrCheckDigit } from './modulo-ie.js';\n\nconst UF = 'RR' as const;\nconst LENGTH = 9;\n\nexport function stripIeRr(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRr(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRr(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RR Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_RR_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'RR Inscrição Estadual must start with prefix 24');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeRrCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RR Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio Grande do Sul IE validation — 10 digits, cyclic weights 2,9,8,7,6,5,4,3,2.\n * @see BR-IE-RS-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeCyclicMod11CheckDigit } from './modulo-ie.js';\n\nconst UF = 'RS' as const;\nconst LENGTH = 10;\n\nexport function stripIeRs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF, /^[0-9.\\-\\s/]+$/);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRs(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RS Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 9);\n const expected = computeIeCyclicMod11CheckDigit(body, 2, 9);\n if (Number(stripped.charAt(9)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RS Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/** Santa Catarina — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'SC' as const;\n\nexport function stripIeSc(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeSc(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIeSc(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/** Sergipe — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'SE' as const;\n\nexport function stripIeSe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeSe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIeSe(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * São Paulo IE validation — dual modulo-11 DVs (SEFAZ 2012).\n * @see BR-IE-SP-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport { IE_SP_DV1_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_SP_LENGTH } from './constants.js';\nimport { computeIeSpCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nconst SP_MASK_PATTERN = /^[0-9.]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'SP' };\n}\n\nexport function stripIeSp(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateIeSp(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'SP' };\n }\n\n if (/[Pp]/.test(trimmed)) {\n return failure('UNSUPPORTED_FORMAT', 'SP rural IE format (P…) is not supported in v1');\n }\n\n if (!SP_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeSp(trimmed);\n if (stripped.length !== IE_SP_LENGTH) {\n return failure('INVALID_LENGTH', `SP Inscrição Estadual must have ${IE_SP_LENGTH} digits after normalization`);\n }\n\n const dv1 = computeIeSpCheckDigit(stripped, IE_SP_DV1_WEIGHTS);\n const dv2 = computeIeSpCheckDigit(stripped, IE_SP_DV2_WEIGHTS);\n\n if (Number(stripped.charAt(8)) !== dv1 || Number(stripped.charAt(11)) !== dv2) {\n return failure('INVALID_CHECK_DIGIT', 'SP Inscrição Estadual check digits are invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf: 'SP',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * Tocantins IE validation — 9 or 11 digits (legacy pre-2003).\n * @see BR-IE-TO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_TO_LEGACY_PREFIXES } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeToCheckDigit } from './modulo-ie.js';\n\nconst UF = 'TO' as const;\n\nexport function stripIeTo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeTo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeTo(trimmed);\n if (stripped.length !== 9 && stripped.length !== 11) {\n return ieFailure(UF, 'INVALID_LENGTH', 'TO Inscrição Estadual must have 9 or 11 digits after normalization');\n }\n\n let body: string;\n if (stripped.length === 11) {\n const midPrefix = stripped.slice(2, 4);\n if (!(IE_TO_LEGACY_PREFIXES as readonly string[]).includes(midPrefix)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'TO legacy 11-digit IE middle prefix is not supported');\n }\n body = stripped.slice(0, 2) + stripped.slice(4, 10);\n } else {\n body = stripped.slice(0, 8);\n }\n\n const expected = computeIeToCheckDigit(body);\n if (Number(stripped.slice(-1)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'TO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Inscrição Estadual validation — per-UF algorithms (27 UFs).\n * @see docs/use-cases/UC-009-validate-inscricao-estadual.md\n */\nimport type { FormatResult, InscricaoEstadualValidationResult, UfCode } from '../../types/validation-result.js';\nimport { validateIeAc } from './ac.js';\nimport { validateIeAl } from './al.js';\nimport { validateIeAm } from './am.js';\nimport { validateIeAp } from './ap.js';\nimport { validateIeBa } from './ba.js';\nimport { validateIeCe } from './ce.js';\nimport { IE_OFFICIAL_SOURCE_URLS, IE_SUPPORTED_UFS } from './constants.js';\nimport { validateIeDf } from './df.js';\nimport { validateIeEs } from './es.js';\nimport { validateIeGo } from './go.js';\nimport { validateIeMa } from './ma.js';\nimport { validateIeMg } from './mg.js';\nimport { validateIeMs } from './ms.js';\nimport { validateIeMt } from './mt.js';\nimport { applyIeDfMask, applyIeSpMask } from './mask.js';\nimport { validateIePa } from './pa.js';\nimport { validateIePb } from './pb.js';\nimport { validateIePe } from './pe.js';\nimport { validateIePi } from './pi.js';\nimport { validateIePr } from './pr.js';\nimport { validateIeRj } from './rj.js';\nimport { validateIeRn } from './rn.js';\nimport { validateIeRo } from './ro.js';\nimport { validateIeRr } from './rr.js';\nimport { validateIeRs } from './rs.js';\nimport { validateIeSc } from './sc.js';\nimport { validateIeSe } from './se.js';\nimport { validateIeSp } from './sp.js';\nimport { validateIeTo } from './to.js';\n\nexport {\n IE_AC_PREFIX,\n IE_AL_PREFIX,\n IE_AM_PREFIX,\n IE_AP_PREFIX,\n IE_DF_GOLDEN,\n IE_DF_GOLDEN_MASKED,\n IE_DF_LENGTH,\n IE_DF_OFFICIAL_SOURCE_URL,\n IE_DF_PREFIX,\n IE_GO_PREFIXES,\n IE_MA_PREFIX,\n IE_MS_PREFIX,\n IE_MT_CANONICAL_LENGTH,\n IE_MT_GOLDEN_CANONICAL,\n IE_MT_GOLDEN_LEGACY,\n IE_MT_LEGACY_LENGTH,\n IE_MT_OFFICIAL_SOURCE_URL,\n IE_MT_PREFIX,\n IE_OFFICIAL_SOURCE_URL,\n IE_OFFICIAL_SOURCE_URLS,\n IE_PA_PREFIX,\n IE_RN_PREFIX,\n IE_RR_PREFIX,\n IE_SP_GOLDEN,\n IE_SP_GOLDEN_MASKED,\n IE_SP_LENGTH,\n IE_SP_OFFICIAL_SOURCE_URL,\n IE_SUPPORTED_UFS,\n IE_TO_LEGACY_PREFIXES,\n} from './constants.js';\nexport type { UfCode } from './constants.js';\nexport { stripIeAc, validateIeAc } from './ac.js';\nexport { stripIeAl, validateIeAl } from './al.js';\nexport { stripIeAm, validateIeAm } from './am.js';\nexport { stripIeAp, validateIeAp } from './ap.js';\nexport { stripIeBa, validateIeBa } from './ba.js';\nexport { stripIeCe, validateIeCe } from './ce.js';\nexport { stripIeDf, validateIeDf } from './df.js';\nexport { stripIeEs, validateIeEs } from './es.js';\nexport { stripIeGo, validateIeGo } from './go.js';\nexport { stripIeMa, validateIeMa } from './ma.js';\nexport { stripIeMg, validateIeMg } from './mg.js';\nexport { stripIeMs, validateIeMs } from './ms.js';\nexport { normalizeMtToCanonical, padMtLegacy, stripIeMt, validateIeMt } from './mt.js';\nexport { stripIePa, validateIePa } from './pa.js';\nexport { stripIePb, validateIePb } from './pb.js';\nexport { stripIePe, validateIePe } from './pe.js';\nexport { stripIePi, validateIePi } from './pi.js';\nexport { stripIePr, validateIePr } from './pr.js';\nexport { stripIeRj, validateIeRj } from './rj.js';\nexport { stripIeRn, validateIeRn } from './rn.js';\nexport { stripIeRo, validateIeRo } from './ro.js';\nexport { stripIeRr, validateIeRr } from './rr.js';\nexport { stripIeRs, validateIeRs } from './rs.js';\nexport { stripIeSc, validateIeSc } from './sc.js';\nexport { stripIeSe, validateIeSe } from './se.js';\nexport { stripIeSp, validateIeSp } from './sp.js';\nexport { stripIeTo, validateIeTo } from './to.js';\nexport { applyIeDfMask, applyIeSpMask } from './mask.js';\n\nexport type ValidateInscricaoEstadualOptions = {\n uf: UfCode;\n};\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\ntype ValidatorFn = (input: string) => InscricaoEstadualValidationResult;\n\nconst VALIDATORS: Record<UfCode, ValidatorFn> = {\n AC: validateIeAc,\n AL: validateIeAl,\n AM: validateIeAm,\n AP: validateIeAp,\n BA: validateIeBa,\n CE: validateIeCe,\n DF: validateIeDf,\n ES: validateIeEs,\n GO: validateIeGo,\n MA: validateIeMa,\n MG: validateIeMg,\n MS: validateIeMs,\n MT: validateIeMt,\n PA: validateIePa,\n PB: validateIePb,\n PE: validateIePe,\n PI: validateIePi,\n PR: validateIePr,\n RJ: validateIeRj,\n RN: validateIeRn,\n RO: validateIeRo,\n RR: validateIeRr,\n RS: validateIeRs,\n SC: validateIeSc,\n SE: validateIeSe,\n SP: validateIeSp,\n TO: validateIeTo,\n};\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nexport function getIeOfficialSourceUrl(uf: UfCode): string {\n return IE_OFFICIAL_SOURCE_URLS[uf];\n}\n\nfunction isSupportedUf(uf: string | undefined): uf is UfCode {\n return uf !== undefined && (IE_SUPPORTED_UFS as readonly string[]).includes(uf);\n}\n\nexport function stripInscricaoEstadual(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function isValidInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): boolean {\n return validateInscricaoEstadual(input, options).ok;\n}\n\nexport function validateInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): InscricaoEstadualValidationResult {\n if (!isSupportedUf(options.uf)) {\n return failure('UNSUPPORTED_FORMAT', `UF ${String(options.uf)} is not supported`);\n }\n return VALIDATORS[options.uf](input);\n}\n\nexport function formatInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): FormatResult {\n const result = validateInscricaoEstadual(input, options);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n try {\n if (result.uf === 'SP') {\n return { ok: true, formatted: applyIeSpMask(result.value) };\n }\n if (result.uf === 'DF') {\n return { ok: true, formatted: applyIeDfMask(result.value) };\n }\n return { ok: true, formatted: result.value };\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Failed to format Inscrição Estadual';\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/inscricao-estadual/constants.ts","../src/core/inscricao-estadual/ie-common.ts","../src/core/inscricao-estadual/modulo-ie.ts","../src/core/inscricao-estadual/ac.ts","../src/core/inscricao-estadual/al.ts","../src/core/inscricao-estadual/am.ts","../src/core/inscricao-estadual/ap.ts","../src/core/inscricao-estadual/ba.ts","../src/core/inscricao-estadual/ce.ts","../src/core/inscricao-estadual/df.ts","../src/core/inscricao-estadual/es.ts","../src/core/inscricao-estadual/go.ts","../src/core/inscricao-estadual/ma.ts","../src/core/inscricao-estadual/mg.ts","../src/core/inscricao-estadual/ms.ts","../src/core/inscricao-estadual/mt.ts","../src/core/inscricao-estadual/mask.ts","../src/core/inscricao-estadual/pa.ts","../src/core/inscricao-estadual/pb.ts","../src/core/inscricao-estadual/pe.ts","../src/core/inscricao-estadual/pi.ts","../src/core/inscricao-estadual/pr.ts","../src/core/inscricao-estadual/rj.ts","../src/core/inscricao-estadual/rn.ts","../src/core/inscricao-estadual/ro.ts","../src/core/inscricao-estadual/rr.ts","../src/core/inscricao-estadual/rs.ts","../src/core/inscricao-estadual/sc.ts","../src/core/inscricao-estadual/se.ts","../src/core/inscricao-estadual/sp.ts","../src/core/inscricao-estadual/to.ts","../src/core/inscricao-estadual/index.ts"],"names":["UF","LENGTH","failure"],"mappings":"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","file":"chunk-FLZ6IHOD.js","sourcesContent":["/**\n * Inscrição Estadual — per-UF constants (27 UFs).\n * @see docs/IE-STATE-ALGORITHMS.md\n */\nimport type { UfCode } from '../../types/validation-result.js';\n\nexport type { UfCode };\n\nexport const IE_SUPPORTED_UFS: readonly UfCode[] = [\n 'AC', 'AL', 'AM', 'AP', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MG', 'MS', 'MT',\n 'PA', 'PB', 'PE', 'PI', 'PR', 'RJ', 'RN', 'RO', 'RR', 'RS', 'SC', 'SE', 'SP', 'TO',\n];\n\nexport const IE_OFFICIAL_SOURCE_URLS: Readonly<Record<UfCode, string>> = {\n AC: 'https://sefaz.ac.gov.br/',\n AL: 'https://www.sefaz.al.gov.br/calculo',\n AM: 'https://www.sefaz.am.gov.br/',\n AP: 'https://www.sefaz.ap.gov.br/',\n BA: 'https://www.sefaz.ba.gov.br/inspetoria-eletronica/icms/cadastro/calculo-dv/',\n CE: 'https://www.sefaz.ce.gov.br/',\n DF: 'https://www.receita.fazenda.df.gov.br/',\n ES: 'https://sitenet.es.gov.br/sefaz/',\n GO: 'http://www.sefaz.go.gov.br/ServicosAFA/ece.html',\n MA: 'https://www.sefaz.ma.gov.br/',\n MG: 'https://www.fazenda.mg.gov.br/empresas/Cadastro/cadastro/consultapublica.html',\n MS: 'https://www.sefaz.ms.gov.br/',\n MT: 'https://app1.sefaz.mt.gov.br/Sistema/legislacao/legislacaotribut.nsf/709f9c981a9d9f468425671300482be0/2217ddcf7a9b7cea03258c6c007324ba?OpenDocument=',\n PA: 'https://www.sefa.pa.gov.br/',\n PB: 'https://www.receita.pb.gov.br/',\n PE: 'https://www.sefaz.pe.gov.br/',\n PI: 'https://www.sefaz.pi.gov.br/',\n PR: 'https://www.fazenda.pr.gov.br/Pagina/calculo-digito-verificador',\n RJ: 'https://portal.fazenda.rj.gov.br/cadastro/',\n RN: 'https://www.set.rn.gov.br/',\n RO: 'https://www.sefin.ro.gov.br/',\n RR: 'https://www.sefaz.rr.gov.br/',\n RS: 'https://www.sefaz.rs.gov.br/',\n SC: 'https://sat.sef.sc.gov.br/',\n SE: 'https://www.sefaz.se.gov.br/',\n SP: 'https://portal.fazenda.sp.gov.br/servicos/icms/Paginas/sintegra-rotina-consistencia.aspx',\n TO: 'https://www.sefaz.to.gov.br/',\n};\n\nexport const IE_OFFICIAL_SOURCE_URL = 'docs/IE-STATE-ALGORITHMS.md';\n\nexport const IE_AC_PREFIX = '01';\nexport const IE_AL_PREFIX = '24';\nexport const IE_AM_PREFIX = '04';\nexport const IE_AP_PREFIX = '03';\nexport const IE_DF_PREFIX = '07';\nexport const IE_GO_PREFIXES = ['10', '11', '15', '20'] as const;\nexport const IE_MA_PREFIX = '12';\nexport const IE_MS_PREFIX = '28';\nexport const IE_MT_PREFIX = '13';\nexport const IE_PA_PREFIX = '15';\nexport const IE_RN_PREFIX = '20';\nexport const IE_RR_PREFIX = '24';\nexport const IE_TO_LEGACY_PREFIXES = ['01', '02', '03', '99'] as const;\n\nexport const IE_SP_LENGTH = 12;\nexport const IE_SP_DV1_WEIGHTS = [1, 3, 4, 5, 6, 7, 8, 10] as const;\nexport const IE_SP_DV2_WEIGHTS = [3, 2, 10, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_SP_GOLDEN = '110042490114';\nexport const IE_SP_GOLDEN_MASKED = '110.042.490.114';\nexport const IE_SP_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.SP;\n\nexport const IE_MT_CANONICAL_LENGTH = 9;\nexport const IE_MT_LEGACY_LENGTH = 11;\nexport const IE_MT_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_MT_GOLDEN_LEGACY = '00130000019';\nexport const IE_MT_GOLDEN_CANONICAL = '130000019';\nexport const IE_MT_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.MT;\n\nexport const IE_DF_LENGTH = 13;\nexport const IE_DF_DV1_WEIGHTS = [4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_DV2_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_GOLDEN = '0730000100109';\nexport const IE_DF_GOLDEN_MASKED = '073.00001.001-09';\nexport const IE_DF_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.DF;\n","/**\n * Shared helpers for per-UF IE validators.\n */\nimport type { InscricaoEstadualValidationResult, UfCode } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\n\nexport type IeFailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nexport function stripIeDigits(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function ieFailure(uf: UfCode, code: IeFailedResult['code'], message: string): IeFailedResult {\n return { ok: false, code, message, uf };\n}\n\nexport function ieEmptyInput(uf: UfCode): IeFailedResult {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf };\n}\n\nexport function ieSuccess(stripped: string, uf: UfCode): Extract<InscricaoEstadualValidationResult, { ok: true }> {\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf,\n format: 'inscricao-estadual',\n };\n}\n\nexport function checkTrimmedEmpty(trimmed: string, uf: UfCode): IeFailedResult | null {\n if (trimmed.length === 0) {\n return ieEmptyInput(uf);\n }\n return null;\n}\n\nexport function checkDigitChars(trimmed: string, uf: UfCode, pattern = /^[0-9.\\-\\s/]+$/): IeFailedResult | null {\n if (!pattern.test(trimmed)) {\n return ieFailure(uf, 'INVALID_CHARACTER', `${uf} Inscrição Estadual contains invalid characters`);\n }\n return null;\n}\n","/**\n * Shared modulo helpers for IE check digits.\n */\n\nexport function computeIeSpCheckDigit(digits: string, weights: readonly number[]): number {\n let sum = 0;\n for (let i = 0; i < weights.length; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder === 10 ? 0 : remainder % 10;\n}\n\nexport function computeIeMtCheckDigit(digits10: string): number {\n let sum = 0;\n const weights = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (let i = 0; i < 10; i++) {\n sum += Number(digits10[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\nexport function computeIeDfCheckDigit(\n digits: string,\n weights: readonly number[],\n includeDv1 = false,\n dv1 = 0,\n): number {\n let sum = 0;\n const digitCount = includeDv1 ? 11 : digits.length;\n for (let i = 0; i < digitCount; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n if (includeDv1) {\n sum += dv1 * weights[11];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\n/** CE / SC / SE / PB / PI — weights 9..2 on 8 body digits. */\nexport function computeIeCeCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AL — product×10 mod 11. */\nexport function computeIeAlCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const product = sum * 10;\n let digit = product - Math.floor(product / 11) * 11;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AM — descending weights with special remainder rule. */\nexport function computeIeAmCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n if (sum < 11) {\n return 11 - sum;\n }\n const remainder = sum % 11;\n let digit = 11 - remainder;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PR / AC style — mod11, weights cycle 2..7 from right. */\nexport function computeIePrStyleCheckDigit(body: string): number {\n let weight = body.length - 5;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 7;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AC — weights cycle 9..2 from left. */\nexport function computeIeAcCheckDigit(body: string): number {\n let weight = body.length - 7;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** BA — mod10 or mod11 by reference digit. */\nexport function computeIeBaModule(ie: string): number {\n const refIndex = ie.length === 9 ? 1 : 0;\n const refDigit = Number(ie[refIndex]);\n const mod10Digits = [0, 1, 2, 3, 4, 5, 8];\n return mod10Digits.includes(refDigit) ? 10 : 11;\n}\n\nexport function computeIeBaCheckDigit(body: string, mod: number): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % mod;\n let digit = mod - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PE — dual DV, weights length+1..2. */\nexport function computeIePeCheckDigit(body: string): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RJ / RS / RO — cyclic descending weights. */\nexport function computeIeCyclicMod11CheckDigit(\n body: string,\n startWeight: number,\n resetWeight: number,\n): number {\n let weight = startWeight;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = resetWeight;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RO — cyclic weights 6..9, subtract 10 when digit >= 10. */\nexport function computeIeRoCheckDigit(body: string): number {\n let weight = 6;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit -= 10;\n }\n return digit;\n}\n\n/** GO — mod11 with special range override. */\nexport function computeIeGoCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n const bodyInt = Number(body8);\n if (digit >= 10) {\n if (digit === 11 && bodyInt >= 10103105 && bodyInt <= 10119997) {\n digit = 1;\n } else {\n digit = 0;\n }\n }\n return digit;\n}\n\n/** AP — prefix 03 with range-based p/d constants. */\nexport function computeIeApCheckDigit(body8: string): number {\n const bodyInt = Number(body8);\n let p = 0;\n let d = 0;\n if (bodyInt >= 3000001 && bodyInt <= 3017000) {\n p = 5;\n d = 0;\n } else if (bodyInt >= 3017001 && bodyInt <= 3019022) {\n p = 9;\n d = 1;\n }\n let weight = 9;\n let sum = p;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n let digit = 11 - (sum % 11);\n if (digit === 10) {\n digit = 0;\n } else if (digit === 11) {\n digit = d;\n }\n return digit;\n}\n\n/** RR — mod9, ascending weights 1..8. */\nexport function computeIeRrCheckDigit(body8: string): number {\n let weight = 1;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight++;\n }\n return sum % 9;\n}\n\n/** TO — mod11, rest < 2 → DV 0. */\nexport function computeIeToCheckDigit(body: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n if (rest < 2) {\n return 0;\n }\n return 11 - rest;\n}\n\n/** MG — first DV via digit-sum on alternating products. */\nexport function computeIeMgFirstCheckDigit(body11: string): number {\n const bodyWithZero = `${body11.slice(0, 3)}0${body11.slice(3)}`;\n let weightedSum = '';\n for (let i = 0; i < bodyWithZero.length; i++) {\n const w = (i + 1) % 2 === 0 ? 2 : 1;\n weightedSum += (Number(bodyWithZero[i]) * w).toString();\n }\n let sum = 0;\n for (let i = 0; i < weightedSum.length; i++) {\n sum += Number(weightedSum[i]);\n }\n const lastDigit = Number(sum.toString().slice(-1));\n return lastDigit === 0 ? 0 : 10 - lastDigit;\n}\n\n/** MG — second DV, weights 3..11 cycling. */\nexport function computeIeMgSecondCheckDigit(body12: string): number {\n let weight = 3;\n let sum = 0;\n for (let i = 0; i < body12.length; i++) {\n sum += Number(body12[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 11;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n","/**\n * Acre IE validation — 13 digits, prefix 01, dual mod11 DVs.\n * @see BR-IE-AC-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AC_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAcCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AC' as const;\nconst LENGTH = 13;\n\nexport function stripIeAc(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAc(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAc(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AC Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AC_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AC Inscrição Estadual must start with prefix 01');\n }\n\n const body = stripped.slice(0, 11);\n const firstDig = computeIeAcCheckDigit(body);\n const secondDig = computeIeAcCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AC Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Alagoas IE validation — 9 digits, prefix 24, mod11 (SEFAZ-AL).\n * @see BR-IE-AL-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AL_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAlCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AL' as const;\nconst LENGTH = 9;\n\nexport function stripIeAl(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAl(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAl(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AL Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AL_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AL Inscrição Estadual must start with prefix 24');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeAlCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AL Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Amazonas IE validation — 9 digits, prefix 04.\n * @see BR-IE-AM-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAmCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AM' as const;\nconst LENGTH = 9;\n\nexport function stripIeAm(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAm(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAm(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AM Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeAmCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AM Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Amapá IE validation — 9 digits, prefix 03, range-based constants.\n * @see BR-IE-AP-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AP_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeApCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AP' as const;\nconst LENGTH = 9;\n\nexport function stripIeAp(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAp(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAp(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AP Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AP_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AP Inscrição Estadual must start with prefix 03');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeApCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AP Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Bahia IE validation — 8 or 9 digits, dual DV, mod10/mod11 by reference digit.\n * @see BR-IE-BA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeBaCheckDigit, computeIeBaModule } from './modulo-ie.js';\n\nconst UF = 'BA' as const;\n\nexport function stripIeBa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeBa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeBa(trimmed);\n if (stripped.length !== 8 && stripped.length !== 9) {\n return ieFailure(UF, 'INVALID_LENGTH', 'BA Inscrição Estadual must have 8 or 9 digits after normalization');\n }\n\n const body = stripped.slice(0, stripped.length - 2);\n const mod = computeIeBaModule(stripped);\n const secondDig = computeIeBaCheckDigit(body, mod);\n const firstDig = computeIeBaCheckDigit(body + String(secondDig), mod);\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'BA Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Ceará IE validation — 9 digits, mod11 (weights 9..2).\n * @see BR-IE-CE-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { computeIeCeCheckDigit } from './modulo-ie.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'CE' as const;\nconst LENGTH = 9;\n\nexport function stripIeCe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeCe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeCe(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `CE Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeCeCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'CE Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Distrito Federal IE validation — CF/DF 13 digits, dual modulo-11 DVs.\n * @see BR-IE-DF-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport { IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_DF_LENGTH, IE_DF_PREFIX } from './constants.js';\nimport { computeIeDfCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nconst DF_MASK_PATTERN = /^[0-9.-]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'DF' };\n}\n\nexport function stripIeDf(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateIeDf(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'DF' };\n }\n\n if (!DF_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'DF Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeDf(trimmed);\n if (stripped.length === 12) {\n return failure('INVALID_LENGTH', 'DF Inscrição Estadual legacy 12-digit format is not supported; use 13 digits');\n }\n\n if (stripped.length !== IE_DF_LENGTH) {\n return failure('INVALID_LENGTH', `DF Inscrição Estadual must have ${IE_DF_LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_DF_PREFIX)) {\n return failure('UNSUPPORTED_FORMAT', 'DF Inscrição Estadual must start with prefix 07');\n }\n\n const dv1 = computeIeDfCheckDigit(stripped.slice(0, 11), IE_DF_DV1_WEIGHTS);\n const dv2 = computeIeDfCheckDigit(stripped.slice(0, 11), IE_DF_DV2_WEIGHTS, true, dv1);\n\n if (Number(stripped.charAt(11)) !== dv1 || Number(stripped.charAt(12)) !== dv2) {\n return failure('INVALID_CHECK_DIGIT', 'DF Inscrição Estadual check digits are invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf: 'DF',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * Espírito Santo IE validation — 9 digits, CE mod11 roteiro.\n * @see BR-IE-ES-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'ES' as const;\n\nexport function stripIeEs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeEs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const ceResult = validateIeCe(stripIeEs(trimmed));\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Goiás IE validation — 9 digits, prefixes 10/11/15/20.\n * @see BR-IE-GO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_GO_PREFIXES } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeGoCheckDigit } from './modulo-ie.js';\n\nconst UF = 'GO' as const;\nconst LENGTH = 9;\n\nexport function stripIeGo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeGo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeGo(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `GO Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const prefix = stripped.slice(0, 2);\n if (!(IE_GO_PREFIXES as readonly string[]).includes(prefix)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'GO Inscrição Estadual prefix is not supported');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeGoCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'GO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Maranhão IE validation — prefix 12 + CE mod11.\n * @see BR-IE-MA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_MA_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'MA' as const;\n\nexport function stripIeMa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMa(trimmed);\n if (!stripped.startsWith(IE_MA_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'MA Inscrição Estadual must start with prefix 12');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Minas Gerais IE validation — 13 digits, alternate mod11.\n * @see BR-IE-MG-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit } from './modulo-ie.js';\n\nconst UF = 'MG' as const;\nconst LENGTH = 13;\n\nexport function stripIeMg(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMg(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMg(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `MG Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 11);\n const firstDig = computeIeMgFirstCheckDigit(body);\n const secondDig = computeIeMgSecondCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'MG Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Mato Grosso do Sul IE validation — prefix 28 + CE mod11.\n * @see BR-IE-MS-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_MS_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'MS' as const;\n\nexport function stripIeMs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMs(trimmed);\n if (!stripped.startsWith(IE_MS_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'MS Inscrição Estadual must start with prefix 28');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Mato Grosso IE validation — CCE/MT 9-digit + legacy 11-digit SINTEGRA pad.\n * @see BR-IE-MT-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport {\n IE_MT_CANONICAL_LENGTH,\n IE_MT_LEGACY_LENGTH,\n IE_MT_PREFIX,\n} from './constants.js';\nimport { computeIeMtCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'MT' };\n}\n\nexport function stripIeMt(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function normalizeMtToCanonical(padded11: string): string {\n const trimmed = padded11.replace(/^0+/, '');\n return trimmed.length === IE_MT_CANONICAL_LENGTH ? trimmed : padded11.slice(-IE_MT_CANONICAL_LENGTH);\n}\n\nexport function padMtLegacy(stripped: string): string | null {\n if (stripped.length < IE_MT_CANONICAL_LENGTH || stripped.length > IE_MT_LEGACY_LENGTH) {\n return null;\n }\n return stripped.padStart(IE_MT_LEGACY_LENGTH, '0');\n}\n\nexport function validateIeMt(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'MT' };\n }\n\n if (/[^0-9.\\-\\s]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'MT Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeMt(trimmed);\n if (stripped.length < IE_MT_CANONICAL_LENGTH || stripped.length > IE_MT_LEGACY_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `MT Inscrição Estadual must have ${IE_MT_CANONICAL_LENGTH} or ${IE_MT_LEGACY_LENGTH} digits after normalization`,\n );\n }\n\n const padded =\n stripped.length === IE_MT_LEGACY_LENGTH ? stripped : stripped.padStart(IE_MT_LEGACY_LENGTH, '0');\n const canonical = normalizeMtToCanonical(padded);\n if (!canonical.startsWith(IE_MT_PREFIX)) {\n return failure('UNSUPPORTED_FORMAT', 'MT Inscrição Estadual must start with prefix 13');\n }\n\n const expectedDv = computeIeMtCheckDigit(padded.slice(0, 10));\n if (Number(padded.charAt(10)) !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'MT Inscrição Estadual check digit is invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(canonical),\n uf: 'MT',\n format: 'inscricao-estadual',\n };\n}\n","import { IE_DF_LENGTH, IE_SP_LENGTH } from './constants.js';\n\nexport function applyIeSpMask(stripped: string): string {\n if (stripped.length !== IE_SP_LENGTH) {\n throw new Error('SP IE must have exactly 12 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 6)}.${stripped.slice(6, 9)}.${stripped.slice(9)}`;\n}\n\nexport function applyIeDfMask(stripped: string): string {\n if (stripped.length !== IE_DF_LENGTH) {\n throw new Error('DF IE must have exactly 13 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 8)}.${stripped.slice(8, 11)}-${stripped.slice(11)}`;\n}\n","/**\n * Pará IE validation — prefix 15 + CE mod11.\n * @see BR-IE-PA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_PA_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'PA' as const;\n\nexport function stripIePa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePa(trimmed);\n if (!stripped.startsWith(IE_PA_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'PA Inscrição Estadual must start with prefix 15');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/** Paraíba — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'PB' as const;\n\nexport function stripIePb(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePb(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIePb(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Pernambuco IE validation — 9 digits, dual mod11 DVs.\n * @see BR-IE-PE-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIePeCheckDigit } from './modulo-ie.js';\n\nconst UF = 'PE' as const;\nconst LENGTH = 9;\n\nexport function stripIePe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePe(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `PE Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 7);\n const firstDig = computeIePeCheckDigit(body);\n const secondDig = computeIePeCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'PE Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/** Piauí — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'PI' as const;\n\nexport function stripIePi(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePi(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIePi(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Paraná IE validation — 10 digits, dual mod11 DVs.\n * @see BR-IE-PR-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIePrStyleCheckDigit } from './modulo-ie.js';\n\nconst UF = 'PR' as const;\nconst LENGTH = 10;\n\nexport function stripIePr(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePr(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePr(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `PR Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const firstDig = computeIePrStyleCheckDigit(body);\n const secondDig = computeIePrStyleCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'PR Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio de Janeiro IE validation — 8 digits, cyclic weights 2,7,6,5,4,3,2.\n * @see BR-IE-RJ-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeCyclicMod11CheckDigit } from './modulo-ie.js';\n\nconst UF = 'RJ' as const;\nconst LENGTH = 8;\n\nexport function stripIeRj(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRj(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRj(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RJ Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 7);\n const expected = computeIeCyclicMod11CheckDigit(body, 2, 7);\n if (Number(stripped.charAt(7)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RJ Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio Grande do Norte IE validation — 9 digits, prefix 20, fixed weights 9..2.\n * @see BR-IE-RN-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_RN_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'RN' as const;\nconst LENGTH = 9;\nconst RN_WEIGHTS = [9, 8, 7, 6, 5, 4, 3, 2] as const;\n\nexport function stripIeRn(input: string): string {\n return stripIeDigits(input);\n}\n\nfunction computeRnCheckDigit(body8: string): number {\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * RN_WEIGHTS[i];\n }\n const mod = sum % 11;\n return mod < 2 ? 0 : 11 - mod;\n}\n\nexport function validateIeRn(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRn(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RN Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_RN_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'RN Inscrição Estadual must start with prefix 20');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeRnCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RN Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rondônia IE validation — 14 digits.\n * @see BR-IE-RO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeRoCheckDigit } from './modulo-ie.js';\n\nconst UF = 'RO' as const;\nconst LENGTH = 14;\n\nexport function stripIeRo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRo(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RO Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 13);\n const expected = computeIeRoCheckDigit(body);\n if (Number(stripped.charAt(13)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Roraima IE validation — 9 digits, prefix 24, mod9.\n * @see BR-IE-RR-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_RR_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeRrCheckDigit } from './modulo-ie.js';\n\nconst UF = 'RR' as const;\nconst LENGTH = 9;\n\nexport function stripIeRr(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRr(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRr(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RR Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_RR_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'RR Inscrição Estadual must start with prefix 24');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeRrCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RR Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio Grande do Sul IE validation — 10 digits, cyclic weights 2,9,8,7,6,5,4,3,2.\n * @see BR-IE-RS-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeCyclicMod11CheckDigit } from './modulo-ie.js';\n\nconst UF = 'RS' as const;\nconst LENGTH = 10;\n\nexport function stripIeRs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF, /^[0-9.\\-\\s/]+$/);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRs(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RS Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 9);\n const expected = computeIeCyclicMod11CheckDigit(body, 2, 9);\n if (Number(stripped.charAt(9)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RS Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/** Santa Catarina — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'SC' as const;\n\nexport function stripIeSc(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeSc(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIeSc(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/** Sergipe — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'SE' as const;\n\nexport function stripIeSe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeSe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIeSe(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * São Paulo IE validation — dual modulo-11 DVs (SEFAZ 2012).\n * @see BR-IE-SP-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport { IE_SP_DV1_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_SP_LENGTH } from './constants.js';\nimport { computeIeSpCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nconst SP_MASK_PATTERN = /^[0-9.]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'SP' };\n}\n\nexport function stripIeSp(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateIeSp(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'SP' };\n }\n\n if (/[Pp]/.test(trimmed)) {\n return failure('UNSUPPORTED_FORMAT', 'SP rural IE format (P…) is not supported in v1');\n }\n\n if (!SP_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeSp(trimmed);\n if (stripped.length !== IE_SP_LENGTH) {\n return failure('INVALID_LENGTH', `SP Inscrição Estadual must have ${IE_SP_LENGTH} digits after normalization`);\n }\n\n const dv1 = computeIeSpCheckDigit(stripped, IE_SP_DV1_WEIGHTS);\n const dv2 = computeIeSpCheckDigit(stripped, IE_SP_DV2_WEIGHTS);\n\n if (Number(stripped.charAt(8)) !== dv1 || Number(stripped.charAt(11)) !== dv2) {\n return failure('INVALID_CHECK_DIGIT', 'SP Inscrição Estadual check digits are invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf: 'SP',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * Tocantins IE validation — 9 or 11 digits (legacy pre-2003).\n * @see BR-IE-TO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_TO_LEGACY_PREFIXES } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeToCheckDigit } from './modulo-ie.js';\n\nconst UF = 'TO' as const;\n\nexport function stripIeTo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeTo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeTo(trimmed);\n if (stripped.length !== 9 && stripped.length !== 11) {\n return ieFailure(UF, 'INVALID_LENGTH', 'TO Inscrição Estadual must have 9 or 11 digits after normalization');\n }\n\n let body: string;\n if (stripped.length === 11) {\n const midPrefix = stripped.slice(2, 4);\n if (!(IE_TO_LEGACY_PREFIXES as readonly string[]).includes(midPrefix)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'TO legacy 11-digit IE middle prefix is not supported');\n }\n body = stripped.slice(0, 2) + stripped.slice(4, 10);\n } else {\n body = stripped.slice(0, 8);\n }\n\n const expected = computeIeToCheckDigit(body);\n if (Number(stripped.slice(-1)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'TO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Inscrição Estadual validation — per-UF algorithms (27 UFs).\n * @see docs/use-cases/UC-009-validate-inscricao-estadual.md\n */\nimport type { FormatResult, InscricaoEstadualValidationResult, UfCode } from '../../types/validation-result.js';\nimport { validateIeAc } from './ac.js';\nimport { validateIeAl } from './al.js';\nimport { validateIeAm } from './am.js';\nimport { validateIeAp } from './ap.js';\nimport { validateIeBa } from './ba.js';\nimport { validateIeCe } from './ce.js';\nimport { IE_OFFICIAL_SOURCE_URLS, IE_SUPPORTED_UFS } from './constants.js';\nimport { validateIeDf } from './df.js';\nimport { validateIeEs } from './es.js';\nimport { validateIeGo } from './go.js';\nimport { validateIeMa } from './ma.js';\nimport { validateIeMg } from './mg.js';\nimport { validateIeMs } from './ms.js';\nimport { validateIeMt } from './mt.js';\nimport { applyIeDfMask, applyIeSpMask } from './mask.js';\nimport { validateIePa } from './pa.js';\nimport { validateIePb } from './pb.js';\nimport { validateIePe } from './pe.js';\nimport { validateIePi } from './pi.js';\nimport { validateIePr } from './pr.js';\nimport { validateIeRj } from './rj.js';\nimport { validateIeRn } from './rn.js';\nimport { validateIeRo } from './ro.js';\nimport { validateIeRr } from './rr.js';\nimport { validateIeRs } from './rs.js';\nimport { validateIeSc } from './sc.js';\nimport { validateIeSe } from './se.js';\nimport { validateIeSp } from './sp.js';\nimport { validateIeTo } from './to.js';\n\nexport {\n IE_AC_PREFIX,\n IE_AL_PREFIX,\n IE_AM_PREFIX,\n IE_AP_PREFIX,\n IE_DF_GOLDEN,\n IE_DF_GOLDEN_MASKED,\n IE_DF_LENGTH,\n IE_DF_OFFICIAL_SOURCE_URL,\n IE_DF_PREFIX,\n IE_GO_PREFIXES,\n IE_MA_PREFIX,\n IE_MS_PREFIX,\n IE_MT_CANONICAL_LENGTH,\n IE_MT_GOLDEN_CANONICAL,\n IE_MT_GOLDEN_LEGACY,\n IE_MT_LEGACY_LENGTH,\n IE_MT_OFFICIAL_SOURCE_URL,\n IE_MT_PREFIX,\n IE_OFFICIAL_SOURCE_URL,\n IE_OFFICIAL_SOURCE_URLS,\n IE_PA_PREFIX,\n IE_RN_PREFIX,\n IE_RR_PREFIX,\n IE_SP_GOLDEN,\n IE_SP_GOLDEN_MASKED,\n IE_SP_LENGTH,\n IE_SP_OFFICIAL_SOURCE_URL,\n IE_SUPPORTED_UFS,\n IE_TO_LEGACY_PREFIXES,\n} from './constants.js';\nexport type { UfCode } from './constants.js';\nexport { stripIeAc, validateIeAc } from './ac.js';\nexport { stripIeAl, validateIeAl } from './al.js';\nexport { stripIeAm, validateIeAm } from './am.js';\nexport { stripIeAp, validateIeAp } from './ap.js';\nexport { stripIeBa, validateIeBa } from './ba.js';\nexport { stripIeCe, validateIeCe } from './ce.js';\nexport { stripIeDf, validateIeDf } from './df.js';\nexport { stripIeEs, validateIeEs } from './es.js';\nexport { stripIeGo, validateIeGo } from './go.js';\nexport { stripIeMa, validateIeMa } from './ma.js';\nexport { stripIeMg, validateIeMg } from './mg.js';\nexport { stripIeMs, validateIeMs } from './ms.js';\nexport { normalizeMtToCanonical, padMtLegacy, stripIeMt, validateIeMt } from './mt.js';\nexport { stripIePa, validateIePa } from './pa.js';\nexport { stripIePb, validateIePb } from './pb.js';\nexport { stripIePe, validateIePe } from './pe.js';\nexport { stripIePi, validateIePi } from './pi.js';\nexport { stripIePr, validateIePr } from './pr.js';\nexport { stripIeRj, validateIeRj } from './rj.js';\nexport { stripIeRn, validateIeRn } from './rn.js';\nexport { stripIeRo, validateIeRo } from './ro.js';\nexport { stripIeRr, validateIeRr } from './rr.js';\nexport { stripIeRs, validateIeRs } from './rs.js';\nexport { stripIeSc, validateIeSc } from './sc.js';\nexport { stripIeSe, validateIeSe } from './se.js';\nexport { stripIeSp, validateIeSp } from './sp.js';\nexport { stripIeTo, validateIeTo } from './to.js';\nexport { applyIeDfMask, applyIeSpMask } from './mask.js';\n\nexport type ValidateInscricaoEstadualOptions = {\n uf: UfCode;\n};\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\ntype ValidatorFn = (input: string) => InscricaoEstadualValidationResult;\n\nconst VALIDATORS: Record<UfCode, ValidatorFn> = {\n AC: validateIeAc,\n AL: validateIeAl,\n AM: validateIeAm,\n AP: validateIeAp,\n BA: validateIeBa,\n CE: validateIeCe,\n DF: validateIeDf,\n ES: validateIeEs,\n GO: validateIeGo,\n MA: validateIeMa,\n MG: validateIeMg,\n MS: validateIeMs,\n MT: validateIeMt,\n PA: validateIePa,\n PB: validateIePb,\n PE: validateIePe,\n PI: validateIePi,\n PR: validateIePr,\n RJ: validateIeRj,\n RN: validateIeRn,\n RO: validateIeRo,\n RR: validateIeRr,\n RS: validateIeRs,\n SC: validateIeSc,\n SE: validateIeSe,\n SP: validateIeSp,\n TO: validateIeTo,\n};\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nexport function getIeOfficialSourceUrl(uf: UfCode): string {\n return IE_OFFICIAL_SOURCE_URLS[uf];\n}\n\nfunction isSupportedUf(uf: string | undefined): uf is UfCode {\n return uf !== undefined && (IE_SUPPORTED_UFS as readonly string[]).includes(uf);\n}\n\nexport function stripInscricaoEstadual(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function isValidInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): boolean {\n return validateInscricaoEstadual(input, options).ok;\n}\n\nexport function validateInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): InscricaoEstadualValidationResult {\n if (!isSupportedUf(options.uf)) {\n return failure('UNSUPPORTED_FORMAT', `UF ${String(options.uf)} is not supported`);\n }\n return VALIDATORS[options.uf](input);\n}\n\nexport function formatInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): FormatResult {\n const result = validateInscricaoEstadual(input, options);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n try {\n if (result.uf === 'SP') {\n return { ok: true, formatted: applyIeSpMask(result.value) };\n }\n if (result.uf === 'DF') {\n return { ok: true, formatted: applyIeDfMask(result.value) };\n }\n return { ok: true, formatted: result.value };\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Failed to format Inscrição Estadual';\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message };\n }\n}\n"]}
|