@stll/stdnum 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/dist/_checksums/luhn.js.map +1 -1
  2. package/dist/_checksums/mod1110.js +1 -1
  3. package/dist/_checksums/mod1110.js.map +1 -1
  4. package/dist/_checksums/mod112.js.map +1 -1
  5. package/dist/_checksums/mod97.js.map +1 -1
  6. package/dist/_checksums/verhoeff.js.map +1 -1
  7. package/dist/_checksums/weighted-sum.js.map +1 -1
  8. package/dist/_util/arabic.js.map +1 -1
  9. package/dist/_util/clean.js.map +1 -1
  10. package/dist/_util/date.js.map +1 -1
  11. package/dist/_util/generate.js.map +1 -1
  12. package/dist/_util/result.js.map +1 -1
  13. package/dist/_util/strings.js.map +1 -1
  14. package/dist/ad/nrt.d.ts +16 -2
  15. package/dist/ad/nrt.js +1 -14
  16. package/dist/ad/nrt.js.map +1 -1
  17. package/dist/ae/eid.d.ts +2 -2
  18. package/dist/ae/eid.js +2 -12
  19. package/dist/ae/eid.js.map +1 -1
  20. package/dist/ai/tin.d.ts +20 -2
  21. package/dist/ai/tin.js +1 -18
  22. package/dist/ai/tin.js.map +1 -1
  23. package/dist/al/nipt.d.ts +13 -2
  24. package/dist/al/nipt.js +1 -11
  25. package/dist/al/nipt.js.map +1 -1
  26. package/dist/am/tin.d.ts +16 -2
  27. package/dist/am/tin.js +1 -14
  28. package/dist/am/tin.js.map +1 -1
  29. package/dist/ar/cbu.d.ts +2 -2
  30. package/dist/ar/cbu.js +1 -9
  31. package/dist/ar/cbu.js.map +1 -1
  32. package/dist/ar/cuit.d.ts +2 -2
  33. package/dist/ar/cuit.js +1 -17
  34. package/dist/ar/cuit.js.map +1 -1
  35. package/dist/ar/dni.d.ts +11 -2
  36. package/dist/ar/dni.js +1 -9
  37. package/dist/ar/dni.js.map +1 -1
  38. package/dist/at/businessid.d.ts +10 -2
  39. package/dist/at/businessid.js +1 -8
  40. package/dist/at/businessid.js.map +1 -1
  41. package/dist/at/tin.d.ts +2 -2
  42. package/dist/at/tin.js +1 -11
  43. package/dist/at/tin.js.map +1 -1
  44. package/dist/at/uid.d.ts +2 -2
  45. package/dist/at/uid.js +2 -10
  46. package/dist/at/uid.js.map +1 -1
  47. package/dist/at/vnr.d.ts +2 -2
  48. package/dist/at/vnr.js +4 -14
  49. package/dist/at/vnr.js.map +1 -1
  50. package/dist/au/abn.d.ts +2 -2
  51. package/dist/au/abn.js +1 -10
  52. package/dist/au/abn.js.map +1 -1
  53. package/dist/au/acn.d.ts +2 -2
  54. package/dist/au/acn.js +1 -10
  55. package/dist/au/acn.js.map +1 -1
  56. package/dist/au/tfn.d.ts +2 -2
  57. package/dist/au/tfn.js +1 -10
  58. package/dist/au/tfn.js.map +1 -1
  59. package/dist/az/voen.d.ts +2 -2
  60. package/dist/az/voen.js +1 -14
  61. package/dist/az/voen.js.map +1 -1
  62. package/dist/ba/jmbg.d.ts +2 -2
  63. package/dist/ba/jmbg.js +3 -11
  64. package/dist/ba/jmbg.js.map +1 -1
  65. package/dist/bd/nid.d.ts +23 -2
  66. package/dist/bd/nid.js +1 -21
  67. package/dist/bd/nid.js.map +1 -1
  68. package/dist/be/bis.d.ts +2 -2
  69. package/dist/be/bis.js +1 -11
  70. package/dist/be/bis.js.map +1 -1
  71. package/dist/be/nn.d.ts +2 -2
  72. package/dist/be/nn.js +1 -11
  73. package/dist/be/nn.js.map +1 -1
  74. package/dist/be/vat.d.ts +2 -2
  75. package/dist/be/vat.js +1 -9
  76. package/dist/be/vat.js.map +1 -1
  77. package/dist/bg/egn.d.ts +2 -2
  78. package/dist/bg/egn.js +3 -18
  79. package/dist/bg/egn.js.map +1 -1
  80. package/dist/bg/pnf.d.ts +2 -2
  81. package/dist/bg/pnf.js +1 -8
  82. package/dist/bg/pnf.js.map +1 -1
  83. package/dist/bg/vat.d.ts +2 -2
  84. package/dist/bg/vat.js +3 -9
  85. package/dist/bg/vat.js.map +1 -1
  86. package/dist/bh/cpr.d.ts +2 -2
  87. package/dist/bh/cpr.js +1 -17
  88. package/dist/bh/cpr.js.map +1 -1
  89. package/dist/bic.d.ts +13 -2
  90. package/dist/bic.js +1 -11
  91. package/dist/bic.js.map +1 -1
  92. package/dist/br/cnpj.d.ts +2 -2
  93. package/dist/br/cnpj.js +1 -20
  94. package/dist/br/cnpj.js.map +1 -1
  95. package/dist/br/cpf.d.ts +2 -2
  96. package/dist/br/cpf.js +1 -14
  97. package/dist/br/cpf.js.map +1 -1
  98. package/dist/by/unp.d.ts +2 -2
  99. package/dist/by/unp.js +3 -14
  100. package/dist/by/unp.js.map +1 -1
  101. package/dist/bz/tin.d.ts +2 -2
  102. package/dist/bz/tin.js +1 -26
  103. package/dist/bz/tin.js.map +1 -1
  104. package/dist/ca/bn.d.ts +2 -2
  105. package/dist/ca/bn.js +2 -10
  106. package/dist/ca/bn.js.map +1 -1
  107. package/dist/ca/sin.d.ts +2 -2
  108. package/dist/ca/sin.js +2 -10
  109. package/dist/ca/sin.js.map +1 -1
  110. package/dist/ch/ssn.d.ts +2 -2
  111. package/dist/ch/ssn.js +1 -9
  112. package/dist/ch/ssn.js.map +1 -1
  113. package/dist/ch/uid.d.ts +2 -2
  114. package/dist/ch/uid.js +1 -9
  115. package/dist/ch/uid.js.map +1 -1
  116. package/dist/ch/vat.d.ts +2 -2
  117. package/dist/ch/vat.js +1 -9
  118. package/dist/ch/vat.js.map +1 -1
  119. package/dist/cl/rut.d.ts +2 -2
  120. package/dist/cl/rut.js +1 -14
  121. package/dist/cl/rut.js.map +1 -1
  122. package/dist/cn/ric.d.ts +2 -2
  123. package/dist/cn/ric.js +3 -14
  124. package/dist/cn/ric.js.map +1 -1
  125. package/dist/cn/uscc.d.ts +2 -2
  126. package/dist/cn/uscc.js +1 -10
  127. package/dist/cn/uscc.js.map +1 -1
  128. package/dist/co/nit.d.ts +2 -2
  129. package/dist/co/nit.js +2 -12
  130. package/dist/co/nit.js.map +1 -1
  131. package/dist/cr/cpf.d.ts +18 -2
  132. package/dist/cr/cpf.js +1 -16
  133. package/dist/cr/cpf.js.map +1 -1
  134. package/dist/creditcard.d.ts +2 -2
  135. package/dist/creditcard.js +5 -14
  136. package/dist/creditcard.js.map +1 -1
  137. package/dist/cu/ni.d.ts +2 -2
  138. package/dist/cu/ni.js +2 -17
  139. package/dist/cu/ni.js.map +1 -1
  140. package/dist/cy/vat.d.ts +2 -2
  141. package/dist/cy/vat.js +1 -8
  142. package/dist/cy/vat.js.map +1 -1
  143. package/dist/cz/dic.d.ts +2 -2
  144. package/dist/cz/dic.js +7 -13
  145. package/dist/cz/dic.js.map +1 -1
  146. package/dist/cz/ico.d.ts +2 -2
  147. package/dist/cz/ico.js +2 -10
  148. package/dist/cz/ico.js.map +1 -1
  149. package/dist/cz/rc.d.ts +2 -2
  150. package/dist/cz/rc.js +2 -26
  151. package/dist/cz/rc.js.map +1 -1
  152. package/dist/de/handelsreg.d.ts +19 -2
  153. package/dist/de/handelsreg.js +1 -17
  154. package/dist/de/handelsreg.js.map +1 -1
  155. package/dist/de/idnr.d.ts +2 -2
  156. package/dist/de/idnr.js +2 -12
  157. package/dist/de/idnr.js.map +1 -1
  158. package/dist/de/stnr.d.ts +17 -2
  159. package/dist/de/stnr.js +1 -15
  160. package/dist/de/stnr.js.map +1 -1
  161. package/dist/de/svnr.d.ts +2 -2
  162. package/dist/de/svnr.js +2 -11
  163. package/dist/de/svnr.js.map +1 -1
  164. package/dist/de/vat.d.ts +2 -2
  165. package/dist/de/vat.js +2 -11
  166. package/dist/de/vat.js.map +1 -1
  167. package/dist/dk/cpr.d.ts +2 -2
  168. package/dist/dk/cpr.js +2 -10
  169. package/dist/dk/cpr.js.map +1 -1
  170. package/dist/dk/cvr.d.ts +2 -2
  171. package/dist/dk/cvr.js +2 -15
  172. package/dist/dk/cvr.js.map +1 -1
  173. package/dist/dk/vat.d.ts +2 -2
  174. package/dist/dk/vat.js +3 -13
  175. package/dist/dk/vat.js.map +1 -1
  176. package/dist/do/rnc.d.ts +2 -2
  177. package/dist/do/rnc.js +2 -16
  178. package/dist/do/rnc.js.map +1 -1
  179. package/dist/ec/ruc.d.ts +2 -2
  180. package/dist/ec/ruc.js +1 -18
  181. package/dist/ec/ruc.js.map +1 -1
  182. package/dist/ee/ik.d.ts +2 -2
  183. package/dist/ee/ik.js +3 -20
  184. package/dist/ee/ik.js.map +1 -1
  185. package/dist/ee/registrikood.d.ts +2 -2
  186. package/dist/ee/registrikood.js +1 -8
  187. package/dist/ee/registrikood.js.map +1 -1
  188. package/dist/ee/vat.d.ts +2 -2
  189. package/dist/ee/vat.js +2 -10
  190. package/dist/ee/vat.js.map +1 -1
  191. package/dist/eg/tn.d.ts +11 -2
  192. package/dist/eg/tn.js +1 -9
  193. package/dist/eg/tn.js.map +1 -1
  194. package/dist/es/cif.d.ts +2 -2
  195. package/dist/es/cif.js +1 -10
  196. package/dist/es/cif.js.map +1 -1
  197. package/dist/es/dni.d.ts +2 -2
  198. package/dist/es/dni.js +1 -9
  199. package/dist/es/dni.js.map +1 -1
  200. package/dist/es/nie.d.ts +2 -2
  201. package/dist/es/nie.js +1 -9
  202. package/dist/es/nie.js.map +1 -1
  203. package/dist/es/nss.d.ts +2 -2
  204. package/dist/es/nss.js +1 -16
  205. package/dist/es/nss.js.map +1 -1
  206. package/dist/es/vat.d.ts +2 -2
  207. package/dist/es/vat.js +5 -10
  208. package/dist/es/vat.js.map +1 -1
  209. package/dist/eu/vat.d.ts +2 -2
  210. package/dist/eu/vat.js +1 -0
  211. package/dist/eu/vat.js.map +1 -1
  212. package/dist/fi/hetu.d.ts +2 -2
  213. package/dist/fi/hetu.js +2 -10
  214. package/dist/fi/hetu.js.map +1 -1
  215. package/dist/fi/vat.d.ts +2 -2
  216. package/dist/fi/vat.js +3 -10
  217. package/dist/fi/vat.js.map +1 -1
  218. package/dist/fi/ytunnus.d.ts +2 -2
  219. package/dist/fi/ytunnus.js +2 -10
  220. package/dist/fi/ytunnus.js.map +1 -1
  221. package/dist/fr/nif.d.ts +2 -2
  222. package/dist/fr/nif.js +1 -9
  223. package/dist/fr/nif.js.map +1 -1
  224. package/dist/fr/nir.d.ts +2 -2
  225. package/dist/fr/nir.js +2 -14
  226. package/dist/fr/nir.js.map +1 -1
  227. package/dist/fr/siren.d.ts +2 -2
  228. package/dist/fr/siren.js +2 -10
  229. package/dist/fr/siren.js.map +1 -1
  230. package/dist/fr/siret.d.ts +2 -2
  231. package/dist/fr/siret.js +2 -11
  232. package/dist/fr/siret.js.map +1 -1
  233. package/dist/fr/tva.d.ts +2 -2
  234. package/dist/fr/tva.js +2 -12
  235. package/dist/fr/tva.js.map +1 -1
  236. package/dist/gb/nino.d.ts +12 -2
  237. package/dist/gb/nino.js +1 -10
  238. package/dist/gb/nino.js.map +1 -1
  239. package/dist/gb/sedol.d.ts +2 -2
  240. package/dist/gb/sedol.js +1 -11
  241. package/dist/gb/sedol.js.map +1 -1
  242. package/dist/gb/utr.d.ts +2 -2
  243. package/dist/gb/utr.js +2 -10
  244. package/dist/gb/utr.js.map +1 -1
  245. package/dist/gb/vat.d.ts +2 -2
  246. package/dist/gb/vat.js +2 -11
  247. package/dist/gb/vat.js.map +1 -1
  248. package/dist/ge/pin.d.ts +14 -2
  249. package/dist/ge/pin.js +1 -12
  250. package/dist/ge/pin.js.map +1 -1
  251. package/dist/gh/tin.d.ts +2 -2
  252. package/dist/gh/tin.js +1 -15
  253. package/dist/gh/tin.js.map +1 -1
  254. package/dist/gr/amka.d.ts +2 -2
  255. package/dist/gr/amka.js +3 -11
  256. package/dist/gr/amka.js.map +1 -1
  257. package/dist/gr/vat.d.ts +2 -2
  258. package/dist/gr/vat.js +1 -10
  259. package/dist/gr/vat.js.map +1 -1
  260. package/dist/gt/nit.d.ts +2 -2
  261. package/dist/gt/nit.js +1 -12
  262. package/dist/gt/nit.js.map +1 -1
  263. package/dist/hk/hkid.d.ts +2 -2
  264. package/dist/hk/hkid.js +1 -10
  265. package/dist/hk/hkid.js.map +1 -1
  266. package/dist/hr/vat.d.ts +2 -2
  267. package/dist/hr/vat.js +2 -9
  268. package/dist/hr/vat.js.map +1 -1
  269. package/dist/hu/vat.d.ts +2 -2
  270. package/dist/hu/vat.js +3 -10
  271. package/dist/hu/vat.js.map +1 -1
  272. package/dist/iban.d.ts +2 -2
  273. package/dist/iban.js +2 -8
  274. package/dist/iban.js.map +1 -1
  275. package/dist/id/npwp.d.ts +2 -2
  276. package/dist/id/npwp.js +3 -13
  277. package/dist/id/npwp.js.map +1 -1
  278. package/dist/ie/pps.d.ts +2 -2
  279. package/dist/ie/pps.js +1 -10
  280. package/dist/ie/pps.js.map +1 -1
  281. package/dist/ie/vat.d.ts +2 -2
  282. package/dist/ie/vat.js +1 -9
  283. package/dist/ie/vat.js.map +1 -1
  284. package/dist/il/idnr.d.ts +2 -2
  285. package/dist/il/idnr.js +2 -9
  286. package/dist/il/idnr.js.map +1 -1
  287. package/dist/in/aadhaar.d.ts +2 -2
  288. package/dist/in/aadhaar.js +2 -12
  289. package/dist/in/aadhaar.js.map +1 -1
  290. package/dist/in/gstin.d.ts +2 -2
  291. package/dist/in/gstin.js +1 -10
  292. package/dist/in/gstin.js.map +1 -1
  293. package/dist/in/pan.d.ts +15 -2
  294. package/dist/in/pan.js +1 -13
  295. package/dist/in/pan.js.map +1 -1
  296. package/dist/index.d.ts +2 -2
  297. package/dist/index.js +6 -6
  298. package/dist/iq/nid.d.ts +16 -2
  299. package/dist/iq/nid.js +2 -15
  300. package/dist/iq/nid.js.map +1 -1
  301. package/dist/ir/nid.d.ts +2 -2
  302. package/dist/ir/nid.js +2 -24
  303. package/dist/ir/nid.js.map +1 -1
  304. package/dist/is/kennitala.d.ts +2 -2
  305. package/dist/is/kennitala.js +2 -13
  306. package/dist/is/kennitala.js.map +1 -1
  307. package/dist/is/vsk.d.ts +9 -2
  308. package/dist/is/vsk.js +1 -7
  309. package/dist/is/vsk.js.map +1 -1
  310. package/dist/isin.d.ts +2 -2
  311. package/dist/isin.js +2 -12
  312. package/dist/isin.js.map +1 -1
  313. package/dist/it/codicefiscale.d.ts +2 -2
  314. package/dist/it/codicefiscale.js +1 -21
  315. package/dist/it/codicefiscale.js.map +1 -1
  316. package/dist/it/iva.d.ts +2 -2
  317. package/dist/it/iva.js +2 -9
  318. package/dist/it/iva.js.map +1 -1
  319. package/dist/jp/cn.d.ts +2 -2
  320. package/dist/jp/cn.js +1 -9
  321. package/dist/jp/cn.js.map +1 -1
  322. package/dist/jp/mynumber.d.ts +2 -2
  323. package/dist/jp/mynumber.js +1 -10
  324. package/dist/jp/mynumber.js.map +1 -1
  325. package/dist/kr/brn.d.ts +11 -2
  326. package/dist/kr/brn.js +1 -9
  327. package/dist/kr/brn.js.map +1 -1
  328. package/dist/kr/rrn.d.ts +2 -2
  329. package/dist/kr/rrn.js +2 -11
  330. package/dist/kr/rrn.js.map +1 -1
  331. package/dist/kw/civil.d.ts +2 -2
  332. package/dist/kw/civil.js +2 -14
  333. package/dist/kw/civil.js.map +1 -1
  334. package/dist/kz/iin.d.ts +2 -2
  335. package/dist/kz/iin.js +3 -18
  336. package/dist/kz/iin.js.map +1 -1
  337. package/dist/lei.d.ts +2 -2
  338. package/dist/lei.js +2 -11
  339. package/dist/lei.js.map +1 -1
  340. package/dist/li/peid.d.ts +11 -2
  341. package/dist/li/peid.js +1 -9
  342. package/dist/li/peid.js.map +1 -1
  343. package/dist/lk/nic.d.ts +2 -2
  344. package/dist/lk/nic.js +2 -14
  345. package/dist/lk/nic.js.map +1 -1
  346. package/dist/lt/asmens.d.ts +2 -2
  347. package/dist/lt/asmens.js +2 -1
  348. package/dist/lt/asmens.js.map +1 -1
  349. package/dist/lt/vat.d.ts +2 -2
  350. package/dist/lt/vat.js +2 -10
  351. package/dist/lt/vat.js.map +1 -1
  352. package/dist/lu/vat.d.ts +2 -2
  353. package/dist/lu/vat.js +2 -8
  354. package/dist/lu/vat.js.map +1 -1
  355. package/dist/luhn.d.ts +2 -2
  356. package/dist/luhn.js +2 -9
  357. package/dist/luhn.js.map +1 -1
  358. package/dist/lv/vat.d.ts +2 -2
  359. package/dist/lv/vat.js +2 -28
  360. package/dist/lv/vat.js.map +1 -1
  361. package/dist/ma/ice.d.ts +2 -2
  362. package/dist/ma/ice.js +2 -11
  363. package/dist/ma/ice.js.map +1 -1
  364. package/dist/mc/tva.d.ts +2 -2
  365. package/dist/mc/tva.js +1 -0
  366. package/dist/mc/tva.js.map +1 -1
  367. package/dist/md/idno.d.ts +2 -2
  368. package/dist/md/idno.js +1 -10
  369. package/dist/md/idno.js.map +1 -1
  370. package/dist/me/pib.d.ts +2 -2
  371. package/dist/me/pib.js +2 -10
  372. package/dist/me/pib.js.map +1 -1
  373. package/dist/mk/edb.d.ts +2 -2
  374. package/dist/mk/edb.js +2 -11
  375. package/dist/mk/edb.js.map +1 -1
  376. package/dist/mt/vat.d.ts +2 -2
  377. package/dist/mt/vat.js +3 -10
  378. package/dist/mt/vat.js.map +1 -1
  379. package/dist/mu/brn.d.ts +23 -2
  380. package/dist/mu/brn.js +1 -21
  381. package/dist/mu/brn.js.map +1 -1
  382. package/dist/mx/clabe.d.ts +2 -2
  383. package/dist/mx/clabe.js +1 -14
  384. package/dist/mx/clabe.js.map +1 -1
  385. package/dist/mx/curp.d.ts +2 -2
  386. package/dist/mx/curp.js +3 -17
  387. package/dist/mx/curp.js.map +1 -1
  388. package/dist/mx/rfc.d.ts +2 -2
  389. package/dist/mx/rfc.js +3 -19
  390. package/dist/mx/rfc.js.map +1 -1
  391. package/dist/my/nric.d.ts +2 -2
  392. package/dist/my/nric.js +2 -14
  393. package/dist/my/nric.js.map +1 -1
  394. package/dist/ng/nin.d.ts +13 -2
  395. package/dist/ng/nin.js +1 -11
  396. package/dist/ng/nin.js.map +1 -1
  397. package/dist/ni/ruc.d.ts +2 -2
  398. package/dist/ni/ruc.js +1 -23
  399. package/dist/ni/ruc.js.map +1 -1
  400. package/dist/nl/bsn.d.ts +2 -2
  401. package/dist/nl/bsn.js +2 -10
  402. package/dist/nl/bsn.js.map +1 -1
  403. package/dist/nl/kvk.d.ts +9 -2
  404. package/dist/nl/kvk.js +1 -7
  405. package/dist/nl/kvk.js.map +1 -1
  406. package/dist/nl/vat.d.ts +2 -2
  407. package/dist/nl/vat.js +1 -13
  408. package/dist/nl/vat.js.map +1 -1
  409. package/dist/no/fodselsnummer.d.ts +2 -2
  410. package/dist/no/fodselsnummer.js +2 -10
  411. package/dist/no/fodselsnummer.js.map +1 -1
  412. package/dist/no/mva.d.ts +2 -2
  413. package/dist/no/mva.js +1 -8
  414. package/dist/no/mva.js.map +1 -1
  415. package/dist/no/orgnr.d.ts +2 -2
  416. package/dist/no/orgnr.js +2 -8
  417. package/dist/no/orgnr.js.map +1 -1
  418. package/dist/nz/ird.d.ts +2 -2
  419. package/dist/nz/ird.js +2 -11
  420. package/dist/nz/ird.js.map +1 -1
  421. package/dist/pa/ruc.d.ts +2 -2
  422. package/dist/pa/ruc.js +1 -18
  423. package/dist/pa/ruc.js.map +1 -1
  424. package/dist/patterns.d.ts +8 -7
  425. package/dist/patterns.js +3 -5
  426. package/dist/patterns.js.map +1 -1
  427. package/dist/pe/ruc.d.ts +2 -2
  428. package/dist/pe/ruc.js +1 -15
  429. package/dist/pe/ruc.js.map +1 -1
  430. package/dist/ph/philid.d.ts +14 -2
  431. package/dist/ph/philid.js +1 -12
  432. package/dist/ph/philid.js.map +1 -1
  433. package/dist/pk/cnic.d.ts +14 -2
  434. package/dist/pk/cnic.js +1 -12
  435. package/dist/pk/cnic.js.map +1 -1
  436. package/dist/pl/nip.d.ts +2 -2
  437. package/dist/pl/nip.js +2 -10
  438. package/dist/pl/nip.js.map +1 -1
  439. package/dist/pl/pesel.d.ts +2 -2
  440. package/dist/pl/pesel.js +3 -13
  441. package/dist/pl/pesel.js.map +1 -1
  442. package/dist/pl/regon.d.ts +2 -2
  443. package/dist/pl/regon.js +2 -11
  444. package/dist/pl/regon.js.map +1 -1
  445. package/dist/pt/cc.d.ts +2 -2
  446. package/dist/pt/cc.js +1 -9
  447. package/dist/pt/cc.js.map +1 -1
  448. package/dist/pt/vat.d.ts +2 -2
  449. package/dist/pt/vat.js +3 -11
  450. package/dist/pt/vat.js.map +1 -1
  451. package/dist/ro/cnp.d.ts +2 -2
  452. package/dist/ro/cnp.js +4 -14
  453. package/dist/ro/cnp.js.map +1 -1
  454. package/dist/ro/vat.d.ts +2 -2
  455. package/dist/ro/vat.js +13 -11
  456. package/dist/ro/vat.js.map +1 -1
  457. package/dist/rs/pib.d.ts +2 -2
  458. package/dist/rs/pib.js +1 -9
  459. package/dist/rs/pib.js.map +1 -1
  460. package/dist/ru/inn.d.ts +2 -2
  461. package/dist/ru/inn.js +1 -11
  462. package/dist/ru/inn.js.map +1 -1
  463. package/dist/se/orgnr.d.ts +2 -2
  464. package/dist/se/orgnr.js +2 -9
  465. package/dist/se/orgnr.js.map +1 -1
  466. package/dist/se/personnummer.d.ts +2 -2
  467. package/dist/se/personnummer.js +7 -15
  468. package/dist/se/personnummer.js.map +1 -1
  469. package/dist/se/vat.d.ts +2 -2
  470. package/dist/se/vat.js +3 -10
  471. package/dist/se/vat.js.map +1 -1
  472. package/dist/sg/uen.d.ts +2 -2
  473. package/dist/sg/uen.js +1 -15
  474. package/dist/sg/uen.js.map +1 -1
  475. package/dist/si/emso.d.ts +2 -2
  476. package/dist/si/emso.js +3 -18
  477. package/dist/si/emso.js.map +1 -1
  478. package/dist/si/vat.d.ts +2 -2
  479. package/dist/si/vat.js +3 -12
  480. package/dist/si/vat.js.map +1 -1
  481. package/dist/sk/dic.d.ts +2 -2
  482. package/dist/sk/dic.js +1 -0
  483. package/dist/sk/dic.js.map +1 -1
  484. package/dist/sk/ico.d.ts +2 -2
  485. package/dist/sk/ico.js +1 -0
  486. package/dist/sk/ico.js.map +1 -1
  487. package/dist/sk/rc.d.ts +2 -2
  488. package/dist/sk/rc.js +1 -0
  489. package/dist/sk/rc.js.map +1 -1
  490. package/dist/th/tin.d.ts +2 -2
  491. package/dist/th/tin.js +1 -11
  492. package/dist/th/tin.js.map +1 -1
  493. package/dist/tr/tckimlik.d.ts +2 -2
  494. package/dist/tr/tckimlik.js +1 -20
  495. package/dist/tr/tckimlik.js.map +1 -1
  496. package/dist/tr/vkn.d.ts +2 -2
  497. package/dist/tr/vkn.js +1 -20
  498. package/dist/tr/vkn.js.map +1 -1
  499. package/dist/tw/ubn.d.ts +2 -2
  500. package/dist/tw/ubn.js +1 -11
  501. package/dist/tw/ubn.js.map +1 -1
  502. package/dist/types.d.ts +26 -4
  503. package/dist/ua/edrpou.d.ts +2 -2
  504. package/dist/ua/edrpou.js +1 -11
  505. package/dist/ua/edrpou.js.map +1 -1
  506. package/dist/us/ein.d.ts +12 -2
  507. package/dist/us/ein.js +1 -10
  508. package/dist/us/ein.js.map +1 -1
  509. package/dist/us/itin.d.ts +13 -2
  510. package/dist/us/itin.js +1 -11
  511. package/dist/us/itin.js.map +1 -1
  512. package/dist/us/rtn.d.ts +2 -2
  513. package/dist/us/rtn.js +3 -18
  514. package/dist/us/rtn.js.map +1 -1
  515. package/dist/us/ssn.d.ts +13 -2
  516. package/dist/us/ssn.js +1 -11
  517. package/dist/us/ssn.js.map +1 -1
  518. package/dist/uy/rut.d.ts +2 -2
  519. package/dist/uy/rut.js +1 -14
  520. package/dist/uy/rut.js.map +1 -1
  521. package/dist/ve/rif.d.ts +2 -2
  522. package/dist/ve/rif.js +2 -15
  523. package/dist/ve/rif.js.map +1 -1
  524. package/dist/vn/mst.d.ts +2 -2
  525. package/dist/vn/mst.js +1 -12
  526. package/dist/vn/mst.js.map +1 -1
  527. package/dist/za/idnr.d.ts +2 -2
  528. package/dist/za/idnr.js +3 -16
  529. package/dist/za/idnr.js.map +1 -1
  530. package/package.json +22 -12
  531. package/src/_checksums/mod1110.ts +1 -1
  532. package/src/ad/nrt.ts +7 -3
  533. package/src/ae/eid.ts +7 -3
  534. package/src/ai/tin.ts +7 -3
  535. package/src/al/nipt.ts +7 -3
  536. package/src/am/tin.ts +7 -3
  537. package/src/ar/cbu.ts +7 -3
  538. package/src/ar/cuit.ts +7 -3
  539. package/src/ar/dni.ts +7 -3
  540. package/src/at/businessid.ts +7 -3
  541. package/src/at/tin.ts +7 -3
  542. package/src/at/uid.ts +7 -3
  543. package/src/at/vnr.ts +37 -9
  544. package/src/au/abn.ts +7 -3
  545. package/src/au/acn.ts +7 -3
  546. package/src/au/tfn.ts +7 -3
  547. package/src/az/voen.ts +7 -3
  548. package/src/ba/jmbg.ts +8 -7
  549. package/src/bd/nid.ts +7 -3
  550. package/src/be/bis.ts +8 -4
  551. package/src/be/nn.ts +7 -3
  552. package/src/be/vat.ts +7 -3
  553. package/src/bg/egn.ts +8 -7
  554. package/src/bg/pnf.ts +7 -3
  555. package/src/bg/vat.ts +8 -3
  556. package/src/bh/cpr.ts +7 -3
  557. package/src/bic.ts +7 -3
  558. package/src/br/cnpj.ts +7 -3
  559. package/src/br/cpf.ts +7 -3
  560. package/src/by/unp.ts +10 -5
  561. package/src/bz/tin.ts +7 -3
  562. package/src/ca/bn.ts +7 -3
  563. package/src/ca/sin.ts +7 -3
  564. package/src/ch/ssn.ts +7 -3
  565. package/src/ch/uid.ts +7 -3
  566. package/src/ch/vat.ts +9 -5
  567. package/src/cl/rut.ts +7 -3
  568. package/src/cn/ric.ts +8 -7
  569. package/src/cn/uscc.ts +7 -3
  570. package/src/co/nit.ts +8 -4
  571. package/src/cr/cpf.ts +7 -3
  572. package/src/creditcard.ts +10 -6
  573. package/src/cu/ni.ts +8 -7
  574. package/src/cy/vat.ts +7 -3
  575. package/src/cz/dic.ts +9 -4
  576. package/src/cz/ico.ts +7 -3
  577. package/src/cz/rc.ts +8 -7
  578. package/src/de/handelsreg.ts +7 -3
  579. package/src/de/idnr.ts +7 -3
  580. package/src/de/stnr.ts +7 -3
  581. package/src/de/svnr.ts +7 -3
  582. package/src/de/vat.ts +7 -3
  583. package/src/dk/cpr.ts +8 -7
  584. package/src/dk/cvr.ts +7 -3
  585. package/src/dk/vat.ts +8 -3
  586. package/src/do/rnc.ts +7 -3
  587. package/src/ec/ruc.ts +7 -3
  588. package/src/ee/ik.ts +8 -7
  589. package/src/ee/registrikood.ts +8 -4
  590. package/src/ee/vat.ts +7 -3
  591. package/src/eg/tn.ts +7 -3
  592. package/src/es/cif.ts +8 -4
  593. package/src/es/dni.ts +7 -3
  594. package/src/es/nie.ts +8 -4
  595. package/src/es/nss.ts +7 -3
  596. package/src/es/vat.ts +13 -5
  597. package/src/eu/vat.ts +10 -6
  598. package/src/fi/hetu.ts +8 -7
  599. package/src/fi/vat.ts +8 -3
  600. package/src/fi/ytunnus.ts +7 -3
  601. package/src/fr/nif.ts +7 -3
  602. package/src/fr/nir.ts +8 -7
  603. package/src/fr/siren.ts +7 -3
  604. package/src/fr/siret.ts +7 -3
  605. package/src/fr/tva.ts +7 -3
  606. package/src/gb/nino.ts +7 -3
  607. package/src/gb/sedol.ts +7 -3
  608. package/src/gb/utr.ts +7 -3
  609. package/src/gb/vat.ts +7 -3
  610. package/src/ge/pin.ts +7 -3
  611. package/src/gh/tin.ts +7 -3
  612. package/src/gr/amka.ts +7 -3
  613. package/src/gr/vat.ts +7 -3
  614. package/src/gt/nit.ts +7 -3
  615. package/src/hk/hkid.ts +7 -3
  616. package/src/hr/vat.ts +7 -3
  617. package/src/hu/vat.ts +8 -3
  618. package/src/iban.ts +7 -3
  619. package/src/id/npwp.ts +7 -3
  620. package/src/ie/pps.ts +7 -3
  621. package/src/ie/vat.ts +7 -3
  622. package/src/il/idnr.ts +7 -3
  623. package/src/in/aadhaar.ts +7 -3
  624. package/src/in/gstin.ts +7 -3
  625. package/src/in/pan.ts +7 -3
  626. package/src/index.ts +3 -0
  627. package/src/iq/nid.ts +7 -3
  628. package/src/ir/nid.ts +7 -3
  629. package/src/is/kennitala.ts +7 -3
  630. package/src/is/vsk.ts +7 -3
  631. package/src/isin.ts +7 -3
  632. package/src/it/codicefiscale.ts +11 -7
  633. package/src/it/iva.ts +7 -3
  634. package/src/jp/cn.ts +7 -3
  635. package/src/jp/mynumber.ts +7 -3
  636. package/src/kr/brn.ts +7 -3
  637. package/src/kr/rrn.ts +8 -7
  638. package/src/kw/civil.ts +8 -7
  639. package/src/kz/iin.ts +8 -8
  640. package/src/lei.ts +7 -3
  641. package/src/li/peid.ts +7 -3
  642. package/src/lk/nic.ts +8 -7
  643. package/src/lt/asmens.ts +8 -4
  644. package/src/lt/vat.ts +8 -3
  645. package/src/lu/vat.ts +8 -3
  646. package/src/luhn.ts +7 -3
  647. package/src/lv/vat.ts +7 -3
  648. package/src/ma/ice.ts +7 -3
  649. package/src/mc/tva.ts +9 -5
  650. package/src/md/idno.ts +7 -3
  651. package/src/me/pib.ts +7 -3
  652. package/src/mk/edb.ts +7 -3
  653. package/src/mt/vat.ts +8 -3
  654. package/src/mu/brn.ts +7 -3
  655. package/src/mx/clabe.ts +7 -3
  656. package/src/mx/curp.ts +9 -8
  657. package/src/mx/rfc.ts +8 -4
  658. package/src/my/nric.ts +8 -7
  659. package/src/ng/nin.ts +7 -3
  660. package/src/ni/ruc.ts +7 -3
  661. package/src/nl/bsn.ts +7 -3
  662. package/src/nl/kvk.ts +7 -3
  663. package/src/nl/vat.ts +7 -3
  664. package/src/no/fodselsnummer.ts +11 -7
  665. package/src/no/mva.ts +9 -5
  666. package/src/no/orgnr.ts +7 -3
  667. package/src/nz/ird.ts +8 -4
  668. package/src/pa/ruc.ts +7 -3
  669. package/src/patterns.ts +49 -18
  670. package/src/pe/ruc.ts +7 -3
  671. package/src/ph/philid.ts +7 -3
  672. package/src/pk/cnic.ts +7 -3
  673. package/src/pl/nip.ts +7 -3
  674. package/src/pl/pesel.ts +8 -7
  675. package/src/pl/regon.ts +7 -3
  676. package/src/pt/cc.ts +7 -3
  677. package/src/pt/vat.ts +8 -3
  678. package/src/ro/cnp.ts +15 -8
  679. package/src/ro/vat.ts +8 -3
  680. package/src/rs/pib.ts +7 -3
  681. package/src/ru/inn.ts +7 -3
  682. package/src/se/orgnr.ts +7 -3
  683. package/src/se/personnummer.ts +35 -33
  684. package/src/se/vat.ts +8 -3
  685. package/src/sg/uen.ts +7 -3
  686. package/src/si/emso.ts +8 -7
  687. package/src/si/vat.ts +8 -3
  688. package/src/sk/dic.ts +8 -4
  689. package/src/sk/ico.ts +3 -2
  690. package/src/sk/rc.ts +6 -2
  691. package/src/th/tin.ts +7 -3
  692. package/src/tr/tckimlik.ts +7 -3
  693. package/src/tr/vkn.ts +7 -3
  694. package/src/tw/ubn.ts +7 -3
  695. package/src/types.ts +34 -3
  696. package/src/ua/edrpou.ts +7 -3
  697. package/src/us/ein.ts +7 -3
  698. package/src/us/itin.ts +7 -3
  699. package/src/us/rtn.ts +16 -8
  700. package/src/us/ssn.ts +7 -3
  701. package/src/uy/rut.ts +7 -3
  702. package/src/ve/rif.ts +8 -6
  703. package/src/vn/mst.ts +7 -3
  704. package/src/za/idnr.ts +8 -7
