@stll/stdnum 0.0.1

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 (1130) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +323 -0
  3. package/dist/_checksums/luhn.d.ts +12 -0
  4. package/dist/_checksums/luhn.js +26 -0
  5. package/dist/_checksums/luhn.js.map +1 -0
  6. package/dist/_checksums/mod1110.d.ts +12 -0
  7. package/dist/_checksums/mod1110.js +25 -0
  8. package/dist/_checksums/mod1110.js.map +1 -0
  9. package/dist/_checksums/mod112.d.ts +24 -0
  10. package/dist/_checksums/mod112.js +53 -0
  11. package/dist/_checksums/mod112.js.map +1 -0
  12. package/dist/_checksums/mod97.d.ts +23 -0
  13. package/dist/_checksums/mod97.js +28 -0
  14. package/dist/_checksums/mod97.js.map +1 -0
  15. package/dist/_checksums/verhoeff.d.ts +22 -0
  16. package/dist/_checksums/verhoeff.js +271 -0
  17. package/dist/_checksums/verhoeff.js.map +1 -0
  18. package/dist/_checksums/weighted-sum.d.ts +13 -0
  19. package/dist/_checksums/weighted-sum.js +22 -0
  20. package/dist/_checksums/weighted-sum.js.map +1 -0
  21. package/dist/_util/arabic.d.ts +19 -0
  22. package/dist/_util/arabic.js +41 -0
  23. package/dist/_util/arabic.js.map +1 -0
  24. package/dist/_util/clean.d.ts +13 -0
  25. package/dist/_util/clean.js +71 -0
  26. package/dist/_util/clean.js.map +1 -0
  27. package/dist/_util/date.d.ts +12 -0
  28. package/dist/_util/date.js +19 -0
  29. package/dist/_util/date.js.map +1 -0
  30. package/dist/_util/generate.d.ts +16 -0
  31. package/dist/_util/generate.js +21 -0
  32. package/dist/_util/generate.js.map +1 -0
  33. package/dist/_util/result.d.ts +8 -0
  34. package/dist/_util/result.js +13 -0
  35. package/dist/_util/result.js.map +1 -0
  36. package/dist/_util/strings.d.ts +21 -0
  37. package/dist/_util/strings.js +28 -0
  38. package/dist/_util/strings.js.map +1 -0
  39. package/dist/_virtual/_rolldown/runtime.js +13 -0
  40. package/dist/ad/mod.d.ts +8 -0
  41. package/dist/ad/mod.js +8 -0
  42. package/dist/ad/mod.js.map +1 -0
  43. package/dist/ad/nrt.d.ts +13 -0
  44. package/dist/ad/nrt.js +69 -0
  45. package/dist/ad/nrt.js.map +1 -0
  46. package/dist/ae/eid.d.ts +17 -0
  47. package/dist/ae/eid.js +79 -0
  48. package/dist/ae/eid.js.map +1 -0
  49. package/dist/ae/mod.d.ts +8 -0
  50. package/dist/ae/mod.js +8 -0
  51. package/dist/ae/mod.js.map +1 -0
  52. package/dist/ai/mod.d.ts +8 -0
  53. package/dist/ai/mod.js +8 -0
  54. package/dist/ai/mod.js.map +1 -0
  55. package/dist/ai/tin.d.ts +19 -0
  56. package/dist/ai/tin.js +72 -0
  57. package/dist/ai/tin.js.map +1 -0
  58. package/dist/al/mod.d.ts +8 -0
  59. package/dist/al/mod.js +8 -0
  60. package/dist/al/mod.js.map +1 -0
  61. package/dist/al/nipt.d.ts +13 -0
  62. package/dist/al/nipt.js +56 -0
  63. package/dist/al/nipt.js.map +1 -0
  64. package/dist/am/mod.d.ts +8 -0
  65. package/dist/am/mod.js +8 -0
  66. package/dist/am/mod.js.map +1 -0
  67. package/dist/am/tin.d.ts +13 -0
  68. package/dist/am/tin.js +53 -0
  69. package/dist/am/tin.js.map +1 -0
  70. package/dist/ar/cbu.d.ts +14 -0
  71. package/dist/ar/cbu.js +88 -0
  72. package/dist/ar/cbu.js.map +1 -0
  73. package/dist/ar/cuit.d.ts +19 -0
  74. package/dist/ar/cuit.js +123 -0
  75. package/dist/ar/cuit.js.map +1 -0
  76. package/dist/ar/dni.d.ts +13 -0
  77. package/dist/ar/dni.js +57 -0
  78. package/dist/ar/dni.js.map +1 -0
  79. package/dist/ar/mod.d.ts +10 -0
  80. package/dist/ar/mod.js +14 -0
  81. package/dist/ar/mod.js.map +1 -0
  82. package/dist/at/businessid.d.ts +13 -0
  83. package/dist/at/businessid.js +56 -0
  84. package/dist/at/businessid.js.map +1 -0
  85. package/dist/at/mod.d.ts +11 -0
  86. package/dist/at/mod.js +16 -0
  87. package/dist/at/mod.js.map +1 -0
  88. package/dist/at/tin.d.ts +14 -0
  89. package/dist/at/tin.js +70 -0
  90. package/dist/at/tin.js.map +1 -0
  91. package/dist/at/uid.d.ts +14 -0
  92. package/dist/at/uid.js +64 -0
  93. package/dist/at/uid.js.map +1 -0
  94. package/dist/at/vnr.d.ts +12 -0
  95. package/dist/at/vnr.js +79 -0
  96. package/dist/at/vnr.js.map +1 -0
  97. package/dist/au/abn.d.ts +14 -0
  98. package/dist/au/abn.js +77 -0
  99. package/dist/au/abn.js.map +1 -0
  100. package/dist/au/acn.d.ts +14 -0
  101. package/dist/au/acn.js +70 -0
  102. package/dist/au/acn.js.map +1 -0
  103. package/dist/au/mod.d.ts +10 -0
  104. package/dist/au/mod.js +14 -0
  105. package/dist/au/mod.js.map +1 -0
  106. package/dist/au/tfn.d.ts +14 -0
  107. package/dist/au/tfn.js +71 -0
  108. package/dist/au/tfn.js.map +1 -0
  109. package/dist/az/mod.d.ts +8 -0
  110. package/dist/az/mod.js +8 -0
  111. package/dist/az/mod.js.map +1 -0
  112. package/dist/az/voen.d.ts +21 -0
  113. package/dist/az/voen.js +100 -0
  114. package/dist/az/voen.js.map +1 -0
  115. package/dist/ba/jmbg.d.ts +15 -0
  116. package/dist/ba/jmbg.js +97 -0
  117. package/dist/ba/jmbg.js.map +1 -0
  118. package/dist/ba/mod.d.ts +8 -0
  119. package/dist/ba/mod.js +8 -0
  120. package/dist/ba/mod.js.map +1 -0
  121. package/dist/bd/mod.d.ts +8 -0
  122. package/dist/bd/mod.js +8 -0
  123. package/dist/bd/mod.js.map +1 -0
  124. package/dist/bd/nid.d.ts +13 -0
  125. package/dist/bd/nid.js +116 -0
  126. package/dist/bd/nid.js.map +1 -0
  127. package/dist/be/bis.d.ts +14 -0
  128. package/dist/be/bis.js +65 -0
  129. package/dist/be/bis.js.map +1 -0
  130. package/dist/be/mod.d.ts +10 -0
  131. package/dist/be/mod.js +14 -0
  132. package/dist/be/mod.js.map +1 -0
  133. package/dist/be/nn.d.ts +21 -0
  134. package/dist/be/nn.js +84 -0
  135. package/dist/be/nn.js.map +1 -0
  136. package/dist/be/vat.d.ts +14 -0
  137. package/dist/be/vat.js +70 -0
  138. package/dist/be/vat.js.map +1 -0
  139. package/dist/bg/egn.d.ts +19 -0
  140. package/dist/bg/egn.js +122 -0
  141. package/dist/bg/egn.js.map +1 -0
  142. package/dist/bg/mod.d.ts +10 -0
  143. package/dist/bg/mod.js +14 -0
  144. package/dist/bg/mod.js.map +1 -0
  145. package/dist/bg/pnf.d.ts +14 -0
  146. package/dist/bg/pnf.js +70 -0
  147. package/dist/bg/pnf.js.map +1 -0
  148. package/dist/bg/vat.d.ts +14 -0
  149. package/dist/bg/vat.js +153 -0
  150. package/dist/bg/vat.js.map +1 -0
  151. package/dist/bh/cpr.d.ts +12 -0
  152. package/dist/bh/cpr.js +58 -0
  153. package/dist/bh/cpr.js.map +1 -0
  154. package/dist/bh/mod.d.ts +8 -0
  155. package/dist/bh/mod.js +8 -0
  156. package/dist/bh/mod.js.map +1 -0
  157. package/dist/bic.d.ts +13 -0
  158. package/dist/bic.js +72 -0
  159. package/dist/bic.js.map +1 -0
  160. package/dist/br/cnpj.d.ts +21 -0
  161. package/dist/br/cnpj.js +132 -0
  162. package/dist/br/cnpj.js.map +1 -0
  163. package/dist/br/cpf.d.ts +14 -0
  164. package/dist/br/cpf.js +83 -0
  165. package/dist/br/cpf.js.map +1 -0
  166. package/dist/br/mod.d.ts +9 -0
  167. package/dist/br/mod.js +12 -0
  168. package/dist/br/mod.js.map +1 -0
  169. package/dist/by/mod.d.ts +8 -0
  170. package/dist/by/mod.js +8 -0
  171. package/dist/by/mod.js.map +1 -0
  172. package/dist/by/unp.d.ts +14 -0
  173. package/dist/by/unp.js +114 -0
  174. package/dist/by/unp.js.map +1 -0
  175. package/dist/bz/mod.d.ts +8 -0
  176. package/dist/bz/mod.js +8 -0
  177. package/dist/bz/mod.js.map +1 -0
  178. package/dist/bz/tin.d.ts +16 -0
  179. package/dist/bz/tin.js +85 -0
  180. package/dist/bz/tin.js.map +1 -0
  181. package/dist/ca/bn.d.ts +14 -0
  182. package/dist/ca/bn.js +73 -0
  183. package/dist/ca/bn.js.map +1 -0
  184. package/dist/ca/mod.d.ts +9 -0
  185. package/dist/ca/mod.js +12 -0
  186. package/dist/ca/mod.js.map +1 -0
  187. package/dist/ca/sin.d.ts +14 -0
  188. package/dist/ca/sin.js +62 -0
  189. package/dist/ca/sin.js.map +1 -0
  190. package/dist/ch/mod.d.ts +10 -0
  191. package/dist/ch/mod.js +14 -0
  192. package/dist/ch/mod.js.map +1 -0
  193. package/dist/ch/ssn.d.ts +14 -0
  194. package/dist/ch/ssn.js +67 -0
  195. package/dist/ch/ssn.js.map +1 -0
  196. package/dist/ch/uid.d.ts +14 -0
  197. package/dist/ch/uid.js +81 -0
  198. package/dist/ch/uid.js.map +1 -0
  199. package/dist/ch/vat.d.ts +14 -0
  200. package/dist/ch/vat.js +70 -0
  201. package/dist/ch/vat.js.map +1 -0
  202. package/dist/cl/mod.d.ts +8 -0
  203. package/dist/cl/mod.js +8 -0
  204. package/dist/cl/mod.js.map +1 -0
  205. package/dist/cl/rut.d.ts +19 -0
  206. package/dist/cl/rut.js +95 -0
  207. package/dist/cl/rut.js.map +1 -0
  208. package/dist/cn/mod.d.ts +9 -0
  209. package/dist/cn/mod.js +12 -0
  210. package/dist/cn/mod.js.map +1 -0
  211. package/dist/cn/ric.d.ts +19 -0
  212. package/dist/cn/ric.js +108 -0
  213. package/dist/cn/ric.js.map +1 -0
  214. package/dist/cn/uscc.d.ts +14 -0
  215. package/dist/cn/uscc.js +88 -0
  216. package/dist/cn/uscc.js.map +1 -0
  217. package/dist/co/mod.d.ts +8 -0
  218. package/dist/co/mod.js +8 -0
  219. package/dist/co/mod.js.map +1 -0
  220. package/dist/co/nit.d.ts +14 -0
  221. package/dist/co/nit.js +109 -0
  222. package/dist/co/nit.js.map +1 -0
  223. package/dist/cr/cpf.d.ts +21 -0
  224. package/dist/cr/cpf.js +79 -0
  225. package/dist/cr/cpf.js.map +1 -0
  226. package/dist/cr/mod.d.ts +8 -0
  227. package/dist/cr/mod.js +8 -0
  228. package/dist/cr/mod.js.map +1 -0
  229. package/dist/creditcard.d.ts +25 -0
  230. package/dist/creditcard.js +121 -0
  231. package/dist/creditcard.js.map +1 -0
  232. package/dist/cu/mod.d.ts +8 -0
  233. package/dist/cu/mod.js +8 -0
  234. package/dist/cu/mod.js.map +1 -0
  235. package/dist/cu/ni.d.ts +21 -0
  236. package/dist/cu/ni.js +90 -0
  237. package/dist/cu/ni.js.map +1 -0
  238. package/dist/cy/mod.d.ts +8 -0
  239. package/dist/cy/mod.js +8 -0
  240. package/dist/cy/mod.js.map +1 -0
  241. package/dist/cy/vat.d.ts +14 -0
  242. package/dist/cy/vat.js +88 -0
  243. package/dist/cy/vat.js.map +1 -0
  244. package/dist/cz/dic.d.ts +14 -0
  245. package/dist/cz/dic.js +97 -0
  246. package/dist/cz/dic.js.map +1 -0
  247. package/dist/cz/ico.d.ts +14 -0
  248. package/dist/cz/ico.js +70 -0
  249. package/dist/cz/ico.js.map +1 -0
  250. package/dist/cz/mod.d.ts +10 -0
  251. package/dist/cz/mod.js +14 -0
  252. package/dist/cz/mod.js.map +1 -0
  253. package/dist/cz/rc.d.ts +22 -0
  254. package/dist/cz/rc.js +116 -0
  255. package/dist/cz/rc.js.map +1 -0
  256. package/dist/de/handelsreg.d.ts +17 -0
  257. package/dist/de/handelsreg.js +86 -0
  258. package/dist/de/handelsreg.js.map +1 -0
  259. package/dist/de/idnr.d.ts +14 -0
  260. package/dist/de/idnr.js +102 -0
  261. package/dist/de/idnr.js.map +1 -0
  262. package/dist/de/mod.d.ts +12 -0
  263. package/dist/de/mod.js +18 -0
  264. package/dist/de/mod.js.map +1 -0
  265. package/dist/de/stnr.d.ts +22 -0
  266. package/dist/de/stnr.js +144 -0
  267. package/dist/de/stnr.js.map +1 -0
  268. package/dist/de/svnr.d.ts +14 -0
  269. package/dist/de/svnr.js +108 -0
  270. package/dist/de/svnr.js.map +1 -0
  271. package/dist/de/vat.d.ts +14 -0
  272. package/dist/de/vat.js +65 -0
  273. package/dist/de/vat.js.map +1 -0
  274. package/dist/dk/cpr.d.ts +17 -0
  275. package/dist/dk/cpr.js +81 -0
  276. package/dist/dk/cpr.js.map +1 -0
  277. package/dist/dk/cvr.d.ts +14 -0
  278. package/dist/dk/cvr.js +70 -0
  279. package/dist/dk/cvr.js.map +1 -0
  280. package/dist/dk/mod.d.ts +10 -0
  281. package/dist/dk/mod.js +14 -0
  282. package/dist/dk/mod.js.map +1 -0
  283. package/dist/dk/vat.d.ts +14 -0
  284. package/dist/dk/vat.js +72 -0
  285. package/dist/dk/vat.js.map +1 -0
  286. package/dist/do/mod.d.ts +8 -0
  287. package/dist/do/mod.js +8 -0
  288. package/dist/do/mod.js.map +1 -0
  289. package/dist/do/rnc.d.ts +18 -0
  290. package/dist/do/rnc.js +95 -0
  291. package/dist/do/rnc.js.map +1 -0
  292. package/dist/ec/mod.d.ts +8 -0
  293. package/dist/ec/mod.js +8 -0
  294. package/dist/ec/mod.js.map +1 -0
  295. package/dist/ec/ruc.d.ts +14 -0
  296. package/dist/ec/ruc.js +150 -0
  297. package/dist/ec/ruc.js.map +1 -0
  298. package/dist/ee/ik.d.ts +24 -0
  299. package/dist/ee/ik.js +131 -0
  300. package/dist/ee/ik.js.map +1 -0
  301. package/dist/ee/mod.d.ts +10 -0
  302. package/dist/ee/mod.js +14 -0
  303. package/dist/ee/mod.js.map +1 -0
  304. package/dist/ee/registrikood.d.ts +14 -0
  305. package/dist/ee/registrikood.js +63 -0
  306. package/dist/ee/registrikood.js.map +1 -0
  307. package/dist/ee/vat.d.ts +14 -0
  308. package/dist/ee/vat.js +69 -0
  309. package/dist/ee/vat.js.map +1 -0
  310. package/dist/eg/mod.d.ts +8 -0
  311. package/dist/eg/mod.js +8 -0
  312. package/dist/eg/mod.js.map +1 -0
  313. package/dist/eg/tn.d.ts +13 -0
  314. package/dist/eg/tn.js +81 -0
  315. package/dist/eg/tn.js.map +1 -0
  316. package/dist/es/cif.d.ts +14 -0
  317. package/dist/es/cif.js +66 -0
  318. package/dist/es/cif.js.map +1 -0
  319. package/dist/es/dni.d.ts +15 -0
  320. package/dist/es/dni.js +58 -0
  321. package/dist/es/dni.js.map +1 -0
  322. package/dist/es/mod.d.ts +12 -0
  323. package/dist/es/mod.js +18 -0
  324. package/dist/es/mod.js.map +1 -0
  325. package/dist/es/nie.d.ts +14 -0
  326. package/dist/es/nie.js +78 -0
  327. package/dist/es/nie.js.map +1 -0
  328. package/dist/es/nss.d.ts +14 -0
  329. package/dist/es/nss.js +72 -0
  330. package/dist/es/nss.js.map +1 -0
  331. package/dist/es/vat.d.ts +15 -0
  332. package/dist/es/vat.js +104 -0
  333. package/dist/es/vat.js.map +1 -0
  334. package/dist/eu/mod.d.ts +8 -0
  335. package/dist/eu/mod.js +8 -0
  336. package/dist/eu/mod.js.map +1 -0
  337. package/dist/eu/vat.d.ts +20 -0
  338. package/dist/eu/vat.js +145 -0
  339. package/dist/eu/vat.js.map +1 -0
  340. package/dist/fi/hetu.d.ts +17 -0
  341. package/dist/fi/hetu.js +107 -0
  342. package/dist/fi/hetu.js.map +1 -0
  343. package/dist/fi/mod.d.ts +10 -0
  344. package/dist/fi/mod.js +14 -0
  345. package/dist/fi/mod.js.map +1 -0
  346. package/dist/fi/vat.d.ts +14 -0
  347. package/dist/fi/vat.js +68 -0
  348. package/dist/fi/vat.js.map +1 -0
  349. package/dist/fi/ytunnus.d.ts +14 -0
  350. package/dist/fi/ytunnus.js +71 -0
  351. package/dist/fi/ytunnus.js.map +1 -0
  352. package/dist/fr/mod.d.ts +12 -0
  353. package/dist/fr/mod.js +18 -0
  354. package/dist/fr/mod.js.map +1 -0
  355. package/dist/fr/nif.d.ts +14 -0
  356. package/dist/fr/nif.js +64 -0
  357. package/dist/fr/nif.js.map +1 -0
  358. package/dist/fr/nir.d.ts +15 -0
  359. package/dist/fr/nir.js +106 -0
  360. package/dist/fr/nir.js.map +1 -0
  361. package/dist/fr/siren.d.ts +14 -0
  362. package/dist/fr/siren.js +56 -0
  363. package/dist/fr/siren.js.map +1 -0
  364. package/dist/fr/siret.d.ts +14 -0
  365. package/dist/fr/siret.js +73 -0
  366. package/dist/fr/siret.js.map +1 -0
  367. package/dist/fr/tva.d.ts +14 -0
  368. package/dist/fr/tva.js +80 -0
  369. package/dist/fr/tva.js.map +1 -0
  370. package/dist/gb/mod.d.ts +11 -0
  371. package/dist/gb/mod.js +16 -0
  372. package/dist/gb/mod.js.map +1 -0
  373. package/dist/gb/nino.d.ts +13 -0
  374. package/dist/gb/nino.js +103 -0
  375. package/dist/gb/nino.js.map +1 -0
  376. package/dist/gb/sedol.d.ts +15 -0
  377. package/dist/gb/sedol.js +85 -0
  378. package/dist/gb/sedol.js.map +1 -0
  379. package/dist/gb/utr.d.ts +14 -0
  380. package/dist/gb/utr.js +69 -0
  381. package/dist/gb/utr.js.map +1 -0
  382. package/dist/gb/vat.d.ts +14 -0
  383. package/dist/gb/vat.js +102 -0
  384. package/dist/gb/vat.js.map +1 -0
  385. package/dist/ge/mod.d.ts +8 -0
  386. package/dist/ge/mod.js +8 -0
  387. package/dist/ge/mod.js.map +1 -0
  388. package/dist/ge/pin.d.ts +13 -0
  389. package/dist/ge/pin.js +51 -0
  390. package/dist/ge/pin.js.map +1 -0
  391. package/dist/gh/mod.d.ts +8 -0
  392. package/dist/gh/mod.js +8 -0
  393. package/dist/gh/mod.js.map +1 -0
  394. package/dist/gh/tin.d.ts +14 -0
  395. package/dist/gh/tin.js +80 -0
  396. package/dist/gh/tin.js.map +1 -0
  397. package/dist/gr/amka.d.ts +14 -0
  398. package/dist/gr/amka.js +71 -0
  399. package/dist/gr/amka.js.map +1 -0
  400. package/dist/gr/mod.d.ts +9 -0
  401. package/dist/gr/mod.js +12 -0
  402. package/dist/gr/mod.js.map +1 -0
  403. package/dist/gr/vat.d.ts +14 -0
  404. package/dist/gr/vat.js +66 -0
  405. package/dist/gr/vat.js.map +1 -0
  406. package/dist/gt/mod.d.ts +8 -0
  407. package/dist/gt/mod.js +8 -0
  408. package/dist/gt/mod.js.map +1 -0
  409. package/dist/gt/nit.d.ts +21 -0
  410. package/dist/gt/nit.js +98 -0
  411. package/dist/gt/nit.js.map +1 -0
  412. package/dist/hk/hkid.d.ts +15 -0
  413. package/dist/hk/hkid.js +92 -0
  414. package/dist/hk/hkid.js.map +1 -0
  415. package/dist/hk/mod.d.ts +8 -0
  416. package/dist/hk/mod.js +8 -0
  417. package/dist/hk/mod.js.map +1 -0
  418. package/dist/hr/mod.d.ts +8 -0
  419. package/dist/hr/mod.js +8 -0
  420. package/dist/hr/mod.js.map +1 -0
  421. package/dist/hr/vat.d.ts +14 -0
  422. package/dist/hr/vat.js +55 -0
  423. package/dist/hr/vat.js.map +1 -0
  424. package/dist/hu/mod.d.ts +8 -0
  425. package/dist/hu/mod.js +8 -0
  426. package/dist/hu/mod.js.map +1 -0
  427. package/dist/hu/vat.d.ts +14 -0
  428. package/dist/hu/vat.js +68 -0
  429. package/dist/hu/vat.js.map +1 -0
  430. package/dist/iban.d.ts +16 -0
  431. package/dist/iban.js +282 -0
  432. package/dist/iban.js.map +1 -0
  433. package/dist/id/mod.d.ts +8 -0
  434. package/dist/id/mod.js +8 -0
  435. package/dist/id/mod.js.map +1 -0
  436. package/dist/id/npwp.d.ts +14 -0
  437. package/dist/id/npwp.js +133 -0
  438. package/dist/id/npwp.js.map +1 -0
  439. package/dist/ie/mod.d.ts +9 -0
  440. package/dist/ie/mod.js +12 -0
  441. package/dist/ie/mod.js.map +1 -0
  442. package/dist/ie/pps.d.ts +14 -0
  443. package/dist/ie/pps.js +69 -0
  444. package/dist/ie/pps.js.map +1 -0
  445. package/dist/ie/vat.d.ts +14 -0
  446. package/dist/ie/vat.js +83 -0
  447. package/dist/ie/vat.js.map +1 -0
  448. package/dist/il/idnr.d.ts +14 -0
  449. package/dist/il/idnr.js +61 -0
  450. package/dist/il/idnr.js.map +1 -0
  451. package/dist/il/mod.d.ts +8 -0
  452. package/dist/il/mod.js +8 -0
  453. package/dist/il/mod.js.map +1 -0
  454. package/dist/in/aadhaar.d.ts +14 -0
  455. package/dist/in/aadhaar.js +61 -0
  456. package/dist/in/aadhaar.js.map +1 -0
  457. package/dist/in/gstin.d.ts +14 -0
  458. package/dist/in/gstin.js +130 -0
  459. package/dist/in/gstin.js.map +1 -0
  460. package/dist/in/mod.d.ts +10 -0
  461. package/dist/in/mod.js +14 -0
  462. package/dist/in/mod.js.map +1 -0
  463. package/dist/in/pan.d.ts +13 -0
  464. package/dist/in/pan.js +58 -0
  465. package/dist/in/pan.js.map +1 -0
  466. package/dist/index.d.ts +105 -0
  467. package/dist/index.js +104 -0
  468. package/dist/iq/mod.d.ts +8 -0
  469. package/dist/iq/mod.js +8 -0
  470. package/dist/iq/mod.js.map +1 -0
  471. package/dist/iq/nid.d.ts +14 -0
  472. package/dist/iq/nid.js +56 -0
  473. package/dist/iq/nid.js.map +1 -0
  474. package/dist/ir/mod.d.ts +8 -0
  475. package/dist/ir/mod.js +8 -0
  476. package/dist/ir/mod.js.map +1 -0
  477. package/dist/ir/nid.d.ts +18 -0
  478. package/dist/ir/nid.js +90 -0
  479. package/dist/ir/nid.js.map +1 -0
  480. package/dist/is/kennitala.d.ts +14 -0
  481. package/dist/is/kennitala.js +92 -0
  482. package/dist/is/kennitala.js.map +1 -0
  483. package/dist/is/mod.d.ts +9 -0
  484. package/dist/is/mod.js +12 -0
  485. package/dist/is/mod.js.map +1 -0
  486. package/dist/is/vsk.d.ts +13 -0
  487. package/dist/is/vsk.js +47 -0
  488. package/dist/is/vsk.js.map +1 -0
  489. package/dist/isin.d.ts +14 -0
  490. package/dist/isin.js +85 -0
  491. package/dist/isin.js.map +1 -0
  492. package/dist/it/codicefiscale.d.ts +18 -0
  493. package/dist/it/codicefiscale.js +214 -0
  494. package/dist/it/codicefiscale.js.map +1 -0
  495. package/dist/it/iva.d.ts +14 -0
  496. package/dist/it/iva.js +71 -0
  497. package/dist/it/iva.js.map +1 -0
  498. package/dist/it/mod.d.ts +9 -0
  499. package/dist/it/mod.js +12 -0
  500. package/dist/it/mod.js.map +1 -0
  501. package/dist/jp/cn.d.ts +14 -0
  502. package/dist/jp/cn.js +68 -0
  503. package/dist/jp/cn.js.map +1 -0
  504. package/dist/jp/mod.d.ts +9 -0
  505. package/dist/jp/mod.js +12 -0
  506. package/dist/jp/mod.js.map +1 -0
  507. package/dist/jp/mynumber.d.ts +14 -0
  508. package/dist/jp/mynumber.js +86 -0
  509. package/dist/jp/mynumber.js.map +1 -0
  510. package/dist/kr/brn.d.ts +13 -0
  511. package/dist/kr/brn.js +67 -0
  512. package/dist/kr/brn.js.map +1 -0
  513. package/dist/kr/mod.d.ts +9 -0
  514. package/dist/kr/mod.js +12 -0
  515. package/dist/kr/mod.js.map +1 -0
  516. package/dist/kr/rrn.d.ts +22 -0
  517. package/dist/kr/rrn.js +133 -0
  518. package/dist/kr/rrn.js.map +1 -0
  519. package/dist/kw/civil.d.ts +18 -0
  520. package/dist/kw/civil.js +99 -0
  521. package/dist/kw/civil.js.map +1 -0
  522. package/dist/kw/mod.d.ts +8 -0
  523. package/dist/kw/mod.js +8 -0
  524. package/dist/kw/mod.js.map +1 -0
  525. package/dist/kz/iin.d.ts +23 -0
  526. package/dist/kz/iin.js +150 -0
  527. package/dist/kz/iin.js.map +1 -0
  528. package/dist/kz/mod.d.ts +8 -0
  529. package/dist/kz/mod.js +8 -0
  530. package/dist/kz/mod.js.map +1 -0
  531. package/dist/lei.d.ts +14 -0
  532. package/dist/lei.js +68 -0
  533. package/dist/lei.js.map +1 -0
  534. package/dist/li/mod.d.ts +8 -0
  535. package/dist/li/mod.js +8 -0
  536. package/dist/li/mod.js.map +1 -0
  537. package/dist/li/peid.d.ts +13 -0
  538. package/dist/li/peid.js +61 -0
  539. package/dist/li/peid.js.map +1 -0
  540. package/dist/lk/mod.d.ts +8 -0
  541. package/dist/lk/mod.js +8 -0
  542. package/dist/lk/mod.js.map +1 -0
  543. package/dist/lk/nic.d.ts +17 -0
  544. package/dist/lk/nic.js +139 -0
  545. package/dist/lk/nic.js.map +1 -0
  546. package/dist/lt/asmens.d.ts +14 -0
  547. package/dist/lt/asmens.js +81 -0
  548. package/dist/lt/asmens.js.map +1 -0
  549. package/dist/lt/mod.d.ts +9 -0
  550. package/dist/lt/mod.js +12 -0
  551. package/dist/lt/mod.js.map +1 -0
  552. package/dist/lt/vat.d.ts +14 -0
  553. package/dist/lt/vat.js +72 -0
  554. package/dist/lt/vat.js.map +1 -0
  555. package/dist/lu/mod.d.ts +8 -0
  556. package/dist/lu/mod.js +8 -0
  557. package/dist/lu/mod.js.map +1 -0
  558. package/dist/lu/vat.d.ts +14 -0
  559. package/dist/lu/vat.js +56 -0
  560. package/dist/lu/vat.js.map +1 -0
  561. package/dist/luhn.d.ts +17 -0
  562. package/dist/luhn.js +51 -0
  563. package/dist/luhn.js.map +1 -0
  564. package/dist/lv/mod.d.ts +8 -0
  565. package/dist/lv/mod.js +8 -0
  566. package/dist/lv/mod.js.map +1 -0
  567. package/dist/lv/vat.d.ts +14 -0
  568. package/dist/lv/vat.js +104 -0
  569. package/dist/lv/vat.js.map +1 -0
  570. package/dist/ma/ice.d.ts +14 -0
  571. package/dist/ma/ice.js +57 -0
  572. package/dist/ma/ice.js.map +1 -0
  573. package/dist/ma/mod.d.ts +8 -0
  574. package/dist/ma/mod.js +8 -0
  575. package/dist/ma/mod.js.map +1 -0
  576. package/dist/mc/mod.d.ts +8 -0
  577. package/dist/mc/mod.js +8 -0
  578. package/dist/mc/mod.js.map +1 -0
  579. package/dist/mc/tva.d.ts +14 -0
  580. package/dist/mc/tva.js +53 -0
  581. package/dist/mc/tva.js.map +1 -0
  582. package/dist/md/idno.d.ts +12 -0
  583. package/dist/md/idno.js +71 -0
  584. package/dist/md/idno.js.map +1 -0
  585. package/dist/md/mod.d.ts +8 -0
  586. package/dist/md/mod.js +8 -0
  587. package/dist/md/mod.js.map +1 -0
  588. package/dist/me/mod.d.ts +8 -0
  589. package/dist/me/mod.js +8 -0
  590. package/dist/me/mod.js.map +1 -0
  591. package/dist/me/pib.d.ts +14 -0
  592. package/dist/me/pib.js +63 -0
  593. package/dist/me/pib.js.map +1 -0
  594. package/dist/mk/edb.d.ts +14 -0
  595. package/dist/mk/edb.js +77 -0
  596. package/dist/mk/edb.js.map +1 -0
  597. package/dist/mk/mod.d.ts +8 -0
  598. package/dist/mk/mod.js +8 -0
  599. package/dist/mk/mod.js.map +1 -0
  600. package/dist/mt/mod.d.ts +8 -0
  601. package/dist/mt/mod.js +8 -0
  602. package/dist/mt/mod.js.map +1 -0
  603. package/dist/mt/vat.d.ts +14 -0
  604. package/dist/mt/vat.js +69 -0
  605. package/dist/mt/vat.js.map +1 -0
  606. package/dist/mu/brn.d.ts +13 -0
  607. package/dist/mu/brn.js +68 -0
  608. package/dist/mu/brn.js.map +1 -0
  609. package/dist/mu/mod.d.ts +8 -0
  610. package/dist/mu/mod.js +8 -0
  611. package/dist/mu/mod.js.map +1 -0
  612. package/dist/mx/clabe.d.ts +18 -0
  613. package/dist/mx/clabe.js +87 -0
  614. package/dist/mx/clabe.js.map +1 -0
  615. package/dist/mx/curp.d.ts +21 -0
  616. package/dist/mx/curp.js +140 -0
  617. package/dist/mx/curp.js.map +1 -0
  618. package/dist/mx/mod.d.ts +10 -0
  619. package/dist/mx/mod.js +14 -0
  620. package/dist/mx/mod.js.map +1 -0
  621. package/dist/mx/rfc.d.ts +16 -0
  622. package/dist/mx/rfc.js +92 -0
  623. package/dist/mx/rfc.js.map +1 -0
  624. package/dist/my/mod.d.ts +8 -0
  625. package/dist/my/mod.js +8 -0
  626. package/dist/my/mod.js.map +1 -0
  627. package/dist/my/nric.d.ts +17 -0
  628. package/dist/my/nric.js +186 -0
  629. package/dist/my/nric.js.map +1 -0
  630. package/dist/ng/mod.d.ts +8 -0
  631. package/dist/ng/mod.js +8 -0
  632. package/dist/ng/mod.js.map +1 -0
  633. package/dist/ng/nin.d.ts +13 -0
  634. package/dist/ng/nin.js +54 -0
  635. package/dist/ng/nin.js.map +1 -0
  636. package/dist/ni/mod.d.ts +8 -0
  637. package/dist/ni/mod.js +8 -0
  638. package/dist/ni/mod.js.map +1 -0
  639. package/dist/ni/ruc.d.ts +23 -0
  640. package/dist/ni/ruc.js +113 -0
  641. package/dist/ni/ruc.js.map +1 -0
  642. package/dist/nl/bsn.d.ts +14 -0
  643. package/dist/nl/bsn.js +70 -0
  644. package/dist/nl/bsn.js.map +1 -0
  645. package/dist/nl/kvk.d.ts +13 -0
  646. package/dist/nl/kvk.js +45 -0
  647. package/dist/nl/kvk.js.map +1 -0
  648. package/dist/nl/mod.d.ts +10 -0
  649. package/dist/nl/mod.js +14 -0
  650. package/dist/nl/mod.js.map +1 -0
  651. package/dist/nl/vat.d.ts +14 -0
  652. package/dist/nl/vat.js +94 -0
  653. package/dist/nl/vat.js.map +1 -0
  654. package/dist/no/fodselsnummer.d.ts +20 -0
  655. package/dist/no/fodselsnummer.js +134 -0
  656. package/dist/no/fodselsnummer.js.map +1 -0
  657. package/dist/no/mod.d.ts +10 -0
  658. package/dist/no/mod.js +14 -0
  659. package/dist/no/mod.js.map +1 -0
  660. package/dist/no/mva.d.ts +14 -0
  661. package/dist/no/mva.js +54 -0
  662. package/dist/no/mva.js.map +1 -0
  663. package/dist/no/orgnr.d.ts +14 -0
  664. package/dist/no/orgnr.js +66 -0
  665. package/dist/no/orgnr.js.map +1 -0
  666. package/dist/nz/ird.d.ts +14 -0
  667. package/dist/nz/ird.js +105 -0
  668. package/dist/nz/ird.js.map +1 -0
  669. package/dist/nz/mod.d.ts +8 -0
  670. package/dist/nz/mod.js +8 -0
  671. package/dist/nz/mod.js.map +1 -0
  672. package/dist/pa/mod.d.ts +8 -0
  673. package/dist/pa/mod.js +8 -0
  674. package/dist/pa/mod.js.map +1 -0
  675. package/dist/pa/ruc.d.ts +23 -0
  676. package/dist/pa/ruc.js +200 -0
  677. package/dist/pa/ruc.js.map +1 -0
  678. package/dist/patterns.d.ts +45 -0
  679. package/dist/patterns.js +123 -0
  680. package/dist/patterns.js.map +1 -0
  681. package/dist/pe/mod.d.ts +8 -0
  682. package/dist/pe/mod.js +8 -0
  683. package/dist/pe/mod.js.map +1 -0
  684. package/dist/pe/ruc.d.ts +19 -0
  685. package/dist/pe/ruc.js +109 -0
  686. package/dist/pe/ruc.js.map +1 -0
  687. package/dist/ph/mod.d.ts +8 -0
  688. package/dist/ph/mod.js +8 -0
  689. package/dist/ph/mod.js.map +1 -0
  690. package/dist/ph/philid.d.ts +13 -0
  691. package/dist/ph/philid.js +60 -0
  692. package/dist/ph/philid.js.map +1 -0
  693. package/dist/pk/cnic.d.ts +13 -0
  694. package/dist/pk/cnic.js +69 -0
  695. package/dist/pk/cnic.js.map +1 -0
  696. package/dist/pk/mod.d.ts +8 -0
  697. package/dist/pk/mod.js +8 -0
  698. package/dist/pk/mod.js.map +1 -0
  699. package/dist/pl/mod.d.ts +10 -0
  700. package/dist/pl/mod.js +14 -0
  701. package/dist/pl/mod.js.map +1 -0
  702. package/dist/pl/nip.d.ts +18 -0
  703. package/dist/pl/nip.js +77 -0
  704. package/dist/pl/nip.js.map +1 -0
  705. package/dist/pl/pesel.d.ts +19 -0
  706. package/dist/pl/pesel.js +109 -0
  707. package/dist/pl/pesel.js.map +1 -0
  708. package/dist/pl/regon.d.ts +14 -0
  709. package/dist/pl/regon.js +85 -0
  710. package/dist/pl/regon.js.map +1 -0
  711. package/dist/pt/cc.d.ts +14 -0
  712. package/dist/pt/cc.js +77 -0
  713. package/dist/pt/cc.js.map +1 -0
  714. package/dist/pt/mod.d.ts +9 -0
  715. package/dist/pt/mod.js +12 -0
  716. package/dist/pt/mod.js.map +1 -0
  717. package/dist/pt/vat.d.ts +14 -0
  718. package/dist/pt/vat.js +73 -0
  719. package/dist/pt/vat.js.map +1 -0
  720. package/dist/ro/cnp.d.ts +19 -0
  721. package/dist/ro/cnp.js +176 -0
  722. package/dist/ro/cnp.js.map +1 -0
  723. package/dist/ro/mod.d.ts +9 -0
  724. package/dist/ro/mod.js +12 -0
  725. package/dist/ro/mod.js.map +1 -0
  726. package/dist/ro/vat.d.ts +14 -0
  727. package/dist/ro/vat.js +76 -0
  728. package/dist/ro/vat.js.map +1 -0
  729. package/dist/rs/mod.d.ts +8 -0
  730. package/dist/rs/mod.js +8 -0
  731. package/dist/rs/mod.js.map +1 -0
  732. package/dist/rs/pib.d.ts +14 -0
  733. package/dist/rs/pib.js +60 -0
  734. package/dist/rs/pib.js.map +1 -0
  735. package/dist/ru/inn.d.ts +14 -0
  736. package/dist/ru/inn.js +103 -0
  737. package/dist/ru/inn.js.map +1 -0
  738. package/dist/ru/mod.d.ts +8 -0
  739. package/dist/ru/mod.js +8 -0
  740. package/dist/ru/mod.js.map +1 -0
  741. package/dist/se/mod.d.ts +10 -0
  742. package/dist/se/mod.js +14 -0
  743. package/dist/se/mod.js.map +1 -0
  744. package/dist/se/orgnr.d.ts +14 -0
  745. package/dist/se/orgnr.js +59 -0
  746. package/dist/se/orgnr.js.map +1 -0
  747. package/dist/se/personnummer.d.ts +23 -0
  748. package/dist/se/personnummer.js +122 -0
  749. package/dist/se/personnummer.js.map +1 -0
  750. package/dist/se/vat.d.ts +14 -0
  751. package/dist/se/vat.js +63 -0
  752. package/dist/se/vat.js.map +1 -0
  753. package/dist/sg/mod.d.ts +8 -0
  754. package/dist/sg/mod.js +8 -0
  755. package/dist/sg/mod.js.map +1 -0
  756. package/dist/sg/uen.d.ts +14 -0
  757. package/dist/sg/uen.js +207 -0
  758. package/dist/sg/uen.js.map +1 -0
  759. package/dist/si/emso.d.ts +19 -0
  760. package/dist/si/emso.js +108 -0
  761. package/dist/si/emso.js.map +1 -0
  762. package/dist/si/mod.d.ts +9 -0
  763. package/dist/si/mod.js +12 -0
  764. package/dist/si/mod.js.map +1 -0
  765. package/dist/si/vat.d.ts +14 -0
  766. package/dist/si/vat.js +74 -0
  767. package/dist/si/vat.js.map +1 -0
  768. package/dist/sk/dic.d.ts +14 -0
  769. package/dist/sk/dic.js +66 -0
  770. package/dist/sk/dic.js.map +1 -0
  771. package/dist/sk/ico.d.ts +10 -0
  772. package/dist/sk/ico.js +30 -0
  773. package/dist/sk/ico.js.map +1 -0
  774. package/dist/sk/mod.d.ts +10 -0
  775. package/dist/sk/mod.js +14 -0
  776. package/dist/sk/mod.js.map +1 -0
  777. package/dist/sk/rc.d.ts +10 -0
  778. package/dist/sk/rc.js +30 -0
  779. package/dist/sk/rc.js.map +1 -0
  780. package/dist/th/mod.d.ts +8 -0
  781. package/dist/th/mod.js +8 -0
  782. package/dist/th/mod.js.map +1 -0
  783. package/dist/th/tin.d.ts +14 -0
  784. package/dist/th/tin.js +63 -0
  785. package/dist/th/tin.js.map +1 -0
  786. package/dist/tr/mod.d.ts +9 -0
  787. package/dist/tr/mod.js +12 -0
  788. package/dist/tr/mod.js.map +1 -0
  789. package/dist/tr/tckimlik.d.ts +15 -0
  790. package/dist/tr/tckimlik.js +79 -0
  791. package/dist/tr/tckimlik.js.map +1 -0
  792. package/dist/tr/vkn.d.ts +15 -0
  793. package/dist/tr/vkn.js +79 -0
  794. package/dist/tr/vkn.js.map +1 -0
  795. package/dist/tw/mod.d.ts +8 -0
  796. package/dist/tw/mod.js +8 -0
  797. package/dist/tw/mod.js.map +1 -0
  798. package/dist/tw/ubn.d.ts +14 -0
  799. package/dist/tw/ubn.js +86 -0
  800. package/dist/tw/ubn.js.map +1 -0
  801. package/dist/types.d.ts +95 -0
  802. package/dist/types.js +1 -0
  803. package/dist/ua/edrpou.d.ts +14 -0
  804. package/dist/ua/edrpou.js +103 -0
  805. package/dist/ua/edrpou.js.map +1 -0
  806. package/dist/ua/mod.d.ts +8 -0
  807. package/dist/ua/mod.js +8 -0
  808. package/dist/ua/mod.js.map +1 -0
  809. package/dist/us/ein.d.ts +13 -0
  810. package/dist/us/ein.js +234 -0
  811. package/dist/us/ein.js.map +1 -0
  812. package/dist/us/itin.d.ts +15 -0
  813. package/dist/us/itin.js +69 -0
  814. package/dist/us/itin.js.map +1 -0
  815. package/dist/us/mod.d.ts +11 -0
  816. package/dist/us/mod.js +16 -0
  817. package/dist/us/mod.js.map +1 -0
  818. package/dist/us/rtn.d.ts +14 -0
  819. package/dist/us/rtn.js +91 -0
  820. package/dist/us/rtn.js.map +1 -0
  821. package/dist/us/ssn.d.ts +13 -0
  822. package/dist/us/ssn.js +77 -0
  823. package/dist/us/ssn.js.map +1 -0
  824. package/dist/uy/mod.d.ts +8 -0
  825. package/dist/uy/mod.js +8 -0
  826. package/dist/uy/mod.js.map +1 -0
  827. package/dist/uy/rut.d.ts +18 -0
  828. package/dist/uy/rut.js +105 -0
  829. package/dist/uy/rut.js.map +1 -0
  830. package/dist/ve/mod.d.ts +8 -0
  831. package/dist/ve/mod.js +8 -0
  832. package/dist/ve/mod.js.map +1 -0
  833. package/dist/ve/rif.d.ts +18 -0
  834. package/dist/ve/rif.js +109 -0
  835. package/dist/ve/rif.js.map +1 -0
  836. package/dist/vn/mod.d.ts +8 -0
  837. package/dist/vn/mod.js +8 -0
  838. package/dist/vn/mod.js.map +1 -0
  839. package/dist/vn/mst.d.ts +14 -0
  840. package/dist/vn/mst.js +82 -0
  841. package/dist/vn/mst.js.map +1 -0
  842. package/dist/za/idnr.d.ts +19 -0
  843. package/dist/za/idnr.js +110 -0
  844. package/dist/za/idnr.js.map +1 -0
  845. package/dist/za/mod.d.ts +8 -0
  846. package/dist/za/mod.js +8 -0
  847. package/dist/za/mod.js.map +1 -0
  848. package/package.json +936 -0
  849. package/src/_checksums/luhn.ts +24 -0
  850. package/src/_checksums/mod1110.ts +24 -0
  851. package/src/_checksums/mod112.ts +40 -0
  852. package/src/_checksums/mod97.ts +28 -0
  853. package/src/_checksums/verhoeff.ts +71 -0
  854. package/src/_checksums/weighted-sum.ts +23 -0
  855. package/src/_util/arabic.ts +48 -0
  856. package/src/_util/clean.ts +86 -0
  857. package/src/_util/date.ts +23 -0
  858. package/src/_util/generate.ts +24 -0
  859. package/src/_util/result.ts +10 -0
  860. package/src/_util/strings.ts +32 -0
  861. package/src/ad/mod.ts +1 -0
  862. package/src/ad/nrt.ts +111 -0
  863. package/src/ae/eid.ts +106 -0
  864. package/src/ae/mod.ts +1 -0
  865. package/src/ai/mod.ts +1 -0
  866. package/src/ai/tin.ts +98 -0
  867. package/src/al/mod.ts +1 -0
  868. package/src/al/nipt.ts +78 -0
  869. package/src/am/mod.ts +1 -0
  870. package/src/am/tin.ts +73 -0
  871. package/src/ar/cbu.ts +106 -0
  872. package/src/ar/cuit.ts +137 -0
  873. package/src/ar/dni.ts +79 -0
  874. package/src/ar/mod.ts +3 -0
  875. package/src/at/businessid.ts +74 -0
  876. package/src/at/mod.ts +4 -0
  877. package/src/at/tin.ts +90 -0
  878. package/src/at/uid.ts +92 -0
  879. package/src/at/vnr.ts +111 -0
  880. package/src/au/abn.ts +85 -0
  881. package/src/au/acn.ts +86 -0
  882. package/src/au/mod.ts +3 -0
  883. package/src/au/tfn.ts +85 -0
  884. package/src/az/mod.ts +1 -0
  885. package/src/az/voen.ts +125 -0
  886. package/src/ba/jmbg.ts +128 -0
  887. package/src/ba/mod.ts +1 -0
  888. package/src/bd/mod.ts +1 -0
  889. package/src/bd/nid.ts +139 -0
  890. package/src/be/bis.ts +105 -0
  891. package/src/be/mod.ts +3 -0
  892. package/src/be/nn.ts +125 -0
  893. package/src/be/vat.ts +107 -0
  894. package/src/bg/egn.ts +155 -0
  895. package/src/bg/mod.ts +3 -0
  896. package/src/bg/pnf.ts +86 -0
  897. package/src/bg/vat.ts +155 -0
  898. package/src/bh/cpr.ts +81 -0
  899. package/src/bh/mod.ts +1 -0
  900. package/src/bic.ts +99 -0
  901. package/src/br/cnpj.ts +152 -0
  902. package/src/br/cpf.ts +114 -0
  903. package/src/br/mod.ts +2 -0
  904. package/src/by/mod.ts +1 -0
  905. package/src/by/unp.ts +153 -0
  906. package/src/bz/mod.ts +1 -0
  907. package/src/bz/tin.ts +107 -0
  908. package/src/ca/bn.ts +107 -0
  909. package/src/ca/mod.ts +2 -0
  910. package/src/ca/sin.ts +91 -0
  911. package/src/ch/mod.ts +3 -0
  912. package/src/ch/ssn.ts +95 -0
  913. package/src/ch/uid.ts +108 -0
  914. package/src/ch/vat.ts +85 -0
  915. package/src/cl/mod.ts +1 -0
  916. package/src/cl/rut.ts +118 -0
  917. package/src/cn/mod.ts +2 -0
  918. package/src/cn/ric.ts +180 -0
  919. package/src/cn/uscc.ts +111 -0
  920. package/src/co/mod.ts +1 -0
  921. package/src/co/nit.ts +108 -0
  922. package/src/cr/cpf.ts +111 -0
  923. package/src/cr/mod.ts +1 -0
  924. package/src/creditcard.ts +190 -0
  925. package/src/cu/mod.ts +1 -0
  926. package/src/cu/ni.ts +125 -0
  927. package/src/cy/mod.ts +1 -0
  928. package/src/cy/vat.ts +130 -0
  929. package/src/cz/dic.ts +135 -0
  930. package/src/cz/ico.ts +82 -0
  931. package/src/cz/mod.ts +3 -0
  932. package/src/cz/rc.ts +190 -0
  933. package/src/de/handelsreg.ts +107 -0
  934. package/src/de/idnr.ts +140 -0
  935. package/src/de/mod.ts +5 -0
  936. package/src/de/stnr.ts +214 -0
  937. package/src/de/svnr.ts +162 -0
  938. package/src/de/vat.ts +98 -0
  939. package/src/dk/cpr.ts +122 -0
  940. package/src/dk/cvr.ts +87 -0
  941. package/src/dk/mod.ts +3 -0
  942. package/src/dk/vat.ts +91 -0
  943. package/src/do/mod.ts +1 -0
  944. package/src/do/rnc.ts +126 -0
  945. package/src/ec/mod.ts +1 -0
  946. package/src/ec/ruc.ts +195 -0
  947. package/src/ee/ik.ts +156 -0
  948. package/src/ee/mod.ts +3 -0
  949. package/src/ee/registrikood.ts +81 -0
  950. package/src/ee/vat.ts +85 -0
  951. package/src/eg/mod.ts +1 -0
  952. package/src/eg/tn.ts +103 -0
  953. package/src/es/cif.ts +105 -0
  954. package/src/es/dni.ts +90 -0
  955. package/src/es/mod.ts +5 -0
  956. package/src/es/nie.ts +102 -0
  957. package/src/es/nss.ts +109 -0
  958. package/src/es/vat.ts +178 -0
  959. package/src/eu/mod.ts +1 -0
  960. package/src/eu/vat.ts +171 -0
  961. package/src/fi/hetu.ts +182 -0
  962. package/src/fi/mod.ts +3 -0
  963. package/src/fi/vat.ts +82 -0
  964. package/src/fi/ytunnus.ts +83 -0
  965. package/src/fr/mod.ts +5 -0
  966. package/src/fr/nif.ts +93 -0
  967. package/src/fr/nir.ts +195 -0
  968. package/src/fr/siren.ts +79 -0
  969. package/src/fr/siret.ts +122 -0
  970. package/src/fr/tva.ts +146 -0
  971. package/src/gb/mod.ts +4 -0
  972. package/src/gb/nino.ts +153 -0
  973. package/src/gb/sedol.ts +137 -0
  974. package/src/gb/utr.ts +81 -0
  975. package/src/gb/vat.ts +158 -0
  976. package/src/ge/mod.ts +1 -0
  977. package/src/ge/pin.ts +71 -0
  978. package/src/gh/mod.ts +1 -0
  979. package/src/gh/tin.ts +100 -0
  980. package/src/gr/amka.ts +104 -0
  981. package/src/gr/mod.ts +2 -0
  982. package/src/gr/vat.ts +96 -0
  983. package/src/gt/mod.ts +1 -0
  984. package/src/gt/nit.ts +116 -0
  985. package/src/hk/hkid.ts +131 -0
  986. package/src/hk/mod.ts +1 -0
  987. package/src/hr/mod.ts +1 -0
  988. package/src/hr/vat.ts +79 -0
  989. package/src/hu/mod.ts +1 -0
  990. package/src/hu/vat.ts +82 -0
  991. package/src/iban.ts +340 -0
  992. package/src/id/mod.ts +1 -0
  993. package/src/id/npwp.ts +187 -0
  994. package/src/ie/mod.ts +2 -0
  995. package/src/ie/pps.ts +105 -0
  996. package/src/ie/vat.ts +138 -0
  997. package/src/il/idnr.ts +87 -0
  998. package/src/il/mod.ts +1 -0
  999. package/src/in/aadhaar.ts +96 -0
  1000. package/src/in/gstin.ts +169 -0
  1001. package/src/in/mod.ts +3 -0
  1002. package/src/in/pan.ts +88 -0
  1003. package/src/index.ts +116 -0
  1004. package/src/iq/mod.ts +1 -0
  1005. package/src/iq/nid.ts +71 -0
  1006. package/src/ir/mod.ts +1 -0
  1007. package/src/ir/nid.ts +120 -0
  1008. package/src/is/kennitala.ts +125 -0
  1009. package/src/is/mod.ts +2 -0
  1010. package/src/is/vsk.ts +63 -0
  1011. package/src/isin.ts +114 -0
  1012. package/src/it/codicefiscale.ts +290 -0
  1013. package/src/it/iva.ts +115 -0
  1014. package/src/it/mod.ts +2 -0
  1015. package/src/jp/cn.ts +91 -0
  1016. package/src/jp/mod.ts +2 -0
  1017. package/src/jp/mynumber.ts +103 -0
  1018. package/src/kr/brn.ts +101 -0
  1019. package/src/kr/mod.ts +2 -0
  1020. package/src/kr/rrn.ts +170 -0
  1021. package/src/kw/civil.ts +144 -0
  1022. package/src/kw/mod.ts +1 -0
  1023. package/src/kz/iin.ts +183 -0
  1024. package/src/kz/mod.ts +1 -0
  1025. package/src/lei.ts +98 -0
  1026. package/src/li/mod.ts +1 -0
  1027. package/src/li/peid.ts +66 -0
  1028. package/src/lk/mod.ts +1 -0
  1029. package/src/lk/nic.ts +210 -0
  1030. package/src/lt/asmens.ts +120 -0
  1031. package/src/lt/mod.ts +2 -0
  1032. package/src/lt/vat.ts +109 -0
  1033. package/src/lu/mod.ts +1 -0
  1034. package/src/lu/vat.ts +80 -0
  1035. package/src/luhn.ts +72 -0
  1036. package/src/lv/mod.ts +1 -0
  1037. package/src/lv/vat.ts +139 -0
  1038. package/src/ma/ice.ts +79 -0
  1039. package/src/ma/mod.ts +1 -0
  1040. package/src/mc/mod.ts +1 -0
  1041. package/src/mc/tva.ts +74 -0
  1042. package/src/md/idno.ts +86 -0
  1043. package/src/md/mod.ts +1 -0
  1044. package/src/me/mod.ts +1 -0
  1045. package/src/me/pib.ts +79 -0
  1046. package/src/mk/edb.ts +91 -0
  1047. package/src/mk/mod.ts +1 -0
  1048. package/src/mt/mod.ts +1 -0
  1049. package/src/mt/vat.ts +88 -0
  1050. package/src/mu/brn.ts +102 -0
  1051. package/src/mu/mod.ts +1 -0
  1052. package/src/mx/clabe.ts +111 -0
  1053. package/src/mx/curp.ts +210 -0
  1054. package/src/mx/mod.ts +3 -0
  1055. package/src/mx/rfc.ts +144 -0
  1056. package/src/my/mod.ts +1 -0
  1057. package/src/my/nric.ts +235 -0
  1058. package/src/ng/mod.ts +1 -0
  1059. package/src/ng/nin.ts +72 -0
  1060. package/src/ni/mod.ts +1 -0
  1061. package/src/ni/ruc.ts +176 -0
  1062. package/src/nl/bsn.ts +87 -0
  1063. package/src/nl/kvk.ts +59 -0
  1064. package/src/nl/mod.ts +3 -0
  1065. package/src/nl/vat.ts +146 -0
  1066. package/src/no/fodselsnummer.ts +192 -0
  1067. package/src/no/mod.ts +3 -0
  1068. package/src/no/mva.ts +73 -0
  1069. package/src/no/orgnr.ts +79 -0
  1070. package/src/nz/ird.ts +128 -0
  1071. package/src/nz/mod.ts +1 -0
  1072. package/src/pa/mod.ts +1 -0
  1073. package/src/pa/ruc.ts +359 -0
  1074. package/src/patterns.ts +252 -0
  1075. package/src/pe/mod.ts +1 -0
  1076. package/src/pe/ruc.ts +121 -0
  1077. package/src/ph/mod.ts +1 -0
  1078. package/src/ph/philid.ts +76 -0
  1079. package/src/pk/cnic.ts +103 -0
  1080. package/src/pk/mod.ts +1 -0
  1081. package/src/pl/mod.ts +3 -0
  1082. package/src/pl/nip.ts +96 -0
  1083. package/src/pl/pesel.ts +153 -0
  1084. package/src/pl/regon.ts +98 -0
  1085. package/src/pt/cc.ts +106 -0
  1086. package/src/pt/mod.ts +2 -0
  1087. package/src/pt/vat.ts +93 -0
  1088. package/src/ro/cnp.ts +171 -0
  1089. package/src/ro/mod.ts +2 -0
  1090. package/src/ro/vat.ts +94 -0
  1091. package/src/rs/mod.ts +1 -0
  1092. package/src/rs/pib.ts +83 -0
  1093. package/src/ru/inn.ts +109 -0
  1094. package/src/ru/mod.ts +1 -0
  1095. package/src/se/mod.ts +3 -0
  1096. package/src/se/orgnr.ts +81 -0
  1097. package/src/se/personnummer.ts +180 -0
  1098. package/src/se/vat.ts +92 -0
  1099. package/src/sg/mod.ts +1 -0
  1100. package/src/sg/uen.ts +267 -0
  1101. package/src/si/emso.ts +152 -0
  1102. package/src/si/mod.ts +2 -0
  1103. package/src/si/vat.ts +108 -0
  1104. package/src/sk/dic.ts +106 -0
  1105. package/src/sk/ico.ts +39 -0
  1106. package/src/sk/mod.ts +3 -0
  1107. package/src/sk/rc.ts +31 -0
  1108. package/src/th/mod.ts +1 -0
  1109. package/src/th/tin.ts +102 -0
  1110. package/src/tr/mod.ts +2 -0
  1111. package/src/tr/tckimlik.ts +111 -0
  1112. package/src/tr/vkn.ts +97 -0
  1113. package/src/tw/mod.ts +1 -0
  1114. package/src/tw/ubn.ts +108 -0
  1115. package/src/types.ts +200 -0
  1116. package/src/ua/edrpou.ts +103 -0
  1117. package/src/ua/mod.ts +1 -0
  1118. package/src/us/ein.ts +257 -0
  1119. package/src/us/itin.ts +126 -0
  1120. package/src/us/mod.ts +4 -0
  1121. package/src/us/rtn.ts +126 -0
  1122. package/src/us/ssn.ts +117 -0
  1123. package/src/uy/mod.ts +1 -0
  1124. package/src/uy/rut.ts +146 -0
  1125. package/src/ve/mod.ts +1 -0
  1126. package/src/ve/rif.ts +140 -0
  1127. package/src/vn/mod.ts +1 -0
  1128. package/src/vn/mst.ts +128 -0
  1129. package/src/za/idnr.ts +157 -0
  1130. package/src/za/mod.ts +1 -0
