@br-validators/core 1.9.0 → 1.10.0-data.2

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 (200) hide show
  1. package/README.md +57 -7
  2. package/dist/aeroportos.js +1 -1
  3. package/dist/anp-combustiveis.js +13523 -13795
  4. package/dist/anp-combustiveis.js.map +1 -1
  5. package/dist/bancos.js +3 -3
  6. package/dist/bancos.js.map +1 -1
  7. package/dist/batch.d.ts +24 -3
  8. package/dist/batch.js +16 -15
  9. package/dist/brcode.js +6 -6
  10. package/dist/cbo.js +1 -1
  11. package/dist/cep.js +6 -3
  12. package/dist/{chunk-S4WEXFHC.js → chunk-2COBLRJZ.js} +3 -3
  13. package/dist/{chunk-S4WEXFHC.js.map → chunk-2COBLRJZ.js.map} +1 -1
  14. package/dist/{chunk-W524B2G5.js → chunk-2ONUMGUO.js} +6 -6
  15. package/dist/{chunk-W524B2G5.js.map → chunk-2ONUMGUO.js.map} +1 -1
  16. package/dist/{chunk-F6LVFAJT.js → chunk-4NS47CJG.js} +3 -3
  17. package/dist/{chunk-F6LVFAJT.js.map → chunk-4NS47CJG.js.map} +1 -1
  18. package/dist/{chunk-GREFQOOJ.js → chunk-56LI2WFN.js} +6 -6
  19. package/dist/{chunk-GREFQOOJ.js.map → chunk-56LI2WFN.js.map} +1 -1
  20. package/dist/chunk-5V2TNYC7.js +3 -0
  21. package/dist/{chunk-KLPONHBL.js.map → chunk-5V2TNYC7.js.map} +1 -1
  22. package/dist/{chunk-62P6SKG3.js → chunk-5V7RWZMP.js} +23 -21
  23. package/dist/chunk-5V7RWZMP.js.map +1 -0
  24. package/dist/{chunk-YYHS5WQN.js → chunk-6BWOYNQD.js} +2 -2
  25. package/dist/{chunk-YYHS5WQN.js.map → chunk-6BWOYNQD.js.map} +1 -1
  26. package/dist/{chunk-DQPSNERX.js → chunk-6CGSM6BR.js} +12 -11
  27. package/dist/chunk-6CGSM6BR.js.map +1 -0
  28. package/dist/{chunk-5M4S6ZMM.js → chunk-6JPPWIE6.js} +6 -6
  29. package/dist/{chunk-5M4S6ZMM.js.map → chunk-6JPPWIE6.js.map} +1 -1
  30. package/dist/chunk-6LCZGDCZ.js +27862 -0
  31. package/dist/chunk-6LCZGDCZ.js.map +1 -0
  32. package/dist/{chunk-MSYTS5K7.js → chunk-6WBUKUHD.js} +3 -3
  33. package/dist/{chunk-MSYTS5K7.js.map → chunk-6WBUKUHD.js.map} +1 -1
  34. package/dist/{chunk-LBR6N2CQ.js → chunk-73SUS6JB.js} +6 -6
  35. package/dist/{chunk-LBR6N2CQ.js.map → chunk-73SUS6JB.js.map} +1 -1
  36. package/dist/{chunk-DS6MOO5K.js → chunk-7XVCTDJE.js} +6 -65
  37. package/dist/chunk-7XVCTDJE.js.map +1 -0
  38. package/dist/{chunk-4HQ4J2J5.js → chunk-A255RZZ7.js} +3 -3
  39. package/dist/{chunk-4HQ4J2J5.js.map → chunk-A255RZZ7.js.map} +1 -1
  40. package/dist/chunk-AOBSYTR2.js +31 -0
  41. package/dist/chunk-AOBSYTR2.js.map +1 -0
  42. package/dist/{chunk-3FDHWX2H.js → chunk-BTRWDUZF.js} +3 -3
  43. package/dist/{chunk-3FDHWX2H.js.map → chunk-BTRWDUZF.js.map} +1 -1
  44. package/dist/{chunk-55IZCKNL.js → chunk-C4E2AE2A.js} +3 -3
  45. package/dist/{chunk-55IZCKNL.js.map → chunk-C4E2AE2A.js.map} +1 -1
  46. package/dist/{chunk-4ORSIPZU.js → chunk-CHCND76E.js} +6 -6
  47. package/dist/{chunk-4ORSIPZU.js.map → chunk-CHCND76E.js.map} +1 -1
  48. package/dist/{chunk-W5LOXC7J.js → chunk-DQQNXXGO.js} +12 -3
  49. package/dist/chunk-DQQNXXGO.js.map +1 -0
  50. package/dist/{chunk-56ZN3TBH.js → chunk-DXKHCIMV.js} +3 -3
  51. package/dist/{chunk-56ZN3TBH.js.map → chunk-DXKHCIMV.js.map} +1 -1
  52. package/dist/{chunk-MOND6K5Z.js → chunk-E533RFGN.js} +6 -6
  53. package/dist/{chunk-MOND6K5Z.js.map → chunk-E533RFGN.js.map} +1 -1
  54. package/dist/{chunk-GXCW6FM7.js → chunk-EWTOIHM7.js} +6 -6
  55. package/dist/{chunk-GXCW6FM7.js.map → chunk-EWTOIHM7.js.map} +1 -1
  56. package/dist/chunk-FA5ZM5UA.js +63 -0
  57. package/dist/chunk-FA5ZM5UA.js.map +1 -0
  58. package/dist/{chunk-N2MDJI4B.js → chunk-FEPV2XB5.js} +3 -3
  59. package/dist/{chunk-N2MDJI4B.js.map → chunk-FEPV2XB5.js.map} +1 -1
  60. package/dist/{chunk-7HEMXLDS.js → chunk-GQRHLW5W.js} +3 -4
  61. package/dist/chunk-GQRHLW5W.js.map +1 -0
  62. package/dist/{chunk-WOIO7FLJ.js → chunk-H725FTFS.js} +6 -6
  63. package/dist/{chunk-WOIO7FLJ.js.map → chunk-H725FTFS.js.map} +1 -1
  64. package/dist/{chunk-ZL5RDZJM.js → chunk-HEPUV3XR.js} +3 -4
  65. package/dist/chunk-HEPUV3XR.js.map +1 -0
  66. package/dist/{chunk-UBIQFNIP.js → chunk-HIY6R6UA.js} +6 -6
  67. package/dist/{chunk-UBIQFNIP.js.map → chunk-HIY6R6UA.js.map} +1 -1
  68. package/dist/{chunk-FIZWWQ64.js → chunk-IZ5ZOZKI.js} +6 -6
  69. package/dist/{chunk-FIZWWQ64.js.map → chunk-IZ5ZOZKI.js.map} +1 -1
  70. package/dist/{chunk-56A6XUJP.js → chunk-JCVDLFPG.js} +6 -6
  71. package/dist/{chunk-56A6XUJP.js.map → chunk-JCVDLFPG.js.map} +1 -1
  72. package/dist/chunk-JUQMINSZ.js +52 -0
  73. package/dist/chunk-JUQMINSZ.js.map +1 -0
  74. package/dist/{chunk-DL4TSGE5.js → chunk-JZOS2MO7.js} +3 -3
  75. package/dist/{chunk-DL4TSGE5.js.map → chunk-JZOS2MO7.js.map} +1 -1
  76. package/dist/{chunk-2BNGYQFQ.js → chunk-KCRWHMDY.js} +3 -3
  77. package/dist/{chunk-2BNGYQFQ.js.map → chunk-KCRWHMDY.js.map} +1 -1
  78. package/dist/{chunk-UNBIJPJU.js → chunk-L3WG36Y4.js} +3 -3
  79. package/dist/{chunk-UNBIJPJU.js.map → chunk-L3WG36Y4.js.map} +1 -1
  80. package/dist/{chunk-S6ZNVXSM.js → chunk-LFZAE7Y2.js} +9 -9
  81. package/dist/{chunk-S6ZNVXSM.js.map → chunk-LFZAE7Y2.js.map} +1 -1
  82. package/dist/{chunk-NQIKXTMI.js → chunk-LKDZEPWZ.js} +3 -3
  83. package/dist/{chunk-NQIKXTMI.js.map → chunk-LKDZEPWZ.js.map} +1 -1
  84. package/dist/chunk-LLJSXMO2.js +32 -0
  85. package/dist/chunk-LLJSXMO2.js.map +1 -0
  86. package/dist/{chunk-SRVFQ34Q.js → chunk-LSMFX4JD.js} +6 -6
  87. package/dist/{chunk-SRVFQ34Q.js.map → chunk-LSMFX4JD.js.map} +1 -1
  88. package/dist/{chunk-2RZXK6C3.js → chunk-MGFDTECS.js} +13 -32
  89. package/dist/chunk-MGFDTECS.js.map +1 -0
  90. package/dist/{chunk-CIOSYWV4.js → chunk-MWDNHKK3.js} +3 -3
  91. package/dist/{chunk-CIOSYWV4.js.map → chunk-MWDNHKK3.js.map} +1 -1
  92. package/dist/{chunk-6F7G6Z5B.js → chunk-NVQX4ODB.js} +6 -6
  93. package/dist/{chunk-6F7G6Z5B.js.map → chunk-NVQX4ODB.js.map} +1 -1
  94. package/dist/{chunk-KSDAKRG5.js → chunk-OGVBMB7Z.js} +16 -11
  95. package/dist/chunk-OGVBMB7Z.js.map +1 -0
  96. package/dist/{chunk-5IYHOWQU.js → chunk-OTKEKB3W.js} +99 -13
  97. package/dist/chunk-OTKEKB3W.js.map +1 -0
  98. package/dist/{chunk-HZ4UGWFE.js → chunk-OZHEHUBV.js} +3 -3
  99. package/dist/{chunk-HZ4UGWFE.js.map → chunk-OZHEHUBV.js.map} +1 -1
  100. package/dist/{chunk-JNAZI3HU.js → chunk-PBZMBJEX.js} +12 -11
  101. package/dist/chunk-PBZMBJEX.js.map +1 -0
  102. package/dist/{chunk-SCBXZLZ5.js → chunk-PHXIWJFQ.js} +20 -15
  103. package/dist/{chunk-SCBXZLZ5.js.map → chunk-PHXIWJFQ.js.map} +1 -1
  104. package/dist/{chunk-KVJL4MTV.js → chunk-PRSHGHAS.js} +10 -9
  105. package/dist/chunk-PRSHGHAS.js.map +1 -0
  106. package/dist/{chunk-TMHKYUPU.js → chunk-R3R3OIH7.js} +6 -6
  107. package/dist/{chunk-TMHKYUPU.js.map → chunk-R3R3OIH7.js.map} +1 -1
  108. package/dist/{chunk-RKL64IOG.js → chunk-TO3DSIJY.js} +8 -8
  109. package/dist/{chunk-RKL64IOG.js.map → chunk-TO3DSIJY.js.map} +1 -1
  110. package/dist/{chunk-BDYNBRT7.js → chunk-UG2YICWH.js} +3 -3
  111. package/dist/{chunk-BDYNBRT7.js.map → chunk-UG2YICWH.js.map} +1 -1
  112. package/dist/{chunk-X5TJG22D.js → chunk-VHG4CIYB.js} +6 -6
  113. package/dist/{chunk-X5TJG22D.js.map → chunk-VHG4CIYB.js.map} +1 -1
  114. package/dist/{chunk-BLSDFC3C.js → chunk-XYNX7PUL.js} +22 -4
  115. package/dist/chunk-XYNX7PUL.js.map +1 -0
  116. package/dist/{chunk-N6CALNFU.js → chunk-YC4GZZJP.js} +3 -3
  117. package/dist/{chunk-N6CALNFU.js.map → chunk-YC4GZZJP.js.map} +1 -1
  118. package/dist/{chunk-MOMQLTSD.js → chunk-YFLJB247.js} +11 -11
  119. package/dist/{chunk-MOMQLTSD.js.map → chunk-YFLJB247.js.map} +1 -1
  120. package/dist/{chunk-IBXICIOY.js → chunk-YGFTNDAQ.js} +6 -6
  121. package/dist/{chunk-IBXICIOY.js.map → chunk-YGFTNDAQ.js.map} +1 -1
  122. package/dist/chunk-YQN6RNJN.js +30 -0
  123. package/dist/chunk-YQN6RNJN.js.map +1 -0
  124. package/dist/{chunk-GFRG6ZPY.js → chunk-ZKPOHCVZ.js} +6 -6
  125. package/dist/{chunk-GFRG6ZPY.js.map → chunk-ZKPOHCVZ.js.map} +1 -1
  126. package/dist/cnaes.js +1 -1
  127. package/dist/cnh.js +6 -3
  128. package/dist/cnpj-motivos.js +1 -1
  129. package/dist/cnpj.js +3 -3
  130. package/dist/compare.d.ts +2 -2
  131. package/dist/compare.js +18 -17
  132. package/dist/cpf.js +2 -3
  133. package/dist/csosn.d.ts +54 -0
  134. package/dist/csosn.js +96 -0
  135. package/dist/csosn.js.map +1 -0
  136. package/dist/data-catalog.js +43 -41
  137. package/dist/data-catalog.js.map +1 -1
  138. package/dist/detect.js +15 -14
  139. package/dist/diff.d.ts +2 -2
  140. package/dist/diff.js +18 -17
  141. package/dist/esocial.d.ts +29 -1
  142. package/dist/esocial.js +1720 -2
  143. package/dist/esocial.js.map +1 -1
  144. package/dist/generate.js +25 -24
  145. package/dist/ibge.js +2 -27860
  146. package/dist/ibge.js.map +1 -1
  147. package/dist/incoterms.js +1 -1
  148. package/dist/{index-CttohJuk.d.ts → index-CmpOAd8U.d.ts} +1 -1
  149. package/dist/index.d.ts +4 -4
  150. package/dist/index.js +41 -40
  151. package/dist/index.js.map +1 -1
  152. package/dist/iss-municipal.d.ts +71 -3
  153. package/dist/iss-municipal.js +45366 -235
  154. package/dist/iss-municipal.js.map +1 -1
  155. package/dist/mask.js +24 -23
  156. package/dist/moedas.js +1 -1
  157. package/dist/natureza-juridica.js +1 -1
  158. package/dist/nbs.js +1 -1
  159. package/dist/ncm.js +1 -1
  160. package/dist/paises-bacen.js +1 -1
  161. package/dist/{pix-B8_PfK2D.d.ts → pix-DhAb6Iho.d.ts} +3 -1
  162. package/dist/pix.d.ts +1 -1
  163. package/dist/pix.js +8 -7
  164. package/dist/placa.js +6 -3
  165. package/dist/pncp-reference.js +1 -1
  166. package/dist/portos.js +1 -1
  167. package/dist/ptax.d.ts +12 -4
  168. package/dist/ptax.js +8367 -252
  169. package/dist/ptax.js.map +1 -1
  170. package/dist/renavam.js +6 -3
  171. package/dist/sanitize.d.ts +1 -1
  172. package/dist/sanitize.js +16 -12
  173. package/dist/selic.js +17 -17
  174. package/dist/selic.js.map +1 -1
  175. package/dist/telefone.js +3 -3
  176. package/dist/titulo-eleitor.js +6 -3
  177. package/dist/transparencia-snapshots.js +2 -2
  178. package/dist/transparencia-snapshots.js.map +1 -1
  179. package/dist/tse-municipios.js +1 -1
  180. package/dist/{types-CTLx5zMu.d.ts → types-DLuN-sEJ.d.ts} +1 -1
  181. package/package.json +5 -1
  182. package/dist/chunk-2RZXK6C3.js.map +0 -1
  183. package/dist/chunk-5IYHOWQU.js.map +0 -1
  184. package/dist/chunk-62P6SKG3.js.map +0 -1
  185. package/dist/chunk-7HEMXLDS.js.map +0 -1
  186. package/dist/chunk-BLSDFC3C.js.map +0 -1
  187. package/dist/chunk-DQPSNERX.js.map +0 -1
  188. package/dist/chunk-DS6MOO5K.js.map +0 -1
  189. package/dist/chunk-JNAZI3HU.js.map +0 -1
  190. package/dist/chunk-KLPONHBL.js +0 -3
  191. package/dist/chunk-KSDAKRG5.js.map +0 -1
  192. package/dist/chunk-KVJL4MTV.js.map +0 -1
  193. package/dist/chunk-RUQDVHR7.js +0 -14
  194. package/dist/chunk-RUQDVHR7.js.map +0 -1
  195. package/dist/chunk-VBFKN3NR.js +0 -14
  196. package/dist/chunk-VBFKN3NR.js.map +0 -1
  197. package/dist/chunk-W5LOXC7J.js.map +0 -1
  198. package/dist/chunk-YUAMWVIU.js +0 -30
  199. package/dist/chunk-YUAMWVIU.js.map +0 -1
  200. package/dist/chunk-ZL5RDZJM.js.map +0 -1
