@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/fr/tva.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
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/fr/tva.ts
|
|
7
|
+
/**
|
|
8
|
+
* n° TVA (Numéro de TVA intracommunautaire).
|
|
9
|
+
*
|
|
10
|
+
* French VAT number. 11 characters: 2-char
|
|
11
|
+
* check prefix + 9-digit SIREN. The prefix
|
|
12
|
+
* can be numeric (old style) or alphanumeric
|
|
13
|
+
* (new style, letters from a restricted
|
|
14
|
+
* alphabet excluding I and O).
|
|
15
|
+
*
|
|
16
|
+
* @see https://www.economie.gouv.fr/
|
|
17
|
+
*/
|
|
18
|
+
const ALPHABET = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
|
|
19
|
+
const compact = (value) => {
|
|
20
|
+
let v = clean(value, " -.");
|
|
21
|
+
if (v.startsWith("FR") || v.startsWith("fr")) v = v.slice(2);
|
|
22
|
+
return v.toUpperCase();
|
|
23
|
+
};
|
|
24
|
+
const validate = (value) => {
|
|
25
|
+
const v = compact(value);
|
|
26
|
+
if (v.length !== 11) return err("INVALID_LENGTH", "French TVA must be 11 characters");
|
|
27
|
+
const prefix = v.slice(0, 2);
|
|
28
|
+
const siren = v.slice(2);
|
|
29
|
+
if (!isdigits(siren)) return err("INVALID_FORMAT", "French TVA SIREN part must be digits");
|
|
30
|
+
const p0 = prefix[0] ?? "";
|
|
31
|
+
const p1 = prefix[1] ?? "";
|
|
32
|
+
if (ALPHABET.indexOf(p0) < 0 || ALPHABET.indexOf(p1) < 0) return err("INVALID_FORMAT", "French TVA prefix contains invalid chars");
|
|
33
|
+
if (!siren.startsWith("000") && !luhnValidate(siren)) return err("INVALID_CHECKSUM", "French TVA SIREN part fails Luhn check");
|
|
34
|
+
const c0 = ALPHABET.indexOf(p0);
|
|
35
|
+
const c1 = ALPHABET.indexOf(p1);
|
|
36
|
+
if (c0 < 10 && c1 < 10) {
|
|
37
|
+
if (Number(prefix) !== Number(siren + "12") % 97) return err("INVALID_CHECKSUM", "French TVA check digits mismatch");
|
|
38
|
+
} else {
|
|
39
|
+
let cvalue;
|
|
40
|
+
if (c0 < 10) cvalue = c0 * 24 + c1 - 10;
|
|
41
|
+
else cvalue = c0 * 34 + c1 - 100;
|
|
42
|
+
if ((Number(siren) + 1 + Math.floor(cvalue / 11)) % 11 !== cvalue % 11) return err("INVALID_CHECKSUM", "French TVA check digits mismatch");
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
valid: true,
|
|
46
|
+
compact: v
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
const format = (value) => `FR${compact(value)}`;
|
|
50
|
+
/** Generate a random valid French TVA. */
|
|
51
|
+
const generate = () => {
|
|
52
|
+
const sp = randomDigits(8);
|
|
53
|
+
const cs = luhnChecksum(sp + "0");
|
|
54
|
+
const siren = sp + String((10 - cs) % 10);
|
|
55
|
+
return String((12 + 3 * (Number(siren) % 97)) % 97).padStart(2, "0") + siren;
|
|
56
|
+
};
|
|
57
|
+
/** French VAT Number. */
|
|
58
|
+
const tva = {
|
|
59
|
+
name: "French VAT Number",
|
|
60
|
+
localName: "Numéro de TVA intracommunautaire",
|
|
61
|
+
abbreviation: "TVA",
|
|
62
|
+
aliases: [
|
|
63
|
+
"numéro de TVA",
|
|
64
|
+
"TVA intracommunautaire",
|
|
65
|
+
"FR VAT"
|
|
66
|
+
],
|
|
67
|
+
candidatePattern: "FR[A-Z0-9]{2}\\d{9}",
|
|
68
|
+
country: "FR",
|
|
69
|
+
entityType: "company",
|
|
70
|
+
sourceUrl: "https://www.economie.gouv.fr/",
|
|
71
|
+
examples: ["40303265045", "K7399859412"],
|
|
72
|
+
compact,
|
|
73
|
+
format,
|
|
74
|
+
validate,
|
|
75
|
+
generate
|
|
76
|
+
};
|
|
77
|
+
//#endregion
|
|
78
|
+
export { compact, tva as default, format, generate, validate };
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=tva.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tva.js","names":[],"sources":["../../src/fr/tva.ts"],"sourcesContent":["/**\n * n° TVA (Numéro de TVA intracommunautaire).\n *\n * French VAT number. 11 characters: 2-char\n * check prefix + 9-digit SIREN. The prefix\n * can be numeric (old style) or alphanumeric\n * (new style, letters from a restricted\n * alphabet excluding I and O).\n *\n * @see https://www.economie.gouv.fr/\n */\n\nimport {\n luhnValidate,\n luhnChecksum,\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 ALPHABET = \"0123456789ABCDEFGHJKLMNPQRSTUVWXYZ\";\n\nconst compact = (value: string): string => {\n let v = clean(value, \" -.\");\n if (v.startsWith(\"FR\") || v.startsWith(\"fr\")) {\n v = v.slice(2);\n }\n return v.toUpperCase();\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 11) {\n return err(\n \"INVALID_LENGTH\",\n \"French TVA must be 11 characters\",\n );\n }\n\n const prefix = v.slice(0, 2);\n const siren = v.slice(2);\n\n if (!isdigits(siren)) {\n return err(\n \"INVALID_FORMAT\",\n \"French TVA SIREN part must be digits\",\n );\n }\n\n // Validate prefix characters are in alphabet\n const p0 = prefix[0] ?? \"\";\n const p1 = prefix[1] ?? \"\";\n if (\n ALPHABET.indexOf(p0) < 0 ||\n ALPHABET.indexOf(p1) < 0\n ) {\n return err(\n \"INVALID_FORMAT\",\n \"French TVA prefix contains invalid chars\",\n );\n }\n\n // SIREN validation (skip Monaco: starts with 000)\n if (!siren.startsWith(\"000\") && !luhnValidate(siren)) {\n return err(\n \"INVALID_CHECKSUM\",\n \"French TVA SIREN part fails Luhn check\",\n );\n }\n\n const c0 = ALPHABET.indexOf(p0);\n const c1 = ALPHABET.indexOf(p1);\n\n if (c0 < 10 && c1 < 10) {\n // Old-style: both digits numeric\n const check = Number(prefix);\n const expected = Number(siren + \"12\") % 97;\n if (check !== expected) {\n return err(\n \"INVALID_CHECKSUM\",\n \"French TVA check digits mismatch\",\n );\n }\n } else {\n // New-style: at least one letter\n let cvalue: number;\n if (c0 < 10) {\n cvalue = c0 * 24 + c1 - 10;\n } else {\n cvalue = c0 * 34 + c1 - 100;\n }\n const sirenNum = Number(siren);\n if (\n (sirenNum + 1 + Math.floor(cvalue / 11)) % 11 !==\n cvalue % 11\n ) {\n return err(\n \"INVALID_CHECKSUM\",\n \"French TVA check digits mismatch\",\n );\n }\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string =>\n `FR${compact(value)}`;\n\n/** Generate a random valid French TVA. */\nconst generate = (): string => {\n const sp = randomDigits(8);\n const cs = luhnChecksum(sp + \"0\");\n const siren = sp + String((10 - cs) % 10);\n const prefix = String(\n (12 + 3 * (Number(siren) % 97)) % 97,\n ).padStart(2, \"0\");\n return prefix + siren;\n};\n\n/** French VAT Number. */\nconst tva: Validator = {\n name: \"French VAT Number\",\n localName: \"Numéro de TVA intracommunautaire\",\n abbreviation: \"TVA\",\n aliases: [\n \"numéro de TVA\",\n \"TVA intracommunautaire\",\n \"FR VAT\",\n ] as const,\n candidatePattern: \"FR[A-Z0-9]{2}\\\\d{9}\",\n country: \"FR\",\n entityType: \"company\",\n sourceUrl: \"https://www.economie.gouv.fr/\",\n examples: [\"40303265045\", \"K7399859412\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default tva;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,MAAM,WAAW;AAEjB,MAAM,WAAW,UAA0B;CACzC,IAAI,IAAI,MAAM,OAAO,MAAM;AAC3B,KAAI,EAAE,WAAW,KAAK,IAAI,EAAE,WAAW,KAAK,CAC1C,KAAI,EAAE,MAAM,EAAE;AAEhB,QAAO,EAAE,aAAa;;AAGxB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,GACf,QAAO,IACL,kBACA,mCACD;CAGH,MAAM,SAAS,EAAE,MAAM,GAAG,EAAE;CAC5B,MAAM,QAAQ,EAAE,MAAM,EAAE;AAExB,KAAI,CAAC,SAAS,MAAM,CAClB,QAAO,IACL,kBACA,uCACD;CAIH,MAAM,KAAK,OAAO,MAAM;CACxB,MAAM,KAAK,OAAO,MAAM;AACxB,KACE,SAAS,QAAQ,GAAG,GAAG,KACvB,SAAS,QAAQ,GAAG,GAAG,EAEvB,QAAO,IACL,kBACA,2CACD;AAIH,KAAI,CAAC,MAAM,WAAW,MAAM,IAAI,CAAC,aAAa,MAAM,CAClD,QAAO,IACL,oBACA,yCACD;CAGH,MAAM,KAAK,SAAS,QAAQ,GAAG;CAC/B,MAAM,KAAK,SAAS,QAAQ,GAAG;AAE/B,KAAI,KAAK,MAAM,KAAK;MAEJ,OAAO,OAAO,KACX,OAAO,QAAQ,KAAK,GAAG,GAEtC,QAAO,IACL,oBACA,mCACD;QAEE;EAEL,IAAI;AACJ,MAAI,KAAK,GACP,UAAS,KAAK,KAAK,KAAK;MAExB,UAAS,KAAK,KAAK,KAAK;AAG1B,OADiB,OAAO,MAAM,GAEhB,IAAI,KAAK,MAAM,SAAS,GAAG,IAAI,OAC3C,SAAS,GAET,QAAO,IACL,oBACA,mCACD;;AAIL,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UACd,KAAK,QAAQ,MAAM;;AAGrB,MAAM,iBAAyB;CAC7B,MAAM,KAAK,aAAa,EAAE;CAC1B,MAAM,KAAK,aAAa,KAAK,IAAI;CACjC,MAAM,QAAQ,KAAK,QAAQ,KAAK,MAAM,GAAG;AAIzC,QAHe,QACZ,KAAK,KAAK,OAAO,MAAM,GAAG,OAAO,GACnC,CAAC,SAAS,GAAG,IAAI,GACF;;;AAIlB,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EACP;EACA;EACA;EACD;CACD,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,eAAe,cAAc;CACxC;CACA;CACA;CACA;CACD"}
|
package/dist/gb/mod.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import nino from "./nino.js";
|
|
3
|
+
import sedol from "./sedol.js";
|
|
4
|
+
import utr from "./utr.js";
|
|
5
|
+
import vat from "./vat.js";
|
|
6
|
+
|
|
7
|
+
//#region src/gb/mod.d.ts
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { mod_d_exports, nino, sedol, utr, vat };
|
|
11
|
+
//# sourceMappingURL=mod.d.ts.map
|
package/dist/gb/mod.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import vat from "./vat.js";
|
|
3
|
+
import nino from "./nino.js";
|
|
4
|
+
import sedol from "./sedol.js";
|
|
5
|
+
import utr from "./utr.js";
|
|
6
|
+
//#region src/gb/mod.ts
|
|
7
|
+
var gb_exports = /* @__PURE__ */ __exportAll({
|
|
8
|
+
nino: () => nino,
|
|
9
|
+
sedol: () => sedol,
|
|
10
|
+
utr: () => utr,
|
|
11
|
+
vat: () => vat
|
|
12
|
+
});
|
|
13
|
+
//#endregion
|
|
14
|
+
export { gb_exports, nino, sedol, utr, vat };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","names":[],"sources":["../../src/gb/mod.ts"],"sourcesContent":["export { default as nino } from \"./nino\";\nexport { default as sedol } from \"./sedol\";\nexport { default as utr } from \"./utr\";\nexport { default as vat } from \"./vat\";\n"],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/gb/nino.d.ts
|
|
4
|
+
/** Generate a random valid UK NINO. */
|
|
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
|
+
/** UK National Insurance Number. */
|
|
10
|
+
declare const nino: Validator;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { compact, nino as default, format, generate, validate };
|
|
13
|
+
//# sourceMappingURL=nino.d.ts.map
|
package/dist/gb/nino.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
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/gb/nino.ts
|
|
5
|
+
/**
|
|
6
|
+
* NINO (National Insurance Number).
|
|
7
|
+
*
|
|
8
|
+
* UK National Insurance Number. Format: 2 letters
|
|
9
|
+
* + 6 digits + 1 suffix letter (A, B, C, or D).
|
|
10
|
+
* Validated by format and prefix rules only; there
|
|
11
|
+
* is no checksum.
|
|
12
|
+
*
|
|
13
|
+
* @see https://www.gov.uk/hmrc-internal-manuals/national-insurance-manual/nim39110
|
|
14
|
+
*/
|
|
15
|
+
/** Generate a random valid UK NINO. */
|
|
16
|
+
const generate = () => {
|
|
17
|
+
const validFirst = "ABCEGHJKLMNOPRSTWXYZ";
|
|
18
|
+
const validSecond = "ABCEGHJKLMNPRSTWXYZ";
|
|
19
|
+
const suffixes = "ABCD";
|
|
20
|
+
let first;
|
|
21
|
+
let second;
|
|
22
|
+
let prefix;
|
|
23
|
+
do {
|
|
24
|
+
first = validFirst[randomInt(0, 19)];
|
|
25
|
+
second = validSecond[randomInt(0, 18)];
|
|
26
|
+
prefix = first + second;
|
|
27
|
+
} while (INVALID_PREFIX.has(prefix));
|
|
28
|
+
const digits = randomDigits(6);
|
|
29
|
+
const suffix = suffixes[randomInt(0, 3)];
|
|
30
|
+
return `${prefix}${digits}${suffix}`;
|
|
31
|
+
};
|
|
32
|
+
const INVALID_FIRST = new Set([
|
|
33
|
+
"D",
|
|
34
|
+
"F",
|
|
35
|
+
"I",
|
|
36
|
+
"Q",
|
|
37
|
+
"U",
|
|
38
|
+
"V"
|
|
39
|
+
]);
|
|
40
|
+
const INVALID_SECOND = new Set([
|
|
41
|
+
"D",
|
|
42
|
+
"F",
|
|
43
|
+
"I",
|
|
44
|
+
"O",
|
|
45
|
+
"Q",
|
|
46
|
+
"U",
|
|
47
|
+
"V"
|
|
48
|
+
]);
|
|
49
|
+
const INVALID_PREFIX = new Set([
|
|
50
|
+
"BG",
|
|
51
|
+
"GB",
|
|
52
|
+
"NK",
|
|
53
|
+
"KN",
|
|
54
|
+
"TN",
|
|
55
|
+
"NT",
|
|
56
|
+
"ZZ"
|
|
57
|
+
]);
|
|
58
|
+
const compact = (value) => clean(value, " -").toUpperCase();
|
|
59
|
+
const validate = (value) => {
|
|
60
|
+
const v = compact(value);
|
|
61
|
+
if (v.length !== 9) return err("INVALID_LENGTH", "UK NINO must be 9 characters");
|
|
62
|
+
if (!/^[A-Z]{2}\d{6}[A-D]$/.test(v)) return err("INVALID_FORMAT", "UK NINO must be 2 letters, 6 digits, then A/B/C/D");
|
|
63
|
+
const first = v[0];
|
|
64
|
+
const second = v[1];
|
|
65
|
+
const prefix = v.slice(0, 2);
|
|
66
|
+
if (INVALID_FIRST.has(first)) return err("INVALID_COMPONENT", `UK NINO first letter cannot be ${first}`);
|
|
67
|
+
if (INVALID_SECOND.has(second)) return err("INVALID_COMPONENT", `UK NINO second letter cannot be ${second}`);
|
|
68
|
+
if (INVALID_PREFIX.has(prefix)) return err("INVALID_COMPONENT", `UK NINO prefix ${prefix} is not allowed`);
|
|
69
|
+
return {
|
|
70
|
+
valid: true,
|
|
71
|
+
compact: v
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
const format = (value) => {
|
|
75
|
+
const v = compact(value);
|
|
76
|
+
return `${v.slice(0, 2)} ${v.slice(2, 4)} ${v.slice(4, 6)} ${v.slice(6, 8)} ${v.slice(8)}`;
|
|
77
|
+
};
|
|
78
|
+
/** UK National Insurance Number. */
|
|
79
|
+
const nino = {
|
|
80
|
+
name: "UK National Insurance Number",
|
|
81
|
+
localName: "National Insurance Number",
|
|
82
|
+
abbreviation: "NINO",
|
|
83
|
+
aliases: [
|
|
84
|
+
"National Insurance number",
|
|
85
|
+
"NINO",
|
|
86
|
+
"NI number"
|
|
87
|
+
],
|
|
88
|
+
candidatePattern: "[A-Z]{2}\\d{6}[A-Z]",
|
|
89
|
+
country: "GB",
|
|
90
|
+
entityType: "person",
|
|
91
|
+
description: "UK National Insurance Number for tax and benefits",
|
|
92
|
+
sourceUrl: "https://www.gov.uk/hmrc-internal-manuals/national-insurance-manual/nim39110",
|
|
93
|
+
lengths: [9],
|
|
94
|
+
examples: ["AB123456C"],
|
|
95
|
+
compact,
|
|
96
|
+
format,
|
|
97
|
+
validate,
|
|
98
|
+
generate
|
|
99
|
+
};
|
|
100
|
+
//#endregion
|
|
101
|
+
export { compact, nino as default, format, generate, validate };
|
|
102
|
+
|
|
103
|
+
//# sourceMappingURL=nino.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nino.js","names":[],"sources":["../../src/gb/nino.ts"],"sourcesContent":["/** Generate a random valid UK NINO. */\nconst generate = (): string => {\n const validFirst = \"ABCEGHJKLMNOPRSTWXYZ\";\n const validSecond = \"ABCEGHJKLMNPRSTWXYZ\";\n const suffixes = \"ABCD\";\n let first: string;\n let second: string;\n let prefix: string;\n do {\n first =\n validFirst[randomInt(0, validFirst.length - 1)]!;\n second =\n validSecond[randomInt(0, validSecond.length - 1)]!;\n prefix = first + second;\n } while (INVALID_PREFIX.has(prefix));\n const digits = randomDigits(6);\n const suffix =\n suffixes[randomInt(0, suffixes.length - 1)]!;\n return `${prefix}${digits}${suffix}`;\n};\n\n/**\n * NINO (National Insurance Number).\n *\n * UK National Insurance Number. Format: 2 letters\n * + 6 digits + 1 suffix letter (A, B, C, or D).\n * Validated by format and prefix rules only; there\n * is no checksum.\n *\n * @see https://www.gov.uk/hmrc-internal-manuals/national-insurance-manual/nim39110\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 INVALID_FIRST = new Set([\n \"D\",\n \"F\",\n \"I\",\n \"Q\",\n \"U\",\n \"V\",\n]);\n\nconst INVALID_SECOND = new Set([\n \"D\",\n \"F\",\n \"I\",\n \"O\",\n \"Q\",\n \"U\",\n \"V\",\n]);\n\nconst INVALID_PREFIX = new Set([\n \"BG\",\n \"GB\",\n \"NK\",\n \"KN\",\n \"TN\",\n \"NT\",\n \"ZZ\",\n]);\n\nconst compact = (value: string): string =>\n clean(value, \" -\").toUpperCase();\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 9) {\n return err(\n \"INVALID_LENGTH\",\n \"UK NINO must be 9 characters\",\n );\n }\n\n if (!/^[A-Z]{2}\\d{6}[A-D]$/.test(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"UK NINO must be 2 letters, 6 digits, \" +\n \"then A/B/C/D\",\n );\n }\n\n const first = v[0]!;\n const second = v[1]!;\n const prefix = v.slice(0, 2);\n\n if (INVALID_FIRST.has(first)) {\n return err(\n \"INVALID_COMPONENT\",\n `UK NINO first letter cannot be ${first}`,\n );\n }\n\n if (INVALID_SECOND.has(second)) {\n return err(\n \"INVALID_COMPONENT\",\n `UK NINO second letter cannot be ${second}`,\n );\n }\n\n if (INVALID_PREFIX.has(prefix)) {\n return err(\n \"INVALID_COMPONENT\",\n `UK NINO prefix ${prefix} is not allowed`,\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return (\n `${v.slice(0, 2)} ${v.slice(2, 4)}` +\n ` ${v.slice(4, 6)} ${v.slice(6, 8)}` +\n ` ${v.slice(8)}`\n );\n};\n\n/** UK National Insurance Number. */\nconst nino: Validator = {\n name: \"UK National Insurance Number\",\n localName: \"National Insurance Number\",\n abbreviation: \"NINO\",\n aliases: [\n \"National Insurance number\",\n \"NINO\",\n \"NI number\",\n ] as const,\n candidatePattern: \"[A-Z]{2}\\\\d{6}[A-Z]\",\n country: \"GB\",\n entityType: \"person\",\n description:\n \"UK National Insurance Number for tax \" +\n \"and benefits\",\n sourceUrl:\n \"https://www.gov.uk/hmrc-internal-manuals/\" +\n \"national-insurance-manual/nim39110\",\n lengths: [9] as const,\n examples: [\"AB123456C\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default nino;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;AACA,MAAM,iBAAyB;CAC7B,MAAM,aAAa;CACnB,MAAM,cAAc;CACpB,MAAM,WAAW;CACjB,IAAI;CACJ,IAAI;CACJ,IAAI;AACJ,IAAG;AACD,UACE,WAAW,UAAU,GAAG,GAAsB;AAChD,WACE,YAAY,UAAU,GAAG,GAAuB;AAClD,WAAS,QAAQ;UACV,eAAe,IAAI,OAAO;CACnC,MAAM,SAAS,aAAa,EAAE;CAC9B,MAAM,SACJ,SAAS,UAAU,GAAG,EAAoB;AAC5C,QAAO,GAAG,SAAS,SAAS;;AAoB9B,MAAM,gBAAgB,IAAI,IAAI;CAC5B;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAM,iBAAiB,IAAI,IAAI;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAM,iBAAiB,IAAI,IAAI;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAM,WAAW,UACf,MAAM,OAAO,KAAK,CAAC,aAAa;AAElC,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,EACf,QAAO,IACL,kBACA,+BACD;AAGH,KAAI,CAAC,uBAAuB,KAAK,EAAE,CACjC,QAAO,IACL,kBACA,oDAED;CAGH,MAAM,QAAQ,EAAE;CAChB,MAAM,SAAS,EAAE;CACjB,MAAM,SAAS,EAAE,MAAM,GAAG,EAAE;AAE5B,KAAI,cAAc,IAAI,MAAM,CAC1B,QAAO,IACL,qBACA,kCAAkC,QACnC;AAGH,KAAI,eAAe,IAAI,OAAO,CAC5B,QAAO,IACL,qBACA,mCAAmC,SACpC;AAGH,KAAI,eAAe,IAAI,OAAO,CAC5B,QAAO,IACL,qBACA,kBAAkB,OAAO,iBAC1B;AAGH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM;AACxB,QACE,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAA,GAC7B,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAA,GAC9B,EAAE,MAAM,EAAE;;;AAKlB,MAAM,OAAkB;CACtB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EACP;EACA;EACA;EACD;CACD,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,aACE;CAEF,WACE;CAEF,SAAS,CAAC,EAAE;CACZ,UAAU,CAAC,YAAY;CACvB;CACA;CACA;CACA;CACD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/gb/sedol.d.ts
|
|
4
|
+
|
|
5
|
+
declare const calcCheckDigit: (number: string) => string;
|
|
6
|
+
declare const compact: (value: string) => string;
|
|
7
|
+
declare const validate: (value: string) => ValidateResult;
|
|
8
|
+
declare const format: (value: string) => string;
|
|
9
|
+
/** Generate a random valid SEDOL. */
|
|
10
|
+
declare const generate: () => string;
|
|
11
|
+
/** Stock Exchange Daily Official List number. */
|
|
12
|
+
declare const sedol: Validator;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { calcCheckDigit, compact, sedol as default, format, generate, validate };
|
|
15
|
+
//# sourceMappingURL=sedol.d.ts.map
|
package/dist/gb/sedol.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { clean } from "../_util/clean.js";
|
|
2
|
+
import { randomInt } from "../_util/generate.js";
|
|
3
|
+
import { err } from "../_util/result.js";
|
|
4
|
+
import { isdigits } from "../_util/strings.js";
|
|
5
|
+
//#region src/gb/sedol.ts
|
|
6
|
+
/**
|
|
7
|
+
* SEDOL (Stock Exchange Daily Official List number).
|
|
8
|
+
*
|
|
9
|
+
* 7-character security identifier used in the UK and
|
|
10
|
+
* Ireland, assigned by the London Stock Exchange.
|
|
11
|
+
* Consists of 6 alphanumeric characters (vowels
|
|
12
|
+
* excluded) followed by a weighted mod-10 check
|
|
13
|
+
* digit.
|
|
14
|
+
*
|
|
15
|
+
* @see https://en.wikipedia.org/wiki/SEDOL
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Allowed characters in a SEDOL: digits and
|
|
19
|
+
* consonants only (vowels are never used).
|
|
20
|
+
* Spaces occupy vowel positions (A=10, E=14,
|
|
21
|
+
* I=18, O=24, U=30) so that indexOf returns
|
|
22
|
+
* the correct SEDOL weight for each consonant.
|
|
23
|
+
*/
|
|
24
|
+
const ALPHABET = "0123456789 BCD FGH JKLMN PQRST VWXYZ";
|
|
25
|
+
const WEIGHTS = [
|
|
26
|
+
1,
|
|
27
|
+
3,
|
|
28
|
+
1,
|
|
29
|
+
7,
|
|
30
|
+
3,
|
|
31
|
+
9
|
|
32
|
+
];
|
|
33
|
+
const calcCheckDigit = (number) => {
|
|
34
|
+
if (number.length !== 6) throw new Error("calcCheckDigit requires a 6-character SEDOL prefix");
|
|
35
|
+
let sum = 0;
|
|
36
|
+
for (let i = 0; i < 6; i++) {
|
|
37
|
+
const ch = number[i];
|
|
38
|
+
const val = ALPHABET.indexOf(ch);
|
|
39
|
+
if (val < 0) throw new Error(`Invalid SEDOL character: ${ch}`);
|
|
40
|
+
sum += WEIGHTS[i] * val;
|
|
41
|
+
}
|
|
42
|
+
return String((10 - sum % 10) % 10);
|
|
43
|
+
};
|
|
44
|
+
const compact = (value) => clean(value, " ").toUpperCase();
|
|
45
|
+
const validate = (value) => {
|
|
46
|
+
const v = compact(value);
|
|
47
|
+
if (v.length !== 7) return err("INVALID_LENGTH", "SEDOL must be exactly 7 characters");
|
|
48
|
+
for (const ch of v) if (!ALPHABET.includes(ch)) return err("INVALID_FORMAT", "SEDOL contains invalid character: vowels are not allowed");
|
|
49
|
+
if (isdigits(v[0]) && !isdigits(v)) return err("INVALID_FORMAT", "Numeric-prefix SEDOL must be fully numeric (old-style)");
|
|
50
|
+
if (calcCheckDigit(v.slice(0, 6)) !== v[6]) return err("INVALID_CHECKSUM", "SEDOL check digit mismatch");
|
|
51
|
+
return {
|
|
52
|
+
valid: true,
|
|
53
|
+
compact: v
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
const format = (value) => compact(value);
|
|
57
|
+
/** Generate a random valid SEDOL. */
|
|
58
|
+
const generate = () => {
|
|
59
|
+
const consonants = "BCDFGHJKLMNPQRSTVWXYZ";
|
|
60
|
+
const chars = "0123456789BCDFGHJKLMNPQRSTVWXYZ";
|
|
61
|
+
let payload = consonants[randomInt(0, 20)];
|
|
62
|
+
for (let i = 1; i < 6; i++) payload += chars[randomInt(0, 30)];
|
|
63
|
+
return payload + calcCheckDigit(payload);
|
|
64
|
+
};
|
|
65
|
+
/** Stock Exchange Daily Official List number. */
|
|
66
|
+
const sedol = {
|
|
67
|
+
name: "Stock Exchange Daily Official List number",
|
|
68
|
+
localName: "Stock Exchange Daily Official List number",
|
|
69
|
+
abbreviation: "SEDOL",
|
|
70
|
+
aliases: ["SEDOL", "Stock Exchange Daily Official List"],
|
|
71
|
+
candidatePattern: "[B-DF-HJ-NP-TV-Z0-9]{6}\\d",
|
|
72
|
+
country: "GB",
|
|
73
|
+
entityType: "any",
|
|
74
|
+
sourceUrl: "https://en.wikipedia.org/wiki/SEDOL",
|
|
75
|
+
lengths: [7],
|
|
76
|
+
examples: ["B15KXQ8"],
|
|
77
|
+
compact,
|
|
78
|
+
format,
|
|
79
|
+
validate,
|
|
80
|
+
generate
|
|
81
|
+
};
|
|
82
|
+
//#endregion
|
|
83
|
+
export { calcCheckDigit, compact, sedol as default, format, generate, validate };
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=sedol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sedol.js","names":[],"sources":["../../src/gb/sedol.ts"],"sourcesContent":["/**\n * SEDOL (Stock Exchange Daily Official List number).\n *\n * 7-character security identifier used in the UK and\n * Ireland, assigned by the London Stock Exchange.\n * Consists of 6 alphanumeric characters (vowels\n * excluded) followed by a weighted mod-10 check\n * digit.\n *\n * @see https://en.wikipedia.org/wiki/SEDOL\n */\n\nimport { clean } from \"#util/clean\";\nimport { randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nimport type { ValidateResult, Validator } from \"../types\";\n\n/**\n * Allowed characters in a SEDOL: digits and\n * consonants only (vowels are never used).\n * Spaces occupy vowel positions (A=10, E=14,\n * I=18, O=24, U=30) so that indexOf returns\n * the correct SEDOL weight for each consonant.\n */\nconst ALPHABET = \"0123456789 BCD FGH JKLMN PQRST VWXYZ\";\n\nconst WEIGHTS = [1, 3, 1, 7, 3, 9] as const;\n\nconst calcCheckDigit = (number: string): string => {\n if (number.length !== 6) {\n throw new Error(\n \"calcCheckDigit requires a 6-character \" +\n \"SEDOL prefix\",\n );\n }\n let sum = 0;\n for (let i = 0; i < 6; i++) {\n const ch = number[i]!;\n const val = ALPHABET.indexOf(ch);\n if (val < 0) {\n throw new Error(`Invalid SEDOL character: ${ch}`);\n }\n // SAFETY: weights length matches loop bound\n sum += WEIGHTS[i]! * val;\n }\n return String((10 - (sum % 10)) % 10);\n};\n\nconst compact = (value: string): string =>\n clean(value, \" \").toUpperCase();\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 7) {\n return err(\n \"INVALID_LENGTH\",\n \"SEDOL must be exactly 7 characters\",\n );\n }\n\n for (const ch of v) {\n if (!ALPHABET.includes(ch)) {\n return err(\n \"INVALID_FORMAT\",\n \"SEDOL contains invalid character: \" +\n \"vowels are not allowed\",\n );\n }\n }\n\n // Old-style SEDOLs are fully numeric; new-style\n // SEDOLs start with a letter. A number that starts\n // with a digit but contains letters is invalid.\n if (isdigits(v[0]!) && !isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Numeric-prefix SEDOL must be fully \" +\n \"numeric (old-style)\",\n );\n }\n\n if (calcCheckDigit(v.slice(0, 6)) !== v[6]) {\n return err(\n \"INVALID_CHECKSUM\",\n \"SEDOL check digit mismatch\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\n/** Generate a random valid SEDOL. */\nconst generate = (): string => {\n const consonants = \"BCDFGHJKLMNPQRSTVWXYZ\";\n const chars = \"0123456789BCDFGHJKLMNPQRSTVWXYZ\";\n const first =\n consonants[randomInt(0, consonants.length - 1)]!;\n let payload = first;\n for (let i = 1; i < 6; i++)\n payload += chars[randomInt(0, chars.length - 1)]!;\n return payload + calcCheckDigit(payload);\n};\n\n/** Stock Exchange Daily Official List number. */\nconst sedol: Validator = {\n name: \"Stock Exchange Daily Official List number\",\n localName: \"Stock Exchange Daily Official List number\",\n abbreviation: \"SEDOL\",\n aliases: [\n \"SEDOL\",\n \"Stock Exchange Daily Official List\",\n ] as const,\n candidatePattern: \"[B-DF-HJ-NP-TV-Z0-9]{6}\\\\d\",\n country: \"GB\",\n entityType: \"any\",\n sourceUrl: \"https://en.wikipedia.org/wiki/SEDOL\",\n lengths: [7] as const,\n examples: [\"B15KXQ8\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default sedol;\nexport {\n calcCheckDigit,\n compact,\n format,\n validate,\n generate,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAM,WAAW;AAEjB,MAAM,UAAU;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAE;AAElC,MAAM,kBAAkB,WAA2B;AACjD,KAAI,OAAO,WAAW,EACpB,OAAM,IAAI,MACR,qDAED;CAEH,IAAI,MAAM;AACV,MAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK;EAC1B,MAAM,KAAK,OAAO;EAClB,MAAM,MAAM,SAAS,QAAQ,GAAG;AAChC,MAAI,MAAM,EACR,OAAM,IAAI,MAAM,4BAA4B,KAAK;AAGnD,SAAO,QAAQ,KAAM;;AAEvB,QAAO,QAAQ,KAAM,MAAM,MAAO,GAAG;;AAGvC,MAAM,WAAW,UACf,MAAM,OAAO,IAAI,CAAC,aAAa;AAEjC,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AAExB,KAAI,EAAE,WAAW,EACf,QAAO,IACL,kBACA,qCACD;AAGH,MAAK,MAAM,MAAM,EACf,KAAI,CAAC,SAAS,SAAS,GAAG,CACxB,QAAO,IACL,kBACA,2DAED;AAOL,KAAI,SAAS,EAAE,GAAI,IAAI,CAAC,SAAS,EAAE,CACjC,QAAO,IACL,kBACA,yDAED;AAGH,KAAI,eAAe,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE,GACtC,QAAO,IACL,oBACA,6BACD;AAGH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B,QAAQ,MAAM;;AAGxD,MAAM,iBAAyB;CAC7B,MAAM,aAAa;CACnB,MAAM,QAAQ;CAGd,IAAI,UADF,WAAW,UAAU,GAAG,GAAsB;AAEhD,MAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IACrB,YAAW,MAAM,UAAU,GAAG,GAAiB;AACjD,QAAO,UAAU,eAAe,QAAQ;;;AAI1C,MAAM,QAAmB;CACvB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CACP,SACA,qCACD;CACD,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,SAAS,CAAC,EAAE;CACZ,UAAU,CAAC,UAAU;CACrB;CACA;CACA;CACA;CACD"}
|
package/dist/gb/utr.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/gb/utr.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 UK UTR. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** UK Unique Taxpayer Reference. */
|
|
11
|
+
declare const utr: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, utr as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=utr.d.ts.map
|
package/dist/gb/utr.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
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 { weightedSum } from "../_checksums/weighted-sum.js";
|
|
6
|
+
//#region src/gb/utr.ts
|
|
7
|
+
/**
|
|
8
|
+
* UTR (Unique Taxpayer Reference).
|
|
9
|
+
*
|
|
10
|
+
* UK 10-digit tax reference number. The first
|
|
11
|
+
* digit is a check digit computed using a
|
|
12
|
+
* weighted sum with lookup table.
|
|
13
|
+
*
|
|
14
|
+
* @see https://www.gov.uk/find-utr-number
|
|
15
|
+
*/
|
|
16
|
+
const WEIGHTS = [
|
|
17
|
+
6,
|
|
18
|
+
7,
|
|
19
|
+
8,
|
|
20
|
+
9,
|
|
21
|
+
10,
|
|
22
|
+
5,
|
|
23
|
+
4,
|
|
24
|
+
3,
|
|
25
|
+
2
|
|
26
|
+
];
|
|
27
|
+
const CHECK_LOOKUP = "21987654321";
|
|
28
|
+
const compact = (value) => clean(value, " -");
|
|
29
|
+
const validate = (value) => {
|
|
30
|
+
const v = compact(value);
|
|
31
|
+
if (v.length !== 10) return err("INVALID_LENGTH", "UK UTR must be exactly 10 digits");
|
|
32
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "UK UTR must contain only digits");
|
|
33
|
+
if (CHECK_LOOKUP[weightedSum(v.slice(1), WEIGHTS, 11)] !== v[0]) return err("INVALID_CHECKSUM", "UK UTR check digit mismatch");
|
|
34
|
+
return {
|
|
35
|
+
valid: true,
|
|
36
|
+
compact: v
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const format = (value) => {
|
|
40
|
+
const v = compact(value);
|
|
41
|
+
return `${v.slice(0, 5)} ${v.slice(5)}`;
|
|
42
|
+
};
|
|
43
|
+
/** Generate a random valid UK UTR. */
|
|
44
|
+
const generate = () => {
|
|
45
|
+
for (;;) {
|
|
46
|
+
const c = randomDigits(10);
|
|
47
|
+
if (validate(c).valid) return c;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
/** UK Unique Taxpayer Reference. */
|
|
51
|
+
const utr = {
|
|
52
|
+
name: "UK Unique Taxpayer Reference",
|
|
53
|
+
localName: "Unique Taxpayer Reference",
|
|
54
|
+
abbreviation: "UTR",
|
|
55
|
+
aliases: ["Unique Taxpayer Reference", "UTR"],
|
|
56
|
+
candidatePattern: "\\d{10}",
|
|
57
|
+
country: "GB",
|
|
58
|
+
entityType: "any",
|
|
59
|
+
sourceUrl: "https://www.gov.uk/find-utr-number",
|
|
60
|
+
examples: ["1955839661"],
|
|
61
|
+
compact,
|
|
62
|
+
format,
|
|
63
|
+
validate,
|
|
64
|
+
generate
|
|
65
|
+
};
|
|
66
|
+
//#endregion
|
|
67
|
+
export { compact, utr as default, format, generate, validate };
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=utr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utr.js","names":[],"sources":["../../src/gb/utr.ts"],"sourcesContent":["/**\n * UTR (Unique Taxpayer Reference).\n *\n * UK 10-digit tax reference number. The first\n * digit is a check digit computed using a\n * weighted sum with lookup table.\n *\n * @see https://www.gov.uk/find-utr-number\n */\n\nimport { weightedSum } from \"#checksums/weighted-sum\";\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 = [6, 7, 8, 9, 10, 5, 4, 3, 2] as const;\nconst CHECK_LOOKUP = \"21987654321\";\n\nconst compact = (value: string): string =>\n clean(value, \" -\");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 10) {\n return err(\n \"INVALID_LENGTH\",\n \"UK UTR must be exactly 10 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"UK UTR must contain only digits\",\n );\n }\n const sum = weightedSum(v.slice(1), WEIGHTS, 11);\n const expected = CHECK_LOOKUP[sum];\n if (expected !== v[0]) {\n return err(\n \"INVALID_CHECKSUM\",\n \"UK UTR 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, 5)} ${v.slice(5)}`;\n};\n\n/** Generate a random valid UK UTR. */\nconst generate = (): string => {\n for (;;) {\n const c = randomDigits(10);\n if (validate(c).valid) return c;\n }\n};\n\n/** UK Unique Taxpayer Reference. */\nconst utr: Validator = {\n name: \"UK Unique Taxpayer Reference\",\n localName: \"Unique Taxpayer Reference\",\n abbreviation: \"UTR\",\n aliases: [\"Unique Taxpayer Reference\", \"UTR\"] as const,\n candidatePattern: \"\\\\d{10}\",\n country: \"GB\",\n entityType: \"any\",\n sourceUrl: \"https://www.gov.uk/find-utr-number\",\n examples: [\"1955839661\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default utr;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,MAAM,UAAU;CAAC;CAAG;CAAG;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAE;AAC5C,MAAM,eAAe;AAErB,MAAM,WAAW,UACf,MAAM,OAAO,KAAK;AAEpB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,GACf,QAAO,IACL,kBACA,mCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,kCACD;AAIH,KADiB,aADL,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,GAAG,MAE/B,EAAE,GACjB,QAAO,IACL,oBACA,8BACD;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,EAAE;;;AAIvC,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,CAAC,6BAA6B,MAAM;CAC7C,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,aAAa;CACxB;CACA;CACA;CACA;CACD"}
|
package/dist/gb/vat.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/gb/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 UK VAT number. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** UK VAT Registration 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/gb/vat.js
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
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 { weightedSum } from "../_checksums/weighted-sum.js";
|
|
6
|
+
//#region src/gb/vat.ts
|
|
7
|
+
/**
|
|
8
|
+
* VAT (Value Added Tax registration number).
|
|
9
|
+
*
|
|
10
|
+
* UK VAT number. Multiple formats: 9 or 12
|
|
11
|
+
* digit standard, GD+3 (government), HA+3
|
|
12
|
+
* (health authority). Standard numbers use a
|
|
13
|
+
* weighted checksum mod 97.
|
|
14
|
+
*
|
|
15
|
+
* @see https://www.gov.uk/vat-registration
|
|
16
|
+
*/
|
|
17
|
+
const WEIGHTS = [
|
|
18
|
+
8,
|
|
19
|
+
7,
|
|
20
|
+
6,
|
|
21
|
+
5,
|
|
22
|
+
4,
|
|
23
|
+
3,
|
|
24
|
+
2
|
|
25
|
+
];
|
|
26
|
+
const compact = (value) => {
|
|
27
|
+
let v = clean(value, " -.");
|
|
28
|
+
if (v.startsWith("GB") || v.startsWith("gb")) v = v.slice(2);
|
|
29
|
+
return v.toUpperCase();
|
|
30
|
+
};
|
|
31
|
+
const validateStandard = (v) => {
|
|
32
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "UK VAT must contain only digits");
|
|
33
|
+
const total = (weightedSum(v.slice(0, 7), WEIGHTS, 97) + Number(v.slice(7, 9))) % 97;
|
|
34
|
+
if (Number(v.slice(0, 3)) >= 100) {
|
|
35
|
+
if (total !== 0 && total !== 42 && total !== 55) return err("INVALID_CHECKSUM", "UK VAT check digits mismatch");
|
|
36
|
+
} else if (total !== 0) return err("INVALID_CHECKSUM", "UK VAT check digits mismatch");
|
|
37
|
+
return {
|
|
38
|
+
valid: true,
|
|
39
|
+
compact: v
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
const validate = (value) => {
|
|
43
|
+
const v = compact(value);
|
|
44
|
+
if (v.startsWith("GD")) {
|
|
45
|
+
const num = v.slice(2);
|
|
46
|
+
if (num.length !== 3 || !isdigits(num)) return err("INVALID_FORMAT", "UK VAT GD number must be GD + 3 digits");
|
|
47
|
+
if (Number(num) >= 500) return err("INVALID_COMPONENT", "UK VAT GD number must be < 500");
|
|
48
|
+
return {
|
|
49
|
+
valid: true,
|
|
50
|
+
compact: v
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (v.startsWith("HA")) {
|
|
54
|
+
const num = v.slice(2);
|
|
55
|
+
if (num.length !== 3 || !isdigits(num)) return err("INVALID_FORMAT", "UK VAT HA number must be HA + 3 digits");
|
|
56
|
+
if (Number(num) < 500) return err("INVALID_COMPONENT", "UK VAT HA number must be >= 500");
|
|
57
|
+
return {
|
|
58
|
+
valid: true,
|
|
59
|
+
compact: v
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (v.length !== 9 && v.length !== 12) return err("INVALID_LENGTH", "UK VAT must be 9 or 12 digits");
|
|
63
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "UK VAT must contain only digits");
|
|
64
|
+
const result = validateStandard(v.slice(0, 9));
|
|
65
|
+
if (!result.valid) return result;
|
|
66
|
+
return {
|
|
67
|
+
valid: true,
|
|
68
|
+
compact: v
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
const format = (value) => {
|
|
72
|
+
const v = compact(value);
|
|
73
|
+
if (v.startsWith("GD") || v.startsWith("HA")) return `GB${v}`;
|
|
74
|
+
return `GB ${v.slice(0, 3)} ${v.slice(3, 7)} ${v.slice(7)}`;
|
|
75
|
+
};
|
|
76
|
+
/** Generate a random valid UK VAT number. */
|
|
77
|
+
const generate = () => {
|
|
78
|
+
for (;;) {
|
|
79
|
+
const c = randomDigits(9);
|
|
80
|
+
if (validate(c).valid) return c;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
/** UK VAT Registration Number. */
|
|
84
|
+
const vat = {
|
|
85
|
+
name: "UK VAT Number",
|
|
86
|
+
localName: "VAT Registration Number",
|
|
87
|
+
abbreviation: "VAT",
|
|
88
|
+
aliases: ["VAT registration number", "VAT number"],
|
|
89
|
+
candidatePattern: "GB\\d{9,12}",
|
|
90
|
+
country: "GB",
|
|
91
|
+
entityType: "company",
|
|
92
|
+
sourceUrl: "https://www.gov.uk/vat-registration",
|
|
93
|
+
examples: ["980780684"],
|
|
94
|
+
compact,
|
|
95
|
+
format,
|
|
96
|
+
validate,
|
|
97
|
+
generate
|
|
98
|
+
};
|
|
99
|
+
//#endregion
|
|
100
|
+
export { compact, vat as default, format, generate, validate };
|
|
101
|
+
|
|
102
|
+
//# sourceMappingURL=vat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vat.js","names":[],"sources":["../../src/gb/vat.ts"],"sourcesContent":["/**\n * VAT (Value Added Tax registration number).\n *\n * UK VAT number. Multiple formats: 9 or 12\n * digit standard, GD+3 (government), HA+3\n * (health authority). Standard numbers use a\n * weighted checksum mod 97.\n *\n * @see https://www.gov.uk/vat-registration\n */\n\nimport { weightedSum } from \"#checksums/weighted-sum\";\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 = [8, 7, 6, 5, 4, 3, 2] as const;\n\nconst compact = (value: string): string => {\n let v = clean(value, \" -.\");\n if (v.startsWith(\"GB\") || v.startsWith(\"gb\")) {\n v = v.slice(2);\n }\n return v.toUpperCase();\n};\n\nconst validateStandard = (v: string): ValidateResult => {\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"UK VAT must contain only digits\",\n );\n }\n // Weighted sum of first 7 digits\n const sum = weightedSum(v.slice(0, 7), WEIGHTS, 97);\n // Check digits are digits 8-9\n const checkPart = Number(v.slice(7, 9));\n const total = (sum + checkPart) % 97;\n\n const prefix = Number(v.slice(0, 3));\n if (prefix >= 100) {\n // Numbers >= 100 000 000: remainder must be\n // 0, 42, or 55\n if (total !== 0 && total !== 42 && total !== 55) {\n return err(\n \"INVALID_CHECKSUM\",\n \"UK VAT check digits mismatch\",\n );\n }\n } else {\n if (total !== 0) {\n return err(\n \"INVALID_CHECKSUM\",\n \"UK VAT check digits mismatch\",\n );\n }\n }\n return { valid: true, compact: v };\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n // Government departments: GD + 3 digits (< 500)\n if (v.startsWith(\"GD\")) {\n const num = v.slice(2);\n if (num.length !== 3 || !isdigits(num)) {\n return err(\n \"INVALID_FORMAT\",\n \"UK VAT GD number must be GD + 3 digits\",\n );\n }\n if (Number(num) >= 500) {\n return err(\n \"INVALID_COMPONENT\",\n \"UK VAT GD number must be < 500\",\n );\n }\n return { valid: true, compact: v };\n }\n\n // Health authorities: HA + 3 digits (>= 500)\n if (v.startsWith(\"HA\")) {\n const num = v.slice(2);\n if (num.length !== 3 || !isdigits(num)) {\n return err(\n \"INVALID_FORMAT\",\n \"UK VAT HA number must be HA + 3 digits\",\n );\n }\n if (Number(num) < 500) {\n return err(\n \"INVALID_COMPONENT\",\n \"UK VAT HA number must be >= 500\",\n );\n }\n return { valid: true, compact: v };\n }\n\n // Standard: 9 or 12 digits\n if (v.length !== 9 && v.length !== 12) {\n return err(\n \"INVALID_LENGTH\",\n \"UK VAT must be 9 or 12 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"UK VAT must contain only digits\",\n );\n }\n const result = validateStandard(v.slice(0, 9));\n if (!result.valid) return result;\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n if (v.startsWith(\"GD\") || v.startsWith(\"HA\")) {\n return `GB${v}`;\n }\n return `GB ${v.slice(0, 3)} ${v.slice(3, 7)} ${v.slice(7)}`;\n};\n\n/** Generate a random valid UK VAT number. */\nconst generate = (): string => {\n for (;;) {\n const c = randomDigits(9);\n if (validate(c).valid) return c;\n }\n};\n\n/** UK VAT Registration Number. */\nconst vat: Validator = {\n name: \"UK VAT Number\",\n localName: \"VAT Registration Number\",\n abbreviation: \"VAT\",\n aliases: [\n \"VAT registration number\",\n \"VAT number\",\n ] as const,\n candidatePattern: \"GB\\\\d{9,12}\",\n country: \"GB\",\n entityType: \"company\",\n sourceUrl: \"https://www.gov.uk/vat-registration\",\n examples: [\"980780684\"] 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;CAAG;CAAE;AAErC,MAAM,WAAW,UAA0B;CACzC,IAAI,IAAI,MAAM,OAAO,MAAM;AAC3B,KAAI,EAAE,WAAW,KAAK,IAAI,EAAE,WAAW,KAAK,CAC1C,KAAI,EAAE,MAAM,EAAE;AAEhB,QAAO,EAAE,aAAa;;AAGxB,MAAM,oBAAoB,MAA8B;AACtD,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,kCACD;CAMH,MAAM,SAHM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,SAAS,GAAG,GAEjC,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,IACL;AAGlC,KADe,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,IACtB;MAGR,UAAU,KAAK,UAAU,MAAM,UAAU,GAC3C,QAAO,IACL,oBACA,+BACD;YAGC,UAAU,EACZ,QAAO,IACL,oBACA,+BACD;AAGL,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AAGxB,KAAI,EAAE,WAAW,KAAK,EAAE;EACtB,MAAM,MAAM,EAAE,MAAM,EAAE;AACtB,MAAI,IAAI,WAAW,KAAK,CAAC,SAAS,IAAI,CACpC,QAAO,IACL,kBACA,yCACD;AAEH,MAAI,OAAO,IAAI,IAAI,IACjB,QAAO,IACL,qBACA,iCACD;AAEH,SAAO;GAAE,OAAO;GAAM,SAAS;GAAG;;AAIpC,KAAI,EAAE,WAAW,KAAK,EAAE;EACtB,MAAM,MAAM,EAAE,MAAM,EAAE;AACtB,MAAI,IAAI,WAAW,KAAK,CAAC,SAAS,IAAI,CACpC,QAAO,IACL,kBACA,yCACD;AAEH,MAAI,OAAO,IAAI,GAAG,IAChB,QAAO,IACL,qBACA,kCACD;AAEH,SAAO;GAAE,OAAO;GAAM,SAAS;GAAG;;AAIpC,KAAI,EAAE,WAAW,KAAK,EAAE,WAAW,GACjC,QAAO,IACL,kBACA,gCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,kCACD;CAEH,MAAM,SAAS,iBAAiB,EAAE,MAAM,GAAG,EAAE,CAAC;AAC9C,KAAI,CAAC,OAAO,MAAO,QAAO;AAC1B,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,KAAK,IAAI,EAAE,WAAW,KAAK,CAC1C,QAAO,KAAK;AAEd,QAAO,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE;;;AAI3D,MAAM,iBAAyB;AAC7B,UAAS;EACP,MAAM,IAAI,aAAa,EAAE;AACzB,MAAI,SAAS,EAAE,CAAC,MAAO,QAAO;;;;AAKlC,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CACP,2BACA,aACD;CACD,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,YAAY;CACvB;CACA;CACA;CACA;CACD"}
|
package/dist/ge/mod.d.ts
ADDED
package/dist/ge/mod.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import pin from "./pin.js";
|
|
3
|
+
//#region src/ge/mod.ts
|
|
4
|
+
var ge_exports = /* @__PURE__ */ __exportAll({ pin: () => pin });
|
|
5
|
+
//#endregion
|
|
6
|
+
export { ge_exports, pin };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","names":[],"sources":["../../src/ge/mod.ts"],"sourcesContent":["export { default as pin } from \"./pin\";\n"],"mappings":""}
|
package/dist/ge/pin.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/ge/pin.d.ts
|
|
4
|
+
/** Generate a random valid Georgian PIN (11-digit). */
|
|
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
|
+
/** Georgian Personal Identification Number. */
|
|
10
|
+
declare const pin: Validator;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { compact, pin as default, format, generate, validate };
|
|
13
|
+
//# sourceMappingURL=pin.d.ts.map
|