@stll/stdnum 2.1.1 → 2.1.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 (1181) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +1 -0
  2. package/dist/ad/mod.d.ts +0 -2
  3. package/dist/ad/mod.js +1 -1
  4. package/dist/ad/mod.js.map +1 -1
  5. package/dist/ad/nrt.d.ts +4 -21
  6. package/dist/ad/nrt.js +9 -53
  7. package/dist/ad/nrt.js.map +1 -1
  8. package/dist/ae/eid.d.ts +3 -9
  9. package/dist/ae/eid.js +9 -65
  10. package/dist/ae/eid.js.map +1 -1
  11. package/dist/ae/mod.d.ts +0 -2
  12. package/dist/ae/mod.js +1 -1
  13. package/dist/ae/mod.js.map +1 -1
  14. package/dist/ai/mod.d.ts +0 -2
  15. package/dist/ai/mod.js +1 -1
  16. package/dist/ai/mod.js.map +1 -1
  17. package/dist/ai/tin.d.ts +4 -31
  18. package/dist/ai/tin.js +9 -51
  19. package/dist/ai/tin.js.map +1 -1
  20. package/dist/al/mod.d.ts +0 -2
  21. package/dist/al/mod.js +1 -1
  22. package/dist/al/mod.js.map +1 -1
  23. package/dist/al/nipt.d.ts +4 -18
  24. package/dist/al/nipt.js +9 -42
  25. package/dist/al/nipt.js.map +1 -1
  26. package/dist/am/mod.d.ts +0 -2
  27. package/dist/am/mod.js +1 -1
  28. package/dist/am/mod.js.map +1 -1
  29. package/dist/am/tin.d.ts +4 -21
  30. package/dist/am/tin.js +9 -36
  31. package/dist/am/tin.js.map +1 -1
  32. package/dist/ar/cbu.d.ts +3 -6
  33. package/dist/ar/cbu.js +9 -76
  34. package/dist/ar/cbu.js.map +1 -1
  35. package/dist/ar/cuit.d.ts +3 -11
  36. package/dist/ar/cuit.js +9 -103
  37. package/dist/ar/cuit.js.map +1 -1
  38. package/dist/ar/dni.d.ts +4 -16
  39. package/dist/ar/dni.js +9 -45
  40. package/dist/ar/dni.js.map +1 -1
  41. package/dist/ar/mod.d.ts +0 -2
  42. package/dist/ar/mod.js +1 -1
  43. package/dist/ar/mod.js.map +1 -1
  44. package/dist/at/businessid.d.ts +4 -15
  45. package/dist/at/businessid.js +9 -45
  46. package/dist/at/businessid.js.map +1 -1
  47. package/dist/at/mod.d.ts +0 -2
  48. package/dist/at/mod.js +1 -1
  49. package/dist/at/mod.js.map +1 -1
  50. package/dist/at/tin.d.ts +3 -6
  51. package/dist/at/tin.js +9 -56
  52. package/dist/at/tin.js.map +1 -1
  53. package/dist/at/uid.d.ts +3 -6
  54. package/dist/at/uid.js +9 -52
  55. package/dist/at/uid.js.map +1 -1
  56. package/dist/at/vnr.d.ts +3 -6
  57. package/dist/at/vnr.js +9 -82
  58. package/dist/at/vnr.js.map +1 -1
  59. package/dist/au/abn.d.ts +3 -6
  60. package/dist/au/abn.js +9 -64
  61. package/dist/au/abn.js.map +1 -1
  62. package/dist/au/acn.d.ts +3 -6
  63. package/dist/au/acn.js +9 -57
  64. package/dist/au/acn.js.map +1 -1
  65. package/dist/au/mod.d.ts +0 -2
  66. package/dist/au/mod.js +1 -1
  67. package/dist/au/mod.js.map +1 -1
  68. package/dist/au/tfn.d.ts +3 -6
  69. package/dist/au/tfn.js +9 -58
  70. package/dist/au/tfn.js.map +1 -1
  71. package/dist/az/mod.d.ts +0 -2
  72. package/dist/az/mod.js +1 -1
  73. package/dist/az/mod.js.map +1 -1
  74. package/dist/az/voen.d.ts +3 -13
  75. package/dist/az/voen.js +9 -83
  76. package/dist/az/voen.js.map +1 -1
  77. package/dist/ba/jmbg.d.ts +5 -8
  78. package/dist/ba/jmbg.js +10 -86
  79. package/dist/ba/jmbg.js.map +1 -1
  80. package/dist/ba/mod.d.ts +0 -2
  81. package/dist/ba/mod.js +1 -1
  82. package/dist/ba/mod.js.map +1 -1
  83. package/dist/bd/mod.d.ts +0 -2
  84. package/dist/bd/mod.js +1 -1
  85. package/dist/bd/mod.js.map +1 -1
  86. package/dist/bd/nid.d.ts +4 -28
  87. package/dist/bd/nid.js +9 -91
  88. package/dist/bd/nid.js.map +1 -1
  89. package/dist/be/bis.d.ts +3 -6
  90. package/dist/be/bis.js +9 -51
  91. package/dist/be/bis.js.map +1 -1
  92. package/dist/be/mod.d.ts +0 -2
  93. package/dist/be/mod.js +2 -2
  94. package/dist/be/mod.js.map +1 -1
  95. package/dist/be/nn.d.ts +4 -13
  96. package/dist/be/nn.js +10 -70
  97. package/dist/be/nn.js.map +1 -1
  98. package/dist/be/vat.d.ts +3 -6
  99. package/dist/be/vat.js +9 -58
  100. package/dist/be/vat.js.map +1 -1
  101. package/dist/bg/egn.d.ts +5 -12
  102. package/dist/bg/egn.js +10 -110
  103. package/dist/bg/egn.js.map +1 -1
  104. package/dist/bg/mod.d.ts +0 -2
  105. package/dist/bg/mod.js +1 -1
  106. package/dist/bg/mod.js.map +1 -1
  107. package/dist/bg/pnf.d.ts +3 -6
  108. package/dist/bg/pnf.js +9 -59
  109. package/dist/bg/pnf.js.map +1 -1
  110. package/dist/bg/vat.d.ts +3 -6
  111. package/dist/bg/vat.js +9 -143
  112. package/dist/bg/vat.js.map +1 -1
  113. package/dist/bh/cpr.d.ts +3 -6
  114. package/dist/bh/cpr.js +9 -44
  115. package/dist/bh/cpr.js.map +1 -1
  116. package/dist/bh/mod.d.ts +0 -2
  117. package/dist/bh/mod.js +1 -1
  118. package/dist/bh/mod.js.map +1 -1
  119. package/dist/bic.d.ts +4 -18
  120. package/dist/bic.js +9 -56
  121. package/dist/bic.js.map +1 -1
  122. package/dist/br/cnpj.d.ts +3 -13
  123. package/dist/br/cnpj.js +9 -109
  124. package/dist/br/cnpj.js.map +1 -1
  125. package/dist/br/cpf.d.ts +3 -6
  126. package/dist/br/cpf.js +9 -66
  127. package/dist/br/cpf.js.map +1 -1
  128. package/dist/br/mod.d.ts +0 -2
  129. package/dist/br/mod.js +1 -1
  130. package/dist/br/mod.js.map +1 -1
  131. package/dist/by/mod.d.ts +0 -2
  132. package/dist/by/mod.js +1 -1
  133. package/dist/by/mod.js.map +1 -1
  134. package/dist/by/unp.d.ts +3 -6
  135. package/dist/by/unp.js +9 -102
  136. package/dist/by/unp.js.map +1 -1
  137. package/dist/bz/mod.d.ts +0 -2
  138. package/dist/bz/mod.js +1 -1
  139. package/dist/bz/mod.js.map +1 -1
  140. package/dist/bz/tin.d.ts +3 -10
  141. package/dist/bz/tin.js +9 -64
  142. package/dist/bz/tin.js.map +1 -1
  143. package/dist/ca/bn.d.ts +3 -6
  144. package/dist/ca/bn.js +9 -61
  145. package/dist/ca/bn.js.map +1 -1
  146. package/dist/ca/mod.d.ts +0 -2
  147. package/dist/ca/mod.js +1 -1
  148. package/dist/ca/mod.js.map +1 -1
  149. package/dist/ca/sin.d.ts +3 -6
  150. package/dist/ca/sin.js +9 -50
  151. package/dist/ca/sin.js.map +1 -1
  152. package/dist/catalog.d.ts +9 -0
  153. package/dist/catalog.js +9 -0
  154. package/dist/catalog.js.map +1 -0
  155. package/dist/ch/mod.d.ts +1 -3
  156. package/dist/ch/mod.js +2 -2
  157. package/dist/ch/mod.js.map +1 -1
  158. package/dist/ch/ssn.d.ts +3 -6
  159. package/dist/ch/ssn.js +9 -55
  160. package/dist/ch/ssn.js.map +1 -1
  161. package/dist/ch/uid.d.ts +3 -6
  162. package/dist/ch/uid.js +9 -69
  163. package/dist/ch/uid.js.map +1 -1
  164. package/dist/ch/vat.d.ts +3 -6
  165. package/dist/ch/vat.js +9 -58
  166. package/dist/ch/vat.js.map +1 -1
  167. package/dist/cl/mod.d.ts +0 -2
  168. package/dist/cl/mod.js +1 -1
  169. package/dist/cl/mod.js.map +1 -1
  170. package/dist/cl/rut.d.ts +3 -11
  171. package/dist/cl/rut.js +9 -78
  172. package/dist/cl/rut.js.map +1 -1
  173. package/dist/cn/mod.d.ts +0 -2
  174. package/dist/cn/mod.js +1 -1
  175. package/dist/cn/mod.js.map +1 -1
  176. package/dist/cn/ric.d.ts +5 -12
  177. package/dist/cn/ric.js +10 -94
  178. package/dist/cn/ric.js.map +1 -1
  179. package/dist/cn/uscc.d.ts +3 -6
  180. package/dist/cn/uscc.js +9 -76
  181. package/dist/cn/uscc.js.map +1 -1
  182. package/dist/co/mod.d.ts +0 -2
  183. package/dist/co/mod.js +1 -1
  184. package/dist/co/mod.js.map +1 -1
  185. package/dist/co/nit.d.ts +3 -6
  186. package/dist/co/nit.js +9 -98
  187. package/dist/co/nit.js.map +1 -1
  188. package/dist/cr/cpf.d.ts +4 -31
  189. package/dist/cr/cpf.js +9 -61
  190. package/dist/cr/cpf.js.map +1 -1
  191. package/dist/cr/mod.d.ts +0 -2
  192. package/dist/cr/mod.js +1 -1
  193. package/dist/cr/mod.js.map +1 -1
  194. package/dist/creditcard.d.ts +5 -18
  195. package/dist/creditcard.js +8 -109
  196. package/dist/creditcard.js.map +1 -1
  197. package/dist/crypto/btcbase58.d.ts +5 -6
  198. package/dist/crypto/btcbase58.js +8 -73
  199. package/dist/crypto/btcbase58.js.map +1 -1
  200. package/dist/crypto/btcbech32.d.ts +7 -9
  201. package/dist/crypto/btcbech32.js +10 -142
  202. package/dist/crypto/btcbech32.js.map +1 -1
  203. package/dist/crypto/eth.d.ts +4 -5
  204. package/dist/crypto/eth.js +7 -59
  205. package/dist/crypto/eth.js.map +1 -1
  206. package/dist/crypto/mod.d.ts +4 -6
  207. package/dist/crypto/mod.js +6 -6
  208. package/dist/crypto/mod.js.map +1 -1
  209. package/dist/crypto/wallet.d.ts +3 -4
  210. package/dist/crypto/wallet.js +6 -51
  211. package/dist/crypto/wallet.js.map +1 -1
  212. package/dist/cu/mod.d.ts +0 -2
  213. package/dist/cu/mod.js +1 -1
  214. package/dist/cu/mod.js.map +1 -1
  215. package/dist/cu/ni.d.ts +5 -16
  216. package/dist/cu/ni.js +10 -81
  217. package/dist/cu/ni.js.map +1 -1
  218. package/dist/cy/mod.d.ts +0 -2
  219. package/dist/cy/mod.js +1 -1
  220. package/dist/cy/mod.js.map +1 -1
  221. package/dist/cy/vat.d.ts +3 -6
  222. package/dist/cy/vat.js +9 -77
  223. package/dist/cy/vat.js.map +1 -1
  224. package/dist/cz/dic.d.ts +3 -6
  225. package/dist/cz/dic.js +9 -87
  226. package/dist/cz/dic.js.map +1 -1
  227. package/dist/cz/ico.d.ts +3 -6
  228. package/dist/cz/ico.js +9 -58
  229. package/dist/cz/ico.js.map +1 -1
  230. package/dist/cz/mod.d.ts +0 -2
  231. package/dist/cz/mod.js +2 -2
  232. package/dist/cz/mod.js.map +1 -1
  233. package/dist/cz/rc.d.ts +5 -15
  234. package/dist/cz/rc.js +10 -113
  235. package/dist/cz/rc.js.map +1 -1
  236. package/dist/de/handelsreg.d.ts +4 -28
  237. package/dist/de/handelsreg.js +9 -66
  238. package/dist/de/handelsreg.js.map +1 -1
  239. package/dist/de/idnr.d.ts +3 -6
  240. package/dist/de/idnr.js +9 -88
  241. package/dist/de/idnr.js.map +1 -1
  242. package/dist/de/mod.d.ts +0 -2
  243. package/dist/de/mod.js +1 -1
  244. package/dist/de/mod.js.map +1 -1
  245. package/dist/de/stnr.d.ts +4 -30
  246. package/dist/de/stnr.js +9 -126
  247. package/dist/de/stnr.js.map +1 -1
  248. package/dist/de/svnr.d.ts +3 -6
  249. package/dist/de/svnr.js +9 -95
  250. package/dist/de/svnr.js.map +1 -1
  251. package/dist/de/vat.d.ts +3 -6
  252. package/dist/de/vat.js +9 -52
  253. package/dist/de/vat.js.map +1 -1
  254. package/dist/dk/cpr.d.ts +5 -12
  255. package/dist/dk/cpr.js +10 -79
  256. package/dist/dk/cpr.js.map +1 -1
  257. package/dist/dk/cvr.d.ts +3 -6
  258. package/dist/dk/cvr.js +9 -53
  259. package/dist/dk/cvr.js.map +1 -1
  260. package/dist/dk/mod.d.ts +0 -2
  261. package/dist/dk/mod.js +1 -1
  262. package/dist/dk/mod.js.map +1 -1
  263. package/dist/dk/vat.d.ts +3 -6
  264. package/dist/dk/vat.js +9 -58
  265. package/dist/dk/vat.js.map +1 -1
  266. package/dist/do/mod.d.ts +0 -2
  267. package/dist/do/mod.js +1 -1
  268. package/dist/do/mod.js.map +1 -1
  269. package/dist/do/rnc.d.ts +3 -10
  270. package/dist/do/rnc.js +9 -77
  271. package/dist/do/rnc.js.map +1 -1
  272. package/dist/ec/mod.d.ts +0 -2
  273. package/dist/ec/mod.js +1 -1
  274. package/dist/ec/mod.js.map +1 -1
  275. package/dist/ec/ruc.d.ts +3 -6
  276. package/dist/ec/ruc.js +9 -129
  277. package/dist/ec/ruc.js.map +1 -1
  278. package/dist/ee/ik.d.ts +6 -17
  279. package/dist/ee/ik.js +11 -118
  280. package/dist/ee/ik.js.map +1 -1
  281. package/dist/ee/mod.d.ts +0 -2
  282. package/dist/ee/mod.js +1 -1
  283. package/dist/ee/mod.js.map +1 -1
  284. package/dist/ee/registrikood.d.ts +3 -6
  285. package/dist/ee/registrikood.js +9 -53
  286. package/dist/ee/registrikood.js.map +1 -1
  287. package/dist/ee/vat.d.ts +3 -6
  288. package/dist/ee/vat.js +9 -57
  289. package/dist/ee/vat.js.map +1 -1
  290. package/dist/eg/mod.d.ts +0 -2
  291. package/dist/eg/mod.js +1 -1
  292. package/dist/eg/mod.js.map +1 -1
  293. package/dist/eg/tn.d.ts +4 -16
  294. package/dist/eg/tn.js +9 -69
  295. package/dist/eg/tn.js.map +1 -1
  296. package/dist/es/cif.d.ts +3 -6
  297. package/dist/es/cif.js +9 -53
  298. package/dist/es/cif.js.map +1 -1
  299. package/dist/es/dni.d.ts +4 -7
  300. package/dist/es/dni.js +9 -45
  301. package/dist/es/dni.js.map +1 -1
  302. package/dist/es/mod.d.ts +0 -2
  303. package/dist/es/mod.js +2 -2
  304. package/dist/es/mod.js.map +1 -1
  305. package/dist/es/nie.d.ts +3 -6
  306. package/dist/es/nie.js +9 -66
  307. package/dist/es/nie.js.map +1 -1
  308. package/dist/es/nss.d.ts +3 -6
  309. package/dist/es/nss.js +9 -53
  310. package/dist/es/nss.js.map +1 -1
  311. package/dist/es/vat.d.ts +4 -7
  312. package/dist/es/vat.js +10 -95
  313. package/dist/es/vat.js.map +1 -1
  314. package/dist/eu/mod.d.ts +3 -5
  315. package/dist/eu/mod.js +4 -4
  316. package/dist/eu/mod.js.map +1 -1
  317. package/dist/eu/vat.d.ts +4 -15
  318. package/dist/eu/vat.js +10 -184
  319. package/dist/eu/vat.js.map +1 -1
  320. package/dist/fi/hetu.d.ts +5 -12
  321. package/dist/fi/hetu.js +10 -110
  322. package/dist/fi/hetu.js.map +1 -1
  323. package/dist/fi/mod.d.ts +0 -2
  324. package/dist/fi/mod.js +2 -2
  325. package/dist/fi/mod.js.map +1 -1
  326. package/dist/fi/vat.d.ts +3 -6
  327. package/dist/fi/vat.js +9 -57
  328. package/dist/fi/vat.js.map +1 -1
  329. package/dist/fi/ytunnus.d.ts +3 -6
  330. package/dist/fi/ytunnus.js +9 -59
  331. package/dist/fi/ytunnus.js.map +1 -1
  332. package/dist/fr/mod.d.ts +0 -2
  333. package/dist/fr/mod.js +2 -2
  334. package/dist/fr/mod.js.map +1 -1
  335. package/dist/fr/nif.d.ts +3 -6
  336. package/dist/fr/nif.js +9 -52
  337. package/dist/fr/nif.js.map +1 -1
  338. package/dist/fr/nir.d.ts +5 -8
  339. package/dist/fr/nir.js +10 -91
  340. package/dist/fr/nir.js.map +1 -1
  341. package/dist/fr/siren.d.ts +3 -6
  342. package/dist/fr/siren.js +9 -44
  343. package/dist/fr/siren.js.map +1 -1
  344. package/dist/fr/siret.d.ts +3 -6
  345. package/dist/fr/siret.js +9 -60
  346. package/dist/fr/siret.js.map +1 -1
  347. package/dist/fr/tva.d.ts +3 -6
  348. package/dist/fr/tva.js +9 -66
  349. package/dist/fr/tva.js.map +1 -1
  350. package/dist/gb/mod.d.ts +0 -2
  351. package/dist/gb/mod.js +2 -2
  352. package/dist/gb/mod.js.map +1 -1
  353. package/dist/gb/nhs.d.ts +4 -5
  354. package/dist/gb/nhs.js +7 -47
  355. package/dist/gb/nhs.js.map +1 -1
  356. package/dist/gb/nino.d.ts +4 -17
  357. package/dist/gb/nino.js +9 -90
  358. package/dist/gb/nino.js.map +1 -1
  359. package/dist/gb/sedol.d.ts +4 -7
  360. package/dist/gb/sedol.js +10 -72
  361. package/dist/gb/sedol.js.map +1 -1
  362. package/dist/gb/utr.d.ts +3 -6
  363. package/dist/gb/utr.js +9 -57
  364. package/dist/gb/utr.js.map +1 -1
  365. package/dist/gb/vat.d.ts +3 -6
  366. package/dist/gb/vat.js +9 -89
  367. package/dist/gb/vat.js.map +1 -1
  368. package/dist/ge/mod.d.ts +0 -2
  369. package/dist/ge/mod.js +1 -1
  370. package/dist/ge/mod.js.map +1 -1
  371. package/dist/ge/pin.d.ts +4 -19
  372. package/dist/ge/pin.js +9 -36
  373. package/dist/ge/pin.js.map +1 -1
  374. package/dist/gh/mod.d.ts +0 -2
  375. package/dist/gh/mod.js +1 -1
  376. package/dist/gh/mod.js.map +1 -1
  377. package/dist/gh/tin.d.ts +3 -6
  378. package/dist/gh/tin.js +9 -62
  379. package/dist/gh/tin.js.map +1 -1
  380. package/dist/gr/amka.d.ts +3 -6
  381. package/dist/gr/amka.js +9 -59
  382. package/dist/gr/amka.js.map +1 -1
  383. package/dist/gr/mod.d.ts +0 -2
  384. package/dist/gr/mod.js +2 -2
  385. package/dist/gr/mod.js.map +1 -1
  386. package/dist/gr/vat.d.ts +3 -6
  387. package/dist/gr/vat.js +9 -53
  388. package/dist/gr/vat.js.map +1 -1
  389. package/dist/gt/mod.d.ts +0 -2
  390. package/dist/gt/mod.js +1 -1
  391. package/dist/gt/mod.js.map +1 -1
  392. package/dist/gt/nit.d.ts +3 -13
  393. package/dist/gt/nit.js +9 -86
  394. package/dist/gt/nit.js.map +1 -1
  395. package/dist/hk/hkid.d.ts +3 -7
  396. package/dist/hk/hkid.js +9 -80
  397. package/dist/hk/hkid.js.map +1 -1
  398. package/dist/hk/mod.d.ts +0 -2
  399. package/dist/hk/mod.js +1 -1
  400. package/dist/hk/mod.js.map +1 -1
  401. package/dist/hr/mod.d.ts +0 -2
  402. package/dist/hr/mod.js +1 -1
  403. package/dist/hr/mod.js.map +1 -1
  404. package/dist/hr/vat.d.ts +3 -6
  405. package/dist/hr/vat.js +9 -44
  406. package/dist/hr/vat.js.map +1 -1
  407. package/dist/hu/mod.d.ts +0 -2
  408. package/dist/hu/mod.js +1 -1
  409. package/dist/hu/mod.js.map +1 -1
  410. package/dist/hu/vat.d.ts +3 -6
  411. package/dist/hu/vat.js +9 -57
  412. package/dist/hu/vat.js.map +1 -1
  413. package/dist/iban.d.ts +3 -8
  414. package/dist/iban.js +9 -272
  415. package/dist/iban.js.map +1 -1
  416. package/dist/id/mod.d.ts +0 -2
  417. package/dist/id/mod.js +1 -1
  418. package/dist/id/mod.js.map +1 -1
  419. package/dist/id/npwp.d.ts +3 -6
  420. package/dist/id/npwp.js +9 -119
  421. package/dist/id/npwp.js.map +1 -1
  422. package/dist/ie/mod.d.ts +0 -2
  423. package/dist/ie/mod.js +2 -2
  424. package/dist/ie/mod.js.map +1 -1
  425. package/dist/ie/pps.d.ts +3 -6
  426. package/dist/ie/pps.js +9 -56
  427. package/dist/ie/pps.js.map +1 -1
  428. package/dist/ie/vat.d.ts +3 -6
  429. package/dist/ie/vat.js +9 -71
  430. package/dist/ie/vat.js.map +1 -1
  431. package/dist/il/idnr.d.ts +3 -6
  432. package/dist/il/idnr.js +9 -50
  433. package/dist/il/idnr.js.map +1 -1
  434. package/dist/il/mod.d.ts +0 -2
  435. package/dist/il/mod.js +1 -1
  436. package/dist/il/mod.js.map +1 -1
  437. package/dist/in/aadhaar.d.ts +3 -6
  438. package/dist/in/aadhaar.js +9 -47
  439. package/dist/in/aadhaar.js.map +1 -1
  440. package/dist/in/gstin.d.ts +3 -6
  441. package/dist/in/gstin.js +9 -119
  442. package/dist/in/gstin.js.map +1 -1
  443. package/dist/in/mod.d.ts +0 -2
  444. package/dist/in/mod.js +1 -1
  445. package/dist/in/mod.js.map +1 -1
  446. package/dist/in/pan.d.ts +4 -20
  447. package/dist/in/pan.js +9 -42
  448. package/dist/in/pan.js.map +1 -1
  449. package/dist/index.d.ts +9 -9
  450. package/dist/index.js +2 -2
  451. package/dist/iq/mod.d.ts +0 -2
  452. package/dist/iq/mod.js +1 -1
  453. package/dist/iq/mod.js.map +1 -1
  454. package/dist/iq/nid.d.ts +4 -22
  455. package/dist/iq/nid.js +9 -39
  456. package/dist/iq/nid.js.map +1 -1
  457. package/dist/ir/mod.d.ts +0 -2
  458. package/dist/ir/mod.js +1 -1
  459. package/dist/ir/mod.js.map +1 -1
  460. package/dist/ir/nid.d.ts +3 -10
  461. package/dist/ir/nid.js +9 -64
  462. package/dist/ir/nid.js.map +1 -1
  463. package/dist/is/kennitala.d.ts +3 -6
  464. package/dist/is/kennitala.js +9 -77
  465. package/dist/is/kennitala.js.map +1 -1
  466. package/dist/is/mod.d.ts +0 -2
  467. package/dist/is/mod.js +1 -1
  468. package/dist/is/mod.js.map +1 -1
  469. package/dist/is/vsk.d.ts +4 -14
  470. package/dist/is/vsk.js +9 -37
  471. package/dist/is/vsk.js.map +1 -1
  472. package/dist/isin.d.ts +3 -6
  473. package/dist/isin.js +9 -71
  474. package/dist/isin.js.map +1 -1
  475. package/dist/it/codicefiscale.d.ts +5 -13
  476. package/dist/it/codicefiscale.js +10 -214
  477. package/dist/it/codicefiscale.js.map +1 -1
  478. package/dist/it/iva.d.ts +3 -6
  479. package/dist/it/iva.js +9 -60
  480. package/dist/it/iva.js.map +1 -1
  481. package/dist/it/mod.d.ts +0 -2
  482. package/dist/it/mod.js +2 -2
  483. package/dist/it/mod.js.map +1 -1
  484. package/dist/jp/cn.d.ts +3 -6
  485. package/dist/jp/cn.js +9 -56
  486. package/dist/jp/cn.js.map +1 -1
  487. package/dist/jp/mod.d.ts +0 -2
  488. package/dist/jp/mod.js +1 -1
  489. package/dist/jp/mod.js.map +1 -1
  490. package/dist/jp/mynumber.d.ts +3 -6
  491. package/dist/jp/mynumber.js +9 -73
  492. package/dist/jp/mynumber.js.map +1 -1
  493. package/dist/kr/brn.d.ts +4 -16
  494. package/dist/kr/brn.js +9 -55
  495. package/dist/kr/brn.js.map +1 -1
  496. package/dist/kr/mod.d.ts +0 -2
  497. package/dist/kr/mod.js +1 -1
  498. package/dist/kr/mod.js.map +1 -1
  499. package/dist/kr/rrn.d.ts +5 -17
  500. package/dist/kr/rrn.js +10 -131
  501. package/dist/kr/rrn.js.map +1 -1
  502. package/dist/kw/civil.d.ts +5 -13
  503. package/dist/kw/civil.js +10 -98
  504. package/dist/kw/civil.js.map +1 -1
  505. package/dist/kw/mod.d.ts +0 -2
  506. package/dist/kw/mod.js +1 -1
  507. package/dist/kw/mod.js.map +1 -1
  508. package/dist/kz/iin.d.ts +5 -16
  509. package/dist/kz/iin.js +10 -132
  510. package/dist/kz/iin.js.map +1 -1
  511. package/dist/kz/mod.d.ts +0 -2
  512. package/dist/kz/mod.js +1 -1
  513. package/dist/kz/mod.js.map +1 -1
  514. package/dist/lei.d.ts +3 -6
  515. package/dist/lei.js +9 -55
  516. package/dist/lei.js.map +1 -1
  517. package/dist/li/mod.d.ts +0 -2
  518. package/dist/li/mod.js +1 -1
  519. package/dist/li/mod.js.map +1 -1
  520. package/dist/li/peid.d.ts +4 -16
  521. package/dist/li/peid.js +9 -49
  522. package/dist/li/peid.js.map +1 -1
  523. package/dist/lk/mod.d.ts +0 -2
  524. package/dist/lk/mod.js +1 -1
  525. package/dist/lk/mod.js.map +1 -1
  526. package/dist/lk/nic.d.ts +5 -12
  527. package/dist/lk/nic.js +10 -135
  528. package/dist/lk/nic.js.map +1 -1
  529. package/dist/lt/asmens.d.ts +3 -6
  530. package/dist/lt/asmens.js +9 -78
  531. package/dist/lt/asmens.js.map +1 -1
  532. package/dist/lt/mod.d.ts +0 -2
  533. package/dist/lt/mod.js +2 -2
  534. package/dist/lt/mod.js.map +1 -1
  535. package/dist/lt/vat.d.ts +3 -6
  536. package/dist/lt/vat.js +9 -60
  537. package/dist/lt/vat.js.map +1 -1
  538. package/dist/lu/mod.d.ts +0 -2
  539. package/dist/lu/mod.js +1 -1
  540. package/dist/lu/mod.js.map +1 -1
  541. package/dist/lu/vat.d.ts +3 -6
  542. package/dist/lu/vat.js +9 -46
  543. package/dist/lu/vat.js.map +1 -1
  544. package/dist/luhn.d.ts +3 -9
  545. package/dist/luhn.js +7 -47
  546. package/dist/luhn.js.map +1 -1
  547. package/dist/lv/mod.d.ts +0 -2
  548. package/dist/lv/mod.js +1 -1
  549. package/dist/lv/mod.js.map +1 -1
  550. package/dist/lv/vat.d.ts +3 -6
  551. package/dist/lv/vat.js +9 -101
  552. package/dist/lv/vat.js.map +1 -1
  553. package/dist/ma/ice.d.ts +3 -6
  554. package/dist/ma/ice.js +9 -44
  555. package/dist/ma/ice.js.map +1 -1
  556. package/dist/ma/mod.d.ts +0 -2
  557. package/dist/ma/mod.js +1 -1
  558. package/dist/ma/mod.js.map +1 -1
  559. package/dist/mc/mod.d.ts +0 -2
  560. package/dist/mc/mod.js +1 -1
  561. package/dist/mc/mod.js.map +1 -1
  562. package/dist/mc/tva.d.ts +3 -6
  563. package/dist/mc/tva.js +9 -50
  564. package/dist/mc/tva.js.map +1 -1
  565. package/dist/md/idno.d.ts +3 -5
  566. package/dist/md/idno.js +6 -58
  567. package/dist/md/idno.js.map +1 -1
  568. package/dist/md/mod.d.ts +0 -2
  569. package/dist/md/mod.js +1 -1
  570. package/dist/md/mod.js.map +1 -1
  571. package/dist/me/mod.d.ts +0 -2
  572. package/dist/me/mod.js +1 -1
  573. package/dist/me/mod.js.map +1 -1
  574. package/dist/me/pib.d.ts +3 -6
  575. package/dist/me/pib.js +9 -51
  576. package/dist/me/pib.js.map +1 -1
  577. package/dist/metadata.d.ts +3505 -0
  578. package/dist/metadata.js +4949 -0
  579. package/dist/metadata.js.map +1 -0
  580. package/dist/mk/edb.d.ts +3 -6
  581. package/dist/mk/edb.js +9 -64
  582. package/dist/mk/edb.js.map +1 -1
  583. package/dist/mk/mod.d.ts +0 -2
  584. package/dist/mk/mod.js +1 -1
  585. package/dist/mk/mod.js.map +1 -1
  586. package/dist/mt/mod.d.ts +0 -2
  587. package/dist/mt/mod.js +1 -1
  588. package/dist/mt/mod.js.map +1 -1
  589. package/dist/mt/vat.d.ts +3 -6
  590. package/dist/mt/vat.js +9 -58
  591. package/dist/mt/vat.js.map +1 -1
  592. package/dist/mu/brn.d.ts +4 -28
  593. package/dist/mu/brn.js +9 -44
  594. package/dist/mu/brn.js.map +1 -1
  595. package/dist/mu/mod.d.ts +0 -2
  596. package/dist/mu/mod.js +1 -1
  597. package/dist/mu/mod.js.map +1 -1
  598. package/dist/mx/clabe.d.ts +3 -10
  599. package/dist/mx/clabe.js +9 -70
  600. package/dist/mx/clabe.js.map +1 -1
  601. package/dist/mx/curp.d.ts +5 -16
  602. package/dist/mx/curp.js +10 -144
  603. package/dist/mx/curp.js.map +1 -1
  604. package/dist/mx/mod.d.ts +0 -2
  605. package/dist/mx/mod.js +1 -1
  606. package/dist/mx/mod.js.map +1 -1
  607. package/dist/mx/rfc.d.ts +3 -10
  608. package/dist/mx/rfc.js +9 -91
  609. package/dist/mx/rfc.js.map +1 -1
  610. package/dist/my/mod.d.ts +0 -2
  611. package/dist/my/mod.js +1 -1
  612. package/dist/my/mod.js.map +1 -1
  613. package/dist/my/nric.d.ts +5 -12
  614. package/dist/my/nric.js +10 -184
  615. package/dist/my/nric.js.map +1 -1
  616. package/dist/native-node.d.ts +14 -0
  617. package/dist/native-node.js +75 -0
  618. package/dist/native-node.js.map +1 -0
  619. package/dist/native.d.ts +79 -0
  620. package/dist/native.js +24 -0
  621. package/dist/native.js.map +1 -0
  622. package/dist/ng/mod.d.ts +0 -2
  623. package/dist/ng/mod.js +1 -1
  624. package/dist/ng/mod.js.map +1 -1
  625. package/dist/ng/nin.d.ts +4 -18
  626. package/dist/ng/nin.js +9 -40
  627. package/dist/ng/nin.js.map +1 -1
  628. package/dist/ni/mod.d.ts +0 -2
  629. package/dist/ni/mod.js +1 -1
  630. package/dist/ni/mod.js.map +1 -1
  631. package/dist/ni/ruc.d.ts +3 -15
  632. package/dist/ni/ruc.js +9 -87
  633. package/dist/ni/ruc.js.map +1 -1
  634. package/dist/nl/bsn.d.ts +3 -6
  635. package/dist/nl/bsn.js +9 -58
  636. package/dist/nl/bsn.js.map +1 -1
  637. package/dist/nl/kvk.d.ts +4 -14
  638. package/dist/nl/kvk.js +9 -35
  639. package/dist/nl/kvk.js.map +1 -1
  640. package/dist/nl/mod.d.ts +0 -2
  641. package/dist/nl/mod.js +2 -2
  642. package/dist/nl/mod.js.map +1 -1
  643. package/dist/nl/vat.d.ts +3 -6
  644. package/dist/nl/vat.js +9 -44
  645. package/dist/nl/vat.js.map +1 -1
  646. package/dist/no/fodselsnummer.d.ts +5 -13
  647. package/dist/no/fodselsnummer.js +10 -123
  648. package/dist/no/fodselsnummer.js.map +1 -1
  649. package/dist/no/mod.d.ts +2 -4
  650. package/dist/no/mod.js +3 -3
  651. package/dist/no/mod.js.map +1 -1
  652. package/dist/no/mva.d.ts +3 -6
  653. package/dist/no/mva.js +9 -43
  654. package/dist/no/mva.js.map +1 -1
  655. package/dist/no/orgnr.d.ts +3 -6
  656. package/dist/no/orgnr.js +9 -56
  657. package/dist/no/orgnr.js.map +1 -1
  658. package/dist/nz/ird.d.ts +3 -6
  659. package/dist/nz/ird.js +9 -92
  660. package/dist/nz/ird.js.map +1 -1
  661. package/dist/nz/mod.d.ts +0 -2
  662. package/dist/nz/mod.js +1 -1
  663. package/dist/nz/mod.js.map +1 -1
  664. package/dist/pa/mod.d.ts +0 -2
  665. package/dist/pa/mod.js +1 -1
  666. package/dist/pa/mod.js.map +1 -1
  667. package/dist/pa/ruc.d.ts +3 -15
  668. package/dist/pa/ruc.js +9 -181
  669. package/dist/pa/ruc.js.map +1 -1
  670. package/dist/patterns.d.ts +6 -35
  671. package/dist/patterns.js +10 -171
  672. package/dist/patterns.js.map +1 -1
  673. package/dist/pe/mod.d.ts +0 -2
  674. package/dist/pe/mod.js +1 -1
  675. package/dist/pe/mod.js.map +1 -1
  676. package/dist/pe/ruc.d.ts +3 -11
  677. package/dist/pe/ruc.js +9 -91
  678. package/dist/pe/ruc.js.map +1 -1
  679. package/dist/ph/mod.d.ts +0 -2
  680. package/dist/ph/mod.js +1 -1
  681. package/dist/ph/mod.js.map +1 -1
  682. package/dist/ph/philid.d.ts +4 -19
  683. package/dist/ph/philid.js +9 -45
  684. package/dist/ph/philid.js.map +1 -1
  685. package/dist/pk/cnic.d.ts +4 -19
  686. package/dist/pk/cnic.js +9 -54
  687. package/dist/pk/cnic.js.map +1 -1
  688. package/dist/pk/mod.d.ts +0 -2
  689. package/dist/pk/mod.js +1 -1
  690. package/dist/pk/mod.js.map +1 -1
  691. package/dist/pl/mod.d.ts +0 -2
  692. package/dist/pl/mod.js +1 -1
  693. package/dist/pl/mod.js.map +1 -1
  694. package/dist/pl/nip.d.ts +3 -10
  695. package/dist/pl/nip.js +9 -65
  696. package/dist/pl/nip.js.map +1 -1
  697. package/dist/pl/pesel.d.ts +5 -12
  698. package/dist/pl/pesel.js +10 -96
  699. package/dist/pl/pesel.js.map +1 -1
  700. package/dist/pl/regon.d.ts +3 -6
  701. package/dist/pl/regon.js +9 -72
  702. package/dist/pl/regon.js.map +1 -1
  703. package/dist/pt/cc.d.ts +3 -6
  704. package/dist/pt/cc.js +9 -67
  705. package/dist/pt/cc.js.map +1 -1
  706. package/dist/pt/mod.d.ts +0 -2
  707. package/dist/pt/mod.js +2 -2
  708. package/dist/pt/mod.js.map +1 -1
  709. package/dist/pt/vat.d.ts +3 -6
  710. package/dist/pt/vat.js +9 -61
  711. package/dist/pt/vat.js.map +1 -1
  712. package/dist/registry.d.ts +6 -0
  713. package/dist/registry.js +357 -0
  714. package/dist/registry.js.map +1 -0
  715. package/dist/ro/cnp.d.ts +5 -12
  716. package/dist/ro/cnp.js +10 -163
  717. package/dist/ro/cnp.js.map +1 -1
  718. package/dist/ro/mod.d.ts +0 -2
  719. package/dist/ro/mod.js +2 -2
  720. package/dist/ro/mod.js.map +1 -1
  721. package/dist/ro/vat.d.ts +3 -6
  722. package/dist/ro/vat.js +9 -74
  723. package/dist/ro/vat.js.map +1 -1
  724. package/dist/rs/mod.d.ts +0 -2
  725. package/dist/rs/mod.js +1 -1
  726. package/dist/rs/mod.js.map +1 -1
  727. package/dist/rs/pib.d.ts +3 -6
  728. package/dist/rs/pib.js +9 -48
  729. package/dist/rs/pib.js.map +1 -1
  730. package/dist/ru/inn.d.ts +3 -6
  731. package/dist/ru/inn.js +9 -89
  732. package/dist/ru/inn.js.map +1 -1
  733. package/dist/ru/mod.d.ts +0 -2
  734. package/dist/ru/mod.js +1 -1
  735. package/dist/ru/mod.js.map +1 -1
  736. package/dist/runtime.js +121 -0
  737. package/dist/runtime.js.map +1 -0
  738. package/dist/se/mod.d.ts +0 -2
  739. package/dist/se/mod.js +2 -2
  740. package/dist/se/mod.js.map +1 -1
  741. package/dist/se/orgnr.d.ts +3 -6
  742. package/dist/se/orgnr.js +9 -48
  743. package/dist/se/orgnr.js.map +1 -1
  744. package/dist/se/personnummer.d.ts +5 -16
  745. package/dist/se/personnummer.js +10 -111
  746. package/dist/se/personnummer.js.map +1 -1
  747. package/dist/se/vat.d.ts +3 -6
  748. package/dist/se/vat.js +9 -52
  749. package/dist/se/vat.js.map +1 -1
  750. package/dist/sg/mod.d.ts +0 -2
  751. package/dist/sg/mod.js +1 -1
  752. package/dist/sg/mod.js.map +1 -1
  753. package/dist/sg/uen.d.ts +3 -6
  754. package/dist/sg/uen.js +9 -180
  755. package/dist/sg/uen.js.map +1 -1
  756. package/dist/si/emso.d.ts +5 -12
  757. package/dist/si/emso.js +10 -102
  758. package/dist/si/emso.js.map +1 -1
  759. package/dist/si/mod.d.ts +0 -2
  760. package/dist/si/mod.js +2 -2
  761. package/dist/si/mod.js.map +1 -1
  762. package/dist/si/vat.d.ts +3 -6
  763. package/dist/si/vat.js +9 -61
  764. package/dist/si/vat.js.map +1 -1
  765. package/dist/sk/dic.d.ts +3 -6
  766. package/dist/sk/dic.js +9 -63
  767. package/dist/sk/dic.js.map +1 -1
  768. package/dist/sk/ico.d.ts +6 -5
  769. package/dist/sk/ico.js +9 -27
  770. package/dist/sk/ico.js.map +1 -1
  771. package/dist/sk/mod.d.ts +0 -2
  772. package/dist/sk/mod.js +1 -1
  773. package/dist/sk/mod.js.map +1 -1
  774. package/dist/sk/rc.d.ts +7 -5
  775. package/dist/sk/rc.js +10 -30
  776. package/dist/sk/rc.js.map +1 -1
  777. package/dist/th/mod.d.ts +0 -2
  778. package/dist/th/mod.js +1 -1
  779. package/dist/th/mod.js.map +1 -1
  780. package/dist/th/tin.d.ts +3 -6
  781. package/dist/th/tin.js +9 -49
  782. package/dist/th/tin.js.map +1 -1
  783. package/dist/tr/mod.d.ts +0 -2
  784. package/dist/tr/mod.js +1 -1
  785. package/dist/tr/mod.js.map +1 -1
  786. package/dist/tr/tckimlik.d.ts +3 -7
  787. package/dist/tr/tckimlik.js +9 -56
  788. package/dist/tr/tckimlik.js.map +1 -1
  789. package/dist/tr/vkn.d.ts +3 -7
  790. package/dist/tr/vkn.js +9 -56
  791. package/dist/tr/vkn.js.map +1 -1
  792. package/dist/tw/mod.d.ts +0 -2
  793. package/dist/tw/mod.js +1 -1
  794. package/dist/tw/mod.js.map +1 -1
  795. package/dist/tw/ubn.d.ts +3 -6
  796. package/dist/tw/ubn.js +9 -72
  797. package/dist/tw/ubn.js.map +1 -1
  798. package/dist/types.d.ts +16 -85
  799. package/dist/ua/edrpou.d.ts +3 -6
  800. package/dist/ua/edrpou.js +9 -92
  801. package/dist/ua/edrpou.js.map +1 -1
  802. package/dist/ua/mod.d.ts +0 -2
  803. package/dist/ua/mod.js +1 -1
  804. package/dist/ua/mod.js.map +1 -1
  805. package/dist/us/ein.d.ts +4 -17
  806. package/dist/us/ein.js +9 -221
  807. package/dist/us/ein.js.map +1 -1
  808. package/dist/us/itin.d.ts +4 -20
  809. package/dist/us/itin.js +9 -54
  810. package/dist/us/itin.js.map +1 -1
  811. package/dist/us/mod.d.ts +0 -2
  812. package/dist/us/mod.js +1 -1
  813. package/dist/us/mod.js.map +1 -1
  814. package/dist/us/rtn.d.ts +3 -6
  815. package/dist/us/rtn.js +9 -75
  816. package/dist/us/rtn.js.map +1 -1
  817. package/dist/us/ssn.d.ts +4 -18
  818. package/dist/us/ssn.js +9 -63
  819. package/dist/us/ssn.js.map +1 -1
  820. package/dist/uy/mod.d.ts +0 -2
  821. package/dist/uy/mod.js +1 -1
  822. package/dist/uy/mod.js.map +1 -1
  823. package/dist/uy/rut.d.ts +3 -10
  824. package/dist/uy/rut.js +9 -88
  825. package/dist/uy/rut.js.map +1 -1
  826. package/dist/ve/mod.d.ts +0 -2
  827. package/dist/ve/mod.js +1 -1
  828. package/dist/ve/mod.js.map +1 -1
  829. package/dist/ve/rif.d.ts +3 -10
  830. package/dist/ve/rif.js +9 -92
  831. package/dist/ve/rif.js.map +1 -1
  832. package/dist/vn/mod.d.ts +0 -2
  833. package/dist/vn/mod.js +1 -1
  834. package/dist/vn/mod.js.map +1 -1
  835. package/dist/vn/mst.d.ts +3 -6
  836. package/dist/vn/mst.js +9 -67
  837. package/dist/vn/mst.js.map +1 -1
  838. package/dist/za/idnr.d.ts +5 -12
  839. package/dist/za/idnr.js +10 -94
  840. package/dist/za/idnr.js.map +1 -1
  841. package/dist/za/mod.d.ts +0 -2
  842. package/dist/za/mod.js +1 -1
  843. package/dist/za/mod.js.map +1 -1
  844. package/index.cjs +3 -0
  845. package/package.json +38 -62
  846. package/registry.json +4829 -0
  847. package/registry.schema.json +94 -0
  848. package/LICENSE +0 -21
  849. package/README.md +0 -346
  850. package/dist/_checksums/keccak.d.ts +0 -5
  851. package/dist/_checksums/keccak.js +0 -118
  852. package/dist/_checksums/keccak.js.map +0 -1
  853. package/dist/_checksums/luhn.d.ts +0 -12
  854. package/dist/_checksums/luhn.js +0 -26
  855. package/dist/_checksums/luhn.js.map +0 -1
  856. package/dist/_checksums/mod1110.d.ts +0 -12
  857. package/dist/_checksums/mod1110.js +0 -25
  858. package/dist/_checksums/mod1110.js.map +0 -1
  859. package/dist/_checksums/mod112.d.ts +0 -24
  860. package/dist/_checksums/mod112.js +0 -53
  861. package/dist/_checksums/mod112.js.map +0 -1
  862. package/dist/_checksums/mod97.d.ts +0 -23
  863. package/dist/_checksums/mod97.js +0 -28
  864. package/dist/_checksums/mod97.js.map +0 -1
  865. package/dist/_checksums/sha256.d.ts +0 -5
  866. package/dist/_checksums/sha256.js +0 -164
  867. package/dist/_checksums/sha256.js.map +0 -1
  868. package/dist/_checksums/verhoeff.d.ts +0 -22
  869. package/dist/_checksums/verhoeff.js +0 -271
  870. package/dist/_checksums/verhoeff.js.map +0 -1
  871. package/dist/_checksums/weighted-sum.d.ts +0 -13
  872. package/dist/_checksums/weighted-sum.js +0 -22
  873. package/dist/_checksums/weighted-sum.js.map +0 -1
  874. package/dist/_util/arabic.d.ts +0 -19
  875. package/dist/_util/arabic.js +0 -41
  876. package/dist/_util/arabic.js.map +0 -1
  877. package/dist/_util/clean.d.ts +0 -18
  878. package/dist/_util/clean.js +0 -76
  879. package/dist/_util/clean.js.map +0 -1
  880. package/dist/_util/date.d.ts +0 -12
  881. package/dist/_util/date.js +0 -19
  882. package/dist/_util/date.js.map +0 -1
  883. package/dist/_util/generate.d.ts +0 -28
  884. package/dist/_util/generate.js +0 -43
  885. package/dist/_util/generate.js.map +0 -1
  886. package/dist/_util/result.d.ts +0 -8
  887. package/dist/_util/result.js +0 -13
  888. package/dist/_util/result.js.map +0 -1
  889. package/dist/_util/strings.d.ts +0 -21
  890. package/dist/_util/strings.js +0 -28
  891. package/dist/_util/strings.js.map +0 -1
  892. package/src/_checksums/keccak.ts +0 -145
  893. package/src/_checksums/luhn.ts +0 -24
  894. package/src/_checksums/mod1110.ts +0 -24
  895. package/src/_checksums/mod112.ts +0 -41
  896. package/src/_checksums/mod97.ts +0 -28
  897. package/src/_checksums/sha256.ts +0 -125
  898. package/src/_checksums/verhoeff.ts +0 -71
  899. package/src/_checksums/weighted-sum.ts +0 -23
  900. package/src/_util/arabic.ts +0 -48
  901. package/src/_util/clean.ts +0 -91
  902. package/src/_util/date.ts +0 -23
  903. package/src/_util/generate.ts +0 -62
  904. package/src/_util/result.ts +0 -10
  905. package/src/_util/strings.ts +0 -32
  906. package/src/ad/mod.ts +0 -1
  907. package/src/ad/nrt.ts +0 -123
  908. package/src/ae/eid.ts +0 -110
  909. package/src/ae/mod.ts +0 -1
  910. package/src/ai/mod.ts +0 -1
  911. package/src/ai/tin.ts +0 -102
  912. package/src/al/mod.ts +0 -1
  913. package/src/al/nipt.ts +0 -82
  914. package/src/am/mod.ts +0 -1
  915. package/src/am/tin.ts +0 -77
  916. package/src/ar/cbu.ts +0 -110
  917. package/src/ar/cuit.ts +0 -149
  918. package/src/ar/dni.ts +0 -83
  919. package/src/ar/mod.ts +0 -3
  920. package/src/at/businessid.ts +0 -78
  921. package/src/at/mod.ts +0 -4
  922. package/src/at/tin.ts +0 -94
  923. package/src/at/uid.ts +0 -96
  924. package/src/at/vnr.ts +0 -161
  925. package/src/au/abn.ts +0 -89
  926. package/src/au/acn.ts +0 -90
  927. package/src/au/mod.ts +0 -3
  928. package/src/au/tfn.ts +0 -89
  929. package/src/az/mod.ts +0 -1
  930. package/src/az/voen.ts +0 -131
  931. package/src/ba/jmbg.ts +0 -130
  932. package/src/ba/mod.ts +0 -1
  933. package/src/bd/mod.ts +0 -1
  934. package/src/bd/nid.ts +0 -143
  935. package/src/be/bis.ts +0 -109
  936. package/src/be/mod.ts +0 -3
  937. package/src/be/nn.ts +0 -129
  938. package/src/be/vat.ts +0 -111
  939. package/src/bg/egn.ts +0 -164
  940. package/src/bg/mod.ts +0 -3
  941. package/src/bg/pnf.ts +0 -90
  942. package/src/bg/vat.ts +0 -160
  943. package/src/bh/cpr.ts +0 -94
  944. package/src/bh/mod.ts +0 -1
  945. package/src/bic.ts +0 -105
  946. package/src/br/cnpj.ts +0 -156
  947. package/src/br/cpf.ts +0 -118
  948. package/src/br/mod.ts +0 -2
  949. package/src/by/mod.ts +0 -1
  950. package/src/by/unp.ts +0 -163
  951. package/src/bz/mod.ts +0 -1
  952. package/src/bz/tin.ts +0 -122
  953. package/src/ca/bn.ts +0 -111
  954. package/src/ca/mod.ts +0 -2
  955. package/src/ca/sin.ts +0 -95
  956. package/src/ch/mod.ts +0 -3
  957. package/src/ch/ssn.ts +0 -99
  958. package/src/ch/uid.ts +0 -112
  959. package/src/ch/vat.ts +0 -89
  960. package/src/cl/mod.ts +0 -1
  961. package/src/cl/rut.ts +0 -124
  962. package/src/cn/mod.ts +0 -2
  963. package/src/cn/ric.ts +0 -184
  964. package/src/cn/uscc.ts +0 -127
  965. package/src/co/mod.ts +0 -1
  966. package/src/co/nit.ts +0 -116
  967. package/src/cr/cpf.ts +0 -116
  968. package/src/cr/mod.ts +0 -1
  969. package/src/creditcard.ts +0 -194
  970. package/src/crypto/btcbase58.ts +0 -144
  971. package/src/crypto/btcbech32.ts +0 -210
  972. package/src/crypto/eth.ts +0 -114
  973. package/src/crypto/mod.ts +0 -4
  974. package/src/crypto/wallet.ts +0 -67
  975. package/src/cu/mod.ts +0 -1
  976. package/src/cu/ni.ts +0 -146
  977. package/src/cy/mod.ts +0 -1
  978. package/src/cy/vat.ts +0 -134
  979. package/src/cz/dic.ts +0 -140
  980. package/src/cz/ico.ts +0 -86
  981. package/src/cz/mod.ts +0 -3
  982. package/src/cz/rc.ts +0 -222
  983. package/src/de/handelsreg.ts +0 -122
  984. package/src/de/idnr.ts +0 -147
  985. package/src/de/mod.ts +0 -5
  986. package/src/de/stnr.ts +0 -222
  987. package/src/de/svnr.ts +0 -171
  988. package/src/de/vat.ts +0 -102
  989. package/src/dk/cpr.ts +0 -137
  990. package/src/dk/cvr.ts +0 -91
  991. package/src/dk/mod.ts +0 -3
  992. package/src/dk/vat.ts +0 -96
  993. package/src/do/mod.ts +0 -1
  994. package/src/do/rnc.ts +0 -130
  995. package/src/ec/mod.ts +0 -1
  996. package/src/ec/ruc.ts +0 -199
  997. package/src/ee/ik.ts +0 -167
  998. package/src/ee/mod.ts +0 -3
  999. package/src/ee/registrikood.ts +0 -86
  1000. package/src/ee/vat.ts +0 -89
  1001. package/src/eg/mod.ts +0 -1
  1002. package/src/eg/tn.ts +0 -107
  1003. package/src/es/cif.ts +0 -108
  1004. package/src/es/dni.ts +0 -94
  1005. package/src/es/mod.ts +0 -5
  1006. package/src/es/nie.ts +0 -111
  1007. package/src/es/nss.ts +0 -113
  1008. package/src/es/vat.ts +0 -186
  1009. package/src/eu/mod.ts +0 -1
  1010. package/src/eu/vat.ts +0 -220
  1011. package/src/fi/hetu.ts +0 -200
  1012. package/src/fi/mod.ts +0 -3
  1013. package/src/fi/vat.ts +0 -87
  1014. package/src/fi/ytunnus.ts +0 -87
  1015. package/src/fr/mod.ts +0 -5
  1016. package/src/fr/nif.ts +0 -97
  1017. package/src/fr/nir.ts +0 -197
  1018. package/src/fr/siren.ts +0 -83
  1019. package/src/fr/siret.ts +0 -126
  1020. package/src/fr/tva.ts +0 -150
  1021. package/src/gb/mod.ts +0 -5
  1022. package/src/gb/nhs.ts +0 -92
  1023. package/src/gb/nino.ts +0 -158
  1024. package/src/gb/sedol.ts +0 -143
  1025. package/src/gb/utr.ts +0 -85
  1026. package/src/gb/vat.ts +0 -162
  1027. package/src/ge/mod.ts +0 -1
  1028. package/src/ge/pin.ts +0 -75
  1029. package/src/gh/mod.ts +0 -1
  1030. package/src/gh/tin.ts +0 -105
  1031. package/src/gr/amka.ts +0 -108
  1032. package/src/gr/mod.ts +0 -2
  1033. package/src/gr/vat.ts +0 -100
  1034. package/src/gt/mod.ts +0 -1
  1035. package/src/gt/nit.ts +0 -123
  1036. package/src/hk/hkid.ts +0 -136
  1037. package/src/hk/mod.ts +0 -1
  1038. package/src/hr/mod.ts +0 -1
  1039. package/src/hr/vat.ts +0 -83
  1040. package/src/hu/mod.ts +0 -1
  1041. package/src/hu/vat.ts +0 -87
  1042. package/src/iban.ts +0 -344
  1043. package/src/id/mod.ts +0 -1
  1044. package/src/id/npwp.ts +0 -191
  1045. package/src/ie/mod.ts +0 -2
  1046. package/src/ie/pps.ts +0 -109
  1047. package/src/ie/vat.ts +0 -142
  1048. package/src/il/idnr.ts +0 -91
  1049. package/src/il/mod.ts +0 -1
  1050. package/src/in/aadhaar.ts +0 -100
  1051. package/src/in/gstin.ts +0 -175
  1052. package/src/in/mod.ts +0 -3
  1053. package/src/in/pan.ts +0 -97
  1054. package/src/index.ts +0 -123
  1055. package/src/iq/mod.ts +0 -1
  1056. package/src/iq/nid.ts +0 -75
  1057. package/src/ir/mod.ts +0 -1
  1058. package/src/ir/nid.ts +0 -124
  1059. package/src/is/kennitala.ts +0 -129
  1060. package/src/is/mod.ts +0 -2
  1061. package/src/is/vsk.ts +0 -67
  1062. package/src/isin.ts +0 -124
  1063. package/src/it/codicefiscale.ts +0 -332
  1064. package/src/it/iva.ts +0 -119
  1065. package/src/it/mod.ts +0 -2
  1066. package/src/jp/cn.ts +0 -95
  1067. package/src/jp/mod.ts +0 -2
  1068. package/src/jp/mynumber.ts +0 -107
  1069. package/src/kr/brn.ts +0 -105
  1070. package/src/kr/mod.ts +0 -2
  1071. package/src/kr/rrn.ts +0 -189
  1072. package/src/kw/civil.ts +0 -161
  1073. package/src/kw/mod.ts +0 -1
  1074. package/src/kz/iin.ts +0 -184
  1075. package/src/kz/mod.ts +0 -1
  1076. package/src/lei.ts +0 -102
  1077. package/src/li/mod.ts +0 -1
  1078. package/src/li/peid.ts +0 -70
  1079. package/src/lk/mod.ts +0 -1
  1080. package/src/lk/nic.ts +0 -233
  1081. package/src/lt/asmens.ts +0 -124
  1082. package/src/lt/mod.ts +0 -2
  1083. package/src/lt/vat.ts +0 -114
  1084. package/src/lu/mod.ts +0 -1
  1085. package/src/lu/vat.ts +0 -85
  1086. package/src/luhn.ts +0 -79
  1087. package/src/lv/mod.ts +0 -1
  1088. package/src/lv/vat.ts +0 -169
  1089. package/src/ma/ice.ts +0 -83
  1090. package/src/ma/mod.ts +0 -1
  1091. package/src/mc/mod.ts +0 -1
  1092. package/src/mc/tva.ts +0 -78
  1093. package/src/md/idno.ts +0 -90
  1094. package/src/md/mod.ts +0 -1
  1095. package/src/me/mod.ts +0 -1
  1096. package/src/me/pib.ts +0 -83
  1097. package/src/mk/edb.ts +0 -95
  1098. package/src/mk/mod.ts +0 -1
  1099. package/src/mt/mod.ts +0 -1
  1100. package/src/mt/vat.ts +0 -93
  1101. package/src/mu/brn.ts +0 -106
  1102. package/src/mu/mod.ts +0 -1
  1103. package/src/mx/clabe.ts +0 -115
  1104. package/src/mx/curp.ts +0 -247
  1105. package/src/mx/mod.ts +0 -3
  1106. package/src/mx/rfc.ts +0 -179
  1107. package/src/my/mod.ts +0 -1
  1108. package/src/my/nric.ts +0 -260
  1109. package/src/ng/mod.ts +0 -1
  1110. package/src/ng/nin.ts +0 -76
  1111. package/src/ni/mod.ts +0 -1
  1112. package/src/ni/ruc.ts +0 -180
  1113. package/src/nl/bsn.ts +0 -91
  1114. package/src/nl/kvk.ts +0 -63
  1115. package/src/nl/mod.ts +0 -3
  1116. package/src/nl/vat.ts +0 -95
  1117. package/src/no/fodselsnummer.ts +0 -197
  1118. package/src/no/mod.ts +0 -3
  1119. package/src/no/mva.ts +0 -77
  1120. package/src/no/orgnr.ts +0 -83
  1121. package/src/nz/ird.ts +0 -132
  1122. package/src/nz/mod.ts +0 -1
  1123. package/src/pa/mod.ts +0 -1
  1124. package/src/pa/ruc.ts +0 -387
  1125. package/src/patterns.ts +0 -390
  1126. package/src/pe/mod.ts +0 -1
  1127. package/src/pe/ruc.ts +0 -124
  1128. package/src/ph/mod.ts +0 -1
  1129. package/src/ph/philid.ts +0 -80
  1130. package/src/pk/cnic.ts +0 -109
  1131. package/src/pk/mod.ts +0 -1
  1132. package/src/pl/mod.ts +0 -3
  1133. package/src/pl/nip.ts +0 -100
  1134. package/src/pl/pesel.ts +0 -155
  1135. package/src/pl/regon.ts +0 -102
  1136. package/src/pt/cc.ts +0 -112
  1137. package/src/pt/mod.ts +0 -2
  1138. package/src/pt/vat.ts +0 -98
  1139. package/src/ro/cnp.ts +0 -179
  1140. package/src/ro/mod.ts +0 -2
  1141. package/src/ro/vat.ts +0 -99
  1142. package/src/rs/mod.ts +0 -1
  1143. package/src/rs/pib.ts +0 -87
  1144. package/src/ru/inn.ts +0 -113
  1145. package/src/ru/mod.ts +0 -1
  1146. package/src/se/mod.ts +0 -3
  1147. package/src/se/orgnr.ts +0 -85
  1148. package/src/se/personnummer.ts +0 -183
  1149. package/src/se/vat.ts +0 -97
  1150. package/src/sg/mod.ts +0 -1
  1151. package/src/sg/uen.ts +0 -288
  1152. package/src/si/emso.ts +0 -178
  1153. package/src/si/mod.ts +0 -2
  1154. package/src/si/vat.ts +0 -113
  1155. package/src/sk/dic.ts +0 -110
  1156. package/src/sk/ico.ts +0 -40
  1157. package/src/sk/mod.ts +0 -3
  1158. package/src/sk/rc.ts +0 -44
  1159. package/src/th/mod.ts +0 -1
  1160. package/src/th/tin.ts +0 -106
  1161. package/src/tr/mod.ts +0 -2
  1162. package/src/tr/tckimlik.ts +0 -115
  1163. package/src/tr/vkn.ts +0 -101
  1164. package/src/tw/mod.ts +0 -1
  1165. package/src/tw/ubn.ts +0 -112
  1166. package/src/types.ts +0 -262
  1167. package/src/ua/edrpou.ts +0 -108
  1168. package/src/ua/mod.ts +0 -1
  1169. package/src/us/ein.ts +0 -261
  1170. package/src/us/itin.ts +0 -129
  1171. package/src/us/mod.ts +0 -4
  1172. package/src/us/rtn.ts +0 -139
  1173. package/src/us/ssn.ts +0 -121
  1174. package/src/uy/mod.ts +0 -1
  1175. package/src/uy/rut.ts +0 -150
  1176. package/src/ve/mod.ts +0 -1
  1177. package/src/ve/rif.ts +0 -147
  1178. package/src/vn/mod.ts +0 -1
  1179. package/src/vn/mst.ts +0 -132
  1180. package/src/za/idnr.ts +0 -159
  1181. package/src/za/mod.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"curp.js","names":[],"sources":["../../src/mx/curp.ts"],"sourcesContent":["/**\n * CURP (Clave Única de Registro de Población).\n *\n * Mexican personal identification number. 18 characters:\n * 4 letters (name encoding) + 6 digits (YYMMDD birth\n * date) + 1 letter (gender: H=male, M=female) + 2\n * letters (state code) + 3 consonants (name\n * disambiguation) + 1 digit (century discriminator) +\n * 1 check digit.\n *\n * The check digit is computed as a weighted sum mod 10\n * using an alphabet mapping (0-9, A-N, &, O-Z).\n *\n * @see https://en.wikipedia.org/wiki/CURP\n */\n\nimport type {\n ParsedPersonId,\n ValidateResult,\n CountryValidator,\n} from \"../types\";\n\nimport { clean } from \"#util/clean\";\nimport { isValidDate } from \"#util/date\";\nimport { randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\n\n/** Valid Mexican state codes (2-letter). */\nconst STATE_CODES = new Set([\n \"AS\",\n \"BC\",\n \"BS\",\n \"CC\",\n \"CL\",\n \"CM\",\n \"CS\",\n \"CH\",\n \"DF\",\n \"DG\",\n \"GT\",\n \"GR\",\n \"HG\",\n \"JC\",\n \"MC\",\n \"MN\",\n \"MS\",\n \"NT\",\n \"NL\",\n \"OC\",\n \"PL\",\n \"QT\",\n \"QR\",\n \"SP\",\n \"SL\",\n \"SR\",\n \"TC\",\n \"TS\",\n \"TL\",\n \"VZ\",\n \"YN\",\n \"ZS\",\n \"NE\", // Born abroad\n]);\nconst STATE_CODE_LIST = [...STATE_CODES];\nconst LETTERS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n/**\n * Alphabet for CURP check digit computation.\n * Matches python-stdnum: digits 0-9, then A-N,\n * ampersand, O-Z.\n */\nconst ALPHABET = \"0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ\";\n\nconst CHAR_MAP = new Map<string, number>();\nfor (const [i, ch] of ALPHABET.split(\"\").entries()) {\n CHAR_MAP.set(ch, i);\n}\n\nconst compact = (value: string): string =>\n clean(value, \" -\").trim().toUpperCase();\n\n/**\n * Compute the CURP check digit. Sum each of the first\n * 17 characters multiplied by weight (18 - position),\n * then check = (10 - sum % 10) % 10.\n */\nconst calcCheckDigit = (value: string): string => {\n let sum = 0;\n for (let i = 0; i < 17; i++) {\n const ch = value[i];\n if (ch === undefined) continue;\n sum += (CHAR_MAP.get(ch) ?? 0) * (18 - i);\n }\n return String((10 - (sum % 10)) % 10);\n};\n\n/**\n * Resolve full year from 2-digit year and century\n * discriminator: 0-9 = 1900s, letter = 2000s.\n */\nconst resolveCurpYear = (\n yy: number,\n centuryChar: string,\n): number =>\n centuryChar >= \"0\" && centuryChar <= \"9\"\n ? 1900 + yy\n : 2000 + yy;\n\nconst CURP_RE =\n /^[A-Z]{4}\\d{6}[HM][A-Z]{2}[A-Z]{3}[0-9A-Z]\\d$/;\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 18) {\n return err(\n \"INVALID_LENGTH\",\n \"CURP must be 18 characters\",\n );\n }\n\n if (!CURP_RE.test(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"CURP has an invalid format\",\n );\n }\n\n // Validate the embedded date (YYMMDD at positions 4-9).\n const yy = Number(v.slice(4, 6));\n const mm = Number(v.slice(6, 8));\n const dd = Number(v.slice(8, 10));\n\n // SAFETY: regex validation ensures v.length === 18.\n // eslint-disable-next-line no-non-null-assertion\n const year = resolveCurpYear(yy, v[16]!);\n if (!isValidDate(year, mm, dd)) {\n return err(\n \"INVALID_COMPONENT\",\n \"CURP contains an invalid birth date\",\n );\n }\n\n // Validate state code at positions 11-12.\n const state = v.slice(11, 13);\n if (!STATE_CODES.has(state)) {\n return err(\n \"INVALID_COMPONENT\",\n \"CURP contains an invalid state code\",\n );\n }\n\n // Verify check digit (last character).\n const expected = calcCheckDigit(v);\n if (v[17] !== expected) {\n return err(\n \"INVALID_CHECKSUM\",\n \"CURP check digit does not match\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\n/**\n * Extract birth date and gender from a CURP.\n * Returns null if the value is not valid.\n */\nconst parse = (value: string): ParsedPersonId | null => {\n const result = validate(value);\n if (!result.valid) return null;\n\n const v = result.compact;\n const yy = Number(v.slice(4, 6));\n const mm = Number(v.slice(6, 8));\n const dd = Number(v.slice(8, 10));\n\n // SAFETY: regex validation ensures v.length === 18.\n // eslint-disable-next-line no-non-null-assertion\n const year = resolveCurpYear(yy, v[16]!);\n\n const genderChar = v[10];\n const gender: \"male\" | \"female\" =\n genderChar === \"H\" ? \"male\" : \"female\";\n\n return {\n birthDate: new Date(year, mm - 1, dd),\n gender,\n };\n};\n\nconst randomLetter = (): string =>\n LETTERS.charAt(randomInt(0, LETTERS.length - 1));\n\n/** Generate a random valid CURP. */\nconst generate = (): string => {\n const year = randomInt(1980, 2024);\n const month = String(randomInt(1, 12)).padStart(2, \"0\");\n const day = String(randomInt(1, 28)).padStart(2, \"0\");\n const yy = String(year % 100).padStart(2, \"0\");\n const gender = Math.random() < 0.5 ? \"H\" : \"M\";\n const state =\n STATE_CODE_LIST[\n randomInt(0, STATE_CODE_LIST.length - 1)\n ] ?? \"NE\";\n const centuryChar =\n year >= 2000 ? randomLetter() : String(randomInt(0, 9));\n const body =\n `${randomLetter()}${randomLetter()}` +\n `${randomLetter()}${randomLetter()}` +\n `${yy}${month}${day}${gender}${state}` +\n `${randomLetter()}${randomLetter()}${randomLetter()}` +\n `${centuryChar}`;\n return `${body}${calcCheckDigit(body)}`;\n};\n\n/**\n * Mexican CURP (personal identification number).\n *\n * Example sourced from python-stdnum test suite.\n */\nconst curp: CountryValidator<\"MX\", ParsedPersonId> = {\n name: \"Mexican Personal ID\",\n localName: \"Clave Única de Registro de Población\",\n abbreviation: \"CURP\",\n aliases: [\n \"CURP\",\n \"Clave Única de Registro de Población\",\n ] as const,\n candidatePattern: \"[A-Z]{4}\\\\d{6}[HM][A-Z]{5}[A-Z\\\\d]\\\\d\",\n scope: \"country\",\n country: \"MX\",\n entityType: \"person\",\n lengths: [18] as const,\n examples: [\"BOXW310820HNERXN09\"] as const,\n compact,\n format,\n parse,\n validate,\n generate,\n sourceUrl: \"https://en.wikipedia.org/wiki/CURP\",\n};\n\nexport default curp;\nexport { compact, format, generate, parse, validate };\n"],"mappings":"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"}