package/dist/renavam.js CHANGED
@@ -1,9 +1,12 @@
1
1
  import './chunk-G24G7WR5.js';
2
- export { formatRenavam } from './chunk-N6CALNFU.js';
3
- export { RENAVAM_BASE_LENGTH, RENAVAM_DV_WEIGHTS, RENAVAM_GOLDEN_DASH_INPUT, RENAVAM_GOLDEN_DV_ZERO, RENAVAM_GOLDEN_LEADING_ZEROS, RENAVAM_GOLDEN_PRIMARY, RENAVAM_GOLDEN_SECONDARY, RENAVAM_LENGTH, RENAVAM_OFFICIAL_SOURCE_URL, RENAVAM_SENATRAN_CONSULTA_URL, isValidRenavam, validateRenavam } from './chunk-F6LVFAJT.js';
4
- export { stripRenavam } from './chunk-YYHS5WQN.js';
2
+ export { formatRenavam } from './chunk-YC4GZZJP.js';
3
+ export { RENAVAM_BASE_LENGTH, RENAVAM_DV_WEIGHTS, RENAVAM_GOLDEN_DASH_INPUT, RENAVAM_GOLDEN_DV_ZERO, RENAVAM_GOLDEN_LEADING_ZEROS, RENAVAM_GOLDEN_PRIMARY, RENAVAM_GOLDEN_SECONDARY, RENAVAM_LENGTH, RENAVAM_OFFICIAL_SOURCE_URL, RENAVAM_SENATRAN_CONSULTA_URL, isValidRenavam, validateRenavam } from './chunk-4NS47CJG.js';
4
+ export { stripRenavam } from './chunk-6BWOYNQD.js';
5
5
  import './chunk-4SNBZFS5.js';
