@br-validators/core 0.11.0-alpha.0 → 0.12.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.
Files changed (174) hide show
  1. package/README.md +3 -0
  2. package/dist/boleto.d.ts +2 -2
  3. package/dist/boleto.js +3 -2
  4. package/dist/brcode.d.ts +2 -2
  5. package/dist/brcode.js +9 -6
  6. package/dist/cartao-credito.d.ts +2 -2
  7. package/dist/cartao-credito.js +4 -2
  8. package/dist/cep.d.ts +2 -2
  9. package/dist/cep.js +6 -3
  10. package/dist/chunk-2CNYSY3Z.js +3 -0
  11. package/dist/chunk-2CNYSY3Z.js.map +1 -0
  12. package/dist/{chunk-GLKGX552.js → chunk-2JJS46FM.js} +5 -23
  13. package/dist/chunk-2JJS46FM.js.map +1 -0
  14. package/dist/{chunk-FLZ6IHOD.js → chunk-3QP6R46N.js} +119 -496
  15. package/dist/chunk-3QP6R46N.js.map +1 -0
  16. package/dist/chunk-4SNBZFS5.js +8 -0
  17. package/dist/chunk-4SNBZFS5.js.map +1 -0
  18. package/dist/{chunk-IW3ESGWH.js → chunk-4W4OKLSZ.js} +4 -25
  19. package/dist/chunk-4W4OKLSZ.js.map +1 -0
  20. package/dist/chunk-4Y2FBO57.js +26 -0
  21. package/dist/chunk-4Y2FBO57.js.map +1 -0
  22. package/dist/{chunk-465IC76U.js → chunk-5UL3M7IU.js} +4 -23
  23. package/dist/chunk-5UL3M7IU.js.map +1 -0
  24. package/dist/chunk-6QJFMOIX.js +22 -0
  25. package/dist/chunk-6QJFMOIX.js.map +1 -0
  26. package/dist/chunk-7ZL7PZII.js +187 -0
  27. package/dist/chunk-7ZL7PZII.js.map +1 -0
  28. package/dist/chunk-BFZPCEYB.js +14 -0
  29. package/dist/chunk-BFZPCEYB.js.map +1 -0
  30. package/dist/chunk-CDGRHI7W.js +22 -0
  31. package/dist/chunk-CDGRHI7W.js.map +1 -0
  32. package/dist/chunk-CQPM43VV.js +3 -0
  33. package/dist/chunk-CQPM43VV.js.map +1 -0
  34. package/dist/chunk-D36RM7OD.js +207 -0
  35. package/dist/chunk-D36RM7OD.js.map +1 -0
  36. package/dist/{chunk-CR45BOLS.js → chunk-EPKHEW5V.js} +4 -13
  37. package/dist/chunk-EPKHEW5V.js.map +1 -0
  38. package/dist/{chunk-5BBNLRZP.js → chunk-F6PTZY4O.js} +5 -14
  39. package/dist/chunk-F6PTZY4O.js.map +1 -0
  40. package/dist/chunk-FXLVNCG3.js +26 -0
  41. package/dist/chunk-FXLVNCG3.js.map +1 -0
  42. package/dist/chunk-G24G7WR5.js +3 -0
  43. package/dist/chunk-G24G7WR5.js.map +1 -0
  44. package/dist/chunk-G2Y63PIF.js +24 -0
  45. package/dist/chunk-G2Y63PIF.js.map +1 -0
  46. package/dist/chunk-G32U6YQ5.js +14 -0
  47. package/dist/chunk-G32U6YQ5.js.map +1 -0
  48. package/dist/{chunk-TVVNTLIH.js → chunk-GRDUTHNX.js} +3 -3
  49. package/dist/{chunk-TVVNTLIH.js.map → chunk-GRDUTHNX.js.map} +1 -1
  50. package/dist/chunk-GVK6IMBF.js +3 -0
  51. package/dist/chunk-GVK6IMBF.js.map +1 -0
  52. package/dist/chunk-IQGRFAQV.js +23 -0
  53. package/dist/chunk-IQGRFAQV.js.map +1 -0
  54. package/dist/chunk-JQABTHUJ.js +3 -0
  55. package/dist/chunk-JQABTHUJ.js.map +1 -0
  56. package/dist/{chunk-GN7QIQE6.js → chunk-KH7DWOUA.js} +5 -23
  57. package/dist/chunk-KH7DWOUA.js.map +1 -0
  58. package/dist/chunk-KQDLIGSG.js +14 -0
  59. package/dist/chunk-KQDLIGSG.js.map +1 -0
  60. package/dist/chunk-LF2B4VPE.js +3 -0
  61. package/dist/chunk-LF2B4VPE.js.map +1 -0
  62. package/dist/chunk-LGD2JJBZ.js +288 -0
  63. package/dist/chunk-LGD2JJBZ.js.map +1 -0
  64. package/dist/{chunk-MQT25QN7.js → chunk-LYBFUKHR.js} +4 -3
  65. package/dist/chunk-LYBFUKHR.js.map +1 -0
  66. package/dist/chunk-MFNJTAUS.js +3 -0
  67. package/dist/chunk-MFNJTAUS.js.map +1 -0
  68. package/dist/{chunk-D5JMGN7U.js → chunk-MK7OJUF5.js} +7 -5
  69. package/dist/chunk-MK7OJUF5.js.map +1 -0
  70. package/dist/chunk-MLPXW7N2.js +226 -0
  71. package/dist/chunk-MLPXW7N2.js.map +1 -0
  72. package/dist/{chunk-BBL6ZPXH.js → chunk-MSLJF2FM.js} +18 -3
  73. package/dist/chunk-MSLJF2FM.js.map +1 -0
  74. package/dist/{chunk-V3OWDXRU.js → chunk-NHLLC6WH.js} +4 -3
  75. package/dist/chunk-NHLLC6WH.js.map +1 -0
  76. package/dist/chunk-OCYXNLHO.js +307 -0
  77. package/dist/chunk-OCYXNLHO.js.map +1 -0
  78. package/dist/{chunk-B2TDI3YS.js → chunk-OTZHMJYE.js} +3 -3
  79. package/dist/{chunk-B2TDI3YS.js.map → chunk-OTZHMJYE.js.map} +1 -1
  80. package/dist/chunk-P55H5YRX.js +3 -0
  81. package/dist/chunk-P55H5YRX.js.map +1 -0
  82. package/dist/chunk-PB4RIS6G.js +27 -0
  83. package/dist/chunk-PB4RIS6G.js.map +1 -0
  84. package/dist/chunk-QGMVUIDD.js +3 -0
  85. package/dist/chunk-QGMVUIDD.js.map +1 -0
  86. package/dist/chunk-RYGAK7PB.js +3 -0
  87. package/dist/chunk-RYGAK7PB.js.map +1 -0
  88. package/dist/chunk-US4OLTJ2.js +104 -0
  89. package/dist/chunk-US4OLTJ2.js.map +1 -0
  90. package/dist/{chunk-GEHAH4OH.js → chunk-WCQUQ2WX.js} +4 -4
  91. package/dist/{chunk-GEHAH4OH.js.map → chunk-WCQUQ2WX.js.map} +1 -1
  92. package/dist/chunk-WLE2ENQA.js +86 -0
  93. package/dist/chunk-WLE2ENQA.js.map +1 -0
  94. package/dist/{chunk-2KTD23PD.js → chunk-WPL47PWJ.js} +5 -14
  95. package/dist/chunk-WPL47PWJ.js.map +1 -0
  96. package/dist/chunk-XKY2CV3G.js +14 -0
  97. package/dist/chunk-XKY2CV3G.js.map +1 -0
  98. package/dist/chunk-XUO7FV6Z.js +14 -0
  99. package/dist/chunk-XUO7FV6Z.js.map +1 -0
  100. package/dist/chunk-Y2KUN2D3.js +3 -0
  101. package/dist/chunk-Y2KUN2D3.js.map +1 -0
  102. package/dist/chunk-Y6IW2LMW.js +460 -0
  103. package/dist/chunk-Y6IW2LMW.js.map +1 -0
  104. package/dist/chunk-YGA5W54J.js +3 -0
  105. package/dist/chunk-YGA5W54J.js.map +1 -0
  106. package/dist/{chunk-UE4PVN6Y.js → chunk-YXELVV37.js} +5 -14
  107. package/dist/chunk-YXELVV37.js.map +1 -0
  108. package/dist/chunk-YYHS5WQN.js +28 -0
  109. package/dist/chunk-YYHS5WQN.js.map +1 -0
  110. package/dist/chunk-ZAUZRIOU.js +23 -0
  111. package/dist/chunk-ZAUZRIOU.js.map +1 -0
  112. package/dist/chunk-ZH4RJNG7.js +3 -0
  113. package/dist/chunk-ZH4RJNG7.js.map +1 -0
  114. package/dist/cnh.d.ts +39 -0
  115. package/dist/cnh.js +11 -0
  116. package/dist/cnh.js.map +1 -0
  117. package/dist/cnpj.d.ts +2 -2
  118. package/dist/cnpj.js +6 -4
  119. package/dist/cpf.d.ts +2 -2
  120. package/dist/cpf.js +6 -4
  121. package/dist/detect.d.ts +23 -0
  122. package/dist/detect.js +26 -0
  123. package/dist/detect.js.map +1 -0
  124. package/dist/generate.d.ts +10 -0
  125. package/dist/generate.js +29 -0
  126. package/dist/generate.js.map +1 -0
  127. package/dist/index-CZLo9YOT.d.ts +21 -0
  128. package/dist/index.d.ts +12 -4
  129. package/dist/index.js +60 -25
  130. package/dist/index.js.map +1 -1
  131. package/dist/inscricao-estadual-produtor-rural-CfWUaggb.d.ts +46 -0
  132. package/dist/inscricao-estadual-produtor-rural.d.ts +2 -0
  133. package/dist/inscricao-estadual-produtor-rural.js +7 -0
  134. package/dist/inscricao-estadual-produtor-rural.js.map +1 -0
  135. package/dist/inscricao-estadual.d.ts +4 -21
  136. package/dist/inscricao-estadual.js +5 -2
  137. package/dist/nfe-chave.d.ts +71 -0
  138. package/dist/nfe-chave.js +6 -0
  139. package/dist/nfe-chave.js.map +1 -0
  140. package/dist/pis-pasep.d.ts +2 -2
  141. package/dist/pis-pasep.js +5 -3
  142. package/dist/{pix-BtTx04Si.d.ts → pix-ddldLlb7.d.ts} +1 -1
  143. package/dist/pix.d.ts +2 -2
  144. package/dist/pix.js +8 -6
  145. package/dist/placa.d.ts +2 -2
  146. package/dist/placa.js +6 -3
  147. package/dist/renavam.d.ts +37 -0
  148. package/dist/renavam.js +11 -0
  149. package/dist/renavam.js.map +1 -0
  150. package/dist/sanitize.d.ts +9 -0
  151. package/dist/sanitize.js +24 -0
  152. package/dist/sanitize.js.map +1 -0
  153. package/dist/telefone.d.ts +2 -2
  154. package/dist/telefone.js +4 -2
  155. package/dist/titulo-eleitor.d.ts +56 -0
  156. package/dist/titulo-eleitor.js +10 -0
  157. package/dist/titulo-eleitor.js.map +1 -0
  158. package/dist/{validation-result-C-Ei-lZH.d.ts → validation-result-BhQE-1_O.d.ts} +64 -2
  159. package/package.json +33 -1
  160. package/dist/chunk-2KTD23PD.js.map +0 -1
  161. package/dist/chunk-465IC76U.js.map +0 -1
  162. package/dist/chunk-5BBNLRZP.js.map +0 -1
  163. package/dist/chunk-BBL6ZPXH.js.map +0 -1
  164. package/dist/chunk-CR45BOLS.js.map +0 -1
  165. package/dist/chunk-D5JMGN7U.js.map +0 -1
  166. package/dist/chunk-FLZ6IHOD.js.map +0 -1
  167. package/dist/chunk-GLKGX552.js.map +0 -1
  168. package/dist/chunk-GN7QIQE6.js.map +0 -1
  169. package/dist/chunk-IW3ESGWH.js.map +0 -1
  170. package/dist/chunk-MQT25QN7.js.map +0 -1
  171. package/dist/chunk-UE4PVN6Y.js.map +0 -1
  172. package/dist/chunk-V3OWDXRU.js.map +0 -1
  173. package/dist/chunk-W6UXVWSR.js +0 -13
  174. package/dist/chunk-W6UXVWSR.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/pix/cnpj.ts","../src/core/pix/cpf.ts","../src/core/pix/constants.ts","../src/core/pix/detect.ts","../src/core/pix/email.ts","../src/core/pix/evp.ts","../src/core/pix/phone.ts","../src/core/pix/mask.ts","../src/core/pix/index.ts"],"names":["failure"],"mappings":"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","file":"chunk-D5JMGN7U.js","sourcesContent":["import { validateCnpj } from '../cnpj/index.js';\nimport type { PixValidationResult } from '../../types/validation-result.js';\nimport { brandPixKey } from '../../types/validation-result.js';\n\ntype FailedResult = Extract<PixValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, keyType: 'cnpj' };\n}\n\nexport function validatePixCnpjKey(input: string): PixValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'PIX CNPJ key input is empty');\n }\n\n const result = validateCnpj(trimmed);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message, keyType: 'cnpj' };\n }\n\n return {\n ok: true,\n value: brandPixKey(result.value),\n keyType: 'cnpj',\n format: result.format,\n };\n}\n","import { validateCpf } from '../cpf/index.js';\nimport type { PixValidationResult } from '../../types/validation-result.js';\nimport { brandPixKey } from '../../types/validation-result.js';\n\ntype FailedResult = Extract<PixValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, keyType: 'cpf' };\n}\n\nexport function validatePixCpfKey(input: string): PixValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'PIX CPF key input is empty');\n }\n\n const result = validateCpf(trimmed);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message, keyType: 'cpf' };\n }\n\n return {\n ok: true,\n value: brandPixKey(result.value),\n keyType: 'cpf',\n format: result.format,\n };\n}\n","/**\n * PIX key constants — Bacen DICT API + Manual de Iniciação do Pix.\n * @see https://aprendervalor.bcb.gov.br/content/estabilidadefinanceira/pix/API-DICT_v2-9-0.html\n * @see https://www.bcb.gov.br/content/estabilidadefinanceira/pix/Regulamento_Pix/II_ManualdePadroesparaIniciacaodoPix.pdf\n * @see docs/use-cases/UC-005-validate-pix-key.md\n */\nexport const PIX_EMAIL_MAX_LENGTH = 77;\nexport const PIX_EMAIL_PATTERN =\n /^[a-z0-9.!#$'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/;\n\nexport const PIX_PHONE_E164_PATTERN = /^\\+[1-9]\\d{1,14}$/;\nexport const PIX_PHONE_BR_MOBILE_PATTERN = /^\\+55\\d{2}9\\d{8}$/;\n\nexport const PIX_EVP_PATTERN =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;\n\nexport const PIX_CPF_DIGITS_PATTERN = /^[0-9]{11}$/;\n\nexport const PIX_GOLDEN_CPF = '12345678909';\nexport const PIX_GOLDEN_CNPJ_NUMERIC = '11222333000181';\nexport const PIX_GOLDEN_CNPJ_ALPHANUMERIC = '12ABC34501DE35';\nexport const PIX_GOLDEN_EMAIL = 'pix@bcb.gov.br';\nexport const PIX_GOLDEN_PHONE = '+5510998765432';\nexport const PIX_GOLDEN_PHONE_SECONDARY = '+5561912345678';\nexport const PIX_GOLDEN_EVP = '123e4567-e89b-12d3-a456-426655440000';\nexport const PIX_GOLDEN_EMAIL_SECONDARY = 'fulano_da_silva.recebedor@example.com';\n\nexport const PIX_OFFICIAL_SOURCE_URL =\n 'https://www.bcb.gov.br/content/estabilidadefinanceira/pix/Regulamento_Pix/II_ManualdePadroesparaIniciacaodoPix.pdf';\n\nexport const PIX_DICT_API_SOURCE_URL =\n 'https://aprendervalor.bcb.gov.br/content/estabilidadefinanceira/pix/API-DICT_v2-9-0.html';\n","import { stripCnpj } from '../../strip/cnpj.js';\nimport { stripCpf } from '../../strip/cpf.js';\nimport type { PixKeyType } from '../../types/validation-result.js';\nimport { detectCnpjFormat } from '../cnpj/detect.js';\nimport {\n PIX_CPF_DIGITS_PATTERN,\n PIX_EVP_PATTERN,\n} from './constants.js';\n\nexport type DetectedPixKeyType = PixKeyType | 'unknown';\n\nfunction isCpfShapedInput(input: string): boolean {\n const trimmed = input.trim();\n const stripped = stripCpf(trimmed);\n if (!PIX_CPF_DIGITS_PATTERN.test(stripped)) {\n return false;\n }\n return /^[\\d.\\-\\s]+$/.test(trimmed);\n}\n\nfunction isCnpjShapedInput(input: string): boolean {\n const trimmed = input.trim();\n const stripped = stripCnpj(trimmed);\n if (detectCnpjFormat(stripped) === 'unknown') {\n return false;\n }\n return /^[A-Za-z0-9./\\-\\s]+$/.test(trimmed);\n}\n\nexport function detectPixKeyType(input: string): DetectedPixKeyType {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return 'unknown';\n }\n\n if (trimmed.includes('@')) {\n return 'email';\n }\n\n if (trimmed.startsWith('+')) {\n return 'phone';\n }\n\n if (PIX_EVP_PATTERN.test(trimmed)) {\n return 'evp';\n }\n\n if (isCpfShapedInput(trimmed)) {\n return 'cpf';\n }\n\n if (isCnpjShapedInput(trimmed)) {\n return 'cnpj';\n }\n\n return 'unknown';\n}\n","import type { PixValidationResult } from '../../types/validation-result.js';\nimport { brandPixKey } from '../../types/validation-result.js';\nimport { PIX_EMAIL_MAX_LENGTH, PIX_EMAIL_PATTERN } from './constants.js';\n\ntype FailedResult = Extract<PixValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, keyType: 'email' };\n}\n\nexport function validatePixEmailKey(input: string): PixValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'PIX email key input is empty');\n }\n\n if (trimmed !== trimmed.toLowerCase()) {\n return failure('INVALID_CHARACTER', 'PIX email key must be lowercase');\n }\n\n if (trimmed.length > PIX_EMAIL_MAX_LENGTH) {\n return failure('INVALID_LENGTH', `PIX email key must have at most ${PIX_EMAIL_MAX_LENGTH} characters`);\n }\n\n if (!trimmed.includes('@') || !PIX_EMAIL_PATTERN.test(trimmed)) {\n return failure('UNSUPPORTED_FORMAT', 'PIX email key format is invalid');\n }\n\n return {\n ok: true,\n value: brandPixKey(trimmed),\n keyType: 'email',\n format: 'email',\n };\n}\n","import type { PixValidationResult } from '../../types/validation-result.js';\nimport { brandPixKey } from '../../types/validation-result.js';\nimport { PIX_EVP_PATTERN } from './constants.js';\n\ntype FailedResult = Extract<PixValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, keyType: 'evp' };\n}\n\nexport function validatePixEvpKey(input: string): PixValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'PIX EVP key input is empty');\n }\n\n if (trimmed !== trimmed.toLowerCase()) {\n return failure('INVALID_CHARACTER', 'PIX EVP key must be lowercase');\n }\n\n if (!PIX_EVP_PATTERN.test(trimmed)) {\n return failure('UNSUPPORTED_FORMAT', 'PIX EVP key must be a lowercase UUID with hyphens');\n }\n\n return {\n ok: true,\n value: brandPixKey(trimmed),\n keyType: 'evp',\n format: 'evp',\n };\n}\n","import type { PixValidationResult } from '../../types/validation-result.js';\nimport { brandPixKey } from '../../types/validation-result.js';\nimport { PIX_PHONE_BR_MOBILE_PATTERN, PIX_PHONE_E164_PATTERN } from './constants.js';\n\ntype FailedResult = Extract<PixValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, keyType: 'phone' };\n}\n\nexport function validatePixPhoneKey(input: string): PixValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'PIX phone key input is empty');\n }\n\n if (!trimmed.startsWith('+')) {\n return failure('INVALID_CHARACTER', 'PIX phone key must start with + (E.164)');\n }\n\n if (!PIX_PHONE_E164_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'PIX phone key contains invalid characters');\n }\n\n if (!trimmed.startsWith('+55')) {\n return failure('UNSUPPORTED_FORMAT', 'PIX phone key must use Brazilian country code +55');\n }\n\n if (!PIX_PHONE_BR_MOBILE_PATTERN.test(trimmed)) {\n return failure('UNSUPPORTED_FORMAT', 'PIX phone key must match Brazilian mobile format +55DD9XXXXXXXX');\n }\n\n return {\n ok: true,\n value: brandPixKey(trimmed),\n keyType: 'phone',\n format: 'phone',\n };\n}\n","/**\n * PIX key display masks — delegates to parent validators where applicable (BR-PIX-001…005).\n * @see docs/use-cases/UC-003-format-document.md\n */\nimport { applyCnpjMask } from '../cnpj/mask.js';\nimport { applyCpfMask } from '../cpf/mask.js';\n\nexport function applyPixCpfKeyMask(canonical: string): string {\n return applyCpfMask(canonical);\n}\n\nexport function applyPixCnpjKeyMask(canonical: string): string {\n return applyCnpjMask(canonical);\n}\n\n/** Brazilian mobile E.164 → +55 (DD) 9XXXX-XXXX display. */\nexport function applyPixPhoneKeyMask(e164: string): string {\n const match = /^\\+55(\\d{2})(9\\d{4})(\\d{4})$/.exec(e164);\n if (!match) {\n throw new Error('PIX phone key must be a validated Brazilian mobile E.164 number');\n }\n return `+55 (${match[1]}) ${match[2]}-${match[3]}`;\n}\n\nexport function applyPixEmailKeyMask(email: string): string {\n return email.toLowerCase().trim();\n}\n\nexport function applyPixEvpKeyMask(uuid: string): string {\n return uuid.toLowerCase();\n}\n","/**\n * PIX key validation — five Bacen types (CPF, CNPJ, email, phone, EVP).\n * @see docs/use-cases/UC-005-validate-pix-key.md\n */\nimport type { PixKeyType, PixValidationResult } from '../../types/validation-result.js';\nimport { validatePixCnpjKey } from './cnpj.js';\nimport { validatePixCpfKey } from './cpf.js';\nimport { detectPixKeyType } from './detect.js';\nimport { validatePixEmailKey } from './email.js';\nimport { validatePixEvpKey } from './evp.js';\nimport { validatePixPhoneKey } from './phone.js';\n\nexport {\n PIX_DICT_API_SOURCE_URL,\n PIX_GOLDEN_CNPJ_ALPHANUMERIC,\n PIX_GOLDEN_CNPJ_NUMERIC,\n PIX_GOLDEN_CPF,\n PIX_GOLDEN_EMAIL,\n PIX_GOLDEN_EMAIL_SECONDARY,\n PIX_GOLDEN_EVP,\n PIX_GOLDEN_PHONE,\n PIX_GOLDEN_PHONE_SECONDARY,\n PIX_OFFICIAL_SOURCE_URL,\n} from './constants.js';\nexport { detectPixKeyType, type DetectedPixKeyType } from './detect.js';\nexport { validatePixCpfKey } from './cpf.js';\nexport { validatePixCnpjKey } from './cnpj.js';\nexport { validatePixEmailKey } from './email.js';\nexport { validatePixPhoneKey } from './phone.js';\nexport { validatePixEvpKey } from './evp.js';\nexport {\n applyPixCnpjKeyMask,\n applyPixCpfKeyMask,\n applyPixEmailKeyMask,\n applyPixEvpKeyMask,\n applyPixPhoneKeyMask,\n} from './mask.js';\n\nexport type ValidatePixKeyOptions = {\n type?: PixKeyType;\n};\n\ntype FailedResult = Extract<PixValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string, keyType?: PixKeyType): FailedResult {\n return { ok: false, code, message, ...(keyType ? { keyType } : {}) };\n}\n\nfunction validateByType(input: string, keyType: PixKeyType): PixValidationResult {\n switch (keyType) {\n case 'cpf':\n return validatePixCpfKey(input);\n case 'cnpj':\n return validatePixCnpjKey(input);\n case 'email':\n return validatePixEmailKey(input);\n case 'phone':\n return validatePixPhoneKey(input);\n case 'evp':\n return validatePixEvpKey(input);\n default: {\n const _exhaustive: never = keyType;\n return failure('UNSUPPORTED_FORMAT', `Unknown PIX key type: ${_exhaustive}`);\n }\n }\n}\n\nexport function isValidPixKey(input: string, options?: ValidatePixKeyOptions): boolean {\n return validatePixKey(input, options).ok;\n}\n\nexport function validatePixKey(input: string, options?: ValidatePixKeyOptions): PixValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'PIX key input is empty');\n }\n\n const detected = detectPixKeyType(trimmed);\n\n if (options?.type !== undefined) {\n if (detected !== 'unknown' && detected !== options.type) {\n return failure(\n 'UNSUPPORTED_FORMAT',\n `PIX key detected as ${detected} but forced type is ${options.type}`,\n options.type,\n );\n }\n return validateByType(trimmed, options.type);\n }\n\n if (detected === 'unknown') {\n return failure('UNSUPPORTED_FORMAT', 'PIX key type could not be determined');\n }\n\n return validateByType(trimmed, detected);\n}\n"]}
@@ -1 +0,0 @@
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"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/cep/constants.ts","../src/core/cep/index.ts","../src/core/cep/mask.ts","../src/format/cep.ts"],"names":[],"mappings":";;;;AAKO,IAAM,UAAA,GAAa,CAAA;AACnB,IAAM,gBAAA,GAAmB,kBAAA;AAGzB,IAAM,kBAAA,GAAqB;AAC3B,IAAM,oBAAA,GAAuB;AAC7B,IAAM,yBAAA,GAA4B;AAClC,IAAM,uBAAA,GACX;;;ACMF,SAAS,OAAA,CAAQ,MAA4B,OAAA,EAA+B;AAC1E,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,OAAA,EAAQ;AACpC;AAEA,SAAS,iBAAA,CAAkB,OAAe,QAAA,EAAuC;AAC/E,EAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,IAAA,OAAO,OAAA,CAAQ,eAAe,oBAAoB,CAAA;AAAA,EACpD;AAEA,EAAA,MAAM,WAAA,GAAc,KAAA,CAAM,OAAA,CAAQ,QAAA,EAAU,EAAE,CAAA;AAC9C,EAAA,IAAI,QAAA,CAAS,IAAA,CAAK,WAAW,CAAA,EAAG;AAC9B,IAAA,OAAO,OAAA,CAAQ,qBAAqB,iCAAiC,CAAA;AAAA,EACvE;AAEA,EAAA,IAAI,QAAA,CAAS,WAAW,UAAA,EAAY;AAClC,IAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,CAAA,cAAA,EAAiB,UAAU,CAAA,2BAAA,CAA6B,CAAA;AAAA,EAC3F;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,WAAW,KAAA,EAAwB;AACjD,EAAA,OAAO,WAAA,CAAY,KAAK,CAAA,CAAE,EAAA;AAC5B;AAEO,SAAS,YAAY,KAAA,EAAiC;AAC3D,EAAA,MAAM,QAAA,GAAW,SAAS,KAAK,CAAA;AAC/B,EAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,KAAA,EAAO,QAAQ,CAAA;AACpD,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,OAAO,UAAA;AAAA,EACT;AAEA,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,KAAA,EAAO,SAAS,QAAQ,CAAA,EAAG,QAAQ,SAAA,EAAU;AAClE;;;ACjDO,SAAS,aAAa,SAAA,EAA2B;AACtD,EAAA,MAAM,KAAA,GAAQ,gBAAA,CAAiB,IAAA,CAAK,SAAS,CAAA;AAC7C,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,GAAG,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAChC;;;ACLO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-GLKGX552.js","sourcesContent":["/**\n * CEP constants — 8 digits, no check digit (Correios).\n * @see https://www.correios.com.br/atendimento/developers/manuais/manual-api-busca-cep\n * @see docs/VALIDATION-RULES.md BR-CEP-001 — golden vector 01310100\n */\nexport const CEP_LENGTH = 8;\nexport const CEP_MASK_PATTERN = /^(\\d{5})(\\d{3})$/;\nexport const CEP_NUMERIC_PATTERN = /^\\d{8}$/;\n\nexport const CEP_GOLDEN_PRIMARY = '01310100';\nexport const CEP_GOLDEN_SECONDARY = '20040020';\nexport const CEP_GOLDEN_PRIMARY_MASKED = '01310-100';\nexport const CEP_OFFICIAL_SOURCE_URL =\n 'https://www.correios.com.br/atendimento/developers/manuais/manual-api-busca-cep';\n","/**\n * CEP validation — structural only, no check digit (Correios).\n * @see https://www.correios.com.br/atendimento/developers/manuais/manual-api-busca-cep\n * @see docs/VALIDATION-RULES.md BR-CEP-001 — golden vector 01310100\n */\nimport { stripCep } from '../../strip/index.js';\nimport type { ValidationResult } from '../../types/validation-result.js';\nimport { brandCep } from '../../types/validation-result.js';\nimport { CEP_LENGTH } from './constants.js';\n\nexport {\n CEP_GOLDEN_PRIMARY,\n CEP_GOLDEN_PRIMARY_MASKED,\n CEP_GOLDEN_SECONDARY,\n CEP_OFFICIAL_SOURCE_URL,\n} from './constants.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CEP input is empty');\n }\n\n const withoutMask = input.replace(/[-\\s]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CEP contains invalid characters');\n }\n\n if (stripped.length !== CEP_LENGTH) {\n return failure('INVALID_LENGTH', `CEP must have ${CEP_LENGTH} digits after normalization`);\n }\n\n return null;\n}\n\nexport function isValidCep(input: string): boolean {\n return validateCep(input).ok;\n}\n\nexport function validateCep(input: string): ValidationResult {\n const stripped = stripCep(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n return { ok: true, value: brandCep(stripped), format: 'numeric' };\n}\n","import { CEP_MASK_PATTERN } from './constants.js';\n\n/** Mask XXXXX-XXX (BR-CEP-004). */\nexport function applyCepMask(canonical: string): string {\n const match = CEP_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('CEP must have exactly 8 digits to apply mask');\n }\n return `${match[1]}-${match[2]}`;\n}\n","import { applyCepMask } from '../core/cep/mask.js';\nimport { validateCep } from '../core/cep/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCep(input: string): FormatResult {\n const result = validateCep(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCepMask(result.value) };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/strip/pis-pasep.ts","../src/core/pis-pasep/constants.ts","../src/core/pis-pasep/index.ts","../src/core/pis-pasep/mask.ts","../src/format/pis-pasep.ts"],"names":[],"mappings":"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","file":"chunk-GN7QIQE6.js","sourcesContent":["/**\n * Strip PIS/PASEP mask — digits only (BR-PIS-002).\n * @see https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf — RV_03\n */\nexport function stripPisPasep(input: string): string {\n return input.replace(/\\D/g, '');\n}\n","/**\n * PIS/PASEP/NIS/NIT constants — modulo 11 (CNIS unified registry).\n * @see https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf — RV_03\n * @see docs/use-cases/UC-006-validate-pis-pasep.md — golden vector 10027230888\n *\n * PIS, PASEP, NIS, and NIT share the same 11-digit algorithm and check-digit weights.\n */\nexport const PIS_PASEP_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const PIS_PASEP_LENGTH = 11;\nexport const PIS_PASEP_BASE_LENGTH = 10;\nexport const PIS_PASEP_MASK_PATTERN = /^(\\d{3})(\\d{5})(\\d{2})(\\d{1})$/;\n\nexport const PIS_PASEP_GOLDEN_PRIMARY = '10027230888';\nexport const PIS_PASEP_GOLDEN_SECONDARY = '12056456402';\nexport const PIS_PASEP_GOLDEN_PRIMARY_MASKED = '100.27230.88-8';\nexport const PIS_PASEP_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf';\n","/**\n * PIS/PASEP validation — modulo 11 (CNIS unified registry).\n * @see https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf — RV_03\n * @see docs/use-cases/UC-006-validate-pis-pasep.md — golden vector 10027230888\n */\nimport { stripPisPasep } from '../../strip/pis-pasep.js';\nimport type { ValidationResult } from '../../types/validation-result.js';\nimport { brandPisPasep } from '../../types/validation-result.js';\nimport { computeCheckDigit } from '../cnpj/modulo11.js';\nimport {\n PIS_PASEP_BASE_LENGTH,\n PIS_PASEP_DV_WEIGHTS,\n PIS_PASEP_LENGTH,\n} from './constants.js';\n\nexport {\n PIS_PASEP_GOLDEN_PRIMARY,\n PIS_PASEP_GOLDEN_PRIMARY_MASKED,\n PIS_PASEP_GOLDEN_SECONDARY,\n PIS_PASEP_OFFICIAL_SOURCE_URL,\n} from './constants.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nfunction hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidPisPasepChecksum(stripped: string): boolean {\n const base = stripped.slice(0, PIS_PASEP_BASE_LENGTH);\n const dvExpected = String(computeCheckDigit(base, PIS_PASEP_DV_WEIGHTS, digitValue));\n return stripped.charAt(PIS_PASEP_BASE_LENGTH) === dvExpected;\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'PIS/PASEP input is empty');\n }\n\n const withoutMask = input.replace(/[.-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'PIS/PASEP contains invalid characters');\n }\n\n if (stripped.length !== PIS_PASEP_LENGTH) {\n return failure('INVALID_LENGTH', `PIS/PASEP must have ${PIS_PASEP_LENGTH} digits after normalization`);\n }\n\n if (hasRepeatedDigits(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'PIS/PASEP with all identical digits is invalid');\n }\n\n return null;\n}\n\nexport function isValidPisPasep(input: string): boolean {\n return validatePisPasep(input).ok;\n}\n\nexport function validatePisPasep(input: string): ValidationResult {\n const stripped = stripPisPasep(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n if (isValidPisPasepChecksum(stripped)) {\n return { ok: true, value: brandPisPasep(stripped), format: 'numeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'PIS/PASEP check digit is invalid');\n}\n","import { PIS_PASEP_MASK_PATTERN } from './constants.js';\n\n/** Mask XXX.XXXXX.XX-X (BR-PIS-006). */\nexport function applyPisPasepMask(canonical: string): string {\n const match = PIS_PASEP_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('PIS/PASEP must have exactly 11 digits to apply mask');\n }\n return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;\n}\n","import { applyPisPasepMask } from '../core/pis-pasep/mask.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatPisPasep(input: string): FormatResult {\n const result = validatePisPasep(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyPisPasepMask(result.value) };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/boleto/constants.ts","../src/core/boleto/detect-situacao.ts","../src/core/boleto/modulo11.ts","../src/core/boleto/codigo-barras.ts","../src/core/boleto/modulo10.ts","../src/core/boleto/convert.ts","../src/core/boleto/detect.ts","../src/core/boleto/mask.ts","../src/core/boleto/linha-digitavel.ts","../src/core/boleto/fator-vencimento.ts","../src/core/boleto/valor-documento.ts","../src/core/boleto/semantic.ts","../src/core/boleto/index.ts","../src/format/boleto.ts"],"names":["LINHA_MASK_PATTERN","failure"],"mappings":"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","file":"chunk-IW3ESGWH.js","sourcesContent":["/**\n * FEBRABAN bank boleto (cobrança) — linha digitável + código de barras.\n * @see Convenção da Cobrança FB-0061/2021 — Anexos V, VI, IX, X\n * @see https://cmsarquivos.febraban.org.br/Arquivos/documentos/PDF/Conven%C3%A7%C3%A3o%20da%20Cobran%C3%A7a%20-%2005_02_2021_f.pdf\n */\n\nexport const BOLETO_LINHA_LENGTH = 47;\nexport const BOLETO_CODIGO_BARRAS_LENGTH = 44;\nexport const BOLETO_CURRENCY_REAL = '9';\nexport const BOLETO_CODE_ISPB_HOLDER = '988';\nexport const BOLETO_CURRENCY_ISPB = '0';\n\nexport const BOLETO_GOLDEN_LINHA_MASKED =\n '03399.02579 08991.834006 71742.301014 6 14500000099668';\nexport const BOLETO_GOLDEN_LINHA_STRIPPED =\n '03399025790899183400671742301014614500000099668';\nexport const BOLETO_GOLDEN_CODIGO_BARRAS =\n '03396145000000996689025708991834007174230101';\n\nexport const BOLETO_GOLDEN_LINHA_BB_STRIPPED =\n '00191234546789012345767890123457112340000001500';\nexport const BOLETO_GOLDEN_CODIGO_BARRAS_BB =\n '00191123400000015001234567890123456789012345';\n\nexport const BOLETO_GOLDEN_LINHA_SITUACAO2_STRIPPED =\n '98801234516789012345767890123457760746948000112';\nexport const BOLETO_GOLDEN_CODIGO_BARRAS_SITUACAO2 =\n '98807607469480001121234567890123456789012345';\n\nexport const BOLETO_OFFICIAL_SOURCE_URL =\n 'https://cmsarquivos.febraban.org.br/Arquivos/documentos/PDF/Conven%C3%A7%C3%A3o%20da%20Cobran%C3%A7a%20-%2005_02_2021_f.pdf';\n\nexport const BOLETO_LAYOUTS_PORTAL_URL =\n 'https://portal.febraban.org.br/pagina/3425/33/pt-br/layout-febraban';\n","/**\n * Situação 1 vs Situação 2 detection (Anexo V §2.3.2).\n * @see BR-BOLETO-011\n */\nimport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_CODE_ISPB_HOLDER,\n BOLETO_CURRENCY_ISPB,\n BOLETO_CURRENCY_REAL,\n BOLETO_LINHA_LENGTH,\n} from './constants.js';\n\nexport type BoletoSituacaoKind = 'situacao-1' | 'situacao-2' | 'unknown';\n\nexport type BoletoSituacaoCode = '1' | '2';\n\nexport function toBoletoSituacaoCode(kind: BoletoSituacaoKind): BoletoSituacaoCode | undefined {\n if (kind === 'situacao-1') {\n return '1';\n }\n if (kind === 'situacao-2') {\n return '2';\n }\n return undefined;\n}\n\nexport function detectBoletoSituacao(stripped: string): BoletoSituacaoKind {\n if (\n stripped.length !== BOLETO_LINHA_LENGTH &&\n stripped.length !== BOLETO_CODIGO_BARRAS_LENGTH\n ) {\n return 'unknown';\n }\n\n if (stripped.slice(0, 3) === BOLETO_CODE_ISPB_HOLDER) {\n if (stripped.charAt(3) === BOLETO_CURRENCY_ISPB) {\n return 'situacao-2';\n }\n return 'unknown';\n }\n\n if (stripped.charAt(3) === BOLETO_CURRENCY_REAL) {\n return 'situacao-1';\n }\n\n return 'unknown';\n}\n","/**\n * Modulo 11 — código de barras general DV (Anexo X).\n */\nexport function computeModulo11BarcodeDv(barcodeWithoutDv: string): number {\n let multiplier = 2;\n let sum = 0;\n\n for (let i = barcodeWithoutDv.length - 1; i >= 0; i--) {\n sum += Number(barcodeWithoutDv[i]) * multiplier;\n multiplier = multiplier >= 9 ? 2 : multiplier + 1;\n }\n\n const remainder = sum % 11;\n let dv = 11 - remainder;\n if (dv === 0 || dv === 10 || dv === 11) {\n dv = 1;\n }\n return dv;\n}\n","/**\n * Código de barras validation — modulo 11 general DV (Anexo X).\n * @see BR-BOLETO-003, BR-BOLETO-004, BR-BOLETO-010\n */\nimport type { BoletoSituacao, BoletoValidationResult } from '../../types/validation-result.js';\nimport { brandCodigoBarras } from '../../types/validation-result.js';\nimport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_CODE_ISPB_HOLDER,\n} from './constants.js';\nimport { detectBoletoSituacao, toBoletoSituacaoCode } from './detect-situacao.js';\nimport { computeModulo11BarcodeDv } from './modulo11.js';\n\ntype FailedResult = Extract<BoletoValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, inputKind: 'codigo-barras' };\n}\n\nexport function stripCodigoBarras(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateCodigoBarras(input: string): BoletoValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Código de barras input is empty' };\n }\n\n if (/[^0-9]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'Código de barras contains invalid characters');\n }\n\n if (trimmed.length !== BOLETO_CODIGO_BARRAS_LENGTH) {\n return failure('INVALID_LENGTH', `Código de barras must have ${BOLETO_CODIGO_BARRAS_LENGTH} digits`);\n }\n\n const situacaoKind = detectBoletoSituacao(trimmed);\n if (situacaoKind === 'unknown') {\n const isIspbHolder = trimmed.slice(0, 3) === BOLETO_CODE_ISPB_HOLDER;\n const message = isIspbHolder\n ? 'ISPB holder boleto (code 988) requires currency indicator 0 (Situação 2)'\n : 'Bank boleto currency code must be 9 (Real) for Situação 1';\n return failure('UNSUPPORTED_FORMAT', message);\n }\n\n if (trimmed.charAt(4) === '0') {\n return failure('INVALID_CHECK_DIGIT', 'Barcode DV cannot be 0');\n }\n\n const expectedDv = String(computeModulo11BarcodeDv(trimmed.slice(0, 4) + trimmed.slice(5)));\n if (trimmed.charAt(4) !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'Código de barras check digit is invalid');\n }\n\n const situacao = toBoletoSituacaoCode(situacaoKind) as BoletoSituacao;\n return {\n ok: true,\n value: brandCodigoBarras(trimmed),\n inputKind: 'codigo-barras',\n format: 'codigo-barras',\n situacao,\n };\n}\n","/**\n * Modulo 10 — linha digitável field DVs (Anexo IX).\n */\nexport function computeModulo10FieldDv(digits: string): number {\n let multiplier = 2;\n let sum = 0;\n\n for (let i = digits.length - 1; i >= 0; i--) {\n let product = Number(digits[i]) * multiplier;\n if (product > 9) {\n product = Math.floor(product / 10) + (product % 10);\n }\n sum += product;\n multiplier = multiplier === 2 ? 1 : 2;\n }\n\n const remainder = sum % 10;\n return remainder === 0 ? 0 : 10 - remainder;\n}\n","/**\n * Linha digitável ↔ código de barras conversion (Anexo V §2.3.4).\n * Situação 1 and Situação 2 share the same field permutation; campo 5 semantics differ\n * (fator+valor vs ISPB 14 digits).\n * @see BR-BOLETO-006\n */\nimport { computeModulo10FieldDv } from './modulo10.js';\nimport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_LINHA_LENGTH,\n} from './constants.js';\n\nexport function convertLinhaToCodigoBarrasDigits(strippedLinha: string): string {\n return (\n strippedLinha.slice(0, 4) +\n strippedLinha[32] +\n strippedLinha.slice(33, BOLETO_LINHA_LENGTH) +\n strippedLinha.slice(4, 9) +\n strippedLinha.slice(10, 20) +\n strippedLinha.slice(21, 31)\n );\n}\n\nexport function convertCodigoBarrasToLinhaDigits(barcode: string): string {\n const field1 = barcode.slice(0, 4) + barcode.slice(19, 24);\n const field2 = barcode.slice(24, 34);\n const field3 = barcode.slice(34, BOLETO_CODIGO_BARRAS_LENGTH);\n const field5 = barcode.slice(5, 9) + barcode.slice(9, 19);\n const dv1 = String(computeModulo10FieldDv(field1));\n const dv2 = String(computeModulo10FieldDv(field2));\n const dv3 = String(computeModulo10FieldDv(field3));\n return field1 + dv1 + field2 + dv2 + field3 + dv3 + barcode[4] + field5;\n}\n","/**\n * Boleto input kind detection — linha digitável (47) vs código de barras (44).\n * @see BR-BOLETO-001\n */\nimport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_LINHA_LENGTH,\n} from './constants.js';\n\nexport type DetectedBoletoInputKind = 'linha-digitavel' | 'codigo-barras' | 'arrecadacao' | 'unknown';\n\nconst LINHA_MASK_PATTERN = /^[0-9.\\s]+$/;\n\nfunction stripDigits(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function detectBoletoInputKind(input: string): DetectedBoletoInputKind {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return 'unknown';\n }\n\n const digits = stripDigits(trimmed);\n\n if (digits.length === 48 && digits.startsWith('8')) {\n return 'arrecadacao';\n }\n\n if (digits.length === BOLETO_CODIGO_BARRAS_LENGTH && /^\\d+$/.test(digits)) {\n return 'codigo-barras';\n }\n\n if (digits.length === BOLETO_LINHA_LENGTH) {\n if (/^\\d+$/.test(trimmed)) {\n return 'linha-digitavel';\n }\n if (LINHA_MASK_PATTERN.test(trimmed)) {\n return 'linha-digitavel';\n }\n return 'unknown';\n }\n\n return 'unknown';\n}\n","/**\n * Linha digitável display mask — FEBRABAN Anexo IX (BR-BOLETO-008).\n * @see docs/use-cases/UC-003-format-document.md\n */\nimport { BOLETO_LINHA_LENGTH } from './constants.js';\n\n/** FEBRABAN typable linha digitável mask (47 digits). */\nexport function applyLinhaDigitavelMask(stripped47: string): string {\n if (stripped47.length !== BOLETO_LINHA_LENGTH) {\n throw new Error(`Linha digitável must have exactly ${BOLETO_LINHA_LENGTH} digits to apply mask`);\n }\n return (\n `${stripped47.slice(0, 5)}.${stripped47.slice(5, 10)} ` +\n `${stripped47.slice(10, 15)}.${stripped47.slice(15, 21)} ` +\n `${stripped47.slice(21, 26)}.${stripped47.slice(26, 32)} ` +\n `${stripped47[32]} ${stripped47.slice(33)}`\n );\n}\n\n/** Backward-compatible alias for applyLinhaDigitavelMask. */\nexport function formatLinhaDigitavel(stripped: string): string {\n return applyLinhaDigitavelMask(stripped);\n}\n","/**\n * Linha digitável validation — modulo 10 field DVs (Anexo IX).\n * @see BR-BOLETO-002, BR-BOLETO-008\n */\nimport type { BoletoSituacao, BoletoValidationResult } from '../../types/validation-result.js';\nimport { brandLinhaDigitavel } from '../../types/validation-result.js';\nimport {\n BOLETO_CODE_ISPB_HOLDER,\n BOLETO_LINHA_LENGTH,\n} from './constants.js';\nimport { convertLinhaToCodigoBarrasDigits } from './convert.js';\nimport { detectBoletoSituacao, toBoletoSituacaoCode } from './detect-situacao.js';\nimport { computeModulo10FieldDv } from './modulo10.js';\nimport { computeModulo11BarcodeDv } from './modulo11.js';\n\nexport { applyLinhaDigitavelMask, formatLinhaDigitavel } from './mask.js';\n\ntype FailedResult = Extract<BoletoValidationResult, { ok: false }>;\n\nconst LINHA_MASK_PATTERN = /^[0-9.\\s]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, inputKind: 'linha-digitavel' };\n}\n\nexport function stripLinhaDigitavel(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nfunction validateFieldDv(\n fieldDigits: string,\n actualDv: string,\n fieldNumber: 1 | 2 | 3,\n): FailedResult | null {\n const expected = String(computeModulo10FieldDv(fieldDigits));\n if (actualDv !== expected) {\n return failure('INVALID_CHECK_DIGIT', `Linha digitável field ${fieldNumber} check digit is invalid`);\n }\n return null;\n}\n\nexport function validateLinhaDigitavel(input: string): BoletoValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Linha digitável input is empty' };\n }\n\n if (!LINHA_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'Linha digitável contains invalid characters');\n }\n\n const stripped = stripLinhaDigitavel(trimmed);\n if (stripped.length !== BOLETO_LINHA_LENGTH) {\n return failure('INVALID_LENGTH', `Linha digitável must have ${BOLETO_LINHA_LENGTH} digits after normalization`);\n }\n\n const situacaoKind = detectBoletoSituacao(stripped);\n if (situacaoKind === 'unknown') {\n const isIspbHolder = stripped.slice(0, 3) === BOLETO_CODE_ISPB_HOLDER;\n const message = isIspbHolder\n ? 'ISPB holder boleto (code 988) requires currency indicator 0 (Situação 2)'\n : 'Bank boleto currency code must be 9 (Real) for Situação 1';\n return failure('UNSUPPORTED_FORMAT', message);\n }\n\n const field1Error = validateFieldDv(stripped.slice(0, 9), stripped.charAt(9), 1);\n if (field1Error) {\n return field1Error;\n }\n\n const field2Error = validateFieldDv(stripped.slice(10, 20), stripped.charAt(20), 2);\n if (field2Error) {\n return field2Error;\n }\n\n const field3Error = validateFieldDv(stripped.slice(21, 31), stripped.charAt(31), 3);\n if (field3Error) {\n return field3Error;\n }\n\n const barcode = convertLinhaToCodigoBarrasDigits(stripped);\n const barcodeDvFromMod11 = String(\n computeModulo11BarcodeDv(barcode.slice(0, 4) + barcode.slice(5)),\n );\n\n if (stripped.charAt(32) !== barcodeDvFromMod11) {\n return failure('INVALID_CHECK_DIGIT', 'Linha digitável field 4 (barcode DV) is invalid');\n }\n\n const situacao = toBoletoSituacaoCode(situacaoKind) as BoletoSituacao;\n return {\n ok: true,\n value: brandLinhaDigitavel(stripped),\n inputKind: 'linha-digitavel',\n format: 'linha-digitavel',\n situacao,\n };\n}\n","/**\n * Due-date factor semantic validation (Situação 1 only).\n * @see BR-BOLETO-012\n */\nimport type { ValidationErrorCode } from '../../types/validation-result.js';\n\nconst FATOR_MIN = 1;\n/** FEBRABAN factor space; values above this fail optional semantic validation. */\nconst FATOR_SEMANTIC_MAX = 9997;\n\nexport type FatorVencimentoValidationResult =\n | { ok: true; factor: string; hasDueDate: boolean }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport function validateFatorVencimento(factor: string): FatorVencimentoValidationResult {\n if (!/^\\d{4}$/.test(factor)) {\n return {\n ok: false,\n code: 'INVALID_LENGTH',\n message: 'Due-date factor must have exactly 4 digits',\n };\n }\n\n if (factor === '0000') {\n return { ok: true, factor, hasDueDate: false };\n }\n\n const days = Number(factor);\n if (days < FATOR_MIN || days > FATOR_SEMANTIC_MAX) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'Due-date factor is out of the supported range',\n };\n }\n\n return { ok: true, factor, hasDueDate: true };\n}\n","/**\n * Document amount semantic validation (Situação 1 only).\n * @see BR-BOLETO-013\n */\nimport type { ValidationErrorCode } from '../../types/validation-result.js';\n\nexport type ValorDocumentoValidationResult =\n | { ok: true; amountCents: number }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport function validateValorDocumento(value: string): ValorDocumentoValidationResult {\n if (!/^\\d{10}$/.test(value)) {\n return {\n ok: false,\n code: 'INVALID_LENGTH',\n message: 'Document amount must have exactly 10 digits (centavos)',\n };\n }\n\n return { ok: true, amountCents: Number(value) };\n}\n","/**\n * Optional semantic checks for Situação 1 cobrança fields.\n * @see BR-BOLETO-012, BR-BOLETO-013\n */\nimport type { BoletoInputKind, BoletoValidationResult } from '../../types/validation-result.js';\nimport { detectBoletoSituacao } from './detect-situacao.js';\nimport { validateFatorVencimento } from './fator-vencimento.js';\nimport { validateValorDocumento } from './valor-documento.js';\n\nexport type SemanticValidationOptions = {\n validateDueFactor?: boolean;\n validateAmount?: boolean;\n};\n\ntype FailedResult = Extract<BoletoValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string, inputKind: BoletoInputKind): FailedResult {\n return { ok: false, code, message, inputKind };\n}\n\nexport function validateSemanticFields(\n barcode: string,\n options: SemanticValidationOptions,\n inputKind: BoletoInputKind,\n): FailedResult | null {\n if (detectBoletoSituacao(barcode) !== 'situacao-1') {\n return null;\n }\n\n if (options.validateDueFactor) {\n const factorResult = validateFatorVencimento(barcode.slice(5, 9));\n if (!factorResult.ok) {\n return failure(factorResult.code, factorResult.message, inputKind);\n }\n }\n\n if (options.validateAmount && detectBoletoSituacao(barcode) === 'situacao-1') {\n validateValorDocumento(barcode.slice(9, 19));\n }\n\n return null;\n}\n","/**\n * Boleto validation — linha digitável + código de barras (FEBRABAN cobrança).\n * @see docs/use-cases/UC-007-validate-boleto.md\n */\nimport type { BoletoInputKind, BoletoValidationResult } from '../../types/validation-result.js';\nimport { brandCodigoBarras, brandLinhaDigitavel } from '../../types/validation-result.js';\nimport { validateCodigoBarras } from './codigo-barras.js';\nimport {\n convertCodigoBarrasToLinhaDigits,\n convertLinhaToCodigoBarrasDigits,\n} from './convert.js';\nimport { detectBoletoInputKind } from './detect.js';\nimport { validateLinhaDigitavel } from './linha-digitavel.js';\nimport { validateSemanticFields } from './semantic.js';\n\nexport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_CODE_ISPB_HOLDER,\n BOLETO_CURRENCY_ISPB,\n BOLETO_CURRENCY_REAL,\n BOLETO_GOLDEN_CODIGO_BARRAS,\n BOLETO_GOLDEN_CODIGO_BARRAS_BB,\n BOLETO_GOLDEN_CODIGO_BARRAS_SITUACAO2,\n BOLETO_GOLDEN_LINHA_BB_STRIPPED,\n BOLETO_GOLDEN_LINHA_MASKED,\n BOLETO_GOLDEN_LINHA_SITUACAO2_STRIPPED,\n BOLETO_GOLDEN_LINHA_STRIPPED,\n BOLETO_LAYOUTS_PORTAL_URL,\n BOLETO_LINHA_LENGTH,\n BOLETO_OFFICIAL_SOURCE_URL,\n} from './constants.js';\nexport { computeModulo10FieldDv } from './modulo10.js';\nexport { computeModulo11BarcodeDv } from './modulo11.js';\nexport { detectBoletoInputKind, type DetectedBoletoInputKind } from './detect.js';\nexport {\n detectBoletoSituacao,\n toBoletoSituacaoCode,\n type BoletoSituacaoCode,\n type BoletoSituacaoKind,\n} from './detect-situacao.js';\nexport {\n convertCodigoBarrasToLinhaDigits,\n convertLinhaToCodigoBarrasDigits,\n} from './convert.js';\nexport {\n formatLinhaDigitavel,\n stripLinhaDigitavel,\n validateLinhaDigitavel,\n} from './linha-digitavel.js';\nexport { applyLinhaDigitavelMask } from './mask.js';\nexport { stripCodigoBarras, validateCodigoBarras } from './codigo-barras.js';\nexport { validateFatorVencimento, type FatorVencimentoValidationResult } from './fator-vencimento.js';\nexport { validateValorDocumento, type ValorDocumentoValidationResult } from './valor-documento.js';\nexport { validateSemanticFields } from './semantic.js';\n\nexport type ValidateBoletoOptions = {\n kind?: BoletoInputKind;\n validateDueFactor?: boolean;\n validateAmount?: boolean;\n};\n\ntype FailedResult = Extract<BoletoValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string, inputKind?: BoletoInputKind): FailedResult {\n return { ok: false, code, message, ...(inputKind ? { inputKind } : {}) };\n}\n\nfunction validateByKind(input: string, kind: BoletoInputKind, options?: ValidateBoletoOptions): BoletoValidationResult {\n const result = kind === 'linha-digitavel' ? validateLinhaDigitavel(input) : validateCodigoBarras(input);\n if (!result.ok) {\n return result;\n }\n\n const barcode =\n kind === 'linha-digitavel'\n ? convertLinhaToCodigoBarrasDigits(result.value)\n : result.value;\n\n const semanticError = validateSemanticFields(barcode, options ?? {}, kind);\n if (semanticError) {\n return semanticError;\n }\n\n return result;\n}\n\nexport function isValidBoleto(input: string, options?: ValidateBoletoOptions): boolean {\n return validateBoleto(input, options).ok;\n}\n\nexport function validateBoleto(input: string, options?: ValidateBoletoOptions): BoletoValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'Boleto input is empty');\n }\n\n const detected = detectBoletoInputKind(trimmed);\n\n if (detected === 'arrecadacao') {\n return failure('UNSUPPORTED_FORMAT', '48-digit arrecadação slips are not supported');\n }\n\n if (options?.kind !== undefined) {\n if (detected !== 'unknown' && detected !== options.kind) {\n return failure(\n 'UNSUPPORTED_FORMAT',\n `Boleto detected as ${detected} but forced kind is ${options.kind}`,\n options.kind,\n );\n }\n return validateByKind(trimmed, options.kind, options);\n }\n\n if (detected === 'unknown') {\n return failure('UNSUPPORTED_FORMAT', 'Boleto input kind could not be determined');\n }\n\n return validateByKind(trimmed, detected, options);\n}\n\nexport function convertLinhaToCodigoBarras(input: string): BoletoValidationResult {\n const result = validateLinhaDigitavel(input);\n if (!result.ok) {\n return result;\n }\n const barcode = convertLinhaToCodigoBarrasDigits(result.value);\n return {\n ok: true,\n value: brandCodigoBarras(barcode),\n inputKind: 'codigo-barras',\n format: 'codigo-barras',\n situacao: result.situacao,\n };\n}\n\nexport function convertCodigoBarrasToLinhaDigitavel(input: string): BoletoValidationResult {\n const result = validateCodigoBarras(input);\n if (!result.ok) {\n return result;\n }\n const linha = convertCodigoBarrasToLinhaDigits(result.value);\n return {\n ok: true,\n value: brandLinhaDigitavel(linha),\n inputKind: 'linha-digitavel',\n format: 'linha-digitavel',\n situacao: result.situacao,\n };\n}\n","/**\n * Format decorator — strip → validate → apply official mask (UC-003).\n * @see docs/use-cases/UC-003-format-document.md\n * @see docs/VALIDATION-RULES.md BR-GLOBAL-002\n */\nimport { applyLinhaDigitavelMask } from '../core/boleto/mask.js';\nimport { detectBoletoInputKind } from '../core/boleto/detect.js';\nimport { validateLinhaDigitavel } from '../core/boleto/linha-digitavel.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatBoleto(input: string): FormatResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Boleto input is empty' };\n }\n\n const kind = detectBoletoInputKind(trimmed);\n if (kind === 'codigo-barras') {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'Boleto barcode formatting is not supported in v1',\n };\n }\n\n const result = validateLinhaDigitavel(trimmed);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n return { ok: true, formatted: applyLinhaDigitavelMask(result.value) };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/format/cnpj.ts"],"names":[],"mappings":";;;AAIO,SAAS,WAAW,KAAA,EAA6B;AACtD,EAAA,MAAM,MAAA,GAAS,aAAa,KAAK,CAAA;AACjC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,aAAA,CAAc,MAAA,CAAO,KAAK,CAAA,EAAE;AAC5D;AAEO,SAAS,kBAAkB,KAAA,EAA6B;AAC7D,EAAA,OAAO,WAAW,KAAK,CAAA;AACzB;AAEO,SAAS,uBAAuB,KAAA,EAA6B;AAClE,EAAA,OAAO,WAAW,KAAK,CAAA;AACzB","file":"chunk-MQT25QN7.js","sourcesContent":["import { applyCnpjMask } from '../core/cnpj/mask.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCnpj(input: string): FormatResult {\n const result = validateCnpj(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCnpjMask(result.value) };\n}\n\nexport function formatCnpjNumeric(input: string): FormatResult {\n return formatCnpj(input);\n}\n\nexport function formatCnpjAlphanumeric(input: string): FormatResult {\n return formatCnpj(input);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/cnpj/constants.ts","../src/core/cnpj/ascii-value.ts","../src/core/cnpj/alphanumeric.ts","../src/core/cnpj/detect.ts","../src/core/cnpj/numeric.ts","../src/core/cnpj/index.ts","../src/core/cnpj/mask.ts"],"names":[],"mappings":"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","file":"chunk-UE4PVN6Y.js","sourcesContent":["/**\n * CNPJ constants — modulo 11 weights from RFB FAQ Q14.\n * @see https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf\n */\nexport const CNPJ_LENGTH = 14;\nexport const CNPJ_BASE_LENGTH = 12;\n\nexport const CNPJ_DV1_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const CNPJ_DV2_WEIGHTS = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\n\nexport const CNPJ_ALPHANUMERIC_PATTERN = /^[A-Z0-9]{12}[0-9]{2}$/;\nexport const CNPJ_NUMERIC_PATTERN = /^[0-9]{14}$/;\n\nexport const CNPJ_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf';\n\n/** RFB Q14 golden vector */\nexport const CNPJ_GOLDEN_ALPHANUMERIC = '12ABC34501DE35';\n\n/** Valid numeric CNPJ for regression tests (modulo 11) */\nexport const CNPJ_GOLDEN_NUMERIC = '11222333000181';\nexport const CNPJ_GOLDEN_NUMERIC_MASKED = '11.222.333/0001-81';\nexport const CNPJ_GOLDEN_ALPHANUMERIC_MASKED = '12.ABC.345/01DE-35';\n\nexport const CNPJ_MASK_PATTERN = /^(.{2})(.{3})(.{3})(.{4})(.{2})$/;\n","/**\n * Character value for CNPJ modulo 11 — ASCII decimal minus 48 (RFB Q14).\n * @see https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf\n */\nexport function cnpjCharValue(char: string): number {\n return char.charCodeAt(0) - 48;\n}\n","import { CNPJ_ALPHANUMERIC_PATTERN, CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_LENGTH } from './constants.js';\nimport { cnpjCharValue } from './ascii-value.js';\nimport { computeCheckDigit } from './modulo11.js';\n\nfunction hasRepeatedChars(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidStructure(canonical: string): boolean {\n return canonical.length === CNPJ_LENGTH && CNPJ_ALPHANUMERIC_PATTERN.test(canonical);\n}\n\n/**\n * Alphanumeric CNPJ — ASCII-48 modulo 11 (RFB Q14).\n * Golden vector: 12ABC34501DE35\n */\nexport function isValidCnpjAlphanumeric(input: string): boolean {\n const canonical = input.toUpperCase();\n if (!isValidStructure(canonical)) {\n return false;\n }\n if (hasRepeatedChars(canonical)) {\n return false;\n }\n\n const base = canonical.slice(0, CNPJ_BASE_LENGTH);\n const dv1Expected = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, cnpjCharValue));\n const dv2Expected = String(\n computeCheckDigit(base + dv1Expected, CNPJ_DV2_WEIGHTS, cnpjCharValue),\n );\n\n return canonical.slice(CNPJ_BASE_LENGTH) === dv1Expected + dv2Expected;\n}\n","import { CNPJ_ALPHANUMERIC_PATTERN, CNPJ_NUMERIC_PATTERN } from './constants.js';\nimport type { DocumentFormat } from '../../types/validation-result.js';\n\nexport function detectCnpjFormat(stripped: string): DocumentFormat | 'unknown' {\n const upper = stripped.toUpperCase();\n if (CNPJ_NUMERIC_PATTERN.test(upper)) {\n return 'numeric';\n }\n if (CNPJ_ALPHANUMERIC_PATTERN.test(upper)) {\n return 'alphanumeric';\n }\n return 'unknown';\n}\n\nexport function containsLetter(value: string): boolean {\n return /[A-Za-z]/.test(value);\n}\n","import { CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_NUMERIC_PATTERN } from './constants.js';\nimport { computeCheckDigit } from './modulo11.js';\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nfunction hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Numeric CNPJ — traditional modulo 11 on digits (RFB Q6–Q7 coexistence).\n */\nexport function isValidCnpjNumeric(input: string): boolean {\n const canonical = input.replace(/\\D/g, '');\n if (!CNPJ_NUMERIC_PATTERN.test(canonical)) {\n return false;\n }\n if (hasRepeatedDigits(canonical)) {\n return false;\n }\n\n const base = canonical.slice(0, CNPJ_BASE_LENGTH);\n const dv1Expected = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, digitValue));\n const dv2Expected = String(\n computeCheckDigit(base + dv1Expected, CNPJ_DV2_WEIGHTS, digitValue),\n );\n\n return canonical.slice(CNPJ_BASE_LENGTH) === dv1Expected + dv2Expected;\n}\n","import { stripCnpj } from '../../strip/cnpj.js';\nimport type { DocumentFormat, ValidationResult } from '../../types/validation-result.js';\nimport { brandCnpj } from '../../types/validation-result.js';\nimport { isValidCnpjAlphanumeric } from './alphanumeric.js';\nimport { CNPJ_LENGTH } from './constants.js';\nimport { containsLetter, detectCnpjFormat } from './detect.js';\nimport { isValidCnpjNumeric } from './numeric.js';\n\nexport { detectCnpjFormat, containsLetter } from './detect.js';\nexport { isValidCnpjAlphanumeric } from './alphanumeric.js';\nexport { isValidCnpjNumeric } from './numeric.js';\nexport {\n CNPJ_GOLDEN_ALPHANUMERIC,\n CNPJ_GOLDEN_ALPHANUMERIC_MASKED,\n CNPJ_GOLDEN_NUMERIC,\n CNPJ_GOLDEN_NUMERIC_MASKED,\n CNPJ_OFFICIAL_SOURCE_URL,\n} from './constants.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction validateStructure(\n input: string,\n stripped: string,\n): FailedResult | { format: DocumentFormat } {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CNPJ input is empty');\n }\n\n const withoutMask = input.replace(/[.\\-/]/g, '');\n if (/[^A-Za-z0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CNPJ contains invalid characters');\n }\n\n if (stripped.length !== CNPJ_LENGTH) {\n return failure('INVALID_LENGTH', `CNPJ must have ${CNPJ_LENGTH} characters after normalization`);\n }\n\n const format = detectCnpjFormat(stripped);\n if (format === 'unknown') {\n return failure('UNSUPPORTED_FORMAT', 'CNPJ format is not numeric or alphanumeric');\n }\n\n return { format };\n}\n\nexport function isValidCnpj(input: string): boolean {\n return validateCnpj(input).ok;\n}\n\nexport function validateCnpj(input: string): ValidationResult {\n const stripped = stripCnpj(input);\n const structural = validateStructure(input, stripped);\n if ('ok' in structural) {\n return structural;\n }\n\n const { format } = structural;\n\n if (format === 'numeric' || !containsLetter(stripped)) {\n if (isValidCnpjNumeric(stripped)) {\n return { ok: true, value: brandCnpj(stripped), format: 'numeric' };\n }\n if (format === 'numeric') {\n if (/^(\\d)\\1{13}$/.test(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'CNPJ with all identical digits is invalid');\n }\n return failure('INVALID_CHECK_DIGIT', 'CNPJ check digits are invalid');\n }\n }\n\n if (isValidCnpjAlphanumeric(stripped)) {\n return { ok: true, value: brandCnpj(stripped), format: 'alphanumeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'CNPJ check digits are invalid');\n}\n","import { CNPJ_MASK_PATTERN } from './constants.js';\n\n/** Mask XX.XXX.XXX/XXXX-DD — same for numeric and alphanumeric (RFB Q21). */\nexport function applyCnpjMask(canonical: string): string {\n const match = CNPJ_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('CNPJ must have exactly 14 characters to apply mask');\n }\n return `${match[1]}.${match[2]}.${match[3]}/${match[4]}-${match[5]}`;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/format/cpf.ts"],"names":[],"mappings":";;;AAIO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-V3OWDXRU.js","sourcesContent":["import { applyCpfMask } from '../core/cpf/mask.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCpf(input: string): FormatResult {\n const result = validateCpf(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCpfMask(result.value) };\n}\n"]}
@@ -1,13 +0,0 @@
1
- // src/strip/cep.ts
2
- function stripCep(input) {
3
- return input.replace(/\D/g, "");
4
- }
5
-
6
- // src/strip/placa.ts
7
- function stripPlaca(input) {
8
- return input.replace(/[^A-Za-z0-9]/g, "").toUpperCase();
9
- }
10
-
11
- export { stripCep, stripPlaca };
12
- //# sourceMappingURL=chunk-W6UXVWSR.js.map
13
- //# sourceMappingURL=chunk-W6UXVWSR.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/strip/cep.ts","../src/strip/placa.ts"],"names":[],"mappings":";AAIO,SAAS,SAAS,KAAA,EAAuB;AAC9C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;;;ACFO,SAAS,WAAW,KAAA,EAAuB;AAChD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,eAAA,EAAiB,EAAE,EAAE,WAAA,EAAY;AACxD","file":"chunk-W6UXVWSR.js","sourcesContent":["/**\n * Strip CEP mask — digits only (BR-CEP-001).\n * @see https://www.correios.com.br/atendimento/developers/manuais/manual-api-busca-cep\n */\nexport function stripCep(input: string): string {\n return input.replace(/\\D/g, '');\n}\n","/**\n * Strip placa mask — preserve A-Z0-9, uppercase (BR-PLACA-004).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018consolidada.pdf\n */\nexport function stripPlaca(input: string): string {\n return input.replace(/[^A-Za-z0-9]/g, '').toUpperCase();\n}\n"]}