1
+ {"version":3,"file":"curp.js","names":[],"sources":["../../src/generated/mx/curp.ts"],"sourcesContent":["// Generated by scripts/generate-public-surface.ts. Do not edit.\nimport { createValidator } from \"../../runtime\";\nimport type {\n CountryValidator,\n ParsedPersonId,\n} from \"../../types\";\n\nconst curp: CountryValidator<\"MX\", ParsedPersonId> =\n createValidator(\"mx.curp\", 128);\n\nexport default curp;\nexport const compact = curp.compact;\nexport const format = curp.format;\nexport const validate = curp.validate;\nexport const generate = (): string =>\n curp.generate?.() ??\n (() => {\n throw new Error(\n \"Validator mx.curp cannot generate values\",\n );\n })();\nexport const parse = curp.parse;\n"],"mappings":";;AAOA,MAAM,OACJ,gBAAgB,WAAW,GAAG;AAGhC,MAAa,UAAU,KAAK;AAC5B,MAAa,SAAS,KAAK;AAC3B,MAAa,WAAW,KAAK;AAC7B,MAAa,iBACX,KAAK,WAAW,YACT;CACL,MAAM,IAAI,MACR,0CACF;AACF,EAAA,CAAG;AACL,MAAa,QAAQ,KAAK"}
package/dist/mx/mod.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  import clabe from "./clabe.js";
2
2
  import curp from "./curp.js";