package/dist/ar/cbu.js ADDED
@@ -0,0 +1,88 @@
1
+ import { clean } from "../_util/clean.js";
2
+ import { randomDigits } from "../_util/generate.js";
3
+ import { err } from "../_util/result.js";
4
+ import { isdigits } from "../_util/strings.js";
5
+ //#region src/ar/cbu.ts
6
+ /**
7
+ * CBU (Clave Bancaria Uniforme).
8
+ *
9
+ * Argentine bank account number used for electronic
10
+ * transfers. 22 digits: 3-digit bank + 4-digit branch
11
+ * + 1 check digit + 13-digit account + 1 check digit.
12
+ *
13
+ * @see https://es.wikipedia.org/wiki/Clave_bancaria_uniforme
14
+ */
15
+ const WEIGHTS_BLOCK1 = [
16
+ 7,
17
+ 1,
18
+ 3,
19
+ 9,
20
+ 7,
21
+ 1,
22
+ 3
23
+ ];
24
+ const WEIGHTS_BLOCK2 = [
25
+ 3,
26
+ 9,
27
+ 7,
28
+ 1,
29
+ 3,
30
+ 9,
31
+ 7,
32
+ 1,
33
+ 3,
34
+ 9,
35
+ 7,
36
+ 1,
37
+ 3
38
+ ];
39
+ const compact = (value) => clean(value, " -").trim();
40
+ const calcCheck = (digits, weights) => {
41
+ let sum = 0;
42
+ for (let i = 0; i < digits.length; i++) sum += Number(digits[i]) * weights[i];
43
+ return (10 - sum % 10) % 10;
44
+ };
45
+ const validate = (value) => {
46
+ const v = compact(value);
47
+ if (v.length !== 22) return err("INVALID_LENGTH", "CBU must be 22 digits");
48
+ if (!isdigits(v)) return err("INVALID_FORMAT", "CBU must contain only digits");
49
+ if (calcCheck(v.slice(0, 7), WEIGHTS_BLOCK1) !== Number(v[7])) return err("INVALID_CHECKSUM", "CBU first check digit mismatch");
50
+ if (calcCheck(v.slice(8, 21), WEIGHTS_BLOCK2) !== Number(v[21])) return err("INVALID_CHECKSUM", "CBU second check digit mismatch");
51
+ return {
52
+ valid: true,
53
+ compact: v
54
+ };
55
+ };
56
+ const format = (value) => {
57
+ const v = compact(value);
58
+ return `${v.slice(0, 8)} ${v.slice(8)}`;
59
+ };
60
+ /** Generate a random valid CBU. */
61
+ const generate = () => {
62
+ const block1 = randomDigits(7);
63
+ const check1 = calcCheck(block1, WEIGHTS_BLOCK1);
64
+ const block2 = randomDigits(13);
65
+ const check2 = calcCheck(block2, WEIGHTS_BLOCK2);
66
+ return block1 + String(check1) + block2 + String(check2);
67
+ };
68
+ /** Argentine Uniform Bank Key. */
69
+ const cbu = {
70
+ name: "Argentine Bank Account Number",
71
+ localName: "Clave Bancaria Uniforme",
72
+ abbreviation: "CBU",
73
+ aliases: ["CBU", "Clave Bancaria Uniforme"],
74
+ candidatePattern: "\\d{22}",
75
+ country: "AR",
76
+ entityType: "any",
77
+ sourceUrl: "https://es.wikipedia.org/wiki/Clave_bancaria_uniforme",
78
+ lengths: [22],
79
+ examples: ["2850590940090418135201"],
80
+ compact,
81
+ format,
82
+ validate,
83
+ generate
84
+ };
85
+ //#endregion
86
+ export { compact, cbu as default, format, generate, validate };
87
+
88
+ //# sourceMappingURL=cbu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbu.js","names":[],"sources":["../../src/ar/cbu.ts"],"sourcesContent":["/**\n * CBU (Clave Bancaria Uniforme).\n *\n * Argentine bank account number used for electronic\n * transfers. 22 digits: 3-digit bank + 4-digit branch\n * + 1 check digit + 13-digit account + 1 check digit.\n *\n * @see https://es.wikipedia.org/wiki/Clave_bancaria_uniforme\n */\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nimport type { ValidateResult, Validator } from \"../types\";\n\nconst WEIGHTS_BLOCK1 = [7, 1, 3, 9, 7, 1, 3];\nconst WEIGHTS_BLOCK2 = [\n 3, 9, 7, 1, 3, 9, 7, 1, 3, 9, 7, 1, 3,\n];\n\nconst compact = (value: string): string =>\n clean(value, \" -\").trim();\n\nconst calcCheck = (\n digits: string,\n weights: readonly number[],\n): number => {\n let sum = 0;\n for (let i = 0; i < digits.length; i++) {\n sum += Number(digits[i]) * weights[i]!;\n }\n return (10 - (sum % 10)) % 10;\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 22) {\n return err(\"INVALID_LENGTH\", \"CBU must be 22 digits\");\n }\n\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"CBU must contain only digits\",\n );\n }\n\n // First block: digits 0-6, check digit at 7\n const check1 = calcCheck(v.slice(0, 7), WEIGHTS_BLOCK1);\n if (check1 !== Number(v[7])) {\n return err(\n \"INVALID_CHECKSUM\",\n \"CBU first check digit mismatch\",\n );\n }\n\n // Second block: digits 8-20, check digit at 21\n const check2 = calcCheck(v.slice(8, 21), WEIGHTS_BLOCK2);\n if (check2 !== Number(v[21])) {\n return err(\n \"INVALID_CHECKSUM\",\n \"CBU second check digit mismatch\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return `${v.slice(0, 8)} ${v.slice(8)}`;\n};\n\n/** Generate a random valid CBU. */\nconst generate = (): string => {\n const block1 = randomDigits(7);\n const check1 = calcCheck(block1, WEIGHTS_BLOCK1);\n const block2 = randomDigits(13);\n const check2 = calcCheck(block2, WEIGHTS_BLOCK2);\n return block1 + String(check1) + block2 + String(check2);\n};\n\n/** Argentine Uniform Bank Key. */\nconst cbu: Validator = {\n name: \"Argentine Bank Account Number\",\n localName: \"Clave Bancaria Uniforme\",\n abbreviation: \"CBU\",\n aliases: [\"CBU\", \"Clave Bancaria Uniforme\"] as const,\n candidatePattern: \"\\\\d{22}\",\n country: \"AR\",\n entityType: \"any\",\n sourceUrl:\n \"https://es.wikipedia.org/wiki/Clave_bancaria_uniforme\",\n lengths: [22] as const,\n examples: [\"2850590940090418135201\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default cbu;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;AAiBA,MAAM,iBAAiB;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAE;AAC5C,MAAM,iBAAiB;CACrB;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CACrC;AAED,MAAM,WAAW,UACf,MAAM,OAAO,KAAK,CAAC,MAAM;AAE3B,MAAM,aACJ,QACA,YACW;CACX,IAAI,MAAM;AACV,MAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,IACjC,QAAO,OAAO,OAAO,GAAG,GAAG,QAAQ;AAErC,SAAQ,KAAM,MAAM,MAAO;;AAG7B,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AAExB,KAAI,EAAE,WAAW,GACf,QAAO,IAAI,kBAAkB,wBAAwB;AAGvD,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,+BACD;AAKH,KADe,UAAU,EAAE,MAAM,GAAG,EAAE,EAAE,eAAe,KACxC,OAAO,EAAE,GAAG,CACzB,QAAO,IACL,oBACA,iCACD;AAKH,KADe,UAAU,EAAE,MAAM,GAAG,GAAG,EAAE,eAAe,KACzC,OAAO,EAAE,IAAI,CAC1B,QAAO,IACL,oBACA,kCACD;AAGH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM;AACxB,QAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE;;;AAIvC,MAAM,iBAAyB;CAC7B,MAAM,SAAS,aAAa,EAAE;CAC9B,MAAM,SAAS,UAAU,QAAQ,eAAe;CAChD,MAAM,SAAS,aAAa,GAAG;CAC/B,MAAM,SAAS,UAAU,QAAQ,eAAe;AAChD,QAAO,SAAS,OAAO,OAAO,GAAG,SAAS,OAAO,OAAO;;;AAI1D,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CAAC,OAAO,0BAA0B;CAC3C,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WACE;CACF,SAAS,CAAC,GAAG;CACb,UAAU,CAAC,yBAAyB;CACpC;CACA;CACA;CACA;CACD"}
@@ -0,0 +1,19 @@
1
+ import { ValidateResult, Validator } from "../types.js";
2
+
3
+ //#region src/ar/cuit.d.ts
4
+
5
+ declare const compact: (value: string) => string;
6
+ declare const validate: (value: string) => ValidateResult;
7
+ declare const format: (value: string) => string;
8
+ /** Generate a random valid CUIT. */
9
+ declare const generate: () => string;
10
+ /**
11
+ * Argentine CUIT (tax identification number).
12
+ *
13
+ * Examples sourced from python-stdnum test suite
14
+ * (ar.cuit module).
15
+ */
16
+ declare const cuit: Validator;
17
+ //#endregion
18
+ export { compact, cuit as default, format, generate, validate };
19
+ //# sourceMappingURL=cuit.d.ts.map
@@ -0,0 +1,123 @@
1
+ import { clean } from "../_util/clean.js";
2
+ import { randomDigits } from "../_util/generate.js";
3
+ import { err } from "../_util/result.js";
4
+ import { isdigits } from "../_util/strings.js";
5
+ //#region src/ar/cuit.ts
6
+ /**
7
+ * CUIT (Clave Única de Identificación Tributaria).
8
+ *
9
+ * Argentine tax identification number assigned by AFIP
10
+ * (Administración Federal de Ingresos Públicos). The
11
+ * number consists of 11 digits: a 2-digit type code,
12
+ * an 8-digit DNI number, and a single check digit
13
+ * computed using a weighted modulo 11 algorithm.
14
+ *
15
+ * Type codes: 20/23/24/27 = person, 30/33/34 = company,
16
+ * 50/51/55 = international.
17
+ *
18
+ * Format: XX-XXXXXXXX-X (11 digits).
19
+ *
20
+ * @see https://www.afip.gob.ar/
21
+ * @see https://en.wikipedia.org/wiki/CUIT_(Argentina)
22
+ */
23
+ const VALID_TYPES = new Set([
24
+ "20",
25
+ "23",
26
+ "24",
27
+ "27",
28
+ "30",
29
+ "33",
30
+ "34",
31
+ "50",
32
+ "51",
33
+ "55"
34
+ ]);
35
+ const WEIGHTS = [
36
+ 5,
37
+ 4,
38
+ 3,
39
+ 2,
40
+ 7,
41
+ 6,
42
+ 5,
43
+ 4,
44
+ 3,
45
+ 2
46
+ ];
47
+ const compact = (value) => clean(value, " -.").trim();
48
+ /**
49
+ * Compute the CUIT check digit using weighted sum
50
+ * mod 11. Weights: [5, 4, 3, 2, 7, 6, 5, 4, 3, 2].
51
+ *
52
+ * check = 11 - (sum % 11); if 11 -> 0, if 10 -> 9.
53
+ */
54
+ const calcCheckDigit = (body) => {
55
+ let sum = 0;
56
+ for (let i = 0; i < 10; i++) sum += Number(body[i]) * WEIGHTS[i];
57
+ const remainder = 11 - sum % 11;
58
+ if (remainder === 11) return 0;
59
+ if (remainder === 10) return 9;
60
+ return remainder;
61
+ };
62
+ const validate = (value) => {
63
+ const v = compact(value);
64
+ if (v.length !== 11) return err("INVALID_LENGTH", "CUIT must be 11 digits");
65
+ if (!isdigits(v)) return err("INVALID_FORMAT", "CUIT must contain only digits");
66
+ const typeCode = v.slice(0, 2);
67
+ if (!VALID_TYPES.has(typeCode)) return err("INVALID_COMPONENT", "CUIT has an invalid type code");
68
+ const expected = calcCheckDigit(v.slice(0, 10));
69
+ if (Number(v[10]) !== expected) return err("INVALID_CHECKSUM", "CUIT check digit does not match");
70
+ return {
71
+ valid: true,
72
+ compact: v
73
+ };
74
+ };
75
+ const format = (value) => {
76
+ const v = compact(value);
77
+ return `${v.slice(0, 2)}-${v.slice(2, 10)}-${v.slice(10)}`;
78
+ };
79
+ /** Generate a random valid CUIT. */
80
+ const generate = () => {
81
+ const types = [
82
+ "20",
83
+ "23",
84
+ "24",
85
+ "27",
86
+ "30",
87
+ "33",
88
+ "34"
89
+ ];
90
+ const body = types[Math.floor(Math.random() * types.length)] + randomDigits(8);
91
+ const check = calcCheckDigit(body);
92
+ return body + String(check);
93
+ };
94
+ /**
95
+ * Argentine CUIT (tax identification number).
96
+ *
97
+ * Examples sourced from python-stdnum test suite
98
+ * (ar.cuit module).
99
+ */
100
+ const cuit = {
101
+ name: "Argentine Tax ID",
102
+ localName: "Clave Única de Identificación Tributaria",
103
+ abbreviation: "CUIT",
104
+ aliases: [
105
+ "CUIT",
106
+ "CUIL",
107
+ "Clave Única de Identificación Tributaria"
108
+ ],
109
+ candidatePattern: "\\d{2}-?\\d{8}-?\\d",
110
+ country: "AR",
111
+ entityType: "any",
112
+ compact,
113
+ format,
114
+ validate,
115
+ sourceUrl: "https://www.afip.gob.ar/",
116
+ lengths: [11],
117
+ examples: ["20267565393", "20055361682"],
118
+ generate
119
+ };
120
+ //#endregion
121
+ export { compact, cuit as default, format, generate, validate };
122
+
123
+ //# sourceMappingURL=cuit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cuit.js","names":[],"sources":["../../src/ar/cuit.ts"],"sourcesContent":["/**\n * CUIT (Clave Única de Identificación Tributaria).\n *\n * Argentine tax identification number assigned by AFIP\n * (Administración Federal de Ingresos Públicos). The\n * number consists of 11 digits: a 2-digit type code,\n * an 8-digit DNI number, and a single check digit\n * computed using a weighted modulo 11 algorithm.\n *\n * Type codes: 20/23/24/27 = person, 30/33/34 = company,\n * 50/51/55 = international.\n *\n * Format: XX-XXXXXXXX-X (11 digits).\n *\n * @see https://www.afip.gob.ar/\n * @see https://en.wikipedia.org/wiki/CUIT_(Argentina)\n */\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nimport type { ValidateResult, Validator } from \"../types\";\n\nconst VALID_TYPES = new Set([\n \"20\",\n \"23\",\n \"24\",\n \"27\",\n \"30\",\n \"33\",\n \"34\",\n \"50\",\n \"51\",\n \"55\",\n]);\n\nconst WEIGHTS = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];\n\nconst compact = (value: string): string =>\n clean(value, \" -.\").trim();\n\n/**\n * Compute the CUIT check digit using weighted sum\n * mod 11. Weights: [5, 4, 3, 2, 7, 6, 5, 4, 3, 2].\n *\n * check = 11 - (sum % 11); if 11 -> 0, if 10 -> 9.\n */\nconst calcCheckDigit = (body: string): number => {\n let sum = 0;\n for (let i = 0; i < 10; i++) {\n sum += Number(body[i]) * WEIGHTS[i]!;\n }\n const remainder = 11 - (sum % 11);\n if (remainder === 11) return 0;\n if (remainder === 10) return 9;\n return remainder;\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 11) {\n return err(\"INVALID_LENGTH\", \"CUIT must be 11 digits\");\n }\n\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"CUIT must contain only digits\",\n );\n }\n\n const typeCode = v.slice(0, 2);\n if (!VALID_TYPES.has(typeCode)) {\n return err(\n \"INVALID_COMPONENT\",\n \"CUIT has an invalid type code\",\n );\n }\n\n const expected = calcCheckDigit(v.slice(0, 10));\n if (Number(v[10]) !== expected) {\n return err(\n \"INVALID_CHECKSUM\",\n \"CUIT check digit does not match\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return `${v.slice(0, 2)}-${v.slice(2, 10)}-${v.slice(10)}`;\n};\n\n/** Generate a random valid CUIT. */\nconst generate = (): string => {\n const types = [\"20\", \"23\", \"24\", \"27\", \"30\", \"33\", \"34\"];\n const type =\n types[Math.floor(Math.random() * types.length)]!;\n const body = type + randomDigits(8);\n const check = calcCheckDigit(body);\n return body + String(check);\n};\n\n/**\n * Argentine CUIT (tax identification number).\n *\n * Examples sourced from python-stdnum test suite\n * (ar.cuit module).\n */\nconst cuit: Validator = {\n name: \"Argentine Tax ID\",\n localName: \"Clave Única de Identificación Tributaria\",\n abbreviation: \"CUIT\",\n aliases: [\n \"CUIT\",\n \"CUIL\",\n \"Clave Única de Identificación Tributaria\",\n ] as const,\n candidatePattern: \"\\\\d{2}-?\\\\d{8}-?\\\\d\",\n country: \"AR\",\n entityType: \"any\",\n compact,\n format,\n validate,\n sourceUrl: \"https://www.afip.gob.ar/\",\n lengths: [11] as const,\n examples: [\"20267565393\", \"20055361682\"] as const,\n generate,\n};\n\nexport default cuit;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,cAAc,IAAI,IAAI;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAM,UAAU;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAE;AAE9C,MAAM,WAAW,UACf,MAAM,OAAO,MAAM,CAAC,MAAM;;;;;;;AAQ5B,MAAM,kBAAkB,SAAyB;CAC/C,IAAI,MAAM;AACV,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IACtB,QAAO,OAAO,KAAK,GAAG,GAAG,QAAQ;CAEnC,MAAM,YAAY,KAAM,MAAM;AAC9B,KAAI,cAAc,GAAI,QAAO;AAC7B,KAAI,cAAc,GAAI,QAAO;AAC7B,QAAO;;AAGT,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AAExB,KAAI,EAAE,WAAW,GACf,QAAO,IAAI,kBAAkB,yBAAyB;AAGxD,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,gCACD;CAGH,MAAM,WAAW,EAAE,MAAM,GAAG,EAAE;AAC9B,KAAI,CAAC,YAAY,IAAI,SAAS,CAC5B,QAAO,IACL,qBACA,gCACD;CAGH,MAAM,WAAW,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC;AAC/C,KAAI,OAAO,EAAE,IAAI,KAAK,SACpB,QAAO,IACL,oBACA,kCACD;AAGH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM;AACxB,QAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG;;;AAI1D,MAAM,iBAAyB;CAC7B,MAAM,QAAQ;EAAC;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;EAAK;CAGxD,MAAM,OADJ,MAAM,KAAK,MAAM,KAAK,QAAQ,GAAG,MAAM,OAAO,IAC5B,aAAa,EAAE;CACnC,MAAM,QAAQ,eAAe,KAAK;AAClC,QAAO,OAAO,OAAO,MAAM;;;;;;;;AAS7B,MAAM,OAAkB;CACtB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EACP;EACA;EACA;EACD;CACD,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ;CACA;CACA;CACA,WAAW;CACX,SAAS,CAAC,GAAG;CACb,UAAU,CAAC,eAAe,cAAc;CACxC;CACD"}
@@ -0,0 +1,13 @@
1
+ import { ValidateResult, Validator } from "../types.js";
2
+
3
+ //#region src/ar/dni.d.ts
4
+ /** Generate a random valid Argentine DNI. */
5
+ declare const generate: () => string;
6
+ declare const compact: (value: string) => string;
7
+ declare const validate: (value: string) => ValidateResult;
8
+ declare const format: (value: string) => string;
9
+ /** Argentine National Identity Document. */
10
+ declare const dni: Validator;
11
+ //#endregion
12
+ export { compact, dni as default, format, generate, validate };
13
+ //# sourceMappingURL=dni.d.ts.map
package/dist/ar/dni.js ADDED
@@ -0,0 +1,57 @@
1
+ import { clean } from "../_util/clean.js";
2
+ import { randomDigits } from "../_util/generate.js";
3
+ import { err } from "../_util/result.js";
4
+ import { isdigits } from "../_util/strings.js";
5
+ //#region src/ar/dni.ts
6
+ /**
7
+ * DNI (Documento Nacional de Identidad).
8
+ *
9
+ * Argentine national identity card number. The DNI is
10
+ * a 7 or 8-digit number assigned to all Argentine
11
+ * citizens and permanent residents. No check digit.
12
+ *
13
+ * @see https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)
14
+ */
15
+ /** Generate a random valid Argentine DNI. */
16
+ const generate = () => randomDigits(8);
17
+ const compact = (value) => clean(value, " -.").trim();
18
+ const validate = (value) => {
19
+ const v = compact(value);
20
+ if (v.length < 7 || v.length > 8) return err("INVALID_LENGTH", "DNI must be 7 or 8 digits");
21
+ if (!isdigits(v)) return err("INVALID_FORMAT", "DNI must contain only digits");
22
+ return {
23
+ valid: true,
24
+ compact: v
25
+ };
26
+ };
27
+ const format = (value) => {
28
+ const v = compact(value);
29
+ if (v.length === 8) return `${v.slice(0, 2)}.${v.slice(2, 5)}.${v.slice(5)}`;
30
+ if (v.length === 7) return `${v.slice(0, 1)}.${v.slice(1, 4)}.${v.slice(4)}`;
31
+ return v;
32
+ };
33
+ /** Argentine National Identity Document. */
34
+ const dni = {
35
+ name: "Argentine Identity Card",
36
+ localName: "Documento Nacional de Identidad",
37
+ abbreviation: "DNI",
38
+ aliases: [
39
+ "DNI",
40
+ "Documento Nacional de Identidad",
41
+ "Documento de Identidad"
42
+ ],
43
+ candidatePattern: "\\d{1,2}\\.?\\d{3}\\.?\\d{3}",
44
+ country: "AR",
45
+ entityType: "person",
46
+ sourceUrl: "https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)",
47
+ lengths: [7, 8],
48
+ examples: ["20123456", "12345678"],
49
+ compact,
50
+ format,
51
+ validate,
52
+ generate
53
+ };
54
+ //#endregion
55
+ export { compact, dni as default, format, generate, validate };
56
+
57
+ //# sourceMappingURL=dni.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dni.js","names":[],"sources":["../../src/ar/dni.ts"],"sourcesContent":["/** Generate a random valid Argentine DNI. */\nconst generate = (): string => randomDigits(8);\n\n/**\n * DNI (Documento Nacional de Identidad).\n *\n * Argentine national identity card number. The DNI is\n * a 7 or 8-digit number assigned to all Argentine\n * citizens and permanent residents. No check digit.\n *\n * @see https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)\n */\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nimport type { ValidateResult, Validator } from \"../types\";\n\nconst compact = (value: string): string =>\n clean(value, \" -.\").trim();\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length < 7 || v.length > 8) {\n return err(\n \"INVALID_LENGTH\",\n \"DNI must be 7 or 8 digits\",\n );\n }\n\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"DNI must contain only digits\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n if (v.length === 8) {\n return `${v.slice(0, 2)}.${v.slice(2, 5)}.${v.slice(5)}`;\n }\n if (v.length === 7) {\n return `${v.slice(0, 1)}.${v.slice(1, 4)}.${v.slice(4)}`;\n }\n return v;\n};\n\n/** Argentine National Identity Document. */\nconst dni: Validator = {\n name: \"Argentine Identity Card\",\n localName: \"Documento Nacional de Identidad\",\n abbreviation: \"DNI\",\n aliases: [\n \"DNI\",\n \"Documento Nacional de Identidad\",\n \"Documento de Identidad\",\n ] as const,\n candidatePattern: \"\\\\d{1,2}\\\\.?\\\\d{3}\\\\.?\\\\d{3}\",\n country: \"AR\",\n entityType: \"person\",\n sourceUrl:\n \"https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)\",\n lengths: [7, 8] as const,\n examples: [\"20123456\", \"12345678\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default dni;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;AACA,MAAM,iBAAyB,aAAa,EAAE;AAmB9C,MAAM,WAAW,UACf,MAAM,OAAO,MAAM,CAAC,MAAM;AAE5B,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AAExB,KAAI,EAAE,SAAS,KAAK,EAAE,SAAS,EAC7B,QAAO,IACL,kBACA,4BACD;AAGH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,+BACD;AAGH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,EACf,QAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE;AAExD,KAAI,EAAE,WAAW,EACf,QAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE;AAExD,QAAO;;;AAIT,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EACP;EACA;EACA;EACD;CACD,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WACE;CACF,SAAS,CAAC,GAAG,EAAE;CACf,UAAU,CAAC,YAAY,WAAW;CAClC;CACA;CACA;CACA;CACD"}
@@ -0,0 +1,10 @@
1
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
+ import cbu from "./cbu.js";
3
+ import cuit from "./cuit.js";
4
+ import dni from "./dni.js";
5
+
6
+ //#region src/ar/mod.d.ts
7
+
8
+ //#endregion
9
+ export { cbu, cuit, dni, mod_d_exports };
10
+ //# sourceMappingURL=mod.d.ts.map
package/dist/ar/mod.js ADDED
@@ -0,0 +1,14 @@
1
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
+ import cbu from "./cbu.js";
3
+ import cuit from "./cuit.js";
4
+ import dni from "./dni.js";
5
+ //#region src/ar/mod.ts
6
+ var ar_exports = /* @__PURE__ */ __exportAll({
7
+ cbu: () => cbu,
8
+ cuit: () => cuit,
9
+ dni: () => dni
10
+ });
11
+ //#endregion
12
+ export { ar_exports, cbu, cuit, dni };
13
+
14
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","names":[],"sources":["../../src/ar/mod.ts"],"sourcesContent":["export { default as cbu } from \"./cbu\";\nexport { default as cuit } from \"./cuit\";\nexport { default as dni } from \"./dni\";\n"],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { ValidateResult, Validator } from "../types.js";
2
+
3
+ //#region src/at/businessid.d.ts
4
+ /** Generate a random valid Austrian Firmenbuchnummer. */
5
+ declare const generate: () => string;
6
+ declare const compact: (value: string) => string;
7
+ declare const validate: (value: string) => ValidateResult;
8
+ declare const format: (value: string) => string;
9
+ /** Austrian Company Register Number. */
10
+ declare const businessid: Validator;
11
+ //#endregion
12
+ export { compact, businessid as default, format, generate, validate };
13
+ //# sourceMappingURL=businessid.d.ts.map
@@ -0,0 +1,56 @@
1
+ import { clean } from "../_util/clean.js";
2
+ import { randomDigits, randomInt } from "../_util/generate.js";
3
+ import { err } from "../_util/result.js";
4
+ //#region src/at/businessid.ts
5
+ /**
6
+ * Firmenbuchnummer (Austrian company register number).
7
+ *
8
+ * Digits followed by a single trailing letter.
9
+ * Optional "FN" prefix. No checksum.
10
+ *
11
+ * @see https://www.justiz.gv.at/
12
+ */
13
+ /** Generate a random valid Austrian Firmenbuchnummer. */
14
+ const generate = () => {
15
+ return `${randomDigits(randomInt(5, 6))}${String.fromCodePoint(97 + randomInt(0, 25))}`;
16
+ };
17
+ const FN_RE = /^\d+[a-z]$/i;
18
+ const compact = (value) => {
19
+ let v = clean(value, " -/.");
20
+ if (v.slice(0, 2).toUpperCase() === "FN") v = v.slice(2);
21
+ return v.toLowerCase();
22
+ };
23
+ const validate = (value) => {
24
+ const v = compact(value);
25
+ if (v.length < 2) return err("INVALID_LENGTH", "Austrian Firmenbuchnummer is too short");
26
+ if (!FN_RE.test(v)) return err("INVALID_FORMAT", "Austrian Firmenbuchnummer must be digits followed by a letter");
27
+ return {
28
+ valid: true,
29
+ compact: v
30
+ };
31
+ };
32
+ const format = (value) => `FN ${compact(value)}`;
33
+ /** Austrian Company Register Number. */
34
+ const businessid = {
35
+ name: "Austrian Company Register Number",
36
+ localName: "Firmenbuchnummer",
37
+ abbreviation: "FN",
38
+ aliases: [
39
+ "Firmenbuchnummer",
40
+ "FN",
41
+ "FBN"
42
+ ],
43
+ candidatePattern: "FN\\s?\\d{5,6}[a-z]?",
44
+ country: "AT",
45
+ entityType: "company",
46
+ sourceUrl: "https://www.justiz.gv.at/",
47
+ examples: ["122119m"],
48
+ compact,
49
+ format,
50
+ validate,
51
+ generate
52
+ };
53
+ //#endregion
54
+ export { compact, businessid as default, format, generate, validate };
55
+
56
+ //# sourceMappingURL=businessid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"businessid.js","names":[],"sources":["../../src/at/businessid.ts"],"sourcesContent":["/** Generate a random valid Austrian Firmenbuchnummer. */\nconst generate = (): string => {\n const digits = randomDigits(randomInt(5, 6));\n const letter = String.fromCodePoint(\n 97 + randomInt(0, 25),\n ); // a-z (compact lowercases)\n return `${digits}${letter}`;\n};\n\n/**\n * Firmenbuchnummer (Austrian company register number).\n *\n * Digits followed by a single trailing letter.\n * Optional \"FN\" prefix. No checksum.\n *\n * @see https://www.justiz.gv.at/\n */\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits, randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\n\nimport type { ValidateResult, Validator } from \"../types\";\n\nconst FN_RE = /^\\d+[a-z]$/i;\n\nconst compact = (value: string): string => {\n let v = clean(value, \" -/.\");\n if (v.slice(0, 2).toUpperCase() === \"FN\") {\n v = v.slice(2);\n }\n return v.toLowerCase();\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length < 2) {\n return err(\n \"INVALID_LENGTH\",\n \"Austrian Firmenbuchnummer is too short\",\n );\n }\n if (!FN_RE.test(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Austrian Firmenbuchnummer must be digits\" +\n \" followed by a letter\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string =>\n `FN ${compact(value)}`;\n\n/** Austrian Company Register Number. */\nconst businessid: Validator = {\n name: \"Austrian Company Register Number\",\n localName: \"Firmenbuchnummer\",\n abbreviation: \"FN\",\n aliases: [\"Firmenbuchnummer\", \"FN\", \"FBN\"] as const,\n candidatePattern: \"FN\\\\s?\\\\d{5,6}[a-z]?\",\n country: \"AT\",\n entityType: \"company\",\n sourceUrl: \"https://www.justiz.gv.at/\",\n examples: [\"122119m\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default businessid;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;AACA,MAAM,iBAAyB;AAK7B,QAAO,GAJQ,aAAa,UAAU,GAAG,EAAE,CAAC,GAC7B,OAAO,cACpB,KAAK,UAAU,GAAG,GAAG,CACtB;;AAmBH,MAAM,QAAQ;AAEd,MAAM,WAAW,UAA0B;CACzC,IAAI,IAAI,MAAM,OAAO,OAAO;AAC5B,KAAI,EAAE,MAAM,GAAG,EAAE,CAAC,aAAa,KAAK,KAClC,KAAI,EAAE,MAAM,EAAE;AAEhB,QAAO,EAAE,aAAa;;AAGxB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,SAAS,EACb,QAAO,IACL,kBACA,yCACD;AAEH,KAAI,CAAC,MAAM,KAAK,EAAE,CAChB,QAAO,IACL,kBACA,gEAED;AAEH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UACd,MAAM,QAAQ,MAAM;;AAGtB,MAAM,aAAwB;CAC5B,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EAAC;EAAoB;EAAM;EAAM;CAC1C,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,UAAU;CACrB;CACA;CACA;CACA;CACD"}
@@ -0,0 +1,11 @@
1
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
+ import businessid from "./businessid.js";
3
+ import tin from "./tin.js";
4
+ import uid from "./uid.js";
5
+ import vnr from "./vnr.js";
6
+
7
+ //#region src/at/mod.d.ts
8
+
9
+ //#endregion
10
+ export { businessid, mod_d_exports, tin, uid, vnr };
11
+ //# sourceMappingURL=mod.d.ts.map
package/dist/at/mod.js ADDED
@@ -0,0 +1,16 @@
1
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
+ import businessid from "./businessid.js";
3
+ import tin from "./tin.js";
4
+ import uid from "./uid.js";
5
+ import vnr from "./vnr.js";
6
+ //#region src/at/mod.ts
7
+ var at_exports = /* @__PURE__ */ __exportAll({
8
+ businessid: () => businessid,
9
+ tin: () => tin,
10
+ uid: () => uid,
11
+ vnr: () => vnr
12
+ });
13
+ //#endregion
14
+ export { at_exports, businessid, tin, uid, vnr };
15
+
16
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","names":[],"sources":["../../src/at/mod.ts"],"sourcesContent":["export { default as businessid } from \"./businessid\";\nexport { default as tin } from \"./tin\";\nexport { default as uid } from \"./uid\";\nexport { default as vnr } from \"./vnr\";\n"],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { ValidateResult, Validator } from "../types.js";
2
+
3
+ //#region src/at/tin.d.ts
4
+
5
+ declare const compact: (value: string) => string;
6
+ declare const validate: (value: string) => ValidateResult;
7
+ declare const format: (value: string) => string;
8
+ /** Generate a random valid Austrian TIN. */
9
+ declare const generate: () => string;
10
+ /** Austrian Tax Identification Number. */
11
+ declare const tin: Validator;
12
+ //#endregion
13
+ export { compact, tin as default, format, generate, validate };
14
+ //# sourceMappingURL=tin.d.ts.map
package/dist/at/tin.js ADDED
@@ -0,0 +1,70 @@
1
+ import { clean } from "../_util/clean.js";
2
+ import { randomDigits } from "../_util/generate.js";
3
+ import { err } from "../_util/result.js";
4
+ import { isdigits } from "../_util/strings.js";
5
+ //#region src/at/tin.ts
6
+ /**
7
+ * TIN (Abgabenkontonummer).
8
+ *
9
+ * Austrian tax identification number. 9 digits:
10
+ * 2-digit tax office code (Finanzamtsnummer) +
11
+ * 6-digit subject number + 1 check digit.
12
+ * Uses a variant of the Luhn algorithm.
13
+ *
14
+ * @see https://de.wikipedia.org/wiki/Abgabenkontonummer
15
+ * @see https://service.bmf.gv.at/Service/Anwend/Behoerden/show_mast.asp
16
+ */
17
+ /** Luhn-variant doubling table: position-dependent. */
18
+ const DOUBLE = "0246813579";
19
+ const compact = (value) => clean(value, " -./,");
20
+ const calcCheckDigit = (number) => {
21
+ let sum = 0;
22
+ for (let i = 0; i < 8; i++) {
23
+ const d = Number(number[i]);
24
+ sum += i % 2 === 0 ? d : Number(DOUBLE[d]);
25
+ }
26
+ return String((10 - sum % 10) % 10);
27
+ };
28
+ const validate = (value) => {
29
+ const v = compact(value);
30
+ if (v.length !== 9) return err("INVALID_LENGTH", "Austrian TIN must be exactly 9 digits");
31
+ if (!isdigits(v)) return err("INVALID_FORMAT", "Austrian TIN must contain only digits");
32
+ if (calcCheckDigit(v) !== v[8]) return err("INVALID_CHECKSUM", "Austrian TIN check digit mismatch");
33
+ return {
34
+ valid: true,
35
+ compact: v
36
+ };
37
+ };
38
+ const format = (value) => {
39
+ const v = compact(value);
40
+ return `${v.slice(0, 2)}-${v.slice(2, 8)}/${v.slice(8)}`;
41
+ };
42
+ /** Generate a random valid Austrian TIN. */
43
+ const generate = () => {
44
+ const payload = randomDigits(8);
45
+ return payload + calcCheckDigit(payload);
46
+ };
47
+ /** Austrian Tax Identification Number. */
48
+ const tin = {
49
+ name: "Austrian Tax Identification Number",
50
+ localName: "Abgabenkontonummer",
51
+ abbreviation: "TIN",
52
+ aliases: [
53
+ "Steuernummer",
54
+ "St.Nr.",
55
+ "TIN"
56
+ ],
57
+ candidatePattern: "\\d{2}-?\\d{3}/\\d{4}",
58
+ country: "AT",
59
+ entityType: "any",
60
+ sourceUrl: "https://de.wikipedia.org/wiki/Abgabenkontonummer",
61
+ examples: ["591199013"],
62
+ compact,
63
+ format,
64
+ validate,
65
+ generate
66
+ };
67
+ //#endregion
68
+ export { compact, tin as default, format, generate, validate };
69
+
70
+ //# sourceMappingURL=tin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tin.js","names":[],"sources":["../../src/at/tin.ts"],"sourcesContent":["/**\n * TIN (Abgabenkontonummer).\n *\n * Austrian tax identification number. 9 digits:\n * 2-digit tax office code (Finanzamtsnummer) +\n * 6-digit subject number + 1 check digit.\n * Uses a variant of the Luhn algorithm.\n *\n * @see https://de.wikipedia.org/wiki/Abgabenkontonummer\n * @see https://service.bmf.gv.at/Service/Anwend/Behoerden/show_mast.asp\n */\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nimport type { ValidateResult, Validator } from \"../types\";\n\n/** Luhn-variant doubling table: position-dependent. */\nconst DOUBLE = \"0246813579\";\n\nconst compact = (value: string): string =>\n clean(value, \" -./,\");\n\nconst calcCheckDigit = (number: string): string => {\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n const d = Number(number[i]);\n // Even positions (0-indexed) add digit as-is;\n // odd positions use the doubling table\n sum += i % 2 === 0 ? d : Number(DOUBLE[d]);\n }\n return String((10 - (sum % 10)) % 10);\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 9) {\n return err(\n \"INVALID_LENGTH\",\n \"Austrian TIN must be exactly 9 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Austrian TIN must contain only digits\",\n );\n }\n if (calcCheckDigit(v) !== v[8]) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Austrian TIN check digit mismatch\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return `${v.slice(0, 2)}-${v.slice(2, 8)}/${v.slice(8)}`;\n};\n\n/** Generate a random valid Austrian TIN. */\nconst generate = (): string => {\n const payload = randomDigits(8);\n return payload + calcCheckDigit(payload);\n};\n\n/** Austrian Tax Identification Number. */\nconst tin: Validator = {\n name: \"Austrian Tax Identification Number\",\n localName: \"Abgabenkontonummer\",\n abbreviation: \"TIN\",\n aliases: [\"Steuernummer\", \"St.Nr.\", \"TIN\"] as const,\n candidatePattern: \"\\\\d{2}-?\\\\d{3}/\\\\d{4}\",\n country: \"AT\",\n entityType: \"any\",\n sourceUrl:\n \"https://de.wikipedia.org/wiki/Abgabenkontonummer\",\n examples: [\"591199013\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default tin;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,MAAM,SAAS;AAEf,MAAM,WAAW,UACf,MAAM,OAAO,QAAQ;AAEvB,MAAM,kBAAkB,WAA2B;CACjD,IAAI,MAAM;AACV,MAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK;EAC1B,MAAM,IAAI,OAAO,OAAO,GAAG;AAG3B,SAAO,IAAI,MAAM,IAAI,IAAI,OAAO,OAAO,GAAG;;AAE5C,QAAO,QAAQ,KAAM,MAAM,MAAO,GAAG;;AAGvC,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,EACf,QAAO,IACL,kBACA,wCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,wCACD;AAEH,KAAI,eAAe,EAAE,KAAK,EAAE,GAC1B,QAAO,IACL,oBACA,oCACD;AAEH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM;AACxB,QAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE;;;AAIxD,MAAM,iBAAyB;CAC7B,MAAM,UAAU,aAAa,EAAE;AAC/B,QAAO,UAAU,eAAe,QAAQ;;;AAI1C,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EAAC;EAAgB;EAAU;EAAM;CAC1C,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WACE;CACF,UAAU,CAAC,YAAY;CACvB;CACA;CACA;CACA;CACD"}
@@ -0,0 +1,14 @@
1
+ import { ValidateResult, Validator } from "../types.js";
2
+
3
+ //#region src/at/uid.d.ts
4
+
5
+ declare const compact: (value: string) => string;
6
+ declare const validate: (value: string) => ValidateResult;
7
+ declare const format: (value: string) => string;
8
+ /** Generate a random valid Austrian UID. */
9
+ declare const generate: () => string;
10
+ /** Austrian VAT Identification Number. */
11
+ declare const uid: Validator;
12
+ //#endregion
13
+ export { compact, uid as default, format, generate, validate };
14
+ //# sourceMappingURL=uid.d.ts.map
package/dist/at/uid.js ADDED
@@ -0,0 +1,64 @@
1
+ import { clean } from "../_util/clean.js";
2
+ import { randomDigits } from "../_util/generate.js";
3
+ import { err } from "../_util/result.js";
4
+ import { luhnChecksum } from "../_checksums/luhn.js";
5
+ import { isdigits } from "../_util/strings.js";
6
+ //#region src/at/uid.ts
7
+ /**
8
+ * UID (Umsatzsteuer-Identifikationsnummer).
9
+ *
10
+ * Austrian VAT identification number. Format:
11
+ * "U" + 7 digits + 1 check digit. Uses a
12
+ * modified Luhn algorithm.
13
+ *
14
+ * @see https://www.bmf.gv.at/
15
+ */
16
+ const compact = (value) => {
17
+ let v = clean(value, " -/");
18
+ if (v.startsWith("AT") || v.startsWith("at")) v = v.slice(2);
19
+ return v.toUpperCase();
20
+ };
21
+ const validate = (value) => {
22
+ const v = compact(value);
23
+ if (v.length !== 9) return err("INVALID_LENGTH", "Austrian UID must be U + 8 digits");
24
+ if (v[0] !== "U") return err("INVALID_COMPONENT", "Austrian UID must start with U");
25
+ const digits = v.slice(1);
26
+ if (!isdigits(digits)) return err("INVALID_FORMAT", "Austrian UID must be U + 8 digits");
27
+ const check = ((6 - luhnChecksum(digits.slice(0, 7))) % 10 + 10) % 10;
28
+ if (check < 0 || check !== Number(digits[7])) return err("INVALID_CHECKSUM", "Austrian UID check digit mismatch");
29
+ return {
30
+ valid: true,
31
+ compact: v
32
+ };
33
+ };
34
+ const format = (value) => `AT${compact(value)}`;
35
+ /** Generate a random valid Austrian UID. */
36
+ const generate = () => {
37
+ const payload = randomDigits(7);
38
+ const check = ((6 - luhnChecksum(payload)) % 10 + 10) % 10;
39
+ return "U" + payload + String(check);
40
+ };
41
+ /** Austrian VAT Identification Number. */
42
+ const uid = {
43
+ name: "Austrian VAT Number",
44
+ localName: "Umsatzsteuer-Identifikationsnummer",
45
+ abbreviation: "UID",
46
+ aliases: [
47
+ "UID",
48
+ "Umsatzsteuer-Identifikationsnummer",
49
+ "ATU"
50
+ ],
51
+ candidatePattern: "ATU\\d{8}",
52
+ country: "AT",
53
+ entityType: "company",
54
+ sourceUrl: "https://www.bmf.gv.at/",
55
+ examples: ["U13585627"],
56
+ compact,
57
+ format,
58
+ validate,
59
+ generate
60
+ };
61
+ //#endregion
62
+ export { compact, uid as default, format, generate, validate };
63
+
64
+ //# sourceMappingURL=uid.js.map