6
+ import './chunk-JUQMINSZ.js';
7
+ import './chunk-FA5ZM5UA.js';
6
8
  import './chunk-UCJPSJN5.js';
9
+ import './chunk-LLJSXMO2.js';
7
10
  import './chunk-EB3G4IG6.js';
8
11
  import './chunk-OTZHMJYE.js';
9
12
  import './chunk-BVMY4IWB.js';
@@ -1,4 +1,4 @@
1
- export { S as SanitizableDocumentType, a as SanitizeOptions, b as SanitizeResult, s as sanitize } from './index-CttohJuk.js';
1
+ export { S as SanitizableDocumentType, a as SanitizeOptions, b as SanitizeResult, s as sanitize } from './index-CmpOAd8U.js';
2
2
  import './validation-result-D4Wrxl7j.js';
3
3
 
4
4
  type FixResult = {
package/dist/sanitize.js CHANGED
@@ -1,30 +1,34 @@
1
- export { sanitize } from './chunk-KSDAKRG5.js';
2
- import './chunk-BLSDFC3C.js';
1
+ export { sanitize } from './chunk-OGVBMB7Z.js';
2
+ import './chunk-XYNX7PUL.js';
3
3
  import './chunk-GVK6IMBF.js';
4
4
  import './chunk-6F3A3NT4.js';
5
- import './chunk-F6LVFAJT.js';
5
+ import './chunk-4NS47CJG.js';
6
6
  import './chunk-A4QBLVVO.js';
7
- import './chunk-HZ4UGWFE.js';
8
- import './chunk-MSYTS5K7.js';
7
+ import './chunk-OZHEHUBV.js';
8
+ import './chunk-6WBUKUHD.js';
9
+ import './chunk-UG2YICWH.js';
9
10
  import './chunk-XRT44FMY.js';
10
11
  import './chunk-HORKZQIH.js';
11
- import './chunk-BDYNBRT7.js';
12
12
  import './chunk-OHBSYBG7.js';
13
13
  import './chunk-FGOPYU2L.js';
14
- import './chunk-GFRG6ZPY.js';
14
+ import './chunk-ZKPOHCVZ.js';
15
15
  import './chunk-OFAU4VTU.js';
16
- import './chunk-55IZCKNL.js';
16
+ import './chunk-C4E2AE2A.js';
17
17
  import './chunk-RY2BSDOR.js';
18
- import './chunk-DL4TSGE5.js';
19
- import './chunk-YYHS5WQN.js';
18
+ import './chunk-JZOS2MO7.js';
19
+ import './chunk-6BWOYNQD.js';
20
20
  import './chunk-4SNBZFS5.js';
21
+ import './chunk-JUQMINSZ.js';
21
22
  import './chunk-W64OQYC4.js';
22
23
  import './chunk-JOBIJQGE.js';
23
24
  import './chunk-UB2ZUHQZ.js';
24
25
  import './chunk-7U64V3YD.js';
25
- import './chunk-W5LOXC7J.js';
26
+ import './chunk-7XVCTDJE.js';
27
+ import './chunk-DQQNXXGO.js';
28
+ import './chunk-FA5ZM5UA.js';
26
29
  import './chunk-UCJPSJN5.js';
27
- import './chunk-2RZXK6C3.js';
30
+ import './chunk-MGFDTECS.js';
31
+ import './chunk-LLJSXMO2.js';
28
32
  import './chunk-EB3G4IG6.js';
29
33
  import './chunk-OTZHMJYE.js';
30
34
  import './chunk-PU5TKJZI.js';
package/dist/selic.js CHANGED
@@ -1,24 +1,8 @@
1
1
  import { parseIsoDateString, addUtcDays, formatIsoDate, isWeekendUtc, isFeriadoNacional } from './chunk-MQG2IR7F.js';
2
- import { metadata_default } from './chunk-RKL64IOG.js';
2
+ import { metadata_default } from './chunk-TO3DSIJY.js';
3
3
 
4
4
  // src/selic/data/selic.json
5
5
  var selic_default = [
6
- {
7
- data: "2026-03-29",
8
- valor: 14.75
9
- },
10
- {
11
- data: "2026-03-30",
12
- valor: 14.75
13
- },
14
- {
15
- data: "2026-03-31",
16
- valor: 14.75
17
- },
18
- {
19
- data: "2026-04-01",
20
- valor: 14.75
21
- },
22
6
  {
23
7
  data: "2026-04-02",
24
8
  valor: 14.75
@@ -362,6 +346,22 @@ var selic_default = [
362
346
  {
363
347
  data: "2026-06-26",
364
348
  valor: 14.25
349
+ },
350
+ {
351
+ data: "2026-06-27",
352
+ valor: 14.25
353
+ },
354
+ {
355
+ data: "2026-06-28",
356
+ valor: 14.25
357
+ },
358
+ {
359
+ data: "2026-06-29",
360
+ valor: 14.25
361
+ },
362
+ {
363
+ data: "2026-06-30",
364
+ valor: 14.25
365
365
  }
366
366
  ];
367
367
 
package/dist/selic.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/selic/data/selic.json","../src/selic/constants.ts","../src/selic/staleness.ts","../src/selic/lookup.ts","../src/selic/version.ts"],"names":[],"mappings":"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","file":"selic.js","sourcesContent":["[\n {\n \"data\": \"2026-03-29\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-03-30\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-03-31\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-01\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-02\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-03\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-04\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-05\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-06\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-07\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-08\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-09\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-10\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-11\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-12\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-13\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-14\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-15\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-16\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-17\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-18\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-19\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-20\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-21\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-22\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-23\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-24\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-25\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-26\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-27\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-28\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-29\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-30\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-01\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-02\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-03\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-04\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-05\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-06\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-07\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-08\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-09\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-10\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-11\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-12\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-13\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-14\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-15\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-16\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-17\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-18\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-19\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-20\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-21\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-22\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-23\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-24\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-25\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-26\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-27\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-28\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-29\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-30\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-31\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-01\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-02\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-03\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-04\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-05\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-06\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-07\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-08\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-09\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-10\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-11\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-12\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-13\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-14\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-15\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-16\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-17\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-18\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-19\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-20\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-21\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-22\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-23\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-24\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-25\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-26\",\n \"valor\": 14.25\n }\n]\n","/**\n * Bacen SGS série 432 — Meta Selic constants.\n * @see https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom\n */\n\nexport const BCB_SELIC_DATASET_URL =\n 'https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom';\n\nexport const BCB_SELIC_SGS_API_URL =\n 'https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json';\n\nexport const BCB_SELIC_SGS_CONSULTA_URL =\n 'https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarGraficoPorId&hdOidSeriesSelecionadas=432';\n\nexport const BCB_SELIC_COPOM_URL = 'https://www.bcb.gov.br/controleinflacao/copom';\n\nexport const SELIC_SGS_SERIE = 432;\n\nexport const SELIC_EMBED_CALENDAR_DAYS = 90;\n\nexport const SELIC_STALE_WARNING =\n 'Embedded data. For real-time use @br-validators/adapters-selic';\n\n/** Golden meta Selic 14,25% a.a. on 2026-06-18 (COPOM). */\nexport const SELIC_GOLDEN_DATA_COPOM = '2026-06-18';\n\nexport const SELIC_GOLDEN_VALOR_COPOM = 14.25;\n","/**\n * SELIC embed staleness — business-day age vs Brazil local today.\n * @see docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432\n */\n\nimport { isFeriadoNacional } from '../feriados/calendar.js';\nimport {\n addUtcDays,\n formatIsoDate,\n isWeekendUtc,\n parseIsoDateString,\n} from '../feriados/date-utils.js';\nimport { SELIC_STALE_WARNING } from './constants.js';\nimport type { SelicLookupOptions, SelicMetaObservacao, SelicMetaResult } from './types.js';\n\nexport function isDiaUtil(isoDate: string): boolean {\n const parts = parseIsoDateString(isoDate);\n if (parts === null) {\n return false;\n }\n return !isWeekendUtc(parts) && !isFeriadoNacional(isoDate);\n}\n\nexport function getBrazilTodayIso(now: Date = new Date()): string {\n return new Intl.DateTimeFormat('en-CA', { timeZone: 'America/Sao_Paulo' }).format(now);\n}\n\nexport function subtractBusinessDays(fromIso: string, businessDays: number): string {\n if (businessDays < 1) {\n return fromIso;\n }\n\n const start = parseIsoDateString(fromIso);\n if (start === null) {\n return '';\n }\n\n let cursor = start;\n let remaining = businessDays;\n const maxIterations = businessDays * 4 + 14;\n\n for (let iteration = 0; iteration < maxIterations && remaining > 0; iteration += 1) {\n cursor = addUtcDays(cursor, -1);\n const iso = formatIsoDate(cursor);\n if (isDiaUtil(iso)) {\n remaining -= 1;\n }\n }\n\n return formatIsoDate(cursor);\n}\n\nexport function isSelicMetaStale(dataReferencia: string, asOfDate: string): boolean {\n const reference = parseIsoDateString(dataReferencia);\n const asOf = parseIsoDateString(asOfDate);\n if (reference === null || asOf === null) {\n return false;\n }\n\n const previousBusinessDay = subtractBusinessDays(asOfDate, 1);\n return dataReferencia < previousBusinessDay;\n}\n\nexport function buildSelicMetaResult(\n observacao: SelicMetaObservacao,\n options?: SelicLookupOptions,\n): SelicMetaResult {\n const asOfDate = options?.asOfDate ?? getBrazilTodayIso();\n const dataReferencia = observacao.data;\n const isStale = isSelicMetaStale(dataReferencia, asOfDate);\n\n return {\n ...observacao,\n dataReferencia,\n isStale,\n ...(isStale ? { warning: SELIC_STALE_WARNING } : {}),\n };\n}\n","/**\n * Bacen SELIC meta (SGS 432) — offline embedded daily series.\n * @see https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json\n */\n\nimport selicData from './data/selic.json';\nimport { buildSelicMetaResult } from './staleness.js';\nimport type {\n SelicHistoricoRange,\n SelicLookupOptions,\n SelicMetaObservacao,\n SelicMetaResult,\n} from './types.js';\n\nconst observacoes: readonly SelicMetaObservacao[] = selicData;\n\nfunction normalizeData(data: string): string {\n const trimmed = data.trim();\n const isoMatch = /^(\\d{4})-(\\d{2})-(\\d{2})$/u.exec(trimmed);\n if (isoMatch !== null) {\n return `${isoMatch[1]}-${isoMatch[2]}-${isoMatch[3]}`;\n }\n\n const bacenMatch = /^(\\d{2})-(\\d{2})-(\\d{4})$/u.exec(trimmed);\n if (bacenMatch !== null) {\n return `${bacenMatch[3]}-${bacenMatch[1]}-${bacenMatch[2]}`;\n }\n\n const slashMatch = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/u.exec(trimmed);\n if (slashMatch !== null) {\n return `${slashMatch[3]}-${slashMatch[2]}-${slashMatch[1]}`;\n }\n\n return '';\n}\n\nfunction compareByDateDesc(left: SelicMetaObservacao, right: SelicMetaObservacao): number {\n return right.data.localeCompare(left.data);\n}\n\nfunction compareByDateAsc(left: SelicMetaObservacao, right: SelicMetaObservacao): number {\n return left.data.localeCompare(right.data);\n}\n\nexport function getSelicList(): readonly SelicMetaObservacao[] {\n return observacoes;\n}\n\nexport function pickLatestSelicMeta(\n items: readonly SelicMetaObservacao[],\n): SelicMetaObservacao | undefined {\n if (items.length === 0) {\n return undefined;\n }\n return [...items].sort(compareByDateDesc)[0];\n}\n\nfunction resolveSelicObservacao(data?: string): SelicMetaObservacao | undefined {\n if (data === undefined) {\n return pickLatestSelicMeta(observacoes);\n }\n\n const normalizedData = normalizeData(data);\n if (normalizedData.length === 0) {\n return undefined;\n }\n\n return observacoes.find((entry) => entry.data === normalizedData);\n}\n\nexport function getSelicMeta(options?: SelicLookupOptions): SelicMetaResult | undefined {\n const observacao = resolveSelicObservacao();\n if (observacao === undefined) {\n return undefined;\n }\n return buildSelicMetaResult(observacao, options);\n}\n\nexport function getSelicMetaPorData(\n isoDate: string,\n options?: SelicLookupOptions,\n): SelicMetaResult | undefined {\n const observacao = resolveSelicObservacao(isoDate);\n if (observacao === undefined) {\n return undefined;\n }\n return buildSelicMetaResult(observacao, options);\n}\n\nexport function getSelicHistorico(range: SelicHistoricoRange): readonly SelicMetaObservacao[] {\n const from = range.from === undefined ? '' : normalizeData(range.from);\n const to = range.to === undefined ? '' : normalizeData(range.to);\n\n if ((range.from !== undefined && from.length === 0) || (range.to !== undefined && to.length === 0)) {\n return [];\n }\n\n if (from.length > 0 && to.length > 0 && from > to) {\n return [];\n }\n\n return observacoes\n .filter((entry) => {\n if (from.length > 0 && entry.data < from) {\n return false;\n }\n if (to.length > 0 && entry.data > to) {\n return false;\n }\n return true;\n })\n .sort(compareByDateAsc);\n}\n","import selicMetadata from './data/metadata.json';\nimport type { SelicDataVersion } from './types.js';\n\nexport const SELIC_DATA_VERSION: SelicDataVersion = selicMetadata as SelicDataVersion;\n"]}
1
+ {"version":3,"sources":["../src/selic/data/selic.json","../src/selic/constants.ts","../src/selic/staleness.ts","../src/selic/lookup.ts","../src/selic/version.ts"],"names":[],"mappings":"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","file":"selic.js","sourcesContent":["[\n {\n \"data\": \"2026-04-02\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-03\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-04\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-05\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-06\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-07\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-08\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-09\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-10\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-11\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-12\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-13\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-14\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-15\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-16\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-17\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-18\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-19\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-20\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-21\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-22\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-23\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-24\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-25\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-26\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-27\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-28\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-29\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-30\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-01\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-02\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-03\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-04\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-05\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-06\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-07\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-08\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-09\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-10\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-11\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-12\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-13\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-14\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-15\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-16\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-17\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-18\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-19\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-20\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-21\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-22\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-23\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-24\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-25\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-26\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-27\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-28\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-29\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-30\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-31\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-01\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-02\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-03\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-04\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-05\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-06\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-07\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-08\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-09\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-10\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-11\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-12\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-13\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-14\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-15\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-16\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-17\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-18\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-19\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-20\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-21\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-22\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-23\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-24\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-25\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-26\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-27\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-28\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-29\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-30\",\n \"valor\": 14.25\n }\n]\n","/**\n * Bacen SGS série 432 — Meta Selic constants.\n * @see https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom\n */\n\nexport const BCB_SELIC_DATASET_URL =\n 'https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom';\n\nexport const BCB_SELIC_SGS_API_URL =\n 'https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json';\n\nexport const BCB_SELIC_SGS_CONSULTA_URL =\n 'https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarGraficoPorId&hdOidSeriesSelecionadas=432';\n\nexport const BCB_SELIC_COPOM_URL = 'https://www.bcb.gov.br/controleinflacao/copom';\n\nexport const SELIC_SGS_SERIE = 432;\n\nexport const SELIC_EMBED_CALENDAR_DAYS = 90;\n\nexport const SELIC_STALE_WARNING =\n 'Embedded data. For real-time use @br-validators/adapters-selic';\n\n/** Golden meta Selic 14,25% a.a. on 2026-06-18 (COPOM). */\nexport const SELIC_GOLDEN_DATA_COPOM = '2026-06-18';\n\nexport const SELIC_GOLDEN_VALOR_COPOM = 14.25;\n","/**\n * SELIC embed staleness — business-day age vs Brazil local today.\n * @see docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432\n */\n\nimport { isFeriadoNacional } from '../feriados/calendar.js';\nimport {\n addUtcDays,\n formatIsoDate,\n isWeekendUtc,\n parseIsoDateString,\n} from '../feriados/date-utils.js';\nimport { SELIC_STALE_WARNING } from './constants.js';\nimport type { SelicLookupOptions, SelicMetaObservacao, SelicMetaResult } from './types.js';\n\nexport function isDiaUtil(isoDate: string): boolean {\n const parts = parseIsoDateString(isoDate);\n if (parts === null) {\n return false;\n }\n return !isWeekendUtc(parts) && !isFeriadoNacional(isoDate);\n}\n\nexport function getBrazilTodayIso(now: Date = new Date()): string {\n return new Intl.DateTimeFormat('en-CA', { timeZone: 'America/Sao_Paulo' }).format(now);\n}\n\nexport function subtractBusinessDays(fromIso: string, businessDays: number): string {\n if (businessDays < 1) {\n return fromIso;\n }\n\n const start = parseIsoDateString(fromIso);\n if (start === null) {\n return '';\n }\n\n let cursor = start;\n let remaining = businessDays;\n const maxIterations = businessDays * 4 + 14;\n\n for (let iteration = 0; iteration < maxIterations && remaining > 0; iteration += 1) {\n cursor = addUtcDays(cursor, -1);\n const iso = formatIsoDate(cursor);\n if (isDiaUtil(iso)) {\n remaining -= 1;\n }\n }\n\n return formatIsoDate(cursor);\n}\n\nexport function isSelicMetaStale(dataReferencia: string, asOfDate: string): boolean {\n const reference = parseIsoDateString(dataReferencia);\n const asOf = parseIsoDateString(asOfDate);\n if (reference === null || asOf === null) {\n return false;\n }\n\n const previousBusinessDay = subtractBusinessDays(asOfDate, 1);\n return dataReferencia < previousBusinessDay;\n}\n\nexport function buildSelicMetaResult(\n observacao: SelicMetaObservacao,\n options?: SelicLookupOptions,\n): SelicMetaResult {\n const asOfDate = options?.asOfDate ?? getBrazilTodayIso();\n const dataReferencia = observacao.data;\n const isStale = isSelicMetaStale(dataReferencia, asOfDate);\n\n return {\n ...observacao,\n dataReferencia,\n isStale,\n ...(isStale ? { warning: SELIC_STALE_WARNING } : {}),\n };\n}\n","/**\n * Bacen SELIC meta (SGS 432) — offline embedded daily series.\n * @see https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json\n */\n\nimport selicData from './data/selic.json';\nimport { buildSelicMetaResult } from './staleness.js';\nimport type {\n SelicHistoricoRange,\n SelicLookupOptions,\n SelicMetaObservacao,\n SelicMetaResult,\n} from './types.js';\n\nconst observacoes: readonly SelicMetaObservacao[] = selicData;\n\nfunction normalizeData(data: string): string {\n const trimmed = data.trim();\n const isoMatch = /^(\\d{4})-(\\d{2})-(\\d{2})$/u.exec(trimmed);\n if (isoMatch !== null) {\n return `${isoMatch[1]}-${isoMatch[2]}-${isoMatch[3]}`;\n }\n\n const bacenMatch = /^(\\d{2})-(\\d{2})-(\\d{4})$/u.exec(trimmed);\n if (bacenMatch !== null) {\n return `${bacenMatch[3]}-${bacenMatch[1]}-${bacenMatch[2]}`;\n }\n\n const slashMatch = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/u.exec(trimmed);\n if (slashMatch !== null) {\n return `${slashMatch[3]}-${slashMatch[2]}-${slashMatch[1]}`;\n }\n\n return '';\n}\n\nfunction compareByDateDesc(left: SelicMetaObservacao, right: SelicMetaObservacao): number {\n return right.data.localeCompare(left.data);\n}\n\nfunction compareByDateAsc(left: SelicMetaObservacao, right: SelicMetaObservacao): number {\n return left.data.localeCompare(right.data);\n}\n\nexport function getSelicList(): readonly SelicMetaObservacao[] {\n return observacoes;\n}\n\nexport function pickLatestSelicMeta(\n items: readonly SelicMetaObservacao[],\n): SelicMetaObservacao | undefined {\n if (items.length === 0) {\n return undefined;\n }\n return [...items].sort(compareByDateDesc)[0];\n}\n\nfunction resolveSelicObservacao(data?: string): SelicMetaObservacao | undefined {\n if (data === undefined) {\n return pickLatestSelicMeta(observacoes);\n }\n\n const normalizedData = normalizeData(data);\n if (normalizedData.length === 0) {\n return undefined;\n }\n\n return observacoes.find((entry) => entry.data === normalizedData);\n}\n\nexport function getSelicMeta(options?: SelicLookupOptions): SelicMetaResult | undefined {\n const observacao = resolveSelicObservacao();\n if (observacao === undefined) {\n return undefined;\n }\n return buildSelicMetaResult(observacao, options);\n}\n\nexport function getSelicMetaPorData(\n isoDate: string,\n options?: SelicLookupOptions,\n): SelicMetaResult | undefined {\n const observacao = resolveSelicObservacao(isoDate);\n if (observacao === undefined) {\n return undefined;\n }\n return buildSelicMetaResult(observacao, options);\n}\n\nexport function getSelicHistorico(range: SelicHistoricoRange): readonly SelicMetaObservacao[] {\n const from = range.from === undefined ? '' : normalizeData(range.from);\n const to = range.to === undefined ? '' : normalizeData(range.to);\n\n if ((range.from !== undefined && from.length === 0) || (range.to !== undefined && to.length === 0)) {\n return [];\n }\n\n if (from.length > 0 && to.length > 0 && from > to) {\n return [];\n }\n\n return observacoes\n .filter((entry) => {\n if (from.length > 0 && entry.data < from) {\n return false;\n }\n if (to.length > 0 && entry.data > to) {\n return false;\n }\n return true;\n })\n .sort(compareByDateAsc);\n}\n","import selicMetadata from './data/metadata.json';\nimport type { SelicDataVersion } from './types.js';\n\nexport const SELIC_DATA_VERSION: SelicDataVersion = selicMetadata as SelicDataVersion;\n"]}
package/dist/telefone.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import './chunk-ZH4RJNG7.js';
2
- export { formatTelefone } from './chunk-S4WEXFHC.js';
3
- export { ANATEL_DDDS, ANATEL_DDD_SET, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_DDD_DATA_VERSION, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, extractTelefoneDigits, getDddInfo, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone } from './chunk-HZ4UGWFE.js';
4
- import './chunk-GFRG6ZPY.js';
2
+ export { formatTelefone } from './chunk-2COBLRJZ.js';
3
+ export { ANATEL_DDDS, ANATEL_DDD_SET, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_DDD_DATA_VERSION, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, extractTelefoneDigits, getDddInfo, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone } from './chunk-OZHEHUBV.js';
4
+ import './chunk-ZKPOHCVZ.js';
5
5
  import './chunk-BVMY4IWB.js';
6
6
  //# sourceMappingURL=telefone.js.map
7
7
  //# sourceMappingURL=telefone.js.map
@@ -1,9 +1,12 @@
1
1
  import './chunk-7ULDLG4C.js';
2
- export { formatTituloEleitor } from './chunk-4HQ4J2J5.js';
3
- export { TITULO_ELEITOR_ALGORITHM_REF_URL, TITULO_ELEITOR_ALGORITHM_WEIGHTS_REF_URL, TITULO_ELEITOR_DV1_WEIGHTS_8, TITULO_ELEITOR_DV1_WEIGHTS_9, TITULO_ELEITOR_DV2_WEIGHTS, TITULO_ELEITOR_ETITULO_URL, TITULO_ELEITOR_EXTERIOR_UF_CODE, TITULO_ELEITOR_GOLDEN_EXTERIOR, TITULO_ELEITOR_GOLDEN_MASKED_INPUT, TITULO_ELEITOR_GOLDEN_PRIMARY, TITULO_ELEITOR_GOLDEN_SP_EXTENDED, TITULO_ELEITOR_GOLDEN_SP_SPECIAL, TITULO_ELEITOR_LENGTH, TITULO_ELEITOR_LENGTH_EXTENDED, TITULO_ELEITOR_NORMATIVE_SECONDARY_URL, TITULO_ELEITOR_NUMERIC_PATTERN_12, TITULO_ELEITOR_NUMERIC_PATTERN_13, TITULO_ELEITOR_OFFICIAL_SOURCE_URL, TITULO_ELEITOR_SEQUENTIAL_LENGTH, TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED, TITULO_ELEITOR_SPECIAL_UF_CODES, TITULO_ELEITOR_TSE_PORTAL_URL, TITULO_ELEITOR_UF_BY_CODE, isValidTituloEleitor, validateTituloEleitor } from './chunk-MSYTS5K7.js';
4
- export { stripTituloEleitor } from './chunk-YYHS5WQN.js';
2
+ export { formatTituloEleitor } from './chunk-A255RZZ7.js';
3
+ export { TITULO_ELEITOR_ALGORITHM_REF_URL, TITULO_ELEITOR_ALGORITHM_WEIGHTS_REF_URL, TITULO_ELEITOR_DV1_WEIGHTS_8, TITULO_ELEITOR_DV1_WEIGHTS_9, TITULO_ELEITOR_DV2_WEIGHTS, TITULO_ELEITOR_ETITULO_URL, TITULO_ELEITOR_EXTERIOR_UF_CODE, TITULO_ELEITOR_GOLDEN_EXTERIOR, TITULO_ELEITOR_GOLDEN_MASKED_INPUT, TITULO_ELEITOR_GOLDEN_PRIMARY, TITULO_ELEITOR_GOLDEN_SP_EXTENDED, TITULO_ELEITOR_GOLDEN_SP_SPECIAL, TITULO_ELEITOR_LENGTH, TITULO_ELEITOR_LENGTH_EXTENDED, TITULO_ELEITOR_NORMATIVE_SECONDARY_URL, TITULO_ELEITOR_NUMERIC_PATTERN_12, TITULO_ELEITOR_NUMERIC_PATTERN_13, TITULO_ELEITOR_OFFICIAL_SOURCE_URL, TITULO_ELEITOR_SEQUENTIAL_LENGTH, TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED, TITULO_ELEITOR_SPECIAL_UF_CODES, TITULO_ELEITOR_TSE_PORTAL_URL, TITULO_ELEITOR_UF_BY_CODE, isValidTituloEleitor, validateTituloEleitor } from './chunk-6WBUKUHD.js';
4
+ export { stripTituloEleitor } from './chunk-6BWOYNQD.js';
5
5
  import './chunk-4SNBZFS5.js';
6
+ import './chunk-JUQMINSZ.js';
7
+ import './chunk-FA5ZM5UA.js';
6
8
  import './chunk-UCJPSJN5.js';
9
+ import './chunk-LLJSXMO2.js';
7
10
  import './chunk-EB3G4IG6.js';
8
11
  import './chunk-OTZHMJYE.js';
9
12
  import './chunk-BVMY4IWB.js';
@@ -1,10 +1,10 @@
1
- import { metadata_default } from './chunk-6F7G6Z5B.js';
1
+ import { metadata_default } from './chunk-NVQX4ODB.js';
2
2
  import { stripCpf } from './chunk-UCJPSJN5.js';
3
3
  import { stripCnpj } from './chunk-EB3G4IG6.js';
4
4
 
5
5
  // src/transparencia-snapshots/data/endpoints.json
6
6
  var endpoints_default = {
7
- capturadoEm: "2026-06-26T13:38:55.299Z",
7
+ capturadoEm: "2026-06-30T07:23:18.315Z",
8
8
  swaggerOk: true,
9
9
  openapiOk: true,
10
10
  cadastroUrl: "https://portaldatransparencia.gov.br/",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/transparencia-snapshots/data/endpoints.json","../src/transparencia-snapshots/lookup.ts","../src/transparencia-snapshots/normalize.ts","../src/transparencia-snapshots/constants.ts","../src/transparencia-snapshots/version.ts"],"names":[],"mappings":"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","file":"transparencia-snapshots.js","sourcesContent":["{\n \"capturadoEm\": \"2026-06-26T13:38:55.299Z\",\n \"swaggerOk\": true,\n \"openapiOk\": true,\n \"cadastroUrl\": \"https://portaldatransparencia.gov.br/\",\n \"adapterPackage\": \"@br-validators/adapters-transparencia\",\n \"endpoints\": [\n {\n \"id\": \"ceis\",\n \"path\": \"/api-de-dados/ceis\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro de Empresas Inidôneas e Suspensas — paginated query by CNPJ/CPF\"\n },\n {\n \"id\": \"cnep\",\n \"path\": \"/api-de-dados/cnep\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro Nacional de Empresas Punidas — paginated query by CNPJ/CPF\"\n },\n {\n \"id\": \"ceaf\",\n \"path\": \"/api-de-dados/ceaf\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro de Expulsões da Administração Federal — paginated query\"\n },\n {\n \"id\": \"peps\",\n \"path\": \"/api-de-dados/peps\",\n \"domain\": \"pep\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Pessoas Expostas Politicamente — paginated query; no open bulk export in v1\"\n },\n {\n \"id\": \"bolsa-familia\",\n \"path\": \"/api-de-dados/bolsa-familia-beneficios\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Bolsa Família benefits — query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"bpc\",\n \"path\": \"/api-de-dados/beneficios-por-pessoa\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"BPC and related benefits — query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"auxilio-emergencial\",\n \"path\": \"/api-de-dados/auxilio-emergencial\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Auxílio Emergencial — historical query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"despesas\",\n \"path\": \"/api-de-dados/despesas\",\n \"domain\": \"budget\",\n \"delivery\": \"out-of-scope\",\n \"description\": \"Federal spending — high volume; out of scope for core embed v1\"\n }\n ]\n}\n","/**\n * Portal da Transparência endpoint registry — offline metadata (no live API in core).\n * @see docs/OFFICIAL-SOURCES.md#portal-transparencia\n */\n\nimport registryData from './data/endpoints.json';\nimport type { TransparenciaEndpoint, TransparenciaSnapshotsRegistry } from './types.js';\n\nconst registry = registryData as TransparenciaSnapshotsRegistry;\nconst endpoints: readonly TransparenciaEndpoint[] = registry.endpoints;\n\nexport function getTransparenciaRegistry(): TransparenciaSnapshotsRegistry {\n return registry;\n}\n\nexport function getTransparenciaEndpoints(): readonly TransparenciaEndpoint[] {\n return endpoints;\n}\n\nexport function getTransparenciaEndpointPorId(id: string): TransparenciaEndpoint | undefined {\n const normalized = id.trim().toLowerCase();\n if (normalized.length === 0) {\n return undefined;\n }\n return endpoints.find((endpoint) => endpoint.id === normalized);\n}\n\nexport function getTransparenciaEndpointsPorDominio(domain: string): readonly TransparenciaEndpoint[] {\n const normalized = domain.trim().toLowerCase();\n if (normalized.length === 0) {\n return [];\n }\n return endpoints.filter((endpoint) => endpoint.domain === normalized);\n}\n\nexport function getTransparenciaQueryAdapterEndpoints(): readonly TransparenciaEndpoint[] {\n return endpoints.filter((endpoint) => endpoint.delivery === 'query-adapter');\n}\n","/**\n * Normalize identifiers for Transparência adapter queries — delegates to core strip helpers.\n * @see docs/ADAPTERS-TRANSPARENCIA-RFC.md\n */\n\nimport { stripCnpj } from '../strip/cnpj.js';\nimport { stripCpf } from '../strip/cpf.js';\n\nexport function normalizeTransparenciaCpf(input: string): string {\n return stripCpf(input);\n}\n\nexport function normalizeTransparenciaCnpj(input: string): string {\n return stripCnpj(input);\n}\n","export const TRANSPARENCIA_SWAGGER_URL =\n 'https://api.portaldatransparencia.gov.br/swagger-ui/index.html';\n\nexport const TRANSPARENCIA_OPENAPI_URL = 'https://api.portaldatransparencia.gov.br/v3/api-docs';\n\nexport const TRANSPARENCIA_CADASTRO_URL = 'https://portaldatransparencia.gov.br/';\n\nexport const TRANSPARENCIA_ADAPTER_PACKAGE = '@br-validators/adapters-transparencia';\n\nexport const TRANSPARENCIA_GOLDEN_CEIS_PATH = '/api-de-dados/ceis';\n","import transparenciaMetadata from './data/metadata.json';\nimport type { TransparenciaSnapshotsDataVersion } from './types.js';\n\nexport const TRANSPARENCIA_SNAPSHOTS_DATA_VERSION: TransparenciaSnapshotsDataVersion =\n transparenciaMetadata as TransparenciaSnapshotsDataVersion;\n"]}
1
+ {"version":3,"sources":["../src/transparencia-snapshots/data/endpoints.json","../src/transparencia-snapshots/lookup.ts","../src/transparencia-snapshots/normalize.ts","../src/transparencia-snapshots/constants.ts","../src/transparencia-snapshots/version.ts"],"names":[],"mappings":";;;;;AAAA,IAAA,iBAAA,GAAA;AAAA,EACE,WAAA,EAAe,0BAAA;AAAA,EACf,SAAA,EAAa,IAAA;AAAA,EACb,SAAA,EAAa,IAAA;AAAA,EACb,WAAA,EAAe,uCAAA;AAAA,EACf,cAAA,EAAkB,uCAAA;AAAA,EAClB,SAAA,EAAa;AAAA,IACX;AAAA,MACE,EAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAQ,oBAAA;AAAA,MACR,MAAA,EAAU,WAAA;AAAA,MACV,QAAA,EAAY,eAAA;AAAA,MACZ,WAAA,EAAe;AAAA,KACjB;AAAA,IACA;AAAA,MACE,EAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAQ,oBAAA;AAAA,MACR,MAAA,EAAU,WAAA;AAAA,MACV,QAAA,EAAY,eAAA;AAAA,MACZ,WAAA,EAAe;AAAA,KACjB;AAAA,IACA;AAAA,MACE,EAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAQ,oBAAA;AAAA,MACR,MAAA,EAAU,WAAA;AAAA,MACV,QAAA,EAAY,eAAA;AAAA,MACZ,WAAA,EAAe;AAAA,KACjB;AAAA,IACA;AAAA,MACE,EAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAQ,oBAAA;AAAA,MACR,MAAA,EAAU,KAAA;AAAA,MACV,QAAA,EAAY,eAAA;AAAA,MACZ,WAAA,EAAe;AAAA,KACjB;AAAA,IACA;AAAA,MACE,EAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAQ,wCAAA;AAAA,MACR,MAAA,EAAU,iBAAA;AAAA,MACV,QAAA,EAAY,eAAA;AAAA,MACZ,WAAA,EAAe;AAAA,KACjB;AAAA,IACA;AAAA,MACE,EAAA,EAAM,KAAA;AAAA,MACN,IAAA,EAAQ,qCAAA;AAAA,MACR,MAAA,EAAU,iBAAA;AAAA,MACV,QAAA,EAAY,eAAA;AAAA,MACZ,WAAA,EAAe;AAAA,KACjB;AAAA,IACA;AAAA,MACE,EAAA,EAAM,qBAAA;AAAA,MACN,IAAA,EAAQ,mCAAA;AAAA,MACR,MAAA,EAAU,iBAAA;AAAA,MACV,QAAA,EAAY,eAAA;AAAA,MACZ,WAAA,EAAe;AAAA,KACjB;AAAA,IACA;AAAA,MACE,EAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAQ,wBAAA;AAAA,MACR,MAAA,EAAU,QAAA;AAAA,MACV,QAAA,EAAY,cAAA;AAAA,MACZ,WAAA,EAAe;AAAA;AACjB;AAEJ,CAAA;;;ACxDA,IAAM,QAAA,GAAW,iBAAA;AACjB,IAAM,YAA8C,QAAA,CAAS,SAAA;AAEtD,SAAS,wBAAA,GAA2D;AACzE,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,yBAAA,GAA8D;AAC5E,EAAA,OAAO,SAAA;AACT;AAEO,SAAS,8BAA8B,EAAA,EAA+C;AAC3F,EAAA,MAAM,UAAA,GAAa,EAAA,CAAG,IAAA,EAAK,CAAE,WAAA,EAAY;AACzC,EAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC3B,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,UAAU,IAAA,CAAK,CAAC,QAAA,KAAa,QAAA,CAAS,OAAO,UAAU,CAAA;AAChE;AAEO,SAAS,oCAAoC,MAAA,EAAkD;AACpG,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,IAAA,EAAK,CAAE,WAAA,EAAY;AAC7C,EAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC3B,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,UAAU,MAAA,CAAO,CAAC,QAAA,KAAa,QAAA,CAAS,WAAW,UAAU,CAAA;AACtE;AAEO,SAAS,qCAAA,GAA0E;AACxF,EAAA,OAAO,UAAU,MAAA,CAAO,CAAC,QAAA,KAAa,QAAA,CAAS,aAAa,eAAe,CAAA;AAC7E;;;AC7BO,SAAS,0BAA0B,KAAA,EAAuB;AAC/D,EAAA,OAAO,SAAS,KAAK,CAAA;AACvB;AAEO,SAAS,2BAA2B,KAAA,EAAuB;AAChE,EAAA,OAAO,UAAU,KAAK,CAAA;AACxB;;;ACdO,IAAM,yBAAA,GACX;AAEK,IAAM,yBAAA,GAA4B;AAElC,IAAM,0BAAA,GAA6B;AAEnC,IAAM,6BAAA,GAAgC;AAEtC,IAAM,8BAAA,GAAiC;;;ACNvC,IAAM,oCAAA,GACX","file":"transparencia-snapshots.js","sourcesContent":["{\n \"capturadoEm\": \"2026-06-30T07:23:18.315Z\",\n \"swaggerOk\": true,\n \"openapiOk\": true,\n \"cadastroUrl\": \"https://portaldatransparencia.gov.br/\",\n \"adapterPackage\": \"@br-validators/adapters-transparencia\",\n \"endpoints\": [\n {\n \"id\": \"ceis\",\n \"path\": \"/api-de-dados/ceis\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro de Empresas Inidôneas e Suspensas — paginated query by CNPJ/CPF\"\n },\n {\n \"id\": \"cnep\",\n \"path\": \"/api-de-dados/cnep\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro Nacional de Empresas Punidas — paginated query by CNPJ/CPF\"\n },\n {\n \"id\": \"ceaf\",\n \"path\": \"/api-de-dados/ceaf\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro de Expulsões da Administração Federal — paginated query\"\n },\n {\n \"id\": \"peps\",\n \"path\": \"/api-de-dados/peps\",\n \"domain\": \"pep\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Pessoas Expostas Politicamente — paginated query; no open bulk export in v1\"\n },\n {\n \"id\": \"bolsa-familia\",\n \"path\": \"/api-de-dados/bolsa-familia-beneficios\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Bolsa Família benefits — query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"bpc\",\n \"path\": \"/api-de-dados/beneficios-por-pessoa\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"BPC and related benefits — query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"auxilio-emergencial\",\n \"path\": \"/api-de-dados/auxilio-emergencial\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Auxílio Emergencial — historical query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"despesas\",\n \"path\": \"/api-de-dados/despesas\",\n \"domain\": \"budget\",\n \"delivery\": \"out-of-scope\",\n \"description\": \"Federal spending — high volume; out of scope for core embed v1\"\n }\n ]\n}\n","/**\n * Portal da Transparência endpoint registry — offline metadata (no live API in core).\n * @see docs/OFFICIAL-SOURCES.md#portal-transparencia\n */\n\nimport registryData from './data/endpoints.json';\nimport type { TransparenciaEndpoint, TransparenciaSnapshotsRegistry } from './types.js';\n\nconst registry = registryData as TransparenciaSnapshotsRegistry;\nconst endpoints: readonly TransparenciaEndpoint[] = registry.endpoints;\n\nexport function getTransparenciaRegistry(): TransparenciaSnapshotsRegistry {\n return registry;\n}\n\nexport function getTransparenciaEndpoints(): readonly TransparenciaEndpoint[] {\n return endpoints;\n}\n\nexport function getTransparenciaEndpointPorId(id: string): TransparenciaEndpoint | undefined {\n const normalized = id.trim().toLowerCase();\n if (normalized.length === 0) {\n return undefined;\n }\n return endpoints.find((endpoint) => endpoint.id === normalized);\n}\n\nexport function getTransparenciaEndpointsPorDominio(domain: string): readonly TransparenciaEndpoint[] {\n const normalized = domain.trim().toLowerCase();\n if (normalized.length === 0) {\n return [];\n }\n return endpoints.filter((endpoint) => endpoint.domain === normalized);\n}\n\nexport function getTransparenciaQueryAdapterEndpoints(): readonly TransparenciaEndpoint[] {\n return endpoints.filter((endpoint) => endpoint.delivery === 'query-adapter');\n}\n","/**\n * Normalize identifiers for Transparência adapter queries — delegates to core strip helpers.\n * @see docs/ADAPTERS-TRANSPARENCIA-RFC.md\n */\n\nimport { stripCnpj } from '../strip/cnpj.js';\nimport { stripCpf } from '../strip/cpf.js';\n\nexport function normalizeTransparenciaCpf(input: string): string {\n return stripCpf(input);\n}\n\nexport function normalizeTransparenciaCnpj(input: string): string {\n return stripCnpj(input);\n}\n","export const TRANSPARENCIA_SWAGGER_URL =\n 'https://api.portaldatransparencia.gov.br/swagger-ui/index.html';\n\nexport const TRANSPARENCIA_OPENAPI_URL = 'https://api.portaldatransparencia.gov.br/v3/api-docs';\n\nexport const TRANSPARENCIA_CADASTRO_URL = 'https://portaldatransparencia.gov.br/';\n\nexport const TRANSPARENCIA_ADAPTER_PACKAGE = '@br-validators/adapters-transparencia';\n\nexport const TRANSPARENCIA_GOLDEN_CEIS_PATH = '/api-de-dados/ceis';\n","import transparenciaMetadata from './data/metadata.json';\nimport type { TransparenciaSnapshotsDataVersion } from './types.js';\n\nexport const TRANSPARENCIA_SNAPSHOTS_DATA_VERSION: TransparenciaSnapshotsDataVersion =\n transparenciaMetadata as TransparenciaSnapshotsDataVersion;\n"]}
@@ -1,4 +1,4 @@
1
- import { metadata_default } from './chunk-W524B2G5.js';
1
+ import { metadata_default } from './chunk-2ONUMGUO.js';
2
2
  import { resolveFixedLengthCodeLookup } from './chunk-2WWKXKJV.js';
3
3
  import { unwrapLookupValue } from './chunk-3F3YHV65.js';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import { U as UfCode } from './validation-result-D4Wrxl7j.js';
2
- import { S as SanitizableDocumentType } from './index-CttohJuk.js';
2
+ import { S as SanitizableDocumentType } from './index-CmpOAd8U.js';
3
3
 
4
4
  /** Document types supported by compare, batch, and diff platform APIs. */
5
5
  type PlatformDocumentType = SanitizableDocumentType | 'pix' | 'brcode';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@br-validators/core",
3
- "version": "1.9.0",
3
+ "version": "1.10.0-data.2",
4
4
  "description": "The Brazilian document validation library for TypeScript — CPF, CNPJ (alphanumeric), NF-e, PIX, boleto, IE (27 UFs), offline IBGE/ANP/NCM/CST/LC116 reference data, and 15+ more. Zero deps, fully typed, never throws.",
5
5
  "homepage": "https://www.npmjs.com/package/@br-validators/core",
6
6
  "license": "MIT",
@@ -274,6 +274,10 @@
274
274
  "types": "./dist/cst.d.ts",
275
275
  "import": "./dist/cst.js"
276
276
  },
277
+ "./csosn": {
278
+ "types": "./dist/csosn.d.ts",
279
+ "import": "./dist/csosn.js"
280
+ },
277
281
  "./lc116": {
278
282
  "types": "./dist/lc116.d.ts",
279
283
  "import": "./dist/lc116.js"
@@ -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"],"names":[],"mappings":"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","file":"chunk-2RZXK6C3.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 { Cnpj, DocumentFormat, ValidationResult } from '../../types/validation-result.js';\nimport { brandCnpj } from '../../types/validation-result.js';\nimport { isValidCnpjAlphanumeric } from './alphanumeric.js';\nimport { CNPJ_LENGTH } from './constants.js';\nimport { containsLetter, detectCnpjFormat } from './detect.js';\nimport { isValidCnpjNumeric } from './numeric.js';\n\nexport { detectCnpjFormat, containsLetter } from './detect.js';\nexport { isValidCnpjAlphanumeric } from './alphanumeric.js';\nexport { isValidCnpjNumeric } from './numeric.js';\nexport {\n CNPJ_GOLDEN_ALPHANUMERIC,\n CNPJ_GOLDEN_ALPHANUMERIC_MASKED,\n CNPJ_GOLDEN_NUMERIC,\n CNPJ_GOLDEN_NUMERIC_MASKED,\n CNPJ_OFFICIAL_SOURCE_URL,\n} from './constants.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction validateStructure(\n input: string,\n stripped: string,\n): FailedResult | { format: DocumentFormat } {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CNPJ input is empty');\n }\n\n const withoutMask = input.replace(/[.\\-/]/g, '');\n if (/[^A-Za-z0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CNPJ contains invalid characters');\n }\n\n if (stripped.length !== CNPJ_LENGTH) {\n return failure('INVALID_LENGTH', `CNPJ must have ${CNPJ_LENGTH} characters after normalization`);\n }\n\n const format = detectCnpjFormat(stripped);\n if (format === 'unknown') {\n return failure('UNSUPPORTED_FORMAT', 'CNPJ format is not numeric or alphanumeric');\n }\n\n return { format };\n}\n\nexport function isValidCnpj(input: string): boolean {\n return validateCnpj(input).ok;\n}\n\nexport function validateCnpj(input: string): ValidationResult<Cnpj> {\n const stripped = stripCnpj(input);\n const structural = validateStructure(input, stripped);\n if ('ok' in structural) {\n return structural;\n }\n\n const { format } = structural;\n\n if (format === 'numeric' || !containsLetter(stripped)) {\n if (isValidCnpjNumeric(stripped)) {\n return { ok: true, value: brandCnpj(stripped), format: 'numeric' };\n }\n if (format === 'numeric') {\n if (/^(\\d)\\1{13}$/.test(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'CNPJ with all identical digits is invalid');\n }\n return failure('INVALID_CHECK_DIGIT', 'CNPJ check digits are invalid');\n }\n }\n\n if (isValidCnpjAlphanumeric(stripped)) {\n return { ok: true, value: brandCnpj(stripped), format: 'alphanumeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'CNPJ check digits are invalid');\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/platform/validate-dispatch.ts","../src/batch/index.ts"],"names":[],"mappings":"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","file":"chunk-5IYHOWQU.js","sourcesContent":["import { validateBrCode } from '../core/brcode/index.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg } from '../core/rg/index.js';\nimport type { RgUfCode } from '../types/validation-result.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport type { UfCode, ValidationErrorCode } from '../types/validation-result.js';\nimport type { PlatformDocumentType, PlatformOptions } from './types.js';\n\nexport type ValidateDispatchSuccess = { ok: true; value: string };\nexport type ValidateDispatchFailure = {\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\nexport type ValidateDispatchResult = ValidateDispatchSuccess | ValidateDispatchFailure;\n\nexport function validateForPlatform(\n input: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): ValidateDispatchResult {\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual validation',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG validation',\n };\n }\n\n switch (type) {\n case 'cpf': {\n const result = validateCpf(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnpj': {\n const result = validateCnpj(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cep': {\n const result = validateCep(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'placa': {\n const result = validatePlaca(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'telefone': {\n const result = validateTelefone(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnh': {\n const result = validateCnh(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'renavam': {\n const result = validateRenavam(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'rg': {\n const result = validateRg(input, { uf: options.uf as RgUfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'boleto': {\n const result = validateBoleto(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'ean': {\n const result = validateEan(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual': {\n const result = validateInscricaoEstadual(input, { uf: options.uf as UfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pix': {\n const result = validatePixKey(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'brcode': {\n const result = validateBrCode(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n default: {\n const _exhaustive: never = type;\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: `Unsupported type: ${String(_exhaustive)}`,\n };\n }\n }\n}\n","/**\n * Batch validation — maps `validate*` per row, never throws (BR-BATCH-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { validateForPlatform } from '../platform/validate-dispatch.js';\nimport type { PlatformDocumentType, PlatformOptions } from '../platform/types.js';\nimport type { ValidationErrorCode } from '../types/validation-result.js';\n\nexport type BatchValidEntry = {\n index: number;\n input: string;\n value: string;\n};\n\nexport type BatchInvalidEntry = {\n index: number;\n input: string;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type BatchSummary = {\n total: number;\n valid: number;\n invalid: number;\n};\n\nexport type BatchResult = {\n valid: BatchValidEntry[];\n invalid: BatchInvalidEntry[];\n summary: BatchSummary;\n};\n\nexport function batch(\n inputs: readonly string[],\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): BatchResult {\n const valid: BatchValidEntry[] = [];\n const invalid: BatchInvalidEntry[] = [];\n\n inputs.forEach((input, index) => {\n const result = validateForPlatform(input, type, options);\n if (result.ok) {\n valid.push({ index, input, value: result.value });\n } else {\n invalid.push({ index, input, code: result.code, message: result.message });\n }\n });\n\n return {\n valid,\n invalid,\n summary: {\n total: inputs.length,\n valid: valid.length,\n invalid: invalid.length,\n },\n };\n}\n"]}