3
3
  import rfc from "./rfc.js";
4
-
5
- //#region src/mx/mod.d.ts
6
4
  declare namespace mod_d_exports {
7
5
  export { clabe, curp, rfc };
8
6
  }
package/dist/mx/mod.js CHANGED
@@ -2,7 +2,7 @@ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
2
  import clabe from "./clabe.js";
3
3
  import curp from "./curp.js";
4
4
  import rfc from "./rfc.js";
5
- //#region src/mx/mod.ts
5
+ //#region src/generated/mx/mod.ts
6
6
  var mx_exports = /* @__PURE__ */ __exportAll({
7
7
  clabe: () => clabe,
8
8
  curp: () => curp,
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","names":[],"sources":["../../src/mx/mod.ts"],"sourcesContent":["export { default as clabe } from \"./clabe\";\nexport { default as curp } from \"./curp\";\nexport { default as rfc } from \"./rfc\";\n"],"mappings":""}
1
+ {"version":3,"file":"mod.js","names":[],"sources":["../../src/generated/mx/mod.ts"],"sourcesContent":["// Generated by scripts/generate-public-surface.ts. Do not edit.\nexport { default as clabe } from \"./clabe\";\nexport { default as curp } from \"./curp\";\nexport { default as rfc } from \"./rfc\";\n"],"mappings":""}
package/dist/mx/rfc.d.ts CHANGED
@@ -1,17 +1,10 @@
1
1
  import { CountryValidator, ValidateResult } from "../types.js";
2
-
3
- //#region src/mx/rfc.d.ts
2
+ //#region src/generated/mx/rfc.d.ts
3
+ declare const rfc: CountryValidator<"MX">;
4
4
  declare const compact: (value: string) => string;
5
- declare const validate: (value: string) => ValidateResult;
6
5
  declare const format: (value: string) => string;
7
- /** Generate a random valid RFC. */
6
+ declare const validate: (value: string) => ValidateResult;
8
7
  declare const generate: () => string;
9
- /**
10
- * Mexican RFC (tax identification number).
11
- *
12
- * Examples sourced from python-stdnum test suite.
13
- */
14
- declare const rfc: CountryValidator<"MX">;
15
8
  //#endregion
16
9
  export { compact, rfc as default, format, generate, validate };
17
10
  //# sourceMappingURL=rfc.d.ts.map
package/dist/mx/rfc.js CHANGED
@@ -1,94 +1,12 @@
1
- import { clean } from "../_util/clean.js";
2
- import { isValidDate } from "../_util/date.js";
3
- import { randomInt } from "../_util/generate.js";
4
- import { err } from "../_util/result.js";
5
- //#region src/mx/rfc.ts
6
- /** Alphabet for RFC check digit computation. */
7
- const ALPHABET = "0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ Ñ";
8
- const CHAR_MAP = /* @__PURE__ */ new Map();
9
- for (const [i, ch] of ALPHABET.split("").entries()) CHAR_MAP.set(ch, i);
10
- const compact = (value) => clean(value, " -.").trim().toUpperCase();
11
- /**
12
- * Compute the RFC check digit using mod 11 with
13
- * the SAT alphabet mapping.
14
- *
15
- * Each character is mapped to its position in the
16
- * ALPHABET, then multiplied by a weight that starts
17
- * at (len + 1) and decreases by 1. The check digit
18
- * is (11 - sum % 11) % 11, mapped to 0-9 or "A".
19
- */
20
- const calcCheckDigit = (value) => {
21
- const padded = value.length === 11 ? ` ${value}` : value;
22
- let sum = 0;
23
- for (let i = 0; i < 12; i++) {
24
- const ch = padded[i];
25
- if (ch === void 0) continue;
26
- const v = CHAR_MAP.get(ch) ?? 0;
27
- sum += v * (13 - i);
28
- }
29
- const remainder = sum % 11;
30
- if (remainder === 0) return "0";
31
- const digit = 11 - remainder;
32
- return digit === 10 ? "A" : String(digit);
33
- };
34
- const PERSON_RE = /^[A-ZÑ&]{4}\d{6}[A-Z\d]{3}$/;
35
- const COMPANY_RE = /^[A-ZÑ&]{3}\d{6}[A-Z\d]{3}$/;
36
- const PREFIX_ALPHA = "ABCDEFGHIJKLMNOPQRSTUVWXYZÑ&";
37
- const RFC_ALNUM = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
38
- const validate = (value) => {
39
- const v = compact(value);
40
- if (v.length !== 12 && v.length !== 13) return err("INVALID_LENGTH", "RFC must be 12 or 13 characters");
41
- const isPerson = v.length === 13;
42
- if (!(isPerson ? PERSON_RE : COMPANY_RE).test(v)) return err("INVALID_FORMAT", "RFC has an invalid format");
43
- const dateOffset = isPerson ? 4 : 3;
44
- const yy = Number(v.slice(dateOffset, dateOffset + 2));
45
- const mm = Number(v.slice(dateOffset + 2, dateOffset + 4));
46
- const dd = Number(v.slice(dateOffset + 4, dateOffset + 6));
47
- if (!isValidDate(2e3 + yy, mm, dd)) return err("INVALID_COMPONENT", "RFC contains an invalid date");
48
- const expected = calcCheckDigit(v.slice(0, -1));
49
- if (v.at(-1) !== expected) return err("INVALID_CHECKSUM", "RFC check digit does not match");
50
- return {
51
- valid: true,
52
- compact: v
53
- };
54
- };
55
- const format = (value) => compact(value);
56
- const randomCharFrom = (chars) => chars.charAt(randomInt(0, chars.length - 1));
57
- /** Generate a random valid RFC. */
58
- const generate = () => {
59
- const prefixLength = Math.random() < .5 ? 4 : 3;
60
- let prefix = "";
61
- for (let i = 0; i < prefixLength; i++) prefix += randomCharFrom(PREFIX_ALPHA);
62
- const year = randomInt(2e3, 2099);
63
- const month = String(randomInt(1, 12)).padStart(2, "0");
64
- const day = String(randomInt(1, 28)).padStart(2, "0");
65
- let homoclave = "";
66
- for (let i = 0; i < 2; i++) homoclave += randomCharFrom(RFC_ALNUM);
67
- const body = `${prefix}${String(year % 100).padStart(2, "0")}${month}${day}${homoclave}`;
68
- return `${body}${calcCheckDigit(body)}`;
69
- };
70
- /**
71
- * Mexican RFC (tax identification number).
72
- *
73
- * Examples sourced from python-stdnum test suite.
74
- */
75
- const rfc = {
76
- name: "Mexican Tax ID",
77
- localName: "Registro Federal de Contribuyentes",
78
- abbreviation: "RFC",
79
- aliases: ["RFC", "Registro Federal de Contribuyentes"],
80
- candidatePattern: "[A-ZÑ&]{3,4}\\d{6}[A-Z\\d]{3}",
81
- scope: "country",
82
- country: "MX",
83
- entityType: "any",
84
- lengths: [12, 13],
85
- examples: ["GODE561231GR8", "MAB9307148T4"],
86
- compact,
87
- format,
88
- validate,
89
- generate,
90
- sourceUrl: "https://en.wikipedia.org/wiki/Tax_Identification_Number_(Mexico)"
91
- };
1
+ import { createValidator } from "../runtime.js";
2
+ //#region src/generated/mx/rfc.ts
3
+ const rfc = createValidator("mx.rfc", 129);
4
+ const compact = rfc.compact;
5
+ const format = rfc.format;
6
+ const validate = rfc.validate;
7
+ const generate = () => rfc.generate?.() ?? (() => {
8
+ throw new Error("Validator mx.rfc cannot generate values");
9
+ })();
92
10
  //#endregion
