@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.
- package/LICENSE +25 -0
- package/README.md +323 -0
- package/dist/_checksums/luhn.d.ts +12 -0
- package/dist/_checksums/luhn.js +26 -0
- package/dist/_checksums/luhn.js.map +1 -0
- package/dist/_checksums/mod1110.d.ts +12 -0
- package/dist/_checksums/mod1110.js +25 -0
- package/dist/_checksums/mod1110.js.map +1 -0
- package/dist/_checksums/mod112.d.ts +24 -0
- package/dist/_checksums/mod112.js +53 -0
- package/dist/_checksums/mod112.js.map +1 -0
- package/dist/_checksums/mod97.d.ts +23 -0
- package/dist/_checksums/mod97.js +28 -0
- package/dist/_checksums/mod97.js.map +1 -0
- package/dist/_checksums/verhoeff.d.ts +22 -0
- package/dist/_checksums/verhoeff.js +271 -0
- package/dist/_checksums/verhoeff.js.map +1 -0
- package/dist/_checksums/weighted-sum.d.ts +13 -0
- package/dist/_checksums/weighted-sum.js +22 -0
- package/dist/_checksums/weighted-sum.js.map +1 -0
- package/dist/_util/arabic.d.ts +19 -0
- package/dist/_util/arabic.js +41 -0
- package/dist/_util/arabic.js.map +1 -0
- package/dist/_util/clean.d.ts +13 -0
- package/dist/_util/clean.js +71 -0
- package/dist/_util/clean.js.map +1 -0
- package/dist/_util/date.d.ts +12 -0
- package/dist/_util/date.js +19 -0
- package/dist/_util/date.js.map +1 -0
- package/dist/_util/generate.d.ts +16 -0
- package/dist/_util/generate.js +21 -0
- package/dist/_util/generate.js.map +1 -0
- package/dist/_util/result.d.ts +8 -0
- package/dist/_util/result.js +13 -0
- package/dist/_util/result.js.map +1 -0
- package/dist/_util/strings.d.ts +21 -0
- package/dist/_util/strings.js +28 -0
- package/dist/_util/strings.js.map +1 -0
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/ad/mod.d.ts +8 -0
- package/dist/ad/mod.js +8 -0
- package/dist/ad/mod.js.map +1 -0
- package/dist/ad/nrt.d.ts +13 -0
- package/dist/ad/nrt.js +69 -0
- package/dist/ad/nrt.js.map +1 -0
- package/dist/ae/eid.d.ts +17 -0
- package/dist/ae/eid.js +79 -0
- package/dist/ae/eid.js.map +1 -0
- package/dist/ae/mod.d.ts +8 -0
- package/dist/ae/mod.js +8 -0
- package/dist/ae/mod.js.map +1 -0
- package/dist/ai/mod.d.ts +8 -0
- package/dist/ai/mod.js +8 -0
- package/dist/ai/mod.js.map +1 -0
- package/dist/ai/tin.d.ts +19 -0
- package/dist/ai/tin.js +72 -0
- package/dist/ai/tin.js.map +1 -0
- package/dist/al/mod.d.ts +8 -0
- package/dist/al/mod.js +8 -0
- package/dist/al/mod.js.map +1 -0
- package/dist/al/nipt.d.ts +13 -0
- package/dist/al/nipt.js +56 -0
- package/dist/al/nipt.js.map +1 -0
- package/dist/am/mod.d.ts +8 -0
- package/dist/am/mod.js +8 -0
- package/dist/am/mod.js.map +1 -0
- package/dist/am/tin.d.ts +13 -0
- package/dist/am/tin.js +53 -0
- package/dist/am/tin.js.map +1 -0
- package/dist/ar/cbu.d.ts +14 -0
- package/dist/ar/cbu.js +88 -0
- package/dist/ar/cbu.js.map +1 -0
- package/dist/ar/cuit.d.ts +19 -0
- package/dist/ar/cuit.js +123 -0
- package/dist/ar/cuit.js.map +1 -0
- package/dist/ar/dni.d.ts +13 -0
- package/dist/ar/dni.js +57 -0
- package/dist/ar/dni.js.map +1 -0
- package/dist/ar/mod.d.ts +10 -0
- package/dist/ar/mod.js +14 -0
- package/dist/ar/mod.js.map +1 -0
- package/dist/at/businessid.d.ts +13 -0
- package/dist/at/businessid.js +56 -0
- package/dist/at/businessid.js.map +1 -0
- package/dist/at/mod.d.ts +11 -0
- package/dist/at/mod.js +16 -0
- package/dist/at/mod.js.map +1 -0
- package/dist/at/tin.d.ts +14 -0
- package/dist/at/tin.js +70 -0
- package/dist/at/tin.js.map +1 -0
- package/dist/at/uid.d.ts +14 -0
- package/dist/at/uid.js +64 -0
- package/dist/at/uid.js.map +1 -0
- package/dist/at/vnr.d.ts +12 -0
- package/dist/at/vnr.js +79 -0
- package/dist/at/vnr.js.map +1 -0
- package/dist/au/abn.d.ts +14 -0
- package/dist/au/abn.js +77 -0
- package/dist/au/abn.js.map +1 -0
- package/dist/au/acn.d.ts +14 -0
- package/dist/au/acn.js +70 -0
- package/dist/au/acn.js.map +1 -0
- package/dist/au/mod.d.ts +10 -0
- package/dist/au/mod.js +14 -0
- package/dist/au/mod.js.map +1 -0
- package/dist/au/tfn.d.ts +14 -0
- package/dist/au/tfn.js +71 -0
- package/dist/au/tfn.js.map +1 -0
- package/dist/az/mod.d.ts +8 -0
- package/dist/az/mod.js +8 -0
- package/dist/az/mod.js.map +1 -0
- package/dist/az/voen.d.ts +21 -0
- package/dist/az/voen.js +100 -0
- package/dist/az/voen.js.map +1 -0
- package/dist/ba/jmbg.d.ts +15 -0
- package/dist/ba/jmbg.js +97 -0
- package/dist/ba/jmbg.js.map +1 -0
- package/dist/ba/mod.d.ts +8 -0
- package/dist/ba/mod.js +8 -0
- package/dist/ba/mod.js.map +1 -0
- package/dist/bd/mod.d.ts +8 -0
- package/dist/bd/mod.js +8 -0
- package/dist/bd/mod.js.map +1 -0
- package/dist/bd/nid.d.ts +13 -0
- package/dist/bd/nid.js +116 -0
- package/dist/bd/nid.js.map +1 -0
- package/dist/be/bis.d.ts +14 -0
- package/dist/be/bis.js +65 -0
- package/dist/be/bis.js.map +1 -0
- package/dist/be/mod.d.ts +10 -0
- package/dist/be/mod.js +14 -0
- package/dist/be/mod.js.map +1 -0
- package/dist/be/nn.d.ts +21 -0
- package/dist/be/nn.js +84 -0
- package/dist/be/nn.js.map +1 -0
- package/dist/be/vat.d.ts +14 -0
- package/dist/be/vat.js +70 -0
- package/dist/be/vat.js.map +1 -0
- package/dist/bg/egn.d.ts +19 -0
- package/dist/bg/egn.js +122 -0
- package/dist/bg/egn.js.map +1 -0
- package/dist/bg/mod.d.ts +10 -0
- package/dist/bg/mod.js +14 -0
- package/dist/bg/mod.js.map +1 -0
- package/dist/bg/pnf.d.ts +14 -0
- package/dist/bg/pnf.js +70 -0
- package/dist/bg/pnf.js.map +1 -0
- package/dist/bg/vat.d.ts +14 -0
- package/dist/bg/vat.js +153 -0
- package/dist/bg/vat.js.map +1 -0
- package/dist/bh/cpr.d.ts +12 -0
- package/dist/bh/cpr.js +58 -0
- package/dist/bh/cpr.js.map +1 -0
- package/dist/bh/mod.d.ts +8 -0
- package/dist/bh/mod.js +8 -0
- package/dist/bh/mod.js.map +1 -0
- package/dist/bic.d.ts +13 -0
- package/dist/bic.js +72 -0
- package/dist/bic.js.map +1 -0
- package/dist/br/cnpj.d.ts +21 -0
- package/dist/br/cnpj.js +132 -0
- package/dist/br/cnpj.js.map +1 -0
- package/dist/br/cpf.d.ts +14 -0
- package/dist/br/cpf.js +83 -0
- package/dist/br/cpf.js.map +1 -0
- package/dist/br/mod.d.ts +9 -0
- package/dist/br/mod.js +12 -0
- package/dist/br/mod.js.map +1 -0
- package/dist/by/mod.d.ts +8 -0
- package/dist/by/mod.js +8 -0
- package/dist/by/mod.js.map +1 -0
- package/dist/by/unp.d.ts +14 -0
- package/dist/by/unp.js +114 -0
- package/dist/by/unp.js.map +1 -0
- package/dist/bz/mod.d.ts +8 -0
- package/dist/bz/mod.js +8 -0
- package/dist/bz/mod.js.map +1 -0
- package/dist/bz/tin.d.ts +16 -0
- package/dist/bz/tin.js +85 -0
- package/dist/bz/tin.js.map +1 -0
- package/dist/ca/bn.d.ts +14 -0
- package/dist/ca/bn.js +73 -0
- package/dist/ca/bn.js.map +1 -0
- package/dist/ca/mod.d.ts +9 -0
- package/dist/ca/mod.js +12 -0
- package/dist/ca/mod.js.map +1 -0
- package/dist/ca/sin.d.ts +14 -0
- package/dist/ca/sin.js +62 -0
- package/dist/ca/sin.js.map +1 -0
- package/dist/ch/mod.d.ts +10 -0
- package/dist/ch/mod.js +14 -0
- package/dist/ch/mod.js.map +1 -0
- package/dist/ch/ssn.d.ts +14 -0
- package/dist/ch/ssn.js +67 -0
- package/dist/ch/ssn.js.map +1 -0
- package/dist/ch/uid.d.ts +14 -0
- package/dist/ch/uid.js +81 -0
- package/dist/ch/uid.js.map +1 -0
- package/dist/ch/vat.d.ts +14 -0
- package/dist/ch/vat.js +70 -0
- package/dist/ch/vat.js.map +1 -0
- package/dist/cl/mod.d.ts +8 -0
- package/dist/cl/mod.js +8 -0
- package/dist/cl/mod.js.map +1 -0
- package/dist/cl/rut.d.ts +19 -0
- package/dist/cl/rut.js +95 -0
- package/dist/cl/rut.js.map +1 -0
- package/dist/cn/mod.d.ts +9 -0
- package/dist/cn/mod.js +12 -0
- package/dist/cn/mod.js.map +1 -0
- package/dist/cn/ric.d.ts +19 -0
- package/dist/cn/ric.js +108 -0
- package/dist/cn/ric.js.map +1 -0
- package/dist/cn/uscc.d.ts +14 -0
- package/dist/cn/uscc.js +88 -0
- package/dist/cn/uscc.js.map +1 -0
- package/dist/co/mod.d.ts +8 -0
- package/dist/co/mod.js +8 -0
- package/dist/co/mod.js.map +1 -0
- package/dist/co/nit.d.ts +14 -0
- package/dist/co/nit.js +109 -0
- package/dist/co/nit.js.map +1 -0
- package/dist/cr/cpf.d.ts +21 -0
- package/dist/cr/cpf.js +79 -0
- package/dist/cr/cpf.js.map +1 -0
- package/dist/cr/mod.d.ts +8 -0
- package/dist/cr/mod.js +8 -0
- package/dist/cr/mod.js.map +1 -0
- package/dist/creditcard.d.ts +25 -0
- package/dist/creditcard.js +121 -0
- package/dist/creditcard.js.map +1 -0
- package/dist/cu/mod.d.ts +8 -0
- package/dist/cu/mod.js +8 -0
- package/dist/cu/mod.js.map +1 -0
- package/dist/cu/ni.d.ts +21 -0
- package/dist/cu/ni.js +90 -0
- package/dist/cu/ni.js.map +1 -0
- package/dist/cy/mod.d.ts +8 -0
- package/dist/cy/mod.js +8 -0
- package/dist/cy/mod.js.map +1 -0
- package/dist/cy/vat.d.ts +14 -0
- package/dist/cy/vat.js +88 -0
- package/dist/cy/vat.js.map +1 -0
- package/dist/cz/dic.d.ts +14 -0
- package/dist/cz/dic.js +97 -0
- package/dist/cz/dic.js.map +1 -0
- package/dist/cz/ico.d.ts +14 -0
- package/dist/cz/ico.js +70 -0
- package/dist/cz/ico.js.map +1 -0
- package/dist/cz/mod.d.ts +10 -0
- package/dist/cz/mod.js +14 -0
- package/dist/cz/mod.js.map +1 -0
- package/dist/cz/rc.d.ts +22 -0
- package/dist/cz/rc.js +116 -0
- package/dist/cz/rc.js.map +1 -0
- package/dist/de/handelsreg.d.ts +17 -0
- package/dist/de/handelsreg.js +86 -0
- package/dist/de/handelsreg.js.map +1 -0
- package/dist/de/idnr.d.ts +14 -0
- package/dist/de/idnr.js +102 -0
- package/dist/de/idnr.js.map +1 -0
- package/dist/de/mod.d.ts +12 -0
- package/dist/de/mod.js +18 -0
- package/dist/de/mod.js.map +1 -0
- package/dist/de/stnr.d.ts +22 -0
- package/dist/de/stnr.js +144 -0
- package/dist/de/stnr.js.map +1 -0
- package/dist/de/svnr.d.ts +14 -0
- package/dist/de/svnr.js +108 -0
- package/dist/de/svnr.js.map +1 -0
- package/dist/de/vat.d.ts +14 -0
- package/dist/de/vat.js +65 -0
- package/dist/de/vat.js.map +1 -0
- package/dist/dk/cpr.d.ts +17 -0
- package/dist/dk/cpr.js +81 -0
- package/dist/dk/cpr.js.map +1 -0
- package/dist/dk/cvr.d.ts +14 -0
- package/dist/dk/cvr.js +70 -0
- package/dist/dk/cvr.js.map +1 -0
- package/dist/dk/mod.d.ts +10 -0
- package/dist/dk/mod.js +14 -0
- package/dist/dk/mod.js.map +1 -0
- package/dist/dk/vat.d.ts +14 -0
- package/dist/dk/vat.js +72 -0
- package/dist/dk/vat.js.map +1 -0
- package/dist/do/mod.d.ts +8 -0
- package/dist/do/mod.js +8 -0
- package/dist/do/mod.js.map +1 -0
- package/dist/do/rnc.d.ts +18 -0
- package/dist/do/rnc.js +95 -0
- package/dist/do/rnc.js.map +1 -0
- package/dist/ec/mod.d.ts +8 -0
- package/dist/ec/mod.js +8 -0
- package/dist/ec/mod.js.map +1 -0
- package/dist/ec/ruc.d.ts +14 -0
- package/dist/ec/ruc.js +150 -0
- package/dist/ec/ruc.js.map +1 -0
- package/dist/ee/ik.d.ts +24 -0
- package/dist/ee/ik.js +131 -0
- package/dist/ee/ik.js.map +1 -0
- package/dist/ee/mod.d.ts +10 -0
- package/dist/ee/mod.js +14 -0
- package/dist/ee/mod.js.map +1 -0
- package/dist/ee/registrikood.d.ts +14 -0
- package/dist/ee/registrikood.js +63 -0
- package/dist/ee/registrikood.js.map +1 -0
- package/dist/ee/vat.d.ts +14 -0
- package/dist/ee/vat.js +69 -0
- package/dist/ee/vat.js.map +1 -0
- package/dist/eg/mod.d.ts +8 -0
- package/dist/eg/mod.js +8 -0
- package/dist/eg/mod.js.map +1 -0
- package/dist/eg/tn.d.ts +13 -0
- package/dist/eg/tn.js +81 -0
- package/dist/eg/tn.js.map +1 -0
- package/dist/es/cif.d.ts +14 -0
- package/dist/es/cif.js +66 -0
- package/dist/es/cif.js.map +1 -0
- package/dist/es/dni.d.ts +15 -0
- package/dist/es/dni.js +58 -0
- package/dist/es/dni.js.map +1 -0
- package/dist/es/mod.d.ts +12 -0
- package/dist/es/mod.js +18 -0
- package/dist/es/mod.js.map +1 -0
- package/dist/es/nie.d.ts +14 -0
- package/dist/es/nie.js +78 -0
- package/dist/es/nie.js.map +1 -0
- package/dist/es/nss.d.ts +14 -0
- package/dist/es/nss.js +72 -0
- package/dist/es/nss.js.map +1 -0
- package/dist/es/vat.d.ts +15 -0
- package/dist/es/vat.js +104 -0
- package/dist/es/vat.js.map +1 -0
- package/dist/eu/mod.d.ts +8 -0
- package/dist/eu/mod.js +8 -0
- package/dist/eu/mod.js.map +1 -0
- package/dist/eu/vat.d.ts +20 -0
- package/dist/eu/vat.js +145 -0
- package/dist/eu/vat.js.map +1 -0
- package/dist/fi/hetu.d.ts +17 -0
- package/dist/fi/hetu.js +107 -0
- package/dist/fi/hetu.js.map +1 -0
- package/dist/fi/mod.d.ts +10 -0
- package/dist/fi/mod.js +14 -0
- package/dist/fi/mod.js.map +1 -0
- package/dist/fi/vat.d.ts +14 -0
- package/dist/fi/vat.js +68 -0
- package/dist/fi/vat.js.map +1 -0
- package/dist/fi/ytunnus.d.ts +14 -0
- package/dist/fi/ytunnus.js +71 -0
- package/dist/fi/ytunnus.js.map +1 -0
- package/dist/fr/mod.d.ts +12 -0
- package/dist/fr/mod.js +18 -0
- package/dist/fr/mod.js.map +1 -0
- package/dist/fr/nif.d.ts +14 -0
- package/dist/fr/nif.js +64 -0
- package/dist/fr/nif.js.map +1 -0
- package/dist/fr/nir.d.ts +15 -0
- package/dist/fr/nir.js +106 -0
- package/dist/fr/nir.js.map +1 -0
- package/dist/fr/siren.d.ts +14 -0
- package/dist/fr/siren.js +56 -0
- package/dist/fr/siren.js.map +1 -0
- package/dist/fr/siret.d.ts +14 -0
- package/dist/fr/siret.js +73 -0
- package/dist/fr/siret.js.map +1 -0
- package/dist/fr/tva.d.ts +14 -0
- package/dist/fr/tva.js +80 -0
- package/dist/fr/tva.js.map +1 -0
- package/dist/gb/mod.d.ts +11 -0
- package/dist/gb/mod.js +16 -0
- package/dist/gb/mod.js.map +1 -0
- package/dist/gb/nino.d.ts +13 -0
- package/dist/gb/nino.js +103 -0
- package/dist/gb/nino.js.map +1 -0
- package/dist/gb/sedol.d.ts +15 -0
- package/dist/gb/sedol.js +85 -0
- package/dist/gb/sedol.js.map +1 -0
- package/dist/gb/utr.d.ts +14 -0
- package/dist/gb/utr.js +69 -0
- package/dist/gb/utr.js.map +1 -0
- package/dist/gb/vat.d.ts +14 -0
- package/dist/gb/vat.js +102 -0
- package/dist/gb/vat.js.map +1 -0
- package/dist/ge/mod.d.ts +8 -0
- package/dist/ge/mod.js +8 -0
- package/dist/ge/mod.js.map +1 -0
- package/dist/ge/pin.d.ts +13 -0
- package/dist/ge/pin.js +51 -0
- package/dist/ge/pin.js.map +1 -0
- package/dist/gh/mod.d.ts +8 -0
- package/dist/gh/mod.js +8 -0
- package/dist/gh/mod.js.map +1 -0
- package/dist/gh/tin.d.ts +14 -0
- package/dist/gh/tin.js +80 -0
- package/dist/gh/tin.js.map +1 -0
- package/dist/gr/amka.d.ts +14 -0
- package/dist/gr/amka.js +71 -0
- package/dist/gr/amka.js.map +1 -0
- package/dist/gr/mod.d.ts +9 -0
- package/dist/gr/mod.js +12 -0
- package/dist/gr/mod.js.map +1 -0
- package/dist/gr/vat.d.ts +14 -0
- package/dist/gr/vat.js +66 -0
- package/dist/gr/vat.js.map +1 -0
- package/dist/gt/mod.d.ts +8 -0
- package/dist/gt/mod.js +8 -0
- package/dist/gt/mod.js.map +1 -0
- package/dist/gt/nit.d.ts +21 -0
- package/dist/gt/nit.js +98 -0
- package/dist/gt/nit.js.map +1 -0
- package/dist/hk/hkid.d.ts +15 -0
- package/dist/hk/hkid.js +92 -0
- package/dist/hk/hkid.js.map +1 -0
- package/dist/hk/mod.d.ts +8 -0
- package/dist/hk/mod.js +8 -0
- package/dist/hk/mod.js.map +1 -0
- package/dist/hr/mod.d.ts +8 -0
- package/dist/hr/mod.js +8 -0
- package/dist/hr/mod.js.map +1 -0
- package/dist/hr/vat.d.ts +14 -0
- package/dist/hr/vat.js +55 -0
- package/dist/hr/vat.js.map +1 -0
- package/dist/hu/mod.d.ts +8 -0
- package/dist/hu/mod.js +8 -0
- package/dist/hu/mod.js.map +1 -0
- package/dist/hu/vat.d.ts +14 -0
- package/dist/hu/vat.js +68 -0
- package/dist/hu/vat.js.map +1 -0
- package/dist/iban.d.ts +16 -0
- package/dist/iban.js +282 -0
- package/dist/iban.js.map +1 -0
- package/dist/id/mod.d.ts +8 -0
- package/dist/id/mod.js +8 -0
- package/dist/id/mod.js.map +1 -0
- package/dist/id/npwp.d.ts +14 -0
- package/dist/id/npwp.js +133 -0
- package/dist/id/npwp.js.map +1 -0
- package/dist/ie/mod.d.ts +9 -0
- package/dist/ie/mod.js +12 -0
- package/dist/ie/mod.js.map +1 -0
- package/dist/ie/pps.d.ts +14 -0
- package/dist/ie/pps.js +69 -0
- package/dist/ie/pps.js.map +1 -0
- package/dist/ie/vat.d.ts +14 -0
- package/dist/ie/vat.js +83 -0
- package/dist/ie/vat.js.map +1 -0
- package/dist/il/idnr.d.ts +14 -0
- package/dist/il/idnr.js +61 -0
- package/dist/il/idnr.js.map +1 -0
- package/dist/il/mod.d.ts +8 -0
- package/dist/il/mod.js +8 -0
- package/dist/il/mod.js.map +1 -0
- package/dist/in/aadhaar.d.ts +14 -0
- package/dist/in/aadhaar.js +61 -0
- package/dist/in/aadhaar.js.map +1 -0
- package/dist/in/gstin.d.ts +14 -0
- package/dist/in/gstin.js +130 -0
- package/dist/in/gstin.js.map +1 -0
- package/dist/in/mod.d.ts +10 -0
- package/dist/in/mod.js +14 -0
- package/dist/in/mod.js.map +1 -0
- package/dist/in/pan.d.ts +13 -0
- package/dist/in/pan.js +58 -0
- package/dist/in/pan.js.map +1 -0
- package/dist/index.d.ts +105 -0
- package/dist/index.js +104 -0
- package/dist/iq/mod.d.ts +8 -0
- package/dist/iq/mod.js +8 -0
- package/dist/iq/mod.js.map +1 -0
- package/dist/iq/nid.d.ts +14 -0
- package/dist/iq/nid.js +56 -0
- package/dist/iq/nid.js.map +1 -0
- package/dist/ir/mod.d.ts +8 -0
- package/dist/ir/mod.js +8 -0
- package/dist/ir/mod.js.map +1 -0
- package/dist/ir/nid.d.ts +18 -0
- package/dist/ir/nid.js +90 -0
- package/dist/ir/nid.js.map +1 -0
- package/dist/is/kennitala.d.ts +14 -0
- package/dist/is/kennitala.js +92 -0
- package/dist/is/kennitala.js.map +1 -0
- package/dist/is/mod.d.ts +9 -0
- package/dist/is/mod.js +12 -0
- package/dist/is/mod.js.map +1 -0
- package/dist/is/vsk.d.ts +13 -0
- package/dist/is/vsk.js +47 -0
- package/dist/is/vsk.js.map +1 -0
- package/dist/isin.d.ts +14 -0
- package/dist/isin.js +85 -0
- package/dist/isin.js.map +1 -0
- package/dist/it/codicefiscale.d.ts +18 -0
- package/dist/it/codicefiscale.js +214 -0
- package/dist/it/codicefiscale.js.map +1 -0
- package/dist/it/iva.d.ts +14 -0
- package/dist/it/iva.js +71 -0
- package/dist/it/iva.js.map +1 -0
- package/dist/it/mod.d.ts +9 -0
- package/dist/it/mod.js +12 -0
- package/dist/it/mod.js.map +1 -0
- package/dist/jp/cn.d.ts +14 -0
- package/dist/jp/cn.js +68 -0
- package/dist/jp/cn.js.map +1 -0
- package/dist/jp/mod.d.ts +9 -0
- package/dist/jp/mod.js +12 -0
- package/dist/jp/mod.js.map +1 -0
- package/dist/jp/mynumber.d.ts +14 -0
- package/dist/jp/mynumber.js +86 -0
- package/dist/jp/mynumber.js.map +1 -0
- package/dist/kr/brn.d.ts +13 -0
- package/dist/kr/brn.js +67 -0
- package/dist/kr/brn.js.map +1 -0
- package/dist/kr/mod.d.ts +9 -0
- package/dist/kr/mod.js +12 -0
- package/dist/kr/mod.js.map +1 -0
- package/dist/kr/rrn.d.ts +22 -0
- package/dist/kr/rrn.js +133 -0
- package/dist/kr/rrn.js.map +1 -0
- package/dist/kw/civil.d.ts +18 -0
- package/dist/kw/civil.js +99 -0
- package/dist/kw/civil.js.map +1 -0
- package/dist/kw/mod.d.ts +8 -0
- package/dist/kw/mod.js +8 -0
- package/dist/kw/mod.js.map +1 -0
- package/dist/kz/iin.d.ts +23 -0
- package/dist/kz/iin.js +150 -0
- package/dist/kz/iin.js.map +1 -0
- package/dist/kz/mod.d.ts +8 -0
- package/dist/kz/mod.js +8 -0
- package/dist/kz/mod.js.map +1 -0
- package/dist/lei.d.ts +14 -0
- package/dist/lei.js +68 -0
- package/dist/lei.js.map +1 -0
- package/dist/li/mod.d.ts +8 -0
- package/dist/li/mod.js +8 -0
- package/dist/li/mod.js.map +1 -0
- package/dist/li/peid.d.ts +13 -0
- package/dist/li/peid.js +61 -0
- package/dist/li/peid.js.map +1 -0
- package/dist/lk/mod.d.ts +8 -0
- package/dist/lk/mod.js +8 -0
- package/dist/lk/mod.js.map +1 -0
- package/dist/lk/nic.d.ts +17 -0
- package/dist/lk/nic.js +139 -0
- package/dist/lk/nic.js.map +1 -0
- package/dist/lt/asmens.d.ts +14 -0
- package/dist/lt/asmens.js +81 -0
- package/dist/lt/asmens.js.map +1 -0
- package/dist/lt/mod.d.ts +9 -0
- package/dist/lt/mod.js +12 -0
- package/dist/lt/mod.js.map +1 -0
- package/dist/lt/vat.d.ts +14 -0
- package/dist/lt/vat.js +72 -0
- package/dist/lt/vat.js.map +1 -0
- package/dist/lu/mod.d.ts +8 -0
- package/dist/lu/mod.js +8 -0
- package/dist/lu/mod.js.map +1 -0
- package/dist/lu/vat.d.ts +14 -0
- package/dist/lu/vat.js +56 -0
- package/dist/lu/vat.js.map +1 -0
- package/dist/luhn.d.ts +17 -0
- package/dist/luhn.js +51 -0
- package/dist/luhn.js.map +1 -0
- package/dist/lv/mod.d.ts +8 -0
- package/dist/lv/mod.js +8 -0
- package/dist/lv/mod.js.map +1 -0
- package/dist/lv/vat.d.ts +14 -0
- package/dist/lv/vat.js +104 -0
- package/dist/lv/vat.js.map +1 -0
- package/dist/ma/ice.d.ts +14 -0
- package/dist/ma/ice.js +57 -0
- package/dist/ma/ice.js.map +1 -0
- package/dist/ma/mod.d.ts +8 -0
- package/dist/ma/mod.js +8 -0
- package/dist/ma/mod.js.map +1 -0
- package/dist/mc/mod.d.ts +8 -0
- package/dist/mc/mod.js +8 -0
- package/dist/mc/mod.js.map +1 -0
- package/dist/mc/tva.d.ts +14 -0
- package/dist/mc/tva.js +53 -0
- package/dist/mc/tva.js.map +1 -0
- package/dist/md/idno.d.ts +12 -0
- package/dist/md/idno.js +71 -0
- package/dist/md/idno.js.map +1 -0
- package/dist/md/mod.d.ts +8 -0
- package/dist/md/mod.js +8 -0
- package/dist/md/mod.js.map +1 -0
- package/dist/me/mod.d.ts +8 -0
- package/dist/me/mod.js +8 -0
- package/dist/me/mod.js.map +1 -0
- package/dist/me/pib.d.ts +14 -0
- package/dist/me/pib.js +63 -0
- package/dist/me/pib.js.map +1 -0
- package/dist/mk/edb.d.ts +14 -0
- package/dist/mk/edb.js +77 -0
- package/dist/mk/edb.js.map +1 -0
- package/dist/mk/mod.d.ts +8 -0
- package/dist/mk/mod.js +8 -0
- package/dist/mk/mod.js.map +1 -0
- package/dist/mt/mod.d.ts +8 -0
- package/dist/mt/mod.js +8 -0
- package/dist/mt/mod.js.map +1 -0
- package/dist/mt/vat.d.ts +14 -0
- package/dist/mt/vat.js +69 -0
- package/dist/mt/vat.js.map +1 -0
- package/dist/mu/brn.d.ts +13 -0
- package/dist/mu/brn.js +68 -0
- package/dist/mu/brn.js.map +1 -0
- package/dist/mu/mod.d.ts +8 -0
- package/dist/mu/mod.js +8 -0
- package/dist/mu/mod.js.map +1 -0
- package/dist/mx/clabe.d.ts +18 -0
- package/dist/mx/clabe.js +87 -0
- package/dist/mx/clabe.js.map +1 -0
- package/dist/mx/curp.d.ts +21 -0
- package/dist/mx/curp.js +140 -0
- package/dist/mx/curp.js.map +1 -0
- package/dist/mx/mod.d.ts +10 -0
- package/dist/mx/mod.js +14 -0
- package/dist/mx/mod.js.map +1 -0
- package/dist/mx/rfc.d.ts +16 -0
- package/dist/mx/rfc.js +92 -0
- package/dist/mx/rfc.js.map +1 -0
- package/dist/my/mod.d.ts +8 -0
- package/dist/my/mod.js +8 -0
- package/dist/my/mod.js.map +1 -0
- package/dist/my/nric.d.ts +17 -0
- package/dist/my/nric.js +186 -0
- package/dist/my/nric.js.map +1 -0
- package/dist/ng/mod.d.ts +8 -0
- package/dist/ng/mod.js +8 -0
- package/dist/ng/mod.js.map +1 -0
- package/dist/ng/nin.d.ts +13 -0
- package/dist/ng/nin.js +54 -0
- package/dist/ng/nin.js.map +1 -0
- package/dist/ni/mod.d.ts +8 -0
- package/dist/ni/mod.js +8 -0
- package/dist/ni/mod.js.map +1 -0
- package/dist/ni/ruc.d.ts +23 -0
- package/dist/ni/ruc.js +113 -0
- package/dist/ni/ruc.js.map +1 -0
- package/dist/nl/bsn.d.ts +14 -0
- package/dist/nl/bsn.js +70 -0
- package/dist/nl/bsn.js.map +1 -0
- package/dist/nl/kvk.d.ts +13 -0
- package/dist/nl/kvk.js +45 -0
- package/dist/nl/kvk.js.map +1 -0
- package/dist/nl/mod.d.ts +10 -0
- package/dist/nl/mod.js +14 -0
- package/dist/nl/mod.js.map +1 -0
- package/dist/nl/vat.d.ts +14 -0
- package/dist/nl/vat.js +94 -0
- package/dist/nl/vat.js.map +1 -0
- package/dist/no/fodselsnummer.d.ts +20 -0
- package/dist/no/fodselsnummer.js +134 -0
- package/dist/no/fodselsnummer.js.map +1 -0
- package/dist/no/mod.d.ts +10 -0
- package/dist/no/mod.js +14 -0
- package/dist/no/mod.js.map +1 -0
- package/dist/no/mva.d.ts +14 -0
- package/dist/no/mva.js +54 -0
- package/dist/no/mva.js.map +1 -0
- package/dist/no/orgnr.d.ts +14 -0
- package/dist/no/orgnr.js +66 -0
- package/dist/no/orgnr.js.map +1 -0
- package/dist/nz/ird.d.ts +14 -0
- package/dist/nz/ird.js +105 -0
- package/dist/nz/ird.js.map +1 -0
- package/dist/nz/mod.d.ts +8 -0
- package/dist/nz/mod.js +8 -0
- package/dist/nz/mod.js.map +1 -0
- package/dist/pa/mod.d.ts +8 -0
- package/dist/pa/mod.js +8 -0
- package/dist/pa/mod.js.map +1 -0
- package/dist/pa/ruc.d.ts +23 -0
- package/dist/pa/ruc.js +200 -0
- package/dist/pa/ruc.js.map +1 -0
- package/dist/patterns.d.ts +45 -0
- package/dist/patterns.js +123 -0
- package/dist/patterns.js.map +1 -0
- package/dist/pe/mod.d.ts +8 -0
- package/dist/pe/mod.js +8 -0
- package/dist/pe/mod.js.map +1 -0
- package/dist/pe/ruc.d.ts +19 -0
- package/dist/pe/ruc.js +109 -0
- package/dist/pe/ruc.js.map +1 -0
- package/dist/ph/mod.d.ts +8 -0
- package/dist/ph/mod.js +8 -0
- package/dist/ph/mod.js.map +1 -0
- package/dist/ph/philid.d.ts +13 -0
- package/dist/ph/philid.js +60 -0
- package/dist/ph/philid.js.map +1 -0
- package/dist/pk/cnic.d.ts +13 -0
- package/dist/pk/cnic.js +69 -0
- package/dist/pk/cnic.js.map +1 -0
- package/dist/pk/mod.d.ts +8 -0
- package/dist/pk/mod.js +8 -0
- package/dist/pk/mod.js.map +1 -0
- package/dist/pl/mod.d.ts +10 -0
- package/dist/pl/mod.js +14 -0
- package/dist/pl/mod.js.map +1 -0
- package/dist/pl/nip.d.ts +18 -0
- package/dist/pl/nip.js +77 -0
- package/dist/pl/nip.js.map +1 -0
- package/dist/pl/pesel.d.ts +19 -0
- package/dist/pl/pesel.js +109 -0
- package/dist/pl/pesel.js.map +1 -0
- package/dist/pl/regon.d.ts +14 -0
- package/dist/pl/regon.js +85 -0
- package/dist/pl/regon.js.map +1 -0
- package/dist/pt/cc.d.ts +14 -0
- package/dist/pt/cc.js +77 -0
- package/dist/pt/cc.js.map +1 -0
- package/dist/pt/mod.d.ts +9 -0
- package/dist/pt/mod.js +12 -0
- package/dist/pt/mod.js.map +1 -0
- package/dist/pt/vat.d.ts +14 -0
- package/dist/pt/vat.js +73 -0
- package/dist/pt/vat.js.map +1 -0
- package/dist/ro/cnp.d.ts +19 -0
- package/dist/ro/cnp.js +176 -0
- package/dist/ro/cnp.js.map +1 -0
- package/dist/ro/mod.d.ts +9 -0
- package/dist/ro/mod.js +12 -0
- package/dist/ro/mod.js.map +1 -0
- package/dist/ro/vat.d.ts +14 -0
- package/dist/ro/vat.js +76 -0
- package/dist/ro/vat.js.map +1 -0
- package/dist/rs/mod.d.ts +8 -0
- package/dist/rs/mod.js +8 -0
- package/dist/rs/mod.js.map +1 -0
- package/dist/rs/pib.d.ts +14 -0
- package/dist/rs/pib.js +60 -0
- package/dist/rs/pib.js.map +1 -0
- package/dist/ru/inn.d.ts +14 -0
- package/dist/ru/inn.js +103 -0
- package/dist/ru/inn.js.map +1 -0
- package/dist/ru/mod.d.ts +8 -0
- package/dist/ru/mod.js +8 -0
- package/dist/ru/mod.js.map +1 -0
- package/dist/se/mod.d.ts +10 -0
- package/dist/se/mod.js +14 -0
- package/dist/se/mod.js.map +1 -0
- package/dist/se/orgnr.d.ts +14 -0
- package/dist/se/orgnr.js +59 -0
- package/dist/se/orgnr.js.map +1 -0
- package/dist/se/personnummer.d.ts +23 -0
- package/dist/se/personnummer.js +122 -0
- package/dist/se/personnummer.js.map +1 -0
- package/dist/se/vat.d.ts +14 -0
- package/dist/se/vat.js +63 -0
- package/dist/se/vat.js.map +1 -0
- package/dist/sg/mod.d.ts +8 -0
- package/dist/sg/mod.js +8 -0
- package/dist/sg/mod.js.map +1 -0
- package/dist/sg/uen.d.ts +14 -0
- package/dist/sg/uen.js +207 -0
- package/dist/sg/uen.js.map +1 -0
- package/dist/si/emso.d.ts +19 -0
- package/dist/si/emso.js +108 -0
- package/dist/si/emso.js.map +1 -0
- package/dist/si/mod.d.ts +9 -0
- package/dist/si/mod.js +12 -0
- package/dist/si/mod.js.map +1 -0
- package/dist/si/vat.d.ts +14 -0
- package/dist/si/vat.js +74 -0
- package/dist/si/vat.js.map +1 -0
- package/dist/sk/dic.d.ts +14 -0
- package/dist/sk/dic.js +66 -0
- package/dist/sk/dic.js.map +1 -0
- package/dist/sk/ico.d.ts +10 -0
- package/dist/sk/ico.js +30 -0
- package/dist/sk/ico.js.map +1 -0
- package/dist/sk/mod.d.ts +10 -0
- package/dist/sk/mod.js +14 -0
- package/dist/sk/mod.js.map +1 -0
- package/dist/sk/rc.d.ts +10 -0
- package/dist/sk/rc.js +30 -0
- package/dist/sk/rc.js.map +1 -0
- package/dist/th/mod.d.ts +8 -0
- package/dist/th/mod.js +8 -0
- package/dist/th/mod.js.map +1 -0
- package/dist/th/tin.d.ts +14 -0
- package/dist/th/tin.js +63 -0
- package/dist/th/tin.js.map +1 -0
- package/dist/tr/mod.d.ts +9 -0
- package/dist/tr/mod.js +12 -0
- package/dist/tr/mod.js.map +1 -0
- package/dist/tr/tckimlik.d.ts +15 -0
- package/dist/tr/tckimlik.js +79 -0
- package/dist/tr/tckimlik.js.map +1 -0
- package/dist/tr/vkn.d.ts +15 -0
- package/dist/tr/vkn.js +79 -0
- package/dist/tr/vkn.js.map +1 -0
- package/dist/tw/mod.d.ts +8 -0
- package/dist/tw/mod.js +8 -0
- package/dist/tw/mod.js.map +1 -0
- package/dist/tw/ubn.d.ts +14 -0
- package/dist/tw/ubn.js +86 -0
- package/dist/tw/ubn.js.map +1 -0
- package/dist/types.d.ts +95 -0
- package/dist/types.js +1 -0
- package/dist/ua/edrpou.d.ts +14 -0
- package/dist/ua/edrpou.js +103 -0
- package/dist/ua/edrpou.js.map +1 -0
- package/dist/ua/mod.d.ts +8 -0
- package/dist/ua/mod.js +8 -0
- package/dist/ua/mod.js.map +1 -0
- package/dist/us/ein.d.ts +13 -0
- package/dist/us/ein.js +234 -0
- package/dist/us/ein.js.map +1 -0
- package/dist/us/itin.d.ts +15 -0
- package/dist/us/itin.js +69 -0
- package/dist/us/itin.js.map +1 -0
- package/dist/us/mod.d.ts +11 -0
- package/dist/us/mod.js +16 -0
- package/dist/us/mod.js.map +1 -0
- package/dist/us/rtn.d.ts +14 -0
- package/dist/us/rtn.js +91 -0
- package/dist/us/rtn.js.map +1 -0
- package/dist/us/ssn.d.ts +13 -0
- package/dist/us/ssn.js +77 -0
- package/dist/us/ssn.js.map +1 -0
- package/dist/uy/mod.d.ts +8 -0
- package/dist/uy/mod.js +8 -0
- package/dist/uy/mod.js.map +1 -0
- package/dist/uy/rut.d.ts +18 -0
- package/dist/uy/rut.js +105 -0
- package/dist/uy/rut.js.map +1 -0
- package/dist/ve/mod.d.ts +8 -0
- package/dist/ve/mod.js +8 -0
- package/dist/ve/mod.js.map +1 -0
- package/dist/ve/rif.d.ts +18 -0
- package/dist/ve/rif.js +109 -0
- package/dist/ve/rif.js.map +1 -0
- package/dist/vn/mod.d.ts +8 -0
- package/dist/vn/mod.js +8 -0
- package/dist/vn/mod.js.map +1 -0
- package/dist/vn/mst.d.ts +14 -0
- package/dist/vn/mst.js +82 -0
- package/dist/vn/mst.js.map +1 -0
- package/dist/za/idnr.d.ts +19 -0
- package/dist/za/idnr.js +110 -0
- package/dist/za/idnr.js.map +1 -0
- package/dist/za/mod.d.ts +8 -0
- package/dist/za/mod.js +8 -0
- package/dist/za/mod.js.map +1 -0
- package/package.json +936 -0
- package/src/_checksums/luhn.ts +24 -0
- package/src/_checksums/mod1110.ts +24 -0
- package/src/_checksums/mod112.ts +40 -0
- package/src/_checksums/mod97.ts +28 -0
- package/src/_checksums/verhoeff.ts +71 -0
- package/src/_checksums/weighted-sum.ts +23 -0
- package/src/_util/arabic.ts +48 -0
- package/src/_util/clean.ts +86 -0
- package/src/_util/date.ts +23 -0
- package/src/_util/generate.ts +24 -0
- package/src/_util/result.ts +10 -0
- package/src/_util/strings.ts +32 -0
- package/src/ad/mod.ts +1 -0
- package/src/ad/nrt.ts +111 -0
- package/src/ae/eid.ts +106 -0
- package/src/ae/mod.ts +1 -0
- package/src/ai/mod.ts +1 -0
- package/src/ai/tin.ts +98 -0
- package/src/al/mod.ts +1 -0
- package/src/al/nipt.ts +78 -0
- package/src/am/mod.ts +1 -0
- package/src/am/tin.ts +73 -0
- package/src/ar/cbu.ts +106 -0
- package/src/ar/cuit.ts +137 -0
- package/src/ar/dni.ts +79 -0
- package/src/ar/mod.ts +3 -0
- package/src/at/businessid.ts +74 -0
- package/src/at/mod.ts +4 -0
- package/src/at/tin.ts +90 -0
- package/src/at/uid.ts +92 -0
- package/src/at/vnr.ts +111 -0
- package/src/au/abn.ts +85 -0
- package/src/au/acn.ts +86 -0
- package/src/au/mod.ts +3 -0
- package/src/au/tfn.ts +85 -0
- package/src/az/mod.ts +1 -0
- package/src/az/voen.ts +125 -0
- package/src/ba/jmbg.ts +128 -0
- package/src/ba/mod.ts +1 -0
- package/src/bd/mod.ts +1 -0
- package/src/bd/nid.ts +139 -0
- package/src/be/bis.ts +105 -0
- package/src/be/mod.ts +3 -0
- package/src/be/nn.ts +125 -0
- package/src/be/vat.ts +107 -0
- package/src/bg/egn.ts +155 -0
- package/src/bg/mod.ts +3 -0
- package/src/bg/pnf.ts +86 -0
- package/src/bg/vat.ts +155 -0
- package/src/bh/cpr.ts +81 -0
- package/src/bh/mod.ts +1 -0
- package/src/bic.ts +99 -0
- package/src/br/cnpj.ts +152 -0
- package/src/br/cpf.ts +114 -0
- package/src/br/mod.ts +2 -0
- package/src/by/mod.ts +1 -0
- package/src/by/unp.ts +153 -0
- package/src/bz/mod.ts +1 -0
- package/src/bz/tin.ts +107 -0
- package/src/ca/bn.ts +107 -0
- package/src/ca/mod.ts +2 -0
- package/src/ca/sin.ts +91 -0
- package/src/ch/mod.ts +3 -0
- package/src/ch/ssn.ts +95 -0
- package/src/ch/uid.ts +108 -0
- package/src/ch/vat.ts +85 -0
- package/src/cl/mod.ts +1 -0
- package/src/cl/rut.ts +118 -0
- package/src/cn/mod.ts +2 -0
- package/src/cn/ric.ts +180 -0
- package/src/cn/uscc.ts +111 -0
- package/src/co/mod.ts +1 -0
- package/src/co/nit.ts +108 -0
- package/src/cr/cpf.ts +111 -0
- package/src/cr/mod.ts +1 -0
- package/src/creditcard.ts +190 -0
- package/src/cu/mod.ts +1 -0
- package/src/cu/ni.ts +125 -0
- package/src/cy/mod.ts +1 -0
- package/src/cy/vat.ts +130 -0
- package/src/cz/dic.ts +135 -0
- package/src/cz/ico.ts +82 -0
- package/src/cz/mod.ts +3 -0
- package/src/cz/rc.ts +190 -0
- package/src/de/handelsreg.ts +107 -0
- package/src/de/idnr.ts +140 -0
- package/src/de/mod.ts +5 -0
- package/src/de/stnr.ts +214 -0
- package/src/de/svnr.ts +162 -0
- package/src/de/vat.ts +98 -0
- package/src/dk/cpr.ts +122 -0
- package/src/dk/cvr.ts +87 -0
- package/src/dk/mod.ts +3 -0
- package/src/dk/vat.ts +91 -0
- package/src/do/mod.ts +1 -0
- package/src/do/rnc.ts +126 -0
- package/src/ec/mod.ts +1 -0
- package/src/ec/ruc.ts +195 -0
- package/src/ee/ik.ts +156 -0
- package/src/ee/mod.ts +3 -0
- package/src/ee/registrikood.ts +81 -0
- package/src/ee/vat.ts +85 -0
- package/src/eg/mod.ts +1 -0
- package/src/eg/tn.ts +103 -0
- package/src/es/cif.ts +105 -0
- package/src/es/dni.ts +90 -0
- package/src/es/mod.ts +5 -0
- package/src/es/nie.ts +102 -0
- package/src/es/nss.ts +109 -0
- package/src/es/vat.ts +178 -0
- package/src/eu/mod.ts +1 -0
- package/src/eu/vat.ts +171 -0
- package/src/fi/hetu.ts +182 -0
- package/src/fi/mod.ts +3 -0
- package/src/fi/vat.ts +82 -0
- package/src/fi/ytunnus.ts +83 -0
- package/src/fr/mod.ts +5 -0
- package/src/fr/nif.ts +93 -0
- package/src/fr/nir.ts +195 -0
- package/src/fr/siren.ts +79 -0
- package/src/fr/siret.ts +122 -0
- package/src/fr/tva.ts +146 -0
- package/src/gb/mod.ts +4 -0
- package/src/gb/nino.ts +153 -0
- package/src/gb/sedol.ts +137 -0
- package/src/gb/utr.ts +81 -0
- package/src/gb/vat.ts +158 -0
- package/src/ge/mod.ts +1 -0
- package/src/ge/pin.ts +71 -0
- package/src/gh/mod.ts +1 -0
- package/src/gh/tin.ts +100 -0
- package/src/gr/amka.ts +104 -0
- package/src/gr/mod.ts +2 -0
- package/src/gr/vat.ts +96 -0
- package/src/gt/mod.ts +1 -0
- package/src/gt/nit.ts +116 -0
- package/src/hk/hkid.ts +131 -0
- package/src/hk/mod.ts +1 -0
- package/src/hr/mod.ts +1 -0
- package/src/hr/vat.ts +79 -0
- package/src/hu/mod.ts +1 -0
- package/src/hu/vat.ts +82 -0
- package/src/iban.ts +340 -0
- package/src/id/mod.ts +1 -0
- package/src/id/npwp.ts +187 -0
- package/src/ie/mod.ts +2 -0
- package/src/ie/pps.ts +105 -0
- package/src/ie/vat.ts +138 -0
- package/src/il/idnr.ts +87 -0
- package/src/il/mod.ts +1 -0
- package/src/in/aadhaar.ts +96 -0
- package/src/in/gstin.ts +169 -0
- package/src/in/mod.ts +3 -0
- package/src/in/pan.ts +88 -0
- package/src/index.ts +116 -0
- package/src/iq/mod.ts +1 -0
- package/src/iq/nid.ts +71 -0
- package/src/ir/mod.ts +1 -0
- package/src/ir/nid.ts +120 -0
- package/src/is/kennitala.ts +125 -0
- package/src/is/mod.ts +2 -0
- package/src/is/vsk.ts +63 -0
- package/src/isin.ts +114 -0
- package/src/it/codicefiscale.ts +290 -0
- package/src/it/iva.ts +115 -0
- package/src/it/mod.ts +2 -0
- package/src/jp/cn.ts +91 -0
- package/src/jp/mod.ts +2 -0
- package/src/jp/mynumber.ts +103 -0
- package/src/kr/brn.ts +101 -0
- package/src/kr/mod.ts +2 -0
- package/src/kr/rrn.ts +170 -0
- package/src/kw/civil.ts +144 -0
- package/src/kw/mod.ts +1 -0
- package/src/kz/iin.ts +183 -0
- package/src/kz/mod.ts +1 -0
- package/src/lei.ts +98 -0
- package/src/li/mod.ts +1 -0
- package/src/li/peid.ts +66 -0
- package/src/lk/mod.ts +1 -0
- package/src/lk/nic.ts +210 -0
- package/src/lt/asmens.ts +120 -0
- package/src/lt/mod.ts +2 -0
- package/src/lt/vat.ts +109 -0
- package/src/lu/mod.ts +1 -0
- package/src/lu/vat.ts +80 -0
- package/src/luhn.ts +72 -0
- package/src/lv/mod.ts +1 -0
- package/src/lv/vat.ts +139 -0
- package/src/ma/ice.ts +79 -0
- package/src/ma/mod.ts +1 -0
- package/src/mc/mod.ts +1 -0
- package/src/mc/tva.ts +74 -0
- package/src/md/idno.ts +86 -0
- package/src/md/mod.ts +1 -0
- package/src/me/mod.ts +1 -0
- package/src/me/pib.ts +79 -0
- package/src/mk/edb.ts +91 -0
- package/src/mk/mod.ts +1 -0
- package/src/mt/mod.ts +1 -0
- package/src/mt/vat.ts +88 -0
- package/src/mu/brn.ts +102 -0
- package/src/mu/mod.ts +1 -0
- package/src/mx/clabe.ts +111 -0
- package/src/mx/curp.ts +210 -0
- package/src/mx/mod.ts +3 -0
- package/src/mx/rfc.ts +144 -0
- package/src/my/mod.ts +1 -0
- package/src/my/nric.ts +235 -0
- package/src/ng/mod.ts +1 -0
- package/src/ng/nin.ts +72 -0
- package/src/ni/mod.ts +1 -0
- package/src/ni/ruc.ts +176 -0
- package/src/nl/bsn.ts +87 -0
- package/src/nl/kvk.ts +59 -0
- package/src/nl/mod.ts +3 -0
- package/src/nl/vat.ts +146 -0
- package/src/no/fodselsnummer.ts +192 -0
- package/src/no/mod.ts +3 -0
- package/src/no/mva.ts +73 -0
- package/src/no/orgnr.ts +79 -0
- package/src/nz/ird.ts +128 -0
- package/src/nz/mod.ts +1 -0
- package/src/pa/mod.ts +1 -0
- package/src/pa/ruc.ts +359 -0
- package/src/patterns.ts +252 -0
- package/src/pe/mod.ts +1 -0
- package/src/pe/ruc.ts +121 -0
- package/src/ph/mod.ts +1 -0
- package/src/ph/philid.ts +76 -0
- package/src/pk/cnic.ts +103 -0
- package/src/pk/mod.ts +1 -0
- package/src/pl/mod.ts +3 -0
- package/src/pl/nip.ts +96 -0
- package/src/pl/pesel.ts +153 -0
- package/src/pl/regon.ts +98 -0
- package/src/pt/cc.ts +106 -0
- package/src/pt/mod.ts +2 -0
- package/src/pt/vat.ts +93 -0
- package/src/ro/cnp.ts +171 -0
- package/src/ro/mod.ts +2 -0
- package/src/ro/vat.ts +94 -0
- package/src/rs/mod.ts +1 -0
- package/src/rs/pib.ts +83 -0
- package/src/ru/inn.ts +109 -0
- package/src/ru/mod.ts +1 -0
- package/src/se/mod.ts +3 -0
- package/src/se/orgnr.ts +81 -0
- package/src/se/personnummer.ts +180 -0
- package/src/se/vat.ts +92 -0
- package/src/sg/mod.ts +1 -0
- package/src/sg/uen.ts +267 -0
- package/src/si/emso.ts +152 -0
- package/src/si/mod.ts +2 -0
- package/src/si/vat.ts +108 -0
- package/src/sk/dic.ts +106 -0
- package/src/sk/ico.ts +39 -0
- package/src/sk/mod.ts +3 -0
- package/src/sk/rc.ts +31 -0
- package/src/th/mod.ts +1 -0
- package/src/th/tin.ts +102 -0
- package/src/tr/mod.ts +2 -0
- package/src/tr/tckimlik.ts +111 -0
- package/src/tr/vkn.ts +97 -0
- package/src/tw/mod.ts +1 -0
- package/src/tw/ubn.ts +108 -0
- package/src/types.ts +200 -0
- package/src/ua/edrpou.ts +103 -0
- package/src/ua/mod.ts +1 -0
- package/src/us/ein.ts +257 -0
- package/src/us/itin.ts +126 -0
- package/src/us/mod.ts +4 -0
- package/src/us/rtn.ts +126 -0
- package/src/us/ssn.ts +117 -0
- package/src/uy/mod.ts +1 -0
- package/src/uy/rut.ts +146 -0
- package/src/ve/mod.ts +1 -0
- package/src/ve/rif.ts +140 -0
- package/src/vn/mod.ts +1 -0
- package/src/vn/mst.ts +128 -0
- package/src/za/idnr.ts +157 -0
- package/src/za/mod.ts +1 -0
package/dist/lu/vat.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/lu/vat.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 Luxembourg VAT number. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** Luxembourg VAT Number. */
|
|
11
|
+
declare const vat: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, vat as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=vat.d.ts.map
|
package/dist/lu/vat.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
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/lu/vat.ts
|
|
6
|
+
/**
|
|
7
|
+
* TVA (Luxembourg VAT number).
|
|
8
|
+
*
|
|
9
|
+
* 8 digits. First 6 digits mod 89 === last 2 digits.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.vatify.eu/luxembourg-vat-number.html
|
|
12
|
+
* @see https://www.oecd.org/content/dam/oecd/en/topics/policy-issue-focus/aeoi/luxembourg-tin.pdf
|
|
13
|
+
*/
|
|
14
|
+
const compact = (value) => {
|
|
15
|
+
let v = clean(value, " -/.");
|
|
16
|
+
if (v.startsWith("LU") || v.startsWith("lu")) v = v.slice(2);
|
|
17
|
+
return v;
|
|
18
|
+
};
|
|
19
|
+
const validate = (value) => {
|
|
20
|
+
const v = compact(value);
|
|
21
|
+
if (v.length !== 8) return err("INVALID_LENGTH", "Luxembourg VAT number must be 8 digits");
|
|
22
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "Luxembourg VAT number must contain only digits");
|
|
23
|
+
const front = Number.parseInt(v.slice(0, 6), 10);
|
|
24
|
+
const check = Number.parseInt(v.slice(6, 8), 10);
|
|
25
|
+
if (front % 89 !== check) return err("INVALID_CHECKSUM", "Luxembourg VAT number check digit mismatch");
|
|
26
|
+
return {
|
|
27
|
+
valid: true,
|
|
28
|
+
compact: v
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
const format = (value) => `LU${compact(value)}`;
|
|
32
|
+
/** Generate a random valid Luxembourg VAT number. */
|
|
33
|
+
const generate = () => {
|
|
34
|
+
const body = randomDigits(6);
|
|
35
|
+
return body + String(Number.parseInt(body, 10) % 89).padStart(2, "0");
|
|
36
|
+
};
|
|
37
|
+
/** Luxembourg VAT Number. */
|
|
38
|
+
const vat = {
|
|
39
|
+
name: "Luxembourg VAT Number",
|
|
40
|
+
localName: "Numéro de TVA",
|
|
41
|
+
abbreviation: "TVA",
|
|
42
|
+
aliases: ["TVA", "numéro d'identification TVA"],
|
|
43
|
+
candidatePattern: "LU\\d{8}",
|
|
44
|
+
country: "LU",
|
|
45
|
+
entityType: "company",
|
|
46
|
+
sourceUrl: "https://pfi.public.lu/",
|
|
47
|
+
examples: ["15027442"],
|
|
48
|
+
compact,
|
|
49
|
+
format,
|
|
50
|
+
validate,
|
|
51
|
+
generate
|
|
52
|
+
};
|
|
53
|
+
//#endregion
|
|
54
|
+
export { compact, vat as default, format, generate, validate };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=vat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vat.js","names":[],"sources":["../../src/lu/vat.ts"],"sourcesContent":["/**\n * TVA (Luxembourg VAT number).\n *\n * 8 digits. First 6 digits mod 89 === last 2 digits.\n *\n * @see https://www.vatify.eu/luxembourg-vat-number.html\n * @see https://www.oecd.org/content/dam/oecd/en/topics/policy-issue-focus/aeoi/luxembourg-tin.pdf\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 let v = clean(value, \" -/.\");\n if (v.startsWith(\"LU\") || v.startsWith(\"lu\")) {\n v = v.slice(2);\n }\n return v;\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 8) {\n return err(\n \"INVALID_LENGTH\",\n \"Luxembourg VAT number must be 8 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Luxembourg VAT number must contain only digits\",\n );\n }\n const front = Number.parseInt(v.slice(0, 6), 10);\n const check = Number.parseInt(v.slice(6, 8), 10);\n if (front % 89 !== check) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Luxembourg VAT number check digit mismatch\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string =>\n `LU${compact(value)}`;\n\n/** Generate a random valid Luxembourg VAT number. */\nconst generate = (): string => {\n const body = randomDigits(6);\n return (\n body +\n String(Number.parseInt(body, 10) % 89).padStart(2, \"0\")\n );\n};\n\n/** Luxembourg VAT Number. */\nconst vat: Validator = {\n name: \"Luxembourg VAT Number\",\n localName: \"Numéro de TVA\",\n abbreviation: \"TVA\",\n aliases: [\"TVA\", \"numéro d'identification TVA\"] as const,\n candidatePattern: \"LU\\\\d{8}\",\n country: \"LU\",\n entityType: \"company\",\n sourceUrl: \"https://pfi.public.lu/\",\n examples: [\"15027442\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default vat;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;AAgBA,MAAM,WAAW,UAA0B;CACzC,IAAI,IAAI,MAAM,OAAO,OAAO;AAC5B,KAAI,EAAE,WAAW,KAAK,IAAI,EAAE,WAAW,KAAK,CAC1C,KAAI,EAAE,MAAM,EAAE;AAEhB,QAAO;;AAGT,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,EACf,QAAO,IACL,kBACA,yCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,iDACD;CAEH,MAAM,QAAQ,OAAO,SAAS,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG;CAChD,MAAM,QAAQ,OAAO,SAAS,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG;AAChD,KAAI,QAAQ,OAAO,MACjB,QAAO,IACL,oBACA,6CACD;AAEH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UACd,KAAK,QAAQ,MAAM;;AAGrB,MAAM,iBAAyB;CAC7B,MAAM,OAAO,aAAa,EAAE;AAC5B,QACE,OACA,OAAO,OAAO,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI;;;AAK3D,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CAAC,OAAO,8BAA8B;CAC/C,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,WAAW;CACtB;CACA;CACA;CACA;CACD"}
|
package/dist/luhn.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/luhn.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
|
+
/**
|
|
9
|
+
* Generate a random Luhn-valid number of the
|
|
10
|
+
* given length (default 16).
|
|
11
|
+
*/
|
|
12
|
+
declare const generate: (length?: number) => string;
|
|
13
|
+
/** Generic Luhn Validator. */
|
|
14
|
+
declare const luhn: Validator;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { compact, luhn as default, format, generate, validate };
|
|
17
|
+
//# sourceMappingURL=luhn.d.ts.map
|
package/dist/luhn.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { clean } from "./_util/clean.js";
|
|
2
|
+
import { randomDigits } from "./_util/generate.js";
|
|
3
|
+
import { err } from "./_util/result.js";
|
|
4
|
+
import { luhnChecksum, luhnValidate } from "./_checksums/luhn.js";
|
|
5
|
+
import { isdigits } from "./_util/strings.js";
|
|
6
|
+
//#region src/luhn.ts
|
|
7
|
+
/**
|
|
8
|
+
* Generic Luhn checksum validation.
|
|
9
|
+
*
|
|
10
|
+
* Validates any digit string using the Luhn
|
|
11
|
+
* algorithm (ISO/IEC 7812-1). No length
|
|
12
|
+
* restriction. For credit card validation
|
|
13
|
+
* (13-19 digits), use `creditcard` instead.
|
|
14
|
+
*/
|
|
15
|
+
const compact = (value) => clean(value, " -.");
|
|
16
|
+
const validate = (value) => {
|
|
17
|
+
const v = compact(value);
|
|
18
|
+
if (v.length < 1) return err("INVALID_LENGTH", "Value must not be empty");
|
|
19
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "Value must contain only digits");
|
|
20
|
+
if (!luhnValidate(v)) return err("INVALID_CHECKSUM", "Luhn check digit does not match");
|
|
21
|
+
return {
|
|
22
|
+
valid: true,
|
|
23
|
+
compact: v
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
const format = (value) => compact(value);
|
|
27
|
+
/**
|
|
28
|
+
* Generate a random Luhn-valid number of the
|
|
29
|
+
* given length (default 16).
|
|
30
|
+
*/
|
|
31
|
+
const generate = (length = 16) => {
|
|
32
|
+
const payload = randomDigits(length - 1);
|
|
33
|
+
const check = (10 - luhnChecksum(`${payload}0`)) % 10;
|
|
34
|
+
return `${payload}${String(check)}`;
|
|
35
|
+
};
|
|
36
|
+
/** Generic Luhn Validator. */
|
|
37
|
+
const luhn = {
|
|
38
|
+
name: "Luhn",
|
|
39
|
+
localName: "Luhn",
|
|
40
|
+
abbreviation: "Luhn",
|
|
41
|
+
entityType: "any",
|
|
42
|
+
examples: ["4111111111111111", "18"],
|
|
43
|
+
compact,
|
|
44
|
+
format,
|
|
45
|
+
validate,
|
|
46
|
+
generate: () => generate()
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { compact, luhn as default, format, generate, validate };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=luhn.js.map
|
package/dist/luhn.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"luhn.js","names":[],"sources":["../src/luhn.ts"],"sourcesContent":["/**\n * Generic Luhn checksum validation.\n *\n * Validates any digit string using the Luhn\n * algorithm (ISO/IEC 7812-1). No length\n * restriction. For credit card validation\n * (13-19 digits), use `creditcard` instead.\n */\n\nimport {\n luhnChecksum,\n luhnValidate,\n} from \"#checksums/luhn\";\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, \" -.\");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length < 1) {\n return err(\"INVALID_LENGTH\", \"Value must not be empty\");\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Value must contain only digits\",\n );\n }\n if (!luhnValidate(v)) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Luhn check digit does not match\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\n/**\n * Generate a random Luhn-valid number of the\n * given length (default 16).\n */\nconst generate = (length = 16): string => {\n const payload = randomDigits(length - 1);\n const partial = `${payload}0`;\n const remainder = luhnChecksum(partial);\n const check = (10 - remainder) % 10;\n return `${payload}${String(check)}`;\n};\n\n/** Generic Luhn Validator. */\nconst luhn: Validator = {\n name: \"Luhn\",\n localName: \"Luhn\",\n abbreviation: \"Luhn\",\n entityType: \"any\",\n examples: [\"4111111111111111\", \"18\"] as const,\n compact,\n format,\n validate,\n generate: () => generate(),\n};\n\nexport default luhn;\nexport { compact, format, generate, validate };\n"],"mappings":";;;;;;;;;;;;;;AAoBA,MAAM,WAAW,UACf,MAAM,OAAO,MAAM;AAErB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,SAAS,EACb,QAAO,IAAI,kBAAkB,0BAA0B;AAEzD,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,iCACD;AAEH,KAAI,CAAC,aAAa,EAAE,CAClB,QAAO,IACL,oBACA,kCACD;AAEH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B,QAAQ,MAAM;;;;;AAMxD,MAAM,YAAY,SAAS,OAAe;CACxC,MAAM,UAAU,aAAa,SAAS,EAAE;CAGxC,MAAM,SAAS,KADG,aADF,GAAG,QAAQ,GACY,IACN;AACjC,QAAO,GAAG,UAAU,OAAO,MAAM;;;AAInC,MAAM,OAAkB;CACtB,MAAM;CACN,WAAW;CACX,cAAc;CACd,YAAY;CACZ,UAAU,CAAC,oBAAoB,KAAK;CACpC;CACA;CACA;CACA,gBAAgB,UAAU;CAC3B"}
|
package/dist/lv/mod.d.ts
ADDED
package/dist/lv/mod.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import vat from "./vat.js";
|
|
3
|
+
//#region src/lv/mod.ts
|
|
4
|
+
var lv_exports = /* @__PURE__ */ __exportAll({ vat: () => vat });
|
|
5
|
+
//#endregion
|
|
6
|
+
export { lv_exports, vat };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","names":[],"sources":["../../src/lv/mod.ts"],"sourcesContent":["export { default as vat } from \"./vat\";\n"],"mappings":""}
|
package/dist/lv/vat.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/lv/vat.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 Latvian VAT number. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** Latvian VAT Number. */
|
|
11
|
+
declare const vat: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, vat as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=vat.d.ts.map
|
package/dist/lv/vat.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { clean } from "../_util/clean.js";
|
|
2
|
+
import { randomDigits, randomInt } from "../_util/generate.js";
|
|
3
|
+
import { err } from "../_util/result.js";
|
|
4
|
+
import { isdigits } from "../_util/strings.js";
|
|
5
|
+
import { weightedSum } from "../_checksums/weighted-sum.js";
|
|
6
|
+
//#region src/lv/vat.ts
|
|
7
|
+
/**
|
|
8
|
+
* PVN (Latvian VAT number).
|
|
9
|
+
*
|
|
10
|
+
* 11 digits. Legal entities (first digit > 3):
|
|
11
|
+
* weights [9,1,4,8,3,10,2,5,7,6,1], sum % 11 === 3.
|
|
12
|
+
* Personal (first digit <= 3): 11-digit format only.
|
|
13
|
+
*
|
|
14
|
+
* @see https://www.vatify.eu/latvia-vat-number.html
|
|
15
|
+
* @see https://www.vid.gov.lv/en
|
|
16
|
+
*/
|
|
17
|
+
const WEIGHTS = [
|
|
18
|
+
9,
|
|
19
|
+
1,
|
|
20
|
+
4,
|
|
21
|
+
8,
|
|
22
|
+
3,
|
|
23
|
+
10,
|
|
24
|
+
2,
|
|
25
|
+
5,
|
|
26
|
+
7,
|
|
27
|
+
6,
|
|
28
|
+
1
|
|
29
|
+
];
|
|
30
|
+
const compact = (value) => {
|
|
31
|
+
let v = clean(value, " -/.");
|
|
32
|
+
if (v.startsWith("LV") || v.startsWith("lv")) v = v.slice(2);
|
|
33
|
+
return v;
|
|
34
|
+
};
|
|
35
|
+
const PERS_WEIGHTS = [
|
|
36
|
+
10,
|
|
37
|
+
5,
|
|
38
|
+
8,
|
|
39
|
+
4,
|
|
40
|
+
2,
|
|
41
|
+
1,
|
|
42
|
+
6,
|
|
43
|
+
3,
|
|
44
|
+
7,
|
|
45
|
+
9
|
|
46
|
+
];
|
|
47
|
+
const checkPersonal = (v) => {
|
|
48
|
+
let sum = 1;
|
|
49
|
+
for (let i = 0; i < 10; i++) sum += PERS_WEIGHTS[i] * Number(v[i]);
|
|
50
|
+
return sum % 11 % 10 === Number(v[10]);
|
|
51
|
+
};
|
|
52
|
+
const validateBirthDate = (v) => {
|
|
53
|
+
const day = Number(v.slice(0, 2));
|
|
54
|
+
const month = Number(v.slice(2, 4));
|
|
55
|
+
const year2 = Number(v.slice(4, 6));
|
|
56
|
+
const fullYear = 1800 + Number(v[6]) * 100 + year2;
|
|
57
|
+
const date = new Date(fullYear, month - 1, day);
|
|
58
|
+
return date.getFullYear() === fullYear && date.getMonth() === month - 1 && date.getDate() === day;
|
|
59
|
+
};
|
|
60
|
+
const validate = (value) => {
|
|
61
|
+
const v = compact(value);
|
|
62
|
+
if (v.length !== 11) return err("INVALID_LENGTH", "Latvian VAT number must be 11 digits");
|
|
63
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "Latvian VAT number must contain only digits");
|
|
64
|
+
if (Number(v[0]) > 3) {
|
|
65
|
+
if (weightedSum(v, WEIGHTS, 11) !== 3) return err("INVALID_CHECKSUM", "Latvian VAT number check digit mismatch");
|
|
66
|
+
} else if (v.startsWith("32")) {
|
|
67
|
+
if (!checkPersonal(v)) return err("INVALID_CHECKSUM", "Latvian personal code check digit mismatch");
|
|
68
|
+
} else {
|
|
69
|
+
if (!validateBirthDate(v)) return err("INVALID_COMPONENT", "Latvian personal code has invalid birth date");
|
|
70
|
+
if (!checkPersonal(v)) return err("INVALID_CHECKSUM", "Latvian personal code check digit mismatch");
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
valid: true,
|
|
74
|
+
compact: v
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
const format = (value) => `LV${compact(value)}`;
|
|
78
|
+
/** Generate a random valid Latvian VAT number. */
|
|
79
|
+
const generate = () => {
|
|
80
|
+
for (;;) {
|
|
81
|
+
const c = String(randomInt(4, 9)) + randomDigits(10);
|
|
82
|
+
if (validate(c).valid) return c;
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
/** Latvian VAT Number. */
|
|
86
|
+
const vat = {
|
|
87
|
+
name: "Latvian VAT Number",
|
|
88
|
+
localName: "PVN reģistrācijas numurs",
|
|
89
|
+
abbreviation: "PVN",
|
|
90
|
+
aliases: ["PVN reģistrācijas numurs", "PVN"],
|
|
91
|
+
candidatePattern: "LV\\d{11}",
|
|
92
|
+
country: "LV",
|
|
93
|
+
entityType: "any",
|
|
94
|
+
sourceUrl: "https://www.vid.gov.lv/en",
|
|
95
|
+
examples: ["40003521600"],
|
|
96
|
+
compact,
|
|
97
|
+
format,
|
|
98
|
+
validate,
|
|
99
|
+
generate
|
|
100
|
+
};
|
|
101
|
+
//#endregion
|
|
102
|
+
export { compact, vat as default, format, generate, validate };
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=vat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vat.js","names":[],"sources":["../../src/lv/vat.ts"],"sourcesContent":["/**\n * PVN (Latvian VAT number).\n *\n * 11 digits. Legal entities (first digit > 3):\n * weights [9,1,4,8,3,10,2,5,7,6,1], sum % 11 === 3.\n * Personal (first digit <= 3): 11-digit format only.\n *\n * @see https://www.vatify.eu/latvia-vat-number.html\n * @see https://www.vid.gov.lv/en\n */\n\nimport { weightedSum } from \"#checksums/weighted-sum\";\nimport { clean } from \"#util/clean\";\nimport { randomDigits, randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nimport type { ValidateResult, Validator } from \"../types\";\n\nconst WEIGHTS = [9, 1, 4, 8, 3, 10, 2, 5, 7, 6, 1];\n\nconst compact = (value: string): string => {\n let v = clean(value, \" -/.\");\n if (v.startsWith(\"LV\") || v.startsWith(\"lv\")) {\n v = v.slice(2);\n }\n return v;\n};\n\nconst PERS_WEIGHTS = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9];\n\nconst checkPersonal = (v: string): boolean => {\n // Initial sum = 1 (not 0), so can't use\n // weightedSum directly\n let sum = 1;\n for (let i = 0; i < 10; i++) {\n // SAFETY: both arrays are length 10+\n // eslint-disable-next-line no-non-null-assertion\n sum += PERS_WEIGHTS[i]! * Number(v[i]);\n }\n return (sum % 11) % 10 === Number(v[10]);\n};\n\nconst validateBirthDate = (v: string): boolean => {\n const day = Number(v.slice(0, 2));\n const month = Number(v.slice(2, 4));\n const year2 = Number(v.slice(4, 6));\n const century = Number(v[6]);\n const fullYear = 1800 + century * 100 + year2;\n const date = new Date(fullYear, month - 1, day);\n return (\n date.getFullYear() === fullYear &&\n date.getMonth() === month - 1 &&\n date.getDate() === day\n );\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 11) {\n return err(\n \"INVALID_LENGTH\",\n \"Latvian VAT number must be 11 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Latvian VAT number must contain only digits\",\n );\n }\n const first = Number(v[0]);\n // Legal entity: first digit > 3\n if (first > 3) {\n const sum = weightedSum(v, WEIGHTS, 11);\n if (sum !== 3) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Latvian VAT number check digit mismatch\",\n );\n }\n } else if (v.startsWith(\"32\")) {\n // New-format personal code (from July 2017),\n // no birth date; checksum only\n if (!checkPersonal(v)) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Latvian personal code check digit mismatch\",\n );\n }\n } else {\n // Old-format personal code: first 6 digits encode\n // birth date as DDMMYY, digit 7 encodes century\n if (!validateBirthDate(v)) {\n return err(\n \"INVALID_COMPONENT\",\n \"Latvian personal code has invalid birth date\",\n );\n }\n if (!checkPersonal(v)) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Latvian personal code check digit mismatch\",\n );\n }\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string =>\n `LV${compact(value)}`;\n\n/** Generate a random valid Latvian VAT number. */\nconst generate = (): string => {\n for (;;) {\n const c = String(randomInt(4, 9)) + randomDigits(10);\n if (validate(c).valid) return c;\n }\n};\n\n/** Latvian VAT Number. */\nconst vat: Validator = {\n name: \"Latvian VAT Number\",\n localName: \"PVN reģistrācijas numurs\",\n abbreviation: \"PVN\",\n aliases: [\"PVN reģistrācijas numurs\", \"PVN\"] as const,\n candidatePattern: \"LV\\\\d{11}\",\n country: \"LV\",\n entityType: \"any\",\n sourceUrl: \"https://www.vid.gov.lv/en\",\n examples: [\"40003521600\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default vat;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAM,UAAU;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAE;AAElD,MAAM,WAAW,UAA0B;CACzC,IAAI,IAAI,MAAM,OAAO,OAAO;AAC5B,KAAI,EAAE,WAAW,KAAK,IAAI,EAAE,WAAW,KAAK,CAC1C,KAAI,EAAE,MAAM,EAAE;AAEhB,QAAO;;AAGT,MAAM,eAAe;CAAC;CAAI;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAE;AAEpD,MAAM,iBAAiB,MAAuB;CAG5C,IAAI,MAAM;AACV,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAGtB,QAAO,aAAa,KAAM,OAAO,EAAE,GAAG;AAExC,QAAQ,MAAM,KAAM,OAAO,OAAO,EAAE,IAAI;;AAG1C,MAAM,qBAAqB,MAAuB;CAChD,MAAM,MAAM,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC;CACjC,MAAM,QAAQ,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC;CACnC,MAAM,QAAQ,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC;CAEnC,MAAM,WAAW,OADD,OAAO,EAAE,GAAG,GACM,MAAM;CACxC,MAAM,OAAO,IAAI,KAAK,UAAU,QAAQ,GAAG,IAAI;AAC/C,QACE,KAAK,aAAa,KAAK,YACvB,KAAK,UAAU,KAAK,QAAQ,KAC5B,KAAK,SAAS,KAAK;;AAIvB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,GACf,QAAO,IACL,kBACA,uCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,8CACD;AAIH,KAFc,OAAO,EAAE,GAAG,GAEd;MACE,YAAY,GAAG,SAAS,GAAG,KAC3B,EACV,QAAO,IACL,oBACA,0CACD;YAEM,EAAE,WAAW,KAAK;MAGvB,CAAC,cAAc,EAAE,CACnB,QAAO,IACL,oBACA,6CACD;QAEE;AAGL,MAAI,CAAC,kBAAkB,EAAE,CACvB,QAAO,IACL,qBACA,+CACD;AAEH,MAAI,CAAC,cAAc,EAAE,CACnB,QAAO,IACL,oBACA,6CACD;;AAGL,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UACd,KAAK,QAAQ,MAAM;;AAGrB,MAAM,iBAAyB;AAC7B,UAAS;EACP,MAAM,IAAI,OAAO,UAAU,GAAG,EAAE,CAAC,GAAG,aAAa,GAAG;AACpD,MAAI,SAAS,EAAE,CAAC,MAAO,QAAO;;;;AAKlC,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CAAC,4BAA4B,MAAM;CAC5C,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,cAAc;CACzB;CACA;CACA;CACA;CACD"}
|
package/dist/ma/ice.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/ma/ice.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 Moroccan ICE. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** Moroccan Company Identification Number. */
|
|
11
|
+
declare const ice: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, ice as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=ice.d.ts.map
|
package/dist/ma/ice.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
|
+
import { mod97 } from "../_checksums/mod97.js";
|
|
6
|
+
//#region src/ma/ice.ts
|
|
7
|
+
/**
|
|
8
|
+
* ICE (Identifiant Commun de l'Entreprise).
|
|
9
|
+
*
|
|
10
|
+
* Moroccan company identification number. 15 digits:
|
|
11
|
+
* 9 enterprise digits + 4 establishment digits +
|
|
12
|
+
* 2 check digits. Uses Mod 97-10 checksum
|
|
13
|
+
* (full number mod 97 must equal 0).
|
|
14
|
+
*
|
|
15
|
+
* @see https://www.ice.gov.ma/
|
|
16
|
+
*/
|
|
17
|
+
const compact = (value) => clean(value, " ");
|
|
18
|
+
const validate = (value) => {
|
|
19
|
+
const v = compact(value);
|
|
20
|
+
if (v.length !== 15) return err("INVALID_LENGTH", "Moroccan ICE must be exactly 15 digits");
|
|
21
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "Moroccan ICE must contain only digits");
|
|
22
|
+
if (mod97(v) !== 0) return err("INVALID_CHECKSUM", "Moroccan ICE check digits mismatch");
|
|
23
|
+
return {
|
|
24
|
+
valid: true,
|
|
25
|
+
compact: v
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
const format = (value) => compact(value);
|
|
29
|
+
/** Generate a random valid Moroccan ICE. */
|
|
30
|
+
const generate = () => {
|
|
31
|
+
for (;;) {
|
|
32
|
+
const c = randomDigits(15);
|
|
33
|
+
if (validate(c).valid) return c;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
/** Moroccan Company Identification Number. */
|
|
37
|
+
const ice = {
|
|
38
|
+
name: "Moroccan Company Identification Number",
|
|
39
|
+
localName: "Identifiant Commun de l'Entreprise",
|
|
40
|
+
abbreviation: "ICE",
|
|
41
|
+
aliases: ["ICE", "Identifiant Commun de l'Entreprise"],
|
|
42
|
+
candidatePattern: "\\d{15}",
|
|
43
|
+
country: "MA",
|
|
44
|
+
entityType: "company",
|
|
45
|
+
compact,
|
|
46
|
+
format,
|
|
47
|
+
validate,
|
|
48
|
+
description: "Moroccan common enterprise identifier",
|
|
49
|
+
sourceUrl: "https://www.ice.gov.ma/",
|
|
50
|
+
lengths: [15],
|
|
51
|
+
examples: ["001561191000066", "002136093000040"],
|
|
52
|
+
generate
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
export { compact, ice as default, format, generate, validate };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=ice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ice.js","names":[],"sources":["../../src/ma/ice.ts"],"sourcesContent":["/**\n * ICE (Identifiant Commun de l'Entreprise).\n *\n * Moroccan company identification number. 15 digits:\n * 9 enterprise digits + 4 establishment digits +\n * 2 check digits. Uses Mod 97-10 checksum\n * (full number mod 97 must equal 0).\n *\n * @see https://www.ice.gov.ma/\n */\n\nimport { mod97 } from \"#checksums/mod97\";\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, \" \");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 15) {\n return err(\n \"INVALID_LENGTH\",\n \"Moroccan ICE must be exactly 15 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Moroccan ICE must contain only digits\",\n );\n }\n if (mod97(v) !== 0) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Moroccan ICE check digits mismatch\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\n/** Generate a random valid Moroccan ICE. */\nconst generate = (): string => {\n for (;;) {\n const c = randomDigits(15);\n if (validate(c).valid) return c;\n }\n};\n\n/** Moroccan Company Identification Number. */\nconst ice: Validator = {\n name: \"Moroccan Company Identification Number\",\n localName: \"Identifiant Commun de l'Entreprise\",\n abbreviation: \"ICE\",\n aliases: [\n \"ICE\",\n \"Identifiant Commun de l'Entreprise\",\n ] as const,\n candidatePattern: \"\\\\d{15}\",\n country: \"MA\",\n entityType: \"company\",\n compact,\n format,\n validate,\n description: \"Moroccan common enterprise identifier\",\n sourceUrl: \"https://www.ice.gov.ma/\",\n lengths: [15] as const,\n examples: [\"001561191000066\", \"002136093000040\"] as const,\n generate,\n};\n\nexport default ice;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAM,WAAW,UACf,MAAM,OAAO,IAAI;AAEnB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,GACf,QAAO,IACL,kBACA,yCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,wCACD;AAEH,KAAI,MAAM,EAAE,KAAK,EACf,QAAO,IACL,oBACA,qCACD;AAEH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B,QAAQ,MAAM;;AAGxD,MAAM,iBAAyB;AAC7B,UAAS;EACP,MAAM,IAAI,aAAa,GAAG;AAC1B,MAAI,SAAS,EAAE,CAAC,MAAO,QAAO;;;;AAKlC,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CACP,OACA,qCACD;CACD,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ;CACA;CACA;CACA,aAAa;CACb,WAAW;CACX,SAAS,CAAC,GAAG;CACb,UAAU,CAAC,mBAAmB,kBAAkB;CAChD;CACD"}
|
package/dist/ma/mod.d.ts
ADDED
package/dist/ma/mod.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import ice from "./ice.js";
|
|
3
|
+
//#region src/ma/mod.ts
|
|
4
|
+
var ma_exports = /* @__PURE__ */ __exportAll({ ice: () => ice });
|
|
5
|
+
//#endregion
|
|
6
|
+
export { ice, ma_exports };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","names":[],"sources":["../../src/ma/mod.ts"],"sourcesContent":["export { default as ice } from \"./ice\";\n"],"mappings":""}
|
package/dist/mc/mod.d.ts
ADDED
package/dist/mc/mod.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import tva from "./tva.js";
|
|
3
|
+
//#region src/mc/mod.ts
|
|
4
|
+
var mc_exports = /* @__PURE__ */ __exportAll({ tva: () => tva });
|
|
5
|
+
//#endregion
|
|
6
|
+
export { mc_exports, tva };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","names":[],"sources":["../../src/mc/mod.ts"],"sourcesContent":["export { default as tva } from \"./tva\";\n"],"mappings":""}
|
package/dist/mc/tva.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/mc/tva.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 Monacan TVA number. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** Monacan VAT Number. */
|
|
11
|
+
declare const tva: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, tva as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=tva.d.ts.map
|
package/dist/mc/tva.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { randomDigits } from "../_util/generate.js";
|
|
2
|
+
import { err } from "../_util/result.js";
|
|
3
|
+
import { compact as compact$1, validate as validate$1 } from "../fr/tva.js";
|
|
4
|
+
//#region src/mc/tva.ts
|
|
5
|
+
/**
|
|
6
|
+
* n° TVA (taxe sur la valeur ajoutée, Monacan VAT).
|
|
7
|
+
*
|
|
8
|
+
* For VAT purposes Monaco is treated as French
|
|
9
|
+
* territory. The number follows the French TVA
|
|
10
|
+
* format but the SIREN part starts with "000"
|
|
11
|
+
* (not a real SIREN). The compact form is
|
|
12
|
+
* prefixed with "FR".
|
|
13
|
+
*
|
|
14
|
+
* @see https://www.economie.gouv.fr/
|
|
15
|
+
*/
|
|
16
|
+
const compact = (value) => {
|
|
17
|
+
return `FR${compact$1(value)}`;
|
|
18
|
+
};
|
|
19
|
+
const validate = (value) => {
|
|
20
|
+
const frResult = validate$1(value);
|
|
21
|
+
if (!frResult.valid) return frResult;
|
|
22
|
+
if (!frResult.compact.slice(2).startsWith("000")) return err("INVALID_COMPONENT", "Monacan TVA SIREN part must start with 000");
|
|
23
|
+
return {
|
|
24
|
+
valid: true,
|
|
25
|
+
compact: `FR${frResult.compact}`
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
const format = (value) => compact(value);
|
|
29
|
+
/** Generate a random valid Monacan TVA number. */
|
|
30
|
+
const generate = () => {
|
|
31
|
+
const siren = "000" + randomDigits(6);
|
|
32
|
+
return "FR" + String((12 + 3 * (Number(siren) % 97)) % 97).padStart(2, "0") + siren;
|
|
33
|
+
};
|
|
34
|
+
/** Monacan VAT Number. */
|
|
35
|
+
const tva = {
|
|
36
|
+
name: "Monacan VAT Number",
|
|
37
|
+
localName: "Numéro de TVA",
|
|
38
|
+
abbreviation: "TVA",
|
|
39
|
+
aliases: ["numéro de TVA", "TVA"],
|
|
40
|
+
candidatePattern: "FR\\d{11}",
|
|
41
|
+
country: "MC",
|
|
42
|
+
entityType: "company",
|
|
43
|
+
sourceUrl: "https://www.economie.gouv.fr/",
|
|
44
|
+
examples: ["FR53000004605"],
|
|
45
|
+
compact,
|
|
46
|
+
format,
|
|
47
|
+
validate,
|
|
48
|
+
generate
|
|
49
|
+
};
|
|
50
|
+
//#endregion
|
|
51
|
+
export { compact, tva as default, format, generate, validate };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=tva.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tva.js","names":["frCompact","frValidate"],"sources":["../../src/mc/tva.ts"],"sourcesContent":["/**\n * n° TVA (taxe sur la valeur ajoutée, Monacan VAT).\n *\n * For VAT purposes Monaco is treated as French\n * territory. The number follows the French TVA\n * format but the SIREN part starts with \"000\"\n * (not a real SIREN). The compact form is\n * prefixed with \"FR\".\n *\n * @see https://www.economie.gouv.fr/\n */\n\nimport { randomDigits } from \"#util/generate\";\nimport { err } from \"#util/result\";\n\nimport {\n compact as frCompact,\n validate as frValidate,\n} from \"../fr/tva\";\nimport type { ValidateResult, Validator } from \"../types\";\n\nconst compact = (value: string): string => {\n const v = frCompact(value);\n return `FR${v}`;\n};\n\nconst validate = (value: string): ValidateResult => {\n const frResult = frValidate(value);\n if (!frResult.valid) {\n return frResult;\n }\n\n // Monaco SIREN part must start with \"000\"\n const siren = frResult.compact.slice(2);\n if (!siren.startsWith(\"000\")) {\n return err(\n \"INVALID_COMPONENT\",\n \"Monacan TVA SIREN part must start with 000\",\n );\n }\n\n return { valid: true, compact: `FR${frResult.compact}` };\n};\n\nconst format = (value: string): string => compact(value);\n\n/** Generate a random valid Monacan TVA number. */\nconst generate = (): string => {\n const siren = \"000\" + randomDigits(6);\n const prefix = String(\n (12 + 3 * (Number(siren) % 97)) % 97,\n ).padStart(2, \"0\");\n return \"FR\" + prefix + siren;\n};\n\n/** Monacan VAT Number. */\nconst tva: Validator = {\n name: \"Monacan VAT Number\",\n localName: \"Numéro de TVA\",\n abbreviation: \"TVA\",\n aliases: [\"numéro de TVA\", \"TVA\"] as const,\n candidatePattern: \"FR\\\\d{11}\",\n country: \"MC\",\n entityType: \"company\",\n sourceUrl: \"https://www.economie.gouv.fr/\",\n examples: [\"FR53000004605\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default tva;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,MAAM,WAAW,UAA0B;AAEzC,QAAO,KADGA,UAAU,MAAM;;AAI5B,MAAM,YAAY,UAAkC;CAClD,MAAM,WAAWC,WAAW,MAAM;AAClC,KAAI,CAAC,SAAS,MACZ,QAAO;AAKT,KAAI,CADU,SAAS,QAAQ,MAAM,EAAE,CAC5B,WAAW,MAAM,CAC1B,QAAO,IACL,qBACA,6CACD;AAGH,QAAO;EAAE,OAAO;EAAM,SAAS,KAAK,SAAS;EAAW;;AAG1D,MAAM,UAAU,UAA0B,QAAQ,MAAM;;AAGxD,MAAM,iBAAyB;CAC7B,MAAM,QAAQ,QAAQ,aAAa,EAAE;AAIrC,QAAO,OAHQ,QACZ,KAAK,KAAK,OAAO,MAAM,GAAG,OAAO,GACnC,CAAC,SAAS,GAAG,IAAI,GACK;;;AAIzB,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CAAC,iBAAiB,MAAM;CACjC,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,gBAAgB;CAC3B;CACA;CACA;CACA;CACD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/md/idno.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
|
+
/** Moldavian Company Identification Number. */
|
|
9
|
+
declare const idno: Validator;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { compact, idno as default, format, validate };
|
|
12
|
+
//# sourceMappingURL=idno.d.ts.map
|
package/dist/md/idno.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { clean } from "../_util/clean.js";
|
|
2
|
+
import { err } from "../_util/result.js";
|
|
3
|
+
import { isdigits } from "../_util/strings.js";
|
|
4
|
+
//#region src/md/idno.ts
|
|
5
|
+
/**
|
|
6
|
+
* IDNO (Moldavian company identification number).
|
|
7
|
+
*
|
|
8
|
+
* 13 digits: first digit identifies the registry,
|
|
9
|
+
* next three are the assignment year, followed by
|
|
10
|
+
* five identifier digits and a check digit.
|
|
11
|
+
* Checksum uses weights [7, 3, 1] repeated.
|
|
12
|
+
*
|
|
13
|
+
* @see https://www.idno.md
|
|
14
|
+
*/
|
|
15
|
+
const WEIGHTS = [
|
|
16
|
+
7,
|
|
17
|
+
3,
|
|
18
|
+
1,
|
|
19
|
+
7,
|
|
20
|
+
3,
|
|
21
|
+
1,
|
|
22
|
+
7,
|
|
23
|
+
3,
|
|
24
|
+
1,
|
|
25
|
+
7,
|
|
26
|
+
3,
|
|
27
|
+
1
|
|
28
|
+
];
|
|
29
|
+
const calcCheckDigit = (number) => {
|
|
30
|
+
let sum = 0;
|
|
31
|
+
for (let i = 0; i < 12; i++) sum += (WEIGHTS[i] ?? 0) * Number(number[i]);
|
|
32
|
+
return sum % 10;
|
|
33
|
+
};
|
|
34
|
+
const compact = (value) => clean(value, " ");
|
|
35
|
+
const validate = (value) => {
|
|
36
|
+
const v = compact(value);
|
|
37
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "Moldavian IDNO must contain only digits");
|
|
38
|
+
if (v.length !== 13) return err("INVALID_LENGTH", "Moldavian IDNO must be 13 digits");
|
|
39
|
+
if (calcCheckDigit(v) !== Number(v[12])) return err("INVALID_CHECKSUM", "Moldavian IDNO check digit mismatch");
|
|
40
|
+
return {
|
|
41
|
+
valid: true,
|
|
42
|
+
compact: v
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
const format = (value) => compact(value);
|
|
46
|
+
const generate = () => {
|
|
47
|
+
let digits = "";
|
|
48
|
+
for (let i = 0; i < 12; i++) digits += String(Math.floor(Math.random() * 10));
|
|
49
|
+
return digits + String(calcCheckDigit(digits));
|
|
50
|
+
};
|
|
51
|
+
/** Moldavian Company Identification Number. */
|
|
52
|
+
const idno = {
|
|
53
|
+
name: "Moldavian Company Identification Number",
|
|
54
|
+
localName: "IDNO",
|
|
55
|
+
abbreviation: "IDNO",
|
|
56
|
+
aliases: ["IDNO", "cod de identificare"],
|
|
57
|
+
candidatePattern: "\\d{13}",
|
|
58
|
+
country: "MD",
|
|
59
|
+
entityType: "company",
|
|
60
|
+
lengths: [13],
|
|
61
|
+
sourceUrl: "https://www.idno.md/",
|
|
62
|
+
examples: ["1008600038413"],
|
|
63
|
+
compact,
|
|
64
|
+
format,
|
|
65
|
+
validate,
|
|
66
|
+
generate
|
|
67
|
+
};
|
|
68
|
+
//#endregion
|
|
69
|
+
export { compact, idno as default, format, validate };
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=idno.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idno.js","names":[],"sources":["../../src/md/idno.ts"],"sourcesContent":["/**\n * IDNO (Moldavian company identification number).\n *\n * 13 digits: first digit identifies the registry,\n * next three are the assignment year, followed by\n * five identifier digits and a check digit.\n * Checksum uses weights [7, 3, 1] repeated.\n *\n * @see https://www.idno.md\n */\n\nimport { clean } from \"#util/clean\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nimport type { ValidateResult, Validator } from \"../types\";\n\nconst WEIGHTS = [\n 7, 3, 1, 7, 3, 1, 7, 3, 1, 7, 3, 1,\n] as const;\n\nconst calcCheckDigit = (number: string): number => {\n let sum = 0;\n for (let i = 0; i < 12; i++) {\n sum += (WEIGHTS[i] ?? 0) * Number(number[i]);\n }\n return sum % 10;\n};\n\nconst compact = (value: string): string =>\n clean(value, \" \");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Moldavian IDNO must contain only digits\",\n );\n }\n if (v.length !== 13) {\n return err(\n \"INVALID_LENGTH\",\n \"Moldavian IDNO must be 13 digits\",\n );\n }\n const expected = calcCheckDigit(v);\n if (expected !== Number(v[12])) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Moldavian IDNO check digit mismatch\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\nconst generate = (): string => {\n let digits = \"\";\n for (let i = 0; i < 12; i++) {\n digits += String(Math.floor(Math.random() * 10));\n }\n return digits + String(calcCheckDigit(digits));\n};\n\n/** Moldavian Company Identification Number. */\nconst idno: Validator = {\n name: \"Moldavian Company Identification Number\",\n localName: \"IDNO\",\n abbreviation: \"IDNO\",\n aliases: [\"IDNO\", \"cod de identificare\"] as const,\n candidatePattern: \"\\\\d{13}\",\n country: \"MD\",\n entityType: \"company\",\n lengths: [13] as const,\n sourceUrl: \"https://www.idno.md/\",\n examples: [\"1008600038413\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default idno;\nexport { compact, format, validate };\n"],"mappings":";;;;;;;;;;;;;;AAiBA,MAAM,UAAU;CACd;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAClC;AAED,MAAM,kBAAkB,WAA2B;CACjD,IAAI,MAAM;AACV,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IACtB,SAAQ,QAAQ,MAAM,KAAK,OAAO,OAAO,GAAG;AAE9C,QAAO,MAAM;;AAGf,MAAM,WAAW,UACf,MAAM,OAAO,IAAI;AAEnB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,0CACD;AAEH,KAAI,EAAE,WAAW,GACf,QAAO,IACL,kBACA,mCACD;AAGH,KADiB,eAAe,EAAE,KACjB,OAAO,EAAE,IAAI,CAC5B,QAAO,IACL,oBACA,sCACD;AAEH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B,QAAQ,MAAM;AAExD,MAAM,iBAAyB;CAC7B,IAAI,SAAS;AACb,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IACtB,WAAU,OAAO,KAAK,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC;AAElD,QAAO,SAAS,OAAO,eAAe,OAAO,CAAC;;;AAIhD,MAAM,OAAkB;CACtB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CAAC,QAAQ,sBAAsB;CACxC,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,SAAS,CAAC,GAAG;CACb,WAAW;CACX,UAAU,CAAC,gBAAgB;CAC3B;CACA;CACA;CACA;CACD"}
|
package/dist/md/mod.d.ts
ADDED
package/dist/md/mod.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import idno from "./idno.js";
|
|
3
|
+
//#region src/md/mod.ts
|
|
4
|
+
var md_exports = /* @__PURE__ */ __exportAll({ idno: () => idno });
|
|
5
|
+
//#endregion
|
|
6
|
+
export { idno, md_exports };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","names":[],"sources":["../../src/md/mod.ts"],"sourcesContent":["export { default as idno } from \"./idno\";\n"],"mappings":""}
|