package/src/lei.ts CHANGED
@@ -9,14 +9,17 @@
9
9
  * @see https://www.gleif.org/
10
10
  */
11
11
 
12
+ import type {
13
+ ValidateResult,
14
+ GlobalValidator,
15
+ } from "./types";
16
+
12
17
  import { mod97 } from "#checksums/mod97";
13
18
  import { clean } from "#util/clean";
14
19
  import { randomInt } from "#util/generate";
15
20
  import { err } from "#util/result";
16
21
  import { charValue, isalnum } from "#util/strings";
17
22
 
18
- import type { ValidateResult, Validator } from "./types";
19
-
20
23
  const compact = (value: string): string =>
21
24
  clean(value, " -").toUpperCase();
22
25
 
@@ -79,7 +82,8 @@ const generate = (): string => {
79
82
  };
80
83
 
81
84
  /** Legal Entity Identifier. */
82
- const lei: Validator = {
85
+ const lei: GlobalValidator = {
86
+ scope: "global",
83
87
  name: "Legal Entity Identifier",
84
88
  localName: "Legal Entity Identifier",
85
89
  abbreviation: "LEI",
package/src/li/peid.ts CHANGED
@@ -15,13 +15,16 @@ const generate = (): string => {
15
15
  * @see https://www.oera.li/
16
16
  */
17
17
 
18
+ import type {
19
+ ValidateResult,
20
+ CountryValidator,
21
+ } from "../types";
22
+
18
23
  import { clean } from "#util/clean";
19
24
  import { randomDigits, randomInt } from "#util/generate";
20
25
  import { err } from "#util/result";
21
26
  import { isdigits } from "#util/strings";
22
27
 
23
- import type { ValidateResult, Validator } from "../types";
24
-
25
28
  const compact = (value: string): string =>
26
29
  clean(value, " .").replace(/^0+/, "");
27
30
 
@@ -45,12 +48,13 @@ const validate = (value: string): ValidateResult => {
45
48
  const format = (value: string): string => compact(value);
46
49
 
47
50
  /** Liechtenstein Person Identification Number. */
48
- const peid: Validator = {
51
+ const peid: CountryValidator<"LI"> = {
49
52
  name: "Liechtenstein Person Identification Number",
50
53
  localName: "Personenidentifikationsnummer",
51
54
  abbreviation: "PEID",
52
55
  aliases: ["PEID", "Personenidentifikation"] as const,
53
56
  candidatePattern: "\\d{6}",
57
+ scope: "country",
54
58
  country: "LI",
55
59
  entityType: "any",
56
60
  lengths: [4, 5, 6, 7, 8, 9, 10, 11, 12] as const,
package/src/lk/nic.ts CHANGED
@@ -12,18 +12,18 @@
12
12
  * @see https://drp.gov.lk/Templates/Artical%20-%20English%20new%20number.html
13
13
  */
14
14
 
15
+ import type {
16
+ ParsedPersonId,
17
+ ValidateResult,
18
+ CountryValidator,
19
+ } from "../types";
20
+
15
21
  import { clean } from "#util/clean";
16
22
  import { isValidDate } from "#util/date";
17
23
  import { randomDigits, randomInt } from "#util/generate";
18
24
  import { err } from "#util/result";
19
25
  import { isdigits } from "#util/strings";
20
26
 
21
- import type {
22
- ParsedPersonId,
23
- ValidateResult,
24
- Validator,
25
- } from "../types";
26
-
27
27
  /** Old format: 9 digits + V or X (case-insensitive). */
28
28
  const OLD_RE = /^\d{9}[VvXx]$/;
29
29
 
@@ -205,12 +205,13 @@ const generate = (): string => {
205
205
  };
206
206
 
207
207
  /** Sri Lankan National Identity Card. */
208
- const nic: Validator<ParsedPersonId> = {
208
+ const nic: CountryValidator<"LK", ParsedPersonId> = {
209
209
  name: "National Identity Card",
210
210
  localName: "ජාතික හැඳුනුම්පත",
211
211
  abbreviation: "NIC",
212
212
  aliases: ["NIC", "ජාතික හැඳුනුම්පත"] as const,
213
213
  candidatePattern: "\\d{9}[VXvx]|\\d{12}",
214
+ scope: "country",
214
215
  country: "LK",
215
216
  entityType: "person",
216
217
  description:
package/src/lt/asmens.ts CHANGED
@@ -10,15 +10,18 @@
10
10
  * @see https://www.registrucentras.lt/
11
11
  */
12
12
 
13
+ import { twoPassCheck } from "../ee/ik";
14
+ import type {
15
+ ValidateResult,
16
+ CountryValidator,
17
+ } from "../types";
18
+
13
19
  import { clean } from "#util/clean";
14
20
  import { isValidDate } from "#util/date";
15
21
  import { randomInt } from "#util/generate";
16
22
  import { err } from "#util/result";
17
23
  import { isdigits } from "#util/strings";
18
24
 
19
- import { twoPassCheck } from "../ee/ik";
20
- import type { ValidateResult, Validator } from "../types";
21
-
22
25
  const compact = (value: string): string =>
23
26
  clean(value, " -");
24
27
 
@@ -100,12 +103,13 @@ const generate = (): string => {
100
103
  };
101
104
 
102
105
  /** Lithuanian Personal Code. */
103
- const asmens: Validator = {
106
+ const asmens: CountryValidator<"LT"> = {
104
107
  name: "Lithuanian Personal ID",
105
108
  localName: "Asmens kodas",
106
109
  abbreviation: "AK",
107
110
  aliases: ["asmens kodas", "AK"] as const,
108
111
  candidatePattern: "[3-6]\\d{10}",
112
+ scope: "country",
109
113
  country: "LT",
110
114
  entityType: "person",
111
115
  sourceUrl: "https://www.registrucentras.lt/",
package/src/lt/vat.ts CHANGED
@@ -9,13 +9,16 @@
9
9
  * @see https://www.vmi.lt/
10
10
  */
11
11
 
12
+ import type {
13
+ ValidateResult,
14
+ CountryValidator,
15
+ } from "../types";
16
+
12
17
  import { clean } from "#util/clean";
13
18
  import { randomDigits } from "#util/generate";
14
19
  import { err } from "#util/result";
15
20
  import { isdigits } from "#util/strings";
16
21
 
17
- import type { ValidateResult, Validator } from "../types";
18
-
19
22
  const compact = (value: string): string => {
20
23
  let v = clean(value, " -/.");
21
24
  if (v.startsWith("LT") || v.startsWith("lt")) {
@@ -89,15 +92,17 @@ const generate = (): string => {
89
92
  };
90
93
 
91
94
  /** Lithuanian VAT Number. */
92
- const vat: Validator = {
95
+ const vat: CountryValidator<"LT"> = {
93
96
  name: "Lithuanian VAT Number",
94
97
  localName: "PVM mokėtojo kodas",
95
98
  abbreviation: "PVM kodas",
96
99
  aliases: ["PVM mokėtojo kodas", "PVM"] as const,
97
100
  candidatePattern: "LT\\d{9,12}",
101
+ scope: "country",
98
102
  country: "LT",
99
103
  entityType: "any",
100
104
  sourceUrl: "https://www.vmi.lt/",
105
+ lengths: [9, 12] as const,
101
106
  examples: ["119511515", "100001919017"] as const,
102
107
  compact,
103
108
  format,
package/src/lu/vat.ts CHANGED
@@ -7,13 +7,16 @@
7
7
  * @see https://www.oecd.org/content/dam/oecd/en/topics/policy-issue-focus/aeoi/luxembourg-tin.pdf
8
8
  */
9
9
 
10
+ import type {
11
+ ValidateResult,
12
+ CountryValidator,
13
+ } from "../types";
14
+
10
15
  import { clean } from "#util/clean";
11
16
  import { randomDigits } from "#util/generate";
12
17
  import { err } from "#util/result";
13
18
  import { isdigits } from "#util/strings";
14
19
 
15
- import type { ValidateResult, Validator } from "../types";
16
-
17
20
  const compact = (value: string): string => {
18
21
  let v = clean(value, " -/.");
19
22
  if (v.startsWith("LU") || v.startsWith("lu")) {
@@ -60,15 +63,17 @@ const generate = (): string => {
60
63
  };
61
64
 
62
65
  /** Luxembourg VAT Number. */
63
- const vat: Validator = {
66
+ const vat: CountryValidator<"LU"> = {
64
67
  name: "Luxembourg VAT Number",
65
68
  localName: "Numéro de TVA",
66
69
  abbreviation: "TVA",
67
70
  aliases: ["TVA", "numéro d'identification TVA"] as const,
68
71
  candidatePattern: "LU\\d{8}",
72
+ scope: "country",
69
73
  country: "LU",
70
74
  entityType: "company",
71
75
  sourceUrl: "https://pfi.public.lu/",
76
+ lengths: [8] as const,
72
77
  examples: ["15027442"] as const,
73
78
  compact,
74
79
  format,
package/src/luhn.ts CHANGED
@@ -7,6 +7,11 @@
7
7
  * (13-19 digits), use `creditcard` instead.
8
8
  */
9
9
 
10
+ import type {
11
+ ValidateResult,
12
+ GlobalValidator,
13
+ } from "./types";
14
+
10
15
  import {
11
16
  luhnChecksum,
12
17
  luhnValidate,
@@ -16,8 +21,6 @@ import { randomDigits } from "#util/generate";
16
21
  import { err } from "#util/result";
17
22
  import { isdigits } from "#util/strings";
18
23
 
19
- import type { ValidateResult, Validator } from "./types";
20
-
21
24
  const compact = (value: string): string =>
22
25
  clean(value, " -.");
23
26
 
@@ -56,7 +59,8 @@ const generate = (length = 16): string => {
56
59
  };
57
60
 
58
61
  /** Generic Luhn Validator. */
59
- const luhn: Validator = {
62
+ const luhn: GlobalValidator = {
63
+ scope: "global",
60
64
  name: "Luhn",
61
65
  localName: "Luhn",
62
66
  abbreviation: "Luhn",
package/src/lv/vat.ts CHANGED
@@ -26,14 +26,17 @@
26
26
  * @see https://www.pmlp.gov.lv/en/change-personal-identity-number
27
27
  */
28
28
 
29
+ import type {
30
+ ValidateResult,
31
+ CountryValidator,
32
+ } from "../types";
33
+
29
34
  import { weightedSum } from "#checksums/weighted-sum";
30
35
  import { clean } from "#util/clean";
31
36
  import { randomDigits, randomInt } from "#util/generate";
32
37
  import { err } from "#util/result";
33
38
  import { isdigits } from "#util/strings";
34
39
 
35
- import type { ValidateResult, Validator } from "../types";
36
-
37
40
  const WEIGHTS = [9, 1, 4, 8, 3, 10, 2, 5, 7, 6, 1];
38
41
 
39
42
  const compact = (value: string): string => {
@@ -144,12 +147,13 @@ const generate = (): string => {
144
147
  };
145
148
 
146
149
  /** Latvian VAT Number. */
147
- const vat: Validator = {
150
+ const vat: CountryValidator<"LV"> = {
148
151
  name: "Latvian VAT Number",
149
152
  localName: "PVN reģistrācijas numurs",
150
153
  abbreviation: "PVN",
151
154
  aliases: ["PVN reģistrācijas numurs", "PVN"] as const,
152
155
  candidatePattern: "LV\\d{11}",
156
+ scope: "country",
153
157
  country: "LV",
154
158
  entityType: "any",
155
159
  sourceUrl:
package/src/ma/ice.ts CHANGED
@@ -9,14 +9,17 @@
9
9
  * @see https://www.ice.gov.ma/
10
10
  */
11
11
 
12
+ import type {
13
+ ValidateResult,
14
+ CountryValidator,
15
+ } from "../types";
16
+
12
17
  import { mod97 } from "#checksums/mod97";
13
18
  import { clean } from "#util/clean";
14
19
  import { randomDigits } from "#util/generate";
15
20
  import { err } from "#util/result";
16
21
  import { isdigits } from "#util/strings";
17
22
 
18
- import type { ValidateResult, Validator } from "../types";
19
-
20
23
  const compact = (value: string): string =>
21
24
  clean(value, " ");
22
25
 
@@ -54,7 +57,7 @@ const generate = (): string => {
54
57
  };
55
58
 
56
59
  /** Moroccan Company Identification Number. */
57
- const ice: Validator = {
60
+ const ice: CountryValidator<"MA"> = {
58
61
  name: "Moroccan Company Identification Number",
59
62
  localName: "Identifiant Commun de l'Entreprise",
60
63
  abbreviation: "ICE",
@@ -63,6 +66,7 @@ const ice: Validator = {
63
66
  "Identifiant Commun de l'Entreprise",
64
67
  ] as const,
65
68
  candidatePattern: "\\d{15}",
69
+ scope: "country",
66
70
  country: "MA",
67
71
  entityType: "company",
68
72
  compact,
package/src/mc/tva.ts CHANGED
@@ -10,14 +10,17 @@
10
10
  * @see https://www.economie.gouv.fr/
11
11
  */
12
12
 
13
- import { randomDigits } from "#util/generate";
14
- import { err } from "#util/result";
15
-
16
13
  import {
17
14
  compact as frCompact,
18
15
  validate as frValidate,
19
16
  } from "../fr/tva";
20
- import type { ValidateResult, Validator } from "../types";
17
+ import type {
18
+ ValidateResult,
19
+ CountryValidator,
20
+ } from "../types";
21
+
22
+ import { randomDigits } from "#util/generate";
23
+ import { err } from "#util/result";
21
24
 
22
25
  const compact = (value: string): string => {
23
26
  const v = frCompact(value);
@@ -54,12 +57,13 @@ const generate = (): string => {
54
57
  };
55
58
 
56
59
  /** Monacan VAT Number. */
57
- const tva: Validator = {
60
+ const tva: CountryValidator<"MC"> = {
58
61
  name: "Monacan VAT Number",
59
62
  localName: "Numéro de TVA",
60
63
  abbreviation: "TVA",
61
64
  aliases: ["numéro de TVA", "TVA"] as const,
62
65
  candidatePattern: "FR\\d{11}",
66
+ scope: "country",
63
67
  country: "MC",
64
68
  entityType: "company",
65
69
  sourceUrl: "https://www.economie.gouv.fr/",
package/src/md/idno.ts CHANGED
@@ -9,12 +9,15 @@
9
9
  * @see https://www.idno.md
10
10
  */
11
11
 
12
+ import type {
13
+ ValidateResult,
14
+ CountryValidator,
15
+ } from "../types";
16
+
12
17
  import { clean } from "#util/clean";
13
18
  import { err } from "#util/result";
14
19
  import { isdigits } from "#util/strings";
15
20
 
16
- import type { ValidateResult, Validator } from "../types";
17
-
18
21
  const WEIGHTS = [
19
22
  7, 3, 1, 7, 3, 1, 7, 3, 1, 7, 3, 1,
20
23
  ] as const;
@@ -65,12 +68,13 @@ const generate = (): string => {
65
68
  };
66
69
 
67
70
  /** Moldavian Company Identification Number. */
68
- const idno: Validator = {
71
+ const idno: CountryValidator<"MD"> = {
69
72
  name: "Moldavian Company Identification Number",
70
73
  localName: "IDNO",
71
74
  abbreviation: "IDNO",
72
75
  aliases: ["IDNO", "cod de identificare"] as const,
73
76
  candidatePattern: "\\d{13}",
77
+ scope: "country",
74
78
  country: "MD",
75
79
  entityType: "company",
76
80
  lengths: [13] as const,
package/src/me/pib.ts CHANGED
@@ -8,14 +8,17 @@
8
8
  * @see https://www.tax.gov.me/
9
9
  */
10
10
 
11
+ import type {
12
+ ValidateResult,
13
+ CountryValidator,
14
+ } from "../types";
15
+
11
16
  import { weightedSum } from "#checksums/weighted-sum";
12
17
  import { clean } from "#util/clean";
13
18
  import { randomDigits } from "#util/generate";
14
19
  import { err } from "#util/result";
15
20
  import { isdigits } from "#util/strings";
16
21
 
17
- import type { ValidateResult, Validator } from "../types";
18
-
19
22
  const WEIGHTS = [8, 7, 6, 5, 4, 3, 2] as const;
20
23
 
21
24
  const compact = (value: string): string =>
@@ -58,12 +61,13 @@ const generate = (): string => {
58
61
  };
59
62
 
60
63
  /** Montenegrin Tax Identification Number. */
61
- const pib: Validator = {
64
+ const pib: CountryValidator<"ME"> = {
62
65
  name: "Montenegrin Tax ID",
63
66
  localName: "Poreski identifikacioni broj",
64
67
  abbreviation: "PIB",
65
68
  aliases: ["PIB"] as const,
66
69
  candidatePattern: "\\d{8}",
70
+ scope: "country",
67
71
  country: "ME",
68
72
  entityType: "any",
69
73
  lengths: [8] as const,
package/src/mk/edb.ts CHANGED
@@ -9,14 +9,17 @@
9
9
  * @see https://www.ujp.gov.mk/
10
10
  */
11
11
 
12
+ import type {
13
+ ValidateResult,
14
+ CountryValidator,
15
+ } from "../types";
16
+
12
17
  import { weightedSum } from "#checksums/weighted-sum";
13
18
  import { clean } from "#util/clean";
14
19
  import { randomDigits } from "#util/generate";
15
20
  import { err } from "#util/result";
16
21
  import { isdigits } from "#util/strings";
17
22
 
18
- import type { ValidateResult, Validator } from "../types";
19
-
20
23
  const WEIGHTS = [
21
24
  7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2,
22
25
  ] as const;
@@ -66,7 +69,7 @@ const generate = (): string => {
66
69
  };
67
70
 
68
71
  /** North Macedonian Tax Identification Number. */
69
- const edb: Validator = {
72
+ const edb: CountryValidator<"MK"> = {
70
73
  name: "North Macedonian Tax ID",
71
74
  localName: "Edinstven danocen broj",
72
75
  abbreviation: "EDB",
@@ -76,6 +79,7 @@ const edb: Validator = {
76
79
  "EDB",
77
80
  ] as const,
78
81
  candidatePattern: "MK\\d{13}",
82
+ scope: "country",
79
83
  country: "MK",
80
84
  entityType: "any",
81
85
  lengths: [13] as const,
package/src/mt/vat.ts CHANGED
@@ -8,14 +8,17 @@
8
8
  * @see https://www.oecd.org/content/dam/oecd/en/topics/policy-issue-focus/aeoi/malta-tin.pdf
9
9
  */
10
10
 
11
+ import type {
12
+ ValidateResult,
13
+ CountryValidator,
14
+ } from "../types";
15
+
11
16
  import { weightedSum } from "#checksums/weighted-sum";
12
17
  import { clean } from "#util/clean";
13
18
  import { randomDigits, randomInt } from "#util/generate";
14
19
  import { err } from "#util/result";
15
20
  import { isdigits } from "#util/strings";
16
21
 
17
- import type { ValidateResult, Validator } from "../types";
18
-
19
22
  const WEIGHTS = [3, 4, 6, 7, 8, 9, 10, 1];
20
23
 
21
24
  const compact = (value: string): string => {
@@ -68,15 +71,17 @@ const generate = (): string => {
68
71
  };
69
72
 
70
73
  /** Maltese VAT Number. */
71
- const vat: Validator = {
74
+ const vat: CountryValidator<"MT"> = {
72
75
  name: "Maltese VAT Number",
73
76
  localName: "VAT Registration Number",
74
77
  abbreviation: "VAT",
75
78
  aliases: ["VAT number MT"] as const,
76
79
  candidatePattern: "MT\\d{8}",
80
+ scope: "country",
77
81
  country: "MT",
78
82
  entityType: "company",
79
83
  sourceUrl: "https://cfr.gov.mt/",
84
+ lengths: [8] as const,
80
85
  examples: ["11679112"] as const,
81
86
  compact,
82
87
  format,
package/src/mu/brn.ts CHANGED
@@ -29,12 +29,15 @@ const generate = (): string => {
29
29
  * @see https://www.oecd.org/content/dam/oecd/en/topics/policy-issue-focus/aeoi/mauritius-tin.pdf
30
30
  */
31
31
 
32
+ import type {
33
+ ValidateResult,
34
+ CountryValidator,
35
+ } from "../types";
36
+
32
37
  import { clean } from "#util/clean";
33
38
  import { randomDigits, randomInt } from "#util/generate";
34
39
  import { err } from "#util/result";
35
40
 
36
- import type { ValidateResult, Validator } from "../types";
37
-
38
41
  /** Entity BRN: letter + 8 digits. */
39
42
  const ENTITY_RE = /^[A-Z]\d{8}$/;
40
43
 
@@ -78,12 +81,13 @@ const validate = (value: string): ValidateResult => {
78
81
  const format = (value: string): string => compact(value);
79
82
 
80
83
  /** Mauritius Business Registration Number. */
81
- const brn: Validator = {
84
+ const brn: CountryValidator<"MU"> = {
82
85
  name: "Mauritius Business Registration Number",
83
86
  localName: "Business Registration Number",
84
87
  abbreviation: "BRN",
85
88
  aliases: ["BRN", "Business Registration Number"] as const,
86
89
  candidatePattern: "[A-Z]\\d{8}",
90
+ scope: "country",
87
91
  country: "MU",
88
92
  entityType: "any",
89
93
  compact,
package/src/mx/clabe.ts CHANGED
@@ -13,13 +13,16 @@
13
13
  * @see https://en.wikipedia.org/wiki/CLABE
14
14
  */
15
15
 
16
+ import type {
17
+ ValidateResult,
18
+ CountryValidator,
19
+ } from "../types";
20
+
16
21
  import { clean } from "#util/clean";
17
22
  import { randomDigits } from "#util/generate";
18
23
  import { err } from "#util/result";
19
24
  import { isdigits } from "#util/strings";
20
25
 
21
- import type { ValidateResult, Validator } from "../types";
22
-
23
26
  const WEIGHTS = [3, 7, 1] as const;
24
27
 
25
28
  const compact = (value: string): string =>
@@ -87,7 +90,7 @@ const generate = (): string => {
87
90
  *
88
91
  * Example sourced from Wikipedia CLABE article.
89
92
  */
90
- const clabe: Validator = {
93
+ const clabe: CountryValidator<"MX"> = {
91
94
  name: "Mexican Bank Account",
92
95
  localName: "Clave Bancaria Estandarizada",
93
96
  abbreviation: "CLABE",
@@ -96,6 +99,7 @@ const clabe: Validator = {
96
99
  "Clave Bancaria Estandarizada",
97
100
  ] as const,
98
101
  candidatePattern: "\\d{18}",
102
+ scope: "country",
99
103
  country: "MX",
100
104
  entityType: "any",
101
105
  lengths: [18] as const,
package/src/mx/curp.ts CHANGED
@@ -14,17 +14,17 @@
14
14
  * @see https://en.wikipedia.org/wiki/CURP
15
15
  */
16
16
 
17
- import { clean } from "#util/clean";
18
- import { isValidDate } from "#util/date";
19
- import { randomInt } from "#util/generate";
20
- import { err } from "#util/result";
21
-
22
17
  import type {
23
18
  ParsedPersonId,
24
19
  ValidateResult,
25
- Validator,
20
+ CountryValidator,
26
21
  } from "../types";
27
22
 
23
+ import { clean } from "#util/clean";
24
+ import { isValidDate } from "#util/date";
25
+ import { randomInt } from "#util/generate";
26
+ import { err } from "#util/result";
27
+
28
28
  /** Valid Mexican state codes (2-letter). */
29
29
  const STATE_CODES = new Set([
30
30
  "AS",
@@ -72,7 +72,7 @@ const LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
72
72
  const ALPHABET = "0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ";
73
73
 
74
74
  const CHAR_MAP = new Map<string, number>();
75
- for (const [i, ch] of [...ALPHABET].entries()) {
75
+ for (const [i, ch] of ALPHABET.split("").entries()) {
76
76
  CHAR_MAP.set(ch, i);
77
77
  }
78
78
 
@@ -221,7 +221,7 @@ const generate = (): string => {
221
221
  *
222
222
  * Example sourced from python-stdnum test suite.
223
223
  */
224
- const curp: Validator<ParsedPersonId> = {
224
+ const curp: CountryValidator<"MX", ParsedPersonId> = {
225
225
  name: "Mexican Personal ID",
226
226
  localName: "Clave Única de Registro de Población",
227
227
  abbreviation: "CURP",
@@ -230,6 +230,7 @@ const curp: Validator<ParsedPersonId> = {
230
230
  "Clave Única de Registro de Población",
231
231
  ] as const,
232
232
  candidatePattern: "[A-Z]{4}\\d{6}[HM][A-Z]{5}[A-Z\\d]\\d",
233
+ scope: "country",
233
234
  country: "MX",
234
235
  entityType: "person",
235
236
  lengths: [18] as const,
package/src/mx/rfc.ts CHANGED
@@ -16,18 +16,21 @@
16
16
  * @see https://en.wikipedia.org/wiki/Tax_Identification_Number_(Mexico)
17
17
  */
18
18
 
19
+ import type {
20
+ ValidateResult,
21
+ CountryValidator,
22
+ } from "../types";
23
+
19
24
  import { clean } from "#util/clean";
20
25
  import { isValidDate } from "#util/date";
21
26
  import { randomInt } from "#util/generate";
22
27
  import { err } from "#util/result";
23
28
 
24
- import type { ValidateResult, Validator } from "../types";
25
-
26
29
  /** Alphabet for RFC check digit computation. */
27
30
  const ALPHABET = "0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ Ñ";
28
31
 
29
32
  const CHAR_MAP = new Map<string, number>();
30
- for (const [i, ch] of [...ALPHABET].entries()) {
33
+ for (const [i, ch] of ALPHABET.split("").entries()) {
31
34
  CHAR_MAP.set(ch, i);
32
35
  }
33
36
 
@@ -150,7 +153,7 @@ const generate = (): string => {
150
153
  *
151
154
  * Examples sourced from python-stdnum test suite.
152
155
  */
153
- const rfc: Validator = {
156
+ const rfc: CountryValidator<"MX"> = {
154
157
  name: "Mexican Tax ID",
155
158
  localName: "Registro Federal de Contribuyentes",
156
159
  abbreviation: "RFC",
@@ -159,6 +162,7 @@ const rfc: Validator = {
159
162
  "Registro Federal de Contribuyentes",
160
163
  ] as const,
161
164
  candidatePattern: "[A-ZÑ&]{3,4}\\d{6}[A-Z\\d]{3}",
165
+ scope: "country",
162
166
  country: "MX",
163
167
  entityType: "any",
164
168
  lengths: [12, 13] as const,