93
11
  export { compact, rfc as default, format, generate, validate };
94
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"rfc.js","names":[],"sources":["../../src/mx/rfc.ts"],"sourcesContent":["/**\n * RFC (Registro Federal de Contribuyentes).\n *\n * Mexican tax identification number issued by the SAT\n * (Servicio de Administración Tributaria). The number is\n * 13 characters for individuals (4 letters + 6 digits\n * YYMMDD + 3 alphanumeric) or 12 characters for\n * companies (3 letters + 6 digits YYMMDD + 3\n * alphanumeric). The last character is a check digit\n * computed with a mod 11 algorithm over a specific\n * alphabet mapping.\n *\n * Format: AAAA######XXX (persons, 13 chars)\n * AAA######XXX (companies, 12 chars)\n *\n * @see https://en.wikipedia.org/wiki/Tax_Identification_Number_(Mexico)\n */\n\nimport type {\n ValidateResult,\n CountryValidator,\n} from \"../types\";\n\nimport { clean } from \"#util/clean\";\nimport { isValidDate } from \"#util/date\";\nimport { randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\n\n/** Alphabet for RFC check digit computation. */\nconst ALPHABET = \"0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ Ñ\";\n\nconst CHAR_MAP = new Map<string, number>();\nfor (const [i, ch] of ALPHABET.split(\"\").entries()) {\n CHAR_MAP.set(ch, i);\n}\n\nconst compact = (value: string): string =>\n clean(value, \" -.\").trim().toUpperCase();\n\n/**\n * Compute the RFC check digit using mod 11 with\n * the SAT alphabet mapping.\n *\n * Each character is mapped to its position in the\n * ALPHABET, then multiplied by a weight that starts\n * at (len + 1) and decreases by 1. The check digit\n * is (11 - sum % 11) % 11, mapped to 0-9 or \"A\".\n */\nconst calcCheckDigit = (value: string): string => {\n // Pad 12-char company RFCs with a leading space\n // to align weights with the 13-char algorithm.\n const padded = value.length === 11 ? ` ${value}` : value;\n let sum = 0;\n for (let i = 0; i < 12; i++) {\n const ch = padded[i];\n if (ch === undefined) continue;\n const v = CHAR_MAP.get(ch) ?? 0;\n sum += v * (13 - i);\n }\n const remainder = sum % 11;\n if (remainder === 0) return \"0\";\n const digit = 11 - remainder;\n return digit === 10 ? \"A\" : String(digit);\n};\n\nconst PERSON_RE = /^[A-ZÑ&]{4}\\d{6}[A-Z\\d]{3}$/;\nconst COMPANY_RE = /^[A-ZÑ&]{3}\\d{6}[A-Z\\d]{3}$/;\nconst PREFIX_ALPHA = \"ABCDEFGHIJKLMNOPQRSTUVWXYZÑ&\";\nconst RFC_ALNUM = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 12 && v.length !== 13) {\n return err(\n \"INVALID_LENGTH\",\n \"RFC must be 12 or 13 characters\",\n );\n }\n\n const isPerson = v.length === 13;\n const re = isPerson ? PERSON_RE : COMPANY_RE;\n if (!re.test(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"RFC has an invalid format\",\n );\n }\n\n // Validate the embedded date (YYMMDD).\n const dateOffset = isPerson ? 4 : 3;\n const yy = Number(v.slice(dateOffset, dateOffset + 2));\n const mm = Number(\n v.slice(dateOffset + 2, dateOffset + 4),\n );\n const dd = Number(\n v.slice(dateOffset + 4, dateOffset + 6),\n );\n\n // RFC dates use 2-digit years; use 2000 century for\n // date validation (any valid calendar date is accepted).\n const year = 2000 + yy;\n if (!isValidDate(year, mm, dd)) {\n return err(\n \"INVALID_COMPONENT\",\n \"RFC contains an invalid date\",\n );\n }\n\n // Verify check digit (last character).\n const body = v.slice(0, -1);\n const expected = calcCheckDigit(body);\n if (v.at(-1) !== expected) {\n return err(\n \"INVALID_CHECKSUM\",\n \"RFC check digit does not match\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\nconst randomCharFrom = (chars: string): string =>\n chars.charAt(randomInt(0, chars.length - 1));\n\n/** Generate a random valid RFC. */\nconst generate = (): string => {\n const isPerson = Math.random() < 0.5;\n const prefixLength = isPerson ? 4 : 3;\n let prefix = \"\";\n for (let i = 0; i < prefixLength; i++) {\n prefix += randomCharFrom(PREFIX_ALPHA);\n }\n\n const year = randomInt(2000, 2099);\n const month = String(randomInt(1, 12)).padStart(2, \"0\");\n const day = String(randomInt(1, 28)).padStart(2, \"0\");\n let homoclave = \"\";\n for (let i = 0; i < 2; i++) {\n homoclave += randomCharFrom(RFC_ALNUM);\n }\n\n const body =\n `${prefix}${String(year % 100).padStart(2, \"0\")}` +\n `${month}${day}${homoclave}`;\n return `${body}${calcCheckDigit(body)}`;\n};\n\n/**\n * Mexican RFC (tax identification number).\n *\n * Examples sourced from python-stdnum test suite.\n */\nconst rfc: CountryValidator<\"MX\"> = {\n name: \"Mexican Tax ID\",\n localName: \"Registro Federal de Contribuyentes\",\n abbreviation: \"RFC\",\n aliases: [\n \"RFC\",\n \"Registro Federal de Contribuyentes\",\n ] as const,\n candidatePattern: \"[A-ZÑ&]{3,4}\\\\d{6}[A-Z\\\\d]{3}\",\n scope: \"country\",\n country: \"MX\",\n entityType: \"any\",\n lengths: [12, 13] as const,\n examples: [\"GODE561231GR8\", \"MAB9307148T4\"] as const,\n compact,\n format,\n validate,\n generate,\n sourceUrl:\n \"https://en.wikipedia.org/wiki/Tax_Identification_Number_(Mexico)\",\n};\n\nexport default rfc;\nexport { compact, format, generate, validate };\n"],"mappings":"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"}
1
+ {"version":3,"file":"rfc.js","names":[],"sources":["../../src/generated/mx/rfc.ts"],"sourcesContent":["// Generated by scripts/generate-public-surface.ts. Do not edit.\nimport { createValidator } from \"../../runtime\";\nimport type { CountryValidator } from \"../../types\";\n\nconst rfc: CountryValidator<\"MX\"> = createValidator(\n \"mx.rfc\",\n 129,\n);\n\nexport default rfc;\nexport const compact = rfc.compact;\nexport const format = rfc.format;\nexport const validate = rfc.validate;\nexport const generate = (): string =>\n rfc.generate?.() ??\n (() => {\n throw new Error(\n \"Validator mx.rfc cannot generate values\",\n );\n })();\n"],"mappings":";;AAIA,MAAM,MAA8B,gBAClC,UACA,GACF;AAGA,MAAa,UAAU,IAAI;AAC3B,MAAa,SAAS,IAAI;AAC1B,MAAa,WAAW,IAAI;AAC5B,MAAa,iBACX,IAAI,WAAW,YACR;CACL,MAAM,IAAI,MACR,yCACF;AACF,EAAA,CAAG"}
package/dist/my/mod.d.ts CHANGED
@@ -1,6 +1,4 @@
1
1
  import nric from "./nric.js";
2
-
3
- //#region src/my/mod.d.ts
4
2
  declare namespace mod_d_exports {
5
3
  export { nric };
6
4
  }
package/dist/my/mod.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
2
  import nric from "./nric.js";
3
- //#region src/my/mod.ts
3
+ //#region src/generated/my/mod.ts
4
4
  var my_exports = /* @__PURE__ */ __exportAll({ nric: () => nric });
5
5
  //#endregion
6
6
  export { my_exports, nric };
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","names":[],"sources":["../../src/my/mod.ts"],"sourcesContent":["export { default as nric } from \"./nric\";\n"],"mappings":""}
1
+ {"version":3,"file":"mod.js","names":[],"sources":["../../src/generated/my/mod.ts"],"sourcesContent":["// Generated by scripts/generate-public-surface.ts. Do not edit.\nexport { default as nric } from \"./nric\";\n"],"mappings":""}
package/dist/my/nric.d.ts CHANGED
@@ -1,18 +1,11 @@
1
- import { CountryValidator, ParsedPersonId, ValidateResult } from "../types.js";
2
-
3
- //#region src/my/nric.d.ts
1
+ import { CountryValidator, ParsedIdentifier, ParsedPersonId, ValidateResult } from "../types.js";
2
+ //#region src/generated/my/nric.d.ts
3
+ declare const nric: CountryValidator<"MY", ParsedPersonId>;
4
4
  declare const compact: (value: string) => string;
5
- declare const validate: (value: string) => ValidateResult;
6
5
  declare const format: (value: string) => string;
7
- /**
8
- * Extract birth date and gender from an NRIC.
9
- * Returns null if the value is not valid.
10
- */
11
- declare const parse: (value: string) => ParsedPersonId | null;
12
- /** Generate a random valid Malaysian NRIC. */
6
+ declare const validate: (value: string) => ValidateResult;
13
7
  declare const generate: () => string;
14
- /** Malaysian National Registration Identity Card. */
15
- declare const nric: CountryValidator<"MY", ParsedPersonId>;
8
+ declare const parse: ((value: string) => ParsedIdentifier | null) & ((value: string) => ParsedPersonId | null);
16
9
  //#endregion
17
10
  export { compact, nric as default, format, generate, parse, validate };
18
11
  //# sourceMappingURL=nric.d.ts.map
package/dist/my/nric.js CHANGED
@@ -1,187 +1,13 @@
1
- import { clean } from "../_util/clean.js";
2
- import { isValidDate } from "../_util/date.js";
3
- import { randomInt } from "../_util/generate.js";
4
- import { err } from "../_util/result.js";
5
- import { isdigits } from "../_util/strings.js";
6
- //#region src/my/nric.ts
7
- /**
8
- * Valid place-of-birth codes (2-digit).
9
- * Codes 01-16 are states, 21-59 are pre-2000
10
- * state codes, 60-68 born outside (ASEAN),
11
- * 71-72/74-79 foreign nationals, 82-93 regions,
12
- * 98-99 legacy.
13
- */
14
- const VALID_PB_CODES = new Set([
15
- "01",
16
- "02",
17
- "03",
18
- "04",
19
- "05",
20
- "06",
21
- "07",
22
- "08",
23
- "09",
24
- "10",
25
- "11",
26
- "12",
27
- "13",
28
- "14",
29
- "15",
30
- "16",
31
- "21",
32
- "22",
33
- "23",
34
- "24",
35
- "25",
36
- "26",
37
- "27",
38
- "28",
39
- "29",
40
- "30",
41
- "31",
42
- "32",
43
- "33",
44
- "34",
45
- "35",
46
- "36",
47
- "37",
48
- "38",
49
- "39",
50
- "40",
51
- "41",
52
- "42",
53
- "43",
54
- "44",
55
- "45",
56
- "46",
57
- "47",
58
- "48",
59
- "49",
60
- "50",
61
- "51",
62
- "52",
63
- "53",
64
- "54",
65
- "55",
66
- "56",
67
- "57",
68
- "58",
69
- "59",
70
- "60",
71
- "61",
72
- "62",
73
- "63",
74
- "64",
75
- "65",
76
- "66",
77
- "67",
78
- "68",
79
- "71",
80
- "72",
81
- "74",
82
- "75",
83
- "76",
84
- "77",
85
- "78",
86
- "79",
87
- "82",
88
- "83",
89
- "84",
90
- "85",
91
- "86",
92
- "87",
93
- "88",
94
- "89",
95
- "90",
96
- "91",
97
- "92",
98
- "93",
99
- "98",
100
- "99"
101
- ]);
102
- const compact = (value) => clean(value, " -");
103
- /**
104
- * Resolve the birth year from a 2-digit year.
105
- * Years after the reference year are assumed to be
106
- * in the previous century. Accepts an explicit
107
- * reference year to avoid multiple clock reads.
108
- */
109
- const resolveYear = (yy, referenceYear) => {
110
- const year = Math.floor(referenceYear / 100) * 100 + yy;
111
- return year > referenceYear ? year - 100 : year;
112
- };
113
- const validate = (value) => {
114
- const v = compact(value);
115
- if (v.length !== 12) return err("INVALID_LENGTH", "NRIC must be exactly 12 digits");
116
- if (!isdigits(v)) return err("INVALID_FORMAT", "NRIC must contain only digits");
117
- const yy = Number(v.slice(0, 2));
118
- const mm = Number(v.slice(2, 4));
119
- const dd = Number(v.slice(4, 6));
120
- if (!isValidDate(resolveYear(yy, (/* @__PURE__ */ new Date()).getFullYear()), mm, dd)) return err("INVALID_COMPONENT", "NRIC contains an invalid birth date");
121
- const pb = v.slice(6, 8);
122
- if (!VALID_PB_CODES.has(pb)) return err("INVALID_COMPONENT", "Invalid place-of-birth code: " + pb);
123
- return {
124
- valid: true,
125
- compact: v
126
- };
127
- };
128
- const format = (value) => {
129
- const v = compact(value);
130
- return v.slice(0, 6) + "-" + v.slice(6, 8) + "-" + v.slice(8);
131
- };
132
- /**
133
- * Extract birth date and gender from an NRIC.
134
- * Returns null if the value is not valid.
135
- */
136
- const parse = (value) => {
137
- const result = validate(value);
138
- if (!result.valid) return null;
139
- const v = result.compact;
140
- const yy = Number(v.slice(0, 2));
141
- const mm = Number(v.slice(2, 4));
142
- const dd = Number(v.slice(4, 6));
143
- const year = resolveYear(yy, (/* @__PURE__ */ new Date()).getFullYear());
144
- const gender = Number(v[11]) % 2 === 1 ? "male" : "female";
145
- return {
146
- birthDate: new Date(year, mm - 1, dd),
147
- gender
148
- };
149
- };
150
- const PB_CODES = [...VALID_PB_CODES];
151
- /** Generate a random valid Malaysian NRIC. */
152
- const generate = () => {
153
- const year = randomInt(1950, 2024);
154
- const month = String(randomInt(1, 12)).padStart(2, "0");
155
- const day = String(randomInt(1, 28)).padStart(2, "0");
156
- const pb = PB_CODES[randomInt(0, PB_CODES.length - 1)] ?? "01";
157
- const serial = String(randomInt(0, 999)).padStart(3, "0");
158
- const lastDigit = Math.random() < .5 ? String(randomInt(0, 4) * 2 + 1) : String(randomInt(0, 4) * 2);
159
- return `${String(year % 100).padStart(2, "0")}${month}${day}${pb}${serial}${lastDigit}`;
160
- };
161
- /** Malaysian National Registration Identity Card. */
162
- const nric = {
163
- name: "Malaysian National Registration Identity Card Number",
164
- localName: "Nombor Kad Pengenalan",
165
- abbreviation: "NRIC",
166
- aliases: [
167
- "NRIC",
168
- "MyKad",
169
- "kad pengenalan"
170
- ],
171
- candidatePattern: "\\d{6}-?\\d{2}-?\\d{4}",
172
- scope: "country",
173
- country: "MY",
174
- entityType: "person",
175
- description: "12-digit identity card number encoding birth date, place of birth, and gender",
176
- sourceUrl: "https://en.wikipedia.org/wiki/Malaysian_identity_card",
177
- lengths: [12],
178
- examples: ["770305021234", "880715141234"],
179
- compact,
180
- format,
181
- parse,
182
- validate,
183
- generate
184
- };
1
+ import { createValidator } from "../runtime.js";
2
+ //#region src/generated/my/nric.ts
3
+ const nric = createValidator("my.nric", 130);
4
+ const compact = nric.compact;
5
+ const format = nric.format;
6
+ const validate = nric.validate;
7
+ const generate = () => nric.generate?.() ?? (() => {
8
+ throw new Error("Validator my.nric cannot generate values");
9
+ })();
10
+ const parse = nric.parse;
185
11
  //#endregion
186
12
  export { compact, nric as default, format, generate, parse, validate };
187
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"nric.js","names":[],"sources":["../../src/my/nric.ts"],"sourcesContent":["/**\n * NRIC (Malaysian National Registration Identity\n * Card Number, Nombor Kad Pengenalan).\n *\n * 12 digits: YYMMDD (birth date) + PB (place of\n * birth, 2 digits) + SSS (serial) + G (gender:\n * odd = male, even = female).\n *\n * No checksum; validation is structural (valid date\n * and valid place-of-birth code).\n *\n * @see https://en.wikipedia.org/wiki/Malaysian_identity_card\n */\n\nimport type {\n ParsedPersonId,\n ValidateResult,\n CountryValidator,\n} from \"../types\";\n\nimport { clean } from \"#util/clean\";\nimport { isValidDate } from \"#util/date\";\nimport { randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\n/**\n * Valid place-of-birth codes (2-digit).\n * Codes 01-16 are states, 21-59 are pre-2000\n * state codes, 60-68 born outside (ASEAN),\n * 71-72/74-79 foreign nationals, 82-93 regions,\n * 98-99 legacy.\n */\nconst VALID_PB_CODES = new Set([\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"21\",\n \"22\",\n \"23\",\n \"24\",\n \"25\",\n \"26\",\n \"27\",\n \"28\",\n \"29\",\n \"30\",\n \"31\",\n \"32\",\n \"33\",\n \"34\",\n \"35\",\n \"36\",\n \"37\",\n \"38\",\n \"39\",\n \"40\",\n \"41\",\n \"42\",\n \"43\",\n \"44\",\n \"45\",\n \"46\",\n \"47\",\n \"48\",\n \"49\",\n \"50\",\n \"51\",\n \"52\",\n \"53\",\n \"54\",\n \"55\",\n \"56\",\n \"57\",\n \"58\",\n \"59\",\n \"60\",\n \"61\",\n \"62\",\n \"63\",\n \"64\",\n \"65\",\n \"66\",\n \"67\",\n \"68\",\n \"71\",\n \"72\",\n \"74\",\n \"75\",\n \"76\",\n \"77\",\n \"78\",\n \"79\",\n \"82\",\n \"83\",\n \"84\",\n \"85\",\n \"86\",\n \"87\",\n \"88\",\n \"89\",\n \"90\",\n \"91\",\n \"92\",\n \"93\",\n \"98\",\n \"99\",\n]);\n\nconst compact = (value: string): string =>\n clean(value, \" -\");\n\n/**\n * Resolve the birth year from a 2-digit year.\n * Years after the reference year are assumed to be\n * in the previous century. Accepts an explicit\n * reference year to avoid multiple clock reads.\n */\nconst resolveYear = (\n yy: number,\n referenceYear: number,\n): number => {\n const century = Math.floor(referenceYear / 100);\n const year = century * 100 + yy;\n return year > referenceYear ? year - 100 : year;\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 12) {\n return err(\n \"INVALID_LENGTH\",\n \"NRIC must be exactly 12 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"NRIC must contain only digits\",\n );\n }\n\n // Validate birth date (YYMMDD)\n const yy = Number(v.slice(0, 2));\n const mm = Number(v.slice(2, 4));\n const dd = Number(v.slice(4, 6));\n\n const now = new Date().getFullYear();\n const year = resolveYear(yy, now);\n\n if (!isValidDate(year, mm, dd)) {\n return err(\n \"INVALID_COMPONENT\",\n \"NRIC contains an invalid birth date\",\n );\n }\n\n // Validate place-of-birth code\n const pb = v.slice(6, 8);\n if (!VALID_PB_CODES.has(pb)) {\n return err(\n \"INVALID_COMPONENT\",\n \"Invalid place-of-birth code: \" + pb,\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return (\n v.slice(0, 6) + \"-\" + v.slice(6, 8) + \"-\" + v.slice(8)\n );\n};\n\n/**\n * Extract birth date and gender from an NRIC.\n * Returns null if the value is not valid.\n */\nconst parse = (value: string): ParsedPersonId | null => {\n const result = validate(value);\n if (!result.valid) return null;\n\n const v = result.compact;\n const yy = Number(v.slice(0, 2));\n const mm = Number(v.slice(2, 4));\n const dd = Number(v.slice(4, 6));\n const now = new Date().getFullYear();\n const year = resolveYear(yy, now);\n\n // Last digit: odd = male, even = female\n const lastDigit = Number(v[11]);\n const gender = lastDigit % 2 === 1 ? \"male\" : \"female\";\n\n return {\n birthDate: new Date(year, mm - 1, dd),\n gender,\n };\n};\n\nconst PB_CODES = [...VALID_PB_CODES];\n\n/** Generate a random valid Malaysian NRIC. */\nconst generate = (): string => {\n const year = randomInt(1950, 2024);\n const month = String(randomInt(1, 12)).padStart(2, \"0\");\n const day = String(randomInt(1, 28)).padStart(2, \"0\");\n const pb =\n PB_CODES[randomInt(0, PB_CODES.length - 1)] ?? \"01\";\n const serial = String(randomInt(0, 999)).padStart(3, \"0\");\n const isMale = Math.random() < 0.5;\n const lastDigit = isMale\n ? String(randomInt(0, 4) * 2 + 1)\n : String(randomInt(0, 4) * 2);\n\n return (\n `${String(year % 100).padStart(2, \"0\")}` +\n `${month}${day}${pb}${serial}${lastDigit}`\n );\n};\n\n/** Malaysian National Registration Identity Card. */\nconst nric: CountryValidator<\"MY\", ParsedPersonId> = {\n name: \"Malaysian National Registration Identity Card Number\",\n localName: \"Nombor Kad Pengenalan\",\n abbreviation: \"NRIC\",\n aliases: [\"NRIC\", \"MyKad\", \"kad pengenalan\"] as const,\n candidatePattern: \"\\\\d{6}-?\\\\d{2}-?\\\\d{4}\",\n scope: \"country\",\n country: \"MY\",\n entityType: \"person\",\n description:\n \"12-digit identity card number encoding birth date, place of birth, and gender\",\n sourceUrl:\n \"https://en.wikipedia.org/wiki/Malaysian_identity_card\",\n lengths: [12] as const,\n examples: [\"770305021234\", \"880715141234\"] as const,\n compact,\n format,\n parse,\n validate,\n generate,\n};\n\nexport default nric;\nexport { compact, format, generate, parse, validate };\n"],"mappings":";;;;;;;;;;;;;AAiCA,MAAM,iBAAiB,IAAI,IAAI;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,WAAW,UACf,MAAM,OAAO,IAAI;;;;;;;AAQnB,MAAM,eACJ,IACA,kBACW;CAEX,MAAM,OADU,KAAK,MAAM,gBAAgB,GACxB,IAAI,MAAM;CAC7B,OAAO,OAAO,gBAAgB,OAAO,MAAM;AAC7C;AAEA,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CACvB,IAAI,EAAE,WAAW,IACf,OAAO,IACL,kBACA,gCACF;CAEF,IAAI,CAAC,SAAS,CAAC,GACb,OAAO,IACL,kBACA,+BACF;CAIF,MAAM,KAAK,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B,MAAM,KAAK,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B,MAAM,KAAK,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC;CAK/B,IAAI,CAAC,YAFQ,YAAY,qBADb,IAAI,KAAK,EAAA,CAAE,YACQ,CAEX,GAAG,IAAI,EAAE,GAC3B,OAAO,IACL,qBACA,qCACF;CAIF,MAAM,KAAK,EAAE,MAAM,GAAG,CAAC;CACvB,IAAI,CAAC,eAAe,IAAI,EAAE,GACxB,OAAO,IACL,qBACA,kCAAkC,EACpC;CAGF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,KAAK;CACvB,OACE,EAAE,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,MAAM,CAAC;AAEzD;;;;;AAMA,MAAM,SAAS,UAAyC;CACtD,MAAM,SAAS,SAAS,KAAK;CAC7B,IAAI,CAAC,OAAO,OAAO,OAAO;CAE1B,MAAM,IAAI,OAAO;CACjB,MAAM,KAAK,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B,MAAM,KAAK,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B,MAAM,KAAK,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC;CAE/B,MAAM,OAAO,YAAY,qBADb,IAAI,KAAK,EAAA,CAAE,YACQ,CAAC;CAIhC,MAAM,SADY,OAAO,EAAE,GACJ,IAAI,MAAM,IAAI,SAAS;CAE9C,OAAO;EACL,WAAW,IAAI,KAAK,MAAM,KAAK,GAAG,EAAE;EACpC;CACF;AACF;AAEA,MAAM,WAAW,CAAC,GAAG,cAAc;;AAGnC,MAAM,iBAAyB;CAC7B,MAAM,OAAO,UAAU,MAAM,IAAI;CACjC,MAAM,QAAQ,OAAO,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG;CACtD,MAAM,MAAM,OAAO,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG;CACpD,MAAM,KACJ,SAAS,UAAU,GAAG,SAAS,SAAS,CAAC,MAAM;CACjD,MAAM,SAAS,OAAO,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG;CAExD,MAAM,YADS,KAAK,OAAO,IAAI,KAE3B,OAAO,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,IAC9B,OAAO,UAAU,GAAG,CAAC,IAAI,CAAC;CAE9B,OACE,GAAG,OAAO,OAAO,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,IAClC,QAAQ,MAAM,KAAK,SAAS;AAEnC;;AAGA,MAAM,OAA+C;CACnD,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EAAC;EAAQ;EAAS;CAAgB;CAC3C,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,aACE;CACF,WACE;CACF,SAAS,CAAC,EAAE;CACZ,UAAU,CAAC,gBAAgB,cAAc;CACzC;CACA;CACA;CACA;CACA;AACF"}
1
+ {"version":3,"file":"nric.js","names":[],"sources":["../../src/generated/my/nric.ts"],"sourcesContent":["// Generated by scripts/generate-public-surface.ts. Do not edit.\nimport { createValidator } from \"../../runtime\";\nimport type {\n CountryValidator,\n ParsedPersonId,\n} from \"../../types\";\n\nconst nric: CountryValidator<\"MY\", ParsedPersonId> =\n createValidator(\"my.nric\", 130);\n\nexport default nric;\nexport const compact = nric.compact;\nexport const format = nric.format;\nexport const validate = nric.validate;\nexport const generate = (): string =>\n nric.generate?.() ??\n (() => {\n throw new Error(\n \"Validator my.nric cannot generate values\",\n );\n })();\nexport const parse = nric.parse;\n"],"mappings":";;AAOA,MAAM,OACJ,gBAAgB,WAAW,GAAG;AAGhC,MAAa,UAAU,KAAK;AAC5B,MAAa,SAAS,KAAK;AAC3B,MAAa,WAAW,KAAK;AAC7B,MAAa,iBACX,KAAK,WAAW,YACT;CACL,MAAM,IAAI,MACR,0CACF;AACF,EAAA,CAAG;AACL,MAAa,QAAQ,KAAK"}
@@ -0,0 +1,14 @@
1
+ import { NativeParsedIdentifier, NativeStdnumBinding, NativeValidateResult, NativeValidationError, ValidatorMetadata, asNativeBinding } from "./native.js";
2
+ //#region src/native-node.d.ts
3
+ type NativeLibc = "gnu" | "musl";
4
+ type LoadNativeBindingOptions = {
5
+ platform?: string;
6
+ arch?: string;
7
+ libc?: NativeLibc;
8
+ env?: Record<string, string | undefined>;
9
+ requireModule?: (specifier: string) => unknown;
10
+ };
11
+ declare const loadNativeStdnumBinding: (options?: LoadNativeBindingOptions) => NativeStdnumBinding;
12
+ //#endregion
13
+ export { LoadNativeBindingOptions, NativeLibc, NativeParsedIdentifier, NativeStdnumBinding, NativeValidateResult, NativeValidationError, ValidatorMetadata, asNativeBinding, loadNativeStdnumBinding };
14
+ //# sourceMappingURL=native-node.d.ts.map
@@ -0,0 +1,75 @@
1
+ import { asNativeBinding } from "./native.js";
2
+ import { createRequire } from "node:module";
3
+ import process from "node:process";
4
+ //#region src/native-node.ts
5
+ const targets = [
6
+ [
7
+ "darwin",
8
+ "arm64",
9
+ void 0,
10
+ "@stll/stdnum-darwin-arm64"
11
+ ],
12
+ [
13
+ "darwin",
14
+ "x64",
15
+ void 0,
16
+ "@stll/stdnum-darwin-x64"
17
+ ],
18
+ [
19
+ "linux",
20
+ "arm64",
21
+ "gnu",
22
+ "@stll/stdnum-linux-arm64-gnu"
23
+ ],
24
+ [
25
+ "linux",
26
+ "x64",
27
+ "gnu",
28
+ "@stll/stdnum-linux-x64-gnu"
29
+ ],
30
+ [
31
+ "win32",
32
+ "x64",
33
+ void 0,
34
+ "@stll/stdnum-win32-x64-msvc"
35
+ ]
36
+ ];
37
+ const loadNativeStdnumBinding = (options = {}) => {
38
+ const platform = options.platform ?? process.platform;
39
+ const arch = options.arch ?? process.arch;
40
+ const libc = options.libc ?? detectLibc(platform);
41
+ const requireModule = options.requireModule ?? createRequire(import.meta.url);
42
+ const match = targets.find(([targetPlatform, targetArch, targetLibc]) => targetPlatform === platform && targetArch === arch && (targetLibc === void 0 || targetLibc === libc));
43
+ const candidates = [
44
+ options.env?.["STELLA_STDNUM_NATIVE_LIBRARY_PATH"] ?? process.env["STELLA_STDNUM_NATIVE_LIBRARY_PATH"],
45
+ "../index.cjs",
46
+ match?.[3]
47
+ ].filter((value) => value !== void 0);
48
+ const errors = [];
49
+ for (const specifier of candidates) try {
50
+ const binding = asNativeBinding(requireModule(specifier));
51
+ if (binding !== null) return binding;
52
+ errors.push(`${specifier}: module does not match the stdnum binding contract`);
53
+ } catch (error) {
54
+ errors.push(`${specifier}: ${error instanceof Error ? error.message : String(error)}`);
55
+ }
56
+ const supported = targets.map(([p, a, l]) => [
57
+ p,
58
+ a,
59
+ l
60
+ ].filter(Boolean).join("-")).join(", ");
61
+ throw new Error(`Unable to load native stdnum binding for ${[
62
+ platform,
63
+ arch,
64
+ libc
65
+ ].filter(Boolean).join("-")}; supported targets: ${supported}.\n${errors.join("\n")}`);
66
+ };
67
+ const detectLibc = (platform) => {
68
+ if (platform !== "linux") return void 0;
69
+ const { header } = process.report.getReport();
70
+ return typeof header.glibcVersionRuntime === "string" ? "gnu" : "musl";
71
+ };
72
+ //#endregion
73
+ export { asNativeBinding, loadNativeStdnumBinding };
74
+
75
+ //# sourceMappingURL=native-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-node.js","names":[],"sources":["../src/native-node.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport process from \"node:process\";\n\nimport {\n asNativeBinding,\n type NativeStdnumBinding,\n} from \"./native\";\n\nexport type NativeLibc = \"gnu\" | \"musl\";\nexport type LoadNativeBindingOptions = {\n platform?: string;\n arch?: string;\n libc?: NativeLibc;\n env?: Record<string, string | undefined>;\n requireModule?: (specifier: string) => unknown;\n};\n\nconst targets = [\n [\n \"darwin\",\n \"arm64\",\n undefined,\n \"@stll/stdnum-darwin-arm64\",\n ],\n [\"darwin\", \"x64\", undefined, \"@stll/stdnum-darwin-x64\"],\n [\"linux\", \"arm64\", \"gnu\", \"@stll/stdnum-linux-arm64-gnu\"],\n [\"linux\", \"x64\", \"gnu\", \"@stll/stdnum-linux-x64-gnu\"],\n [\n \"win32\",\n \"x64\",\n undefined,\n \"@stll/stdnum-win32-x64-msvc\",\n ],\n] as const;\n\nexport const loadNativeStdnumBinding = (\n options: LoadNativeBindingOptions = {},\n): NativeStdnumBinding => {\n const platform = options.platform ?? process.platform;\n const arch = options.arch ?? process.arch;\n const libc = options.libc ?? detectLibc(platform);\n const requireModule =\n options.requireModule ?? createRequire(import.meta.url);\n const match = targets.find(\n ([targetPlatform, targetArch, targetLibc]) =>\n targetPlatform === platform &&\n targetArch === arch &&\n (targetLibc === undefined || targetLibc === libc),\n );\n const candidates = [\n options.env?.[\"STELLA_STDNUM_NATIVE_LIBRARY_PATH\"] ??\n process.env[\"STELLA_STDNUM_NATIVE_LIBRARY_PATH\"],\n \"../index.cjs\",\n match?.[3],\n ].filter((value): value is string => value !== undefined);\n const errors: string[] = [];\n for (const specifier of candidates) {\n try {\n const binding = asNativeBinding(\n requireModule(specifier),\n );\n if (binding !== null) return binding;\n errors.push(\n `${specifier}: module does not match the stdnum binding contract`,\n );\n } catch (error) {\n errors.push(\n `${specifier}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n const supported = targets\n .map(([p, a, l]) => [p, a, l].filter(Boolean).join(\"-\"))\n .join(\", \");\n throw new Error(\n `Unable to load native stdnum binding for ${[platform, arch, libc].filter(Boolean).join(\"-\")}; ` +\n `supported targets: ${supported}.\\n${errors.join(\"\\n\")}`,\n );\n};\n\nconst detectLibc = (\n platform: string,\n): NativeLibc | undefined => {\n if (platform !== \"linux\") return undefined;\n const { header } = process.report.getReport() as {\n header: { glibcVersionRuntime?: unknown };\n };\n return typeof header.glibcVersionRuntime === \"string\"\n ? \"gnu\"\n : \"musl\";\n};\n\nexport * from \"./native\";\n"],"mappings":";;;;AAiBA,MAAM,UAAU;CACd;EACE;EACA;EACA,KAAA;EACA;CACF;CACA;EAAC;EAAU;EAAO,KAAA;EAAW;CAAyB;CACtD;EAAC;EAAS;EAAS;EAAO;CAA8B;CACxD;EAAC;EAAS;EAAO;EAAO;CAA4B;CACpD;EACE;EACA;EACA,KAAA;EACA;CACF;AACF;AAEA,MAAa,2BACX,UAAoC,CAAC,MACb;CACxB,MAAM,WAAW,QAAQ,YAAY,QAAQ;CAC7C,MAAM,OAAO,QAAQ,QAAQ,QAAQ;CACrC,MAAM,OAAO,QAAQ,QAAQ,WAAW,QAAQ;CAChD,MAAM,gBACJ,QAAQ,iBAAiB,cAAc,OAAO,KAAK,GAAG;CACxD,MAAM,QAAQ,QAAQ,MACnB,CAAC,gBAAgB,YAAY,gBAC5B,mBAAmB,YACnB,eAAe,SACd,eAAe,KAAA,KAAa,eAAe,KAChD;CACA,MAAM,aAAa;EACjB,QAAQ,MAAM,wCACZ,QAAQ,IAAI;EACd;EACA,QAAQ;CACV,CAAC,CAAC,QAAQ,UAA2B,UAAU,KAAA,CAAS;CACxD,MAAM,SAAmB,CAAC;CAC1B,KAAK,MAAM,aAAa,YACtB,IAAI;EACF,MAAM,UAAU,gBACd,cAAc,SAAS,CACzB;EACA,IAAI,YAAY,MAAM,OAAO;EAC7B,OAAO,KACL,GAAG,UAAU,oDACf;CACF,SAAS,OAAO;EACd,OAAO,KACL,GAAG,UAAU,IAAI,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GACxE;CACF;CAEF,MAAM,YAAY,QACf,KAAK,CAAC,GAAG,GAAG,OAAO;EAAC;EAAG;EAAG;CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CACvD,KAAK,IAAI;CACZ,MAAM,IAAI,MACR,4CAA4C;EAAC;EAAU;EAAM;CAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE,uBACrE,UAAU,KAAK,OAAO,KAAK,IAAI,GACzD;AACF;AAEA,MAAM,cACJ,aAC2B;CAC3B,IAAI,aAAa,SAAS,OAAO,KAAA;CACjC,MAAM,EAAE,WAAW,QAAQ,OAAO,UAAU;CAG5C,OAAO,OAAO,OAAO,wBAAwB,WACzC,QACA;AACN"}