@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/fi/vat.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
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/fi/vat.ts
|
|
7
|
+
/**
|
|
8
|
+
* ALV nro (Finnish VAT number).
|
|
9
|
+
*
|
|
10
|
+
* 8 digits. Weights [7,9,10,5,8,4,2,1],
|
|
11
|
+
* sum % 11 === 0.
|
|
12
|
+
*
|
|
13
|
+
* @see https://www.vatify.eu/finland-vat-number.html
|
|
14
|
+
* @see https://www.ytj.fi/en/index/businessid.html
|
|
15
|
+
*/
|
|
16
|
+
const WEIGHTS = [
|
|
17
|
+
7,
|
|
18
|
+
9,
|
|
19
|
+
10,
|
|
20
|
+
5,
|
|
21
|
+
8,
|
|
22
|
+
4,
|
|
23
|
+
2,
|
|
24
|
+
1
|
|
25
|
+
];
|
|
26
|
+
const compact = (value) => {
|
|
27
|
+
let v = clean(value, " -/.");
|
|
28
|
+
if (v.startsWith("FI") || v.startsWith("fi")) v = v.slice(2);
|
|
29
|
+
return v;
|
|
30
|
+
};
|
|
31
|
+
const validate = (value) => {
|
|
32
|
+
const v = compact(value);
|
|
33
|
+
if (v.length !== 8) return err("INVALID_LENGTH", "Finnish VAT number must be 8 digits");
|
|
34
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "Finnish VAT number must contain only digits");
|
|
35
|
+
if (weightedSum(v, WEIGHTS, 11) !== 0) return err("INVALID_CHECKSUM", "Finnish VAT number check digit mismatch");
|
|
36
|
+
return {
|
|
37
|
+
valid: true,
|
|
38
|
+
compact: v
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
const format = (value) => `FI${compact(value)}`;
|
|
42
|
+
/** Generate a random valid Finnish VAT number. */
|
|
43
|
+
const generate = () => {
|
|
44
|
+
for (;;) {
|
|
45
|
+
const c = randomDigits(8);
|
|
46
|
+
if (validate(c).valid) return c;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
/** Finnish VAT Number. */
|
|
50
|
+
const vat = {
|
|
51
|
+
name: "Finnish VAT Number",
|
|
52
|
+
localName: "Arvonlisäveronumero",
|
|
53
|
+
abbreviation: "ALV nro",
|
|
54
|
+
aliases: ["ALV-numero", "Y-tunnus"],
|
|
55
|
+
candidatePattern: "FI\\d{8}",
|
|
56
|
+
country: "FI",
|
|
57
|
+
entityType: "company",
|
|
58
|
+
sourceUrl: "https://www.ytj.fi/en/index/businessid.html",
|
|
59
|
+
examples: ["20774740"],
|
|
60
|
+
compact,
|
|
61
|
+
format,
|
|
62
|
+
validate,
|
|
63
|
+
generate
|
|
64
|
+
};
|
|
65
|
+
//#endregion
|
|
66
|
+
export { compact, vat as default, format, generate, validate };
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=vat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vat.js","names":[],"sources":["../../src/fi/vat.ts"],"sourcesContent":["/**\n * ALV nro (Finnish VAT number).\n *\n * 8 digits. Weights [7,9,10,5,8,4,2,1],\n * sum % 11 === 0.\n *\n * @see https://www.vatify.eu/finland-vat-number.html\n * @see https://www.ytj.fi/en/index/businessid.html\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 = [7, 9, 10, 5, 8, 4, 2, 1];\n\nconst compact = (value: string): string => {\n let v = clean(value, \" -/.\");\n if (v.startsWith(\"FI\") || v.startsWith(\"fi\")) {\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 \"Finnish VAT number must be 8 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Finnish VAT number must contain only digits\",\n );\n }\n const sum = weightedSum(v, WEIGHTS, 11);\n if (sum !== 0) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Finnish VAT number check digit mismatch\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string =>\n `FI${compact(value)}`;\n\n/** Generate a random valid Finnish VAT number. */\nconst generate = (): string => {\n for (;;) {\n const c = randomDigits(8);\n if (validate(c).valid) return c;\n }\n};\n\n/** Finnish VAT Number. */\nconst vat: Validator = {\n name: \"Finnish VAT Number\",\n localName: \"Arvonlisäveronumero\",\n abbreviation: \"ALV nro\",\n aliases: [\"ALV-numero\", \"Y-tunnus\"] as const,\n candidatePattern: \"FI\\\\d{8}\",\n country: \"FI\",\n entityType: \"company\",\n sourceUrl: \"https://www.ytj.fi/en/index/businessid.html\",\n examples: [\"20774740\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default vat;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,MAAM,UAAU;CAAC;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAE;AAEzC,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,sCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,8CACD;AAGH,KADY,YAAY,GAAG,SAAS,GAAG,KAC3B,EACV,QAAO,IACL,oBACA,0CACD;AAEH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UACd,KAAK,QAAQ,MAAM;;AAGrB,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,CAAC,cAAc,WAAW;CACnC,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,WAAW;CACtB;CACA;CACA;CACA;CACD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/fi/ytunnus.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 Finnish Y-tunnus. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** Finnish Business ID. */
|
|
11
|
+
declare const ytunnus: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, ytunnus as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=ytunnus.d.ts.map
|
|
@@ -0,0 +1,71 @@
|
|
|
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/fi/ytunnus.ts
|
|
7
|
+
/**
|
|
8
|
+
* Y-tunnus (Finnish Business ID).
|
|
9
|
+
*
|
|
10
|
+
* 8 digits. Weights [7,9,10,5,8,4,2,1],
|
|
11
|
+
* sum % 11 === 0. Same algorithm as FI VAT.
|
|
12
|
+
* Display format: NNNNNNN-C.
|
|
13
|
+
*
|
|
14
|
+
* @see https://www.ytj.fi/en/index/businessid.html
|
|
15
|
+
*/
|
|
16
|
+
const WEIGHTS = [
|
|
17
|
+
7,
|
|
18
|
+
9,
|
|
19
|
+
10,
|
|
20
|
+
5,
|
|
21
|
+
8,
|
|
22
|
+
4,
|
|
23
|
+
2,
|
|
24
|
+
1
|
|
25
|
+
];
|
|
26
|
+
const compact = (value) => clean(value, " -/.");
|
|
27
|
+
const validate = (value) => {
|
|
28
|
+
const v = compact(value);
|
|
29
|
+
if (v.length !== 8) return err("INVALID_LENGTH", "Finnish Y-tunnus must be 8 digits");
|
|
30
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "Finnish Y-tunnus must contain only digits");
|
|
31
|
+
if (weightedSum(v, WEIGHTS, 11) !== 0) return err("INVALID_CHECKSUM", "Finnish Y-tunnus check digit mismatch");
|
|
32
|
+
return {
|
|
33
|
+
valid: true,
|
|
34
|
+
compact: v
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
const format = (value) => {
|
|
38
|
+
const v = compact(value);
|
|
39
|
+
return `${v.slice(0, 7)}-${v[7]}`;
|
|
40
|
+
};
|
|
41
|
+
/** Generate a random valid Finnish Y-tunnus. */
|
|
42
|
+
const generate = () => {
|
|
43
|
+
for (;;) {
|
|
44
|
+
const c = randomDigits(8);
|
|
45
|
+
if (validate(c).valid) return c;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
/** Finnish Business ID. */
|
|
49
|
+
const ytunnus = {
|
|
50
|
+
name: "Finnish Business ID",
|
|
51
|
+
localName: "Y-tunnus",
|
|
52
|
+
abbreviation: "Y-tunnus",
|
|
53
|
+
aliases: [
|
|
54
|
+
"Y-tunnus",
|
|
55
|
+
"yritystunnus",
|
|
56
|
+
"FO-nummer"
|
|
57
|
+
],
|
|
58
|
+
candidatePattern: "\\d{7}-\\d",
|
|
59
|
+
country: "FI",
|
|
60
|
+
entityType: "company",
|
|
61
|
+
sourceUrl: "https://www.ytj.fi/en/index/businessid.html",
|
|
62
|
+
examples: ["20774740"],
|
|
63
|
+
compact,
|
|
64
|
+
format,
|
|
65
|
+
validate,
|
|
66
|
+
generate
|
|
67
|
+
};
|
|
68
|
+
//#endregion
|
|
69
|
+
export { compact, ytunnus as default, format, generate, validate };
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=ytunnus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ytunnus.js","names":[],"sources":["../../src/fi/ytunnus.ts"],"sourcesContent":["/**\n * Y-tunnus (Finnish Business ID).\n *\n * 8 digits. Weights [7,9,10,5,8,4,2,1],\n * sum % 11 === 0. Same algorithm as FI VAT.\n * Display format: NNNNNNN-C.\n *\n * @see https://www.ytj.fi/en/index/businessid.html\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 = [7, 9, 10, 5, 8, 4, 2, 1];\n\nconst compact = (value: string): string =>\n clean(value, \" -/.\");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 8) {\n return err(\n \"INVALID_LENGTH\",\n \"Finnish Y-tunnus must be 8 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Finnish Y-tunnus must contain only digits\",\n );\n }\n const sum = weightedSum(v, WEIGHTS, 11);\n if (sum !== 0) {\n return err(\n \"INVALID_CHECKSUM\",\n \"Finnish Y-tunnus 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, 7)}-${v[7]}`;\n};\n\n/** Generate a random valid Finnish Y-tunnus. */\nconst generate = (): string => {\n for (;;) {\n const c = randomDigits(8);\n if (validate(c).valid) return c;\n }\n};\n\n/** Finnish Business ID. */\nconst ytunnus: Validator = {\n name: \"Finnish Business ID\",\n localName: \"Y-tunnus\",\n abbreviation: \"Y-tunnus\",\n aliases: [\n \"Y-tunnus\",\n \"yritystunnus\",\n \"FO-nummer\",\n ] as const,\n candidatePattern: \"\\\\d{7}-\\\\d\",\n country: \"FI\",\n entityType: \"company\",\n sourceUrl: \"https://www.ytj.fi/en/index/businessid.html\",\n examples: [\"20774740\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default ytunnus;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,MAAM,UAAU;CAAC;CAAG;CAAG;CAAI;CAAG;CAAG;CAAG;CAAG;CAAE;AAEzC,MAAM,WAAW,UACf,MAAM,OAAO,OAAO;AAEtB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,EACf,QAAO,IACL,kBACA,oCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,4CACD;AAGH,KADY,YAAY,GAAG,SAAS,GAAG,KAC3B,EACV,QAAO,IACL,oBACA,wCACD;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;;;AAI/B,MAAM,iBAAyB;AAC7B,UAAS;EACP,MAAM,IAAI,aAAa,EAAE;AACzB,MAAI,SAAS,EAAE,CAAC,MAAO,QAAO;;;;AAKlC,MAAM,UAAqB;CACzB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EACP;EACA;EACA;EACD;CACD,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,WAAW;CACtB;CACA;CACA;CACA;CACD"}
|
package/dist/fr/mod.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import nif from "./nif.js";
|
|
3
|
+
import nir from "./nir.js";
|
|
4
|
+
import siren from "./siren.js";
|
|
5
|
+
import siret from "./siret.js";
|
|
6
|
+
import tva from "./tva.js";
|
|
7
|
+
|
|
8
|
+
//#region src/fr/mod.d.ts
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { mod_d_exports, nif, nir, siren, siret, tva };
|
|
12
|
+
//# sourceMappingURL=mod.d.ts.map
|
package/dist/fr/mod.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import tva from "./tva.js";
|
|
3
|
+
import nif from "./nif.js";
|
|
4
|
+
import nir from "./nir.js";
|
|
5
|
+
import siren from "./siren.js";
|
|
6
|
+
import siret from "./siret.js";
|
|
7
|
+
//#region src/fr/mod.ts
|
|
8
|
+
var fr_exports = /* @__PURE__ */ __exportAll({
|
|
9
|
+
nif: () => nif,
|
|
10
|
+
nir: () => nir,
|
|
11
|
+
siren: () => siren,
|
|
12
|
+
siret: () => siret,
|
|
13
|
+
tva: () => tva
|
|
14
|
+
});
|
|
15
|
+
//#endregion
|
|
16
|
+
export { fr_exports, nif, nir, siren, siret, tva };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","names":[],"sources":["../../src/fr/mod.ts"],"sourcesContent":["export { default as nif } from \"./nif\";\nexport { default as nir } from \"./nir\";\nexport { default as siren } from \"./siren\";\nexport { default as siret } from \"./siret\";\nexport { default as tva } from \"./tva\";\n"],"mappings":""}
|
package/dist/fr/nif.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/fr/nif.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 French NIF. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** French Tax Identification Number. */
|
|
11
|
+
declare const nif: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, nif as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=nif.d.ts.map
|
package/dist/fr/nif.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
//#region src/fr/nif.ts
|
|
6
|
+
/**
|
|
7
|
+
* NIF (Numéro d'Identification Fiscale).
|
|
8
|
+
*
|
|
9
|
+
* French tax identification number. 13 digits;
|
|
10
|
+
* first digit is 0-3. Last 3 digits are a
|
|
11
|
+
* check: first_10_digits % 511 == last_3.
|
|
12
|
+
*
|
|
13
|
+
* @see https://www.impots.gouv.fr/
|
|
14
|
+
*/
|
|
15
|
+
const compact = (value) => clean(value, " -");
|
|
16
|
+
const validate = (value) => {
|
|
17
|
+
const v = compact(value);
|
|
18
|
+
if (v.length !== 13) return err("INVALID_LENGTH", "French NIF must be exactly 13 digits");
|
|
19
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "French NIF must contain only digits");
|
|
20
|
+
const first = v[0];
|
|
21
|
+
if (first !== "0" && first !== "1" && first !== "2" && first !== "3") return err("INVALID_COMPONENT", "French NIF must start with 0-3");
|
|
22
|
+
const front = Number(v.slice(0, 10));
|
|
23
|
+
const check = Number(v.slice(10));
|
|
24
|
+
if (front % 511 !== check) return err("INVALID_CHECKSUM", "French NIF check digits mismatch");
|
|
25
|
+
return {
|
|
26
|
+
valid: true,
|
|
27
|
+
compact: v
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
const format = (value) => {
|
|
31
|
+
const v = compact(value);
|
|
32
|
+
return `${v.slice(0, 2)} ${v.slice(2, 4)} ${v.slice(4, 7)} ${v.slice(7, 10)} ${v.slice(10)}`;
|
|
33
|
+
};
|
|
34
|
+
/** Generate a random valid French NIF. */
|
|
35
|
+
const generate = () => {
|
|
36
|
+
for (;;) {
|
|
37
|
+
const c = String(randomInt(0, 3)) + randomDigits(12);
|
|
38
|
+
if (validate(c).valid) return c;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
/** French Tax Identification Number. */
|
|
42
|
+
const nif = {
|
|
43
|
+
name: "French Tax ID",
|
|
44
|
+
localName: "Numéro d'Identification Fiscale",
|
|
45
|
+
abbreviation: "NIF",
|
|
46
|
+
aliases: [
|
|
47
|
+
"numéro fiscal",
|
|
48
|
+
"NIF",
|
|
49
|
+
"numéro d'identification fiscale"
|
|
50
|
+
],
|
|
51
|
+
candidatePattern: "\\d{13}",
|
|
52
|
+
country: "FR",
|
|
53
|
+
entityType: "person",
|
|
54
|
+
sourceUrl: "https://www.impots.gouv.fr/",
|
|
55
|
+
examples: ["3023217600053"],
|
|
56
|
+
compact,
|
|
57
|
+
format,
|
|
58
|
+
validate,
|
|
59
|
+
generate
|
|
60
|
+
};
|
|
61
|
+
//#endregion
|
|
62
|
+
export { compact, nif as default, format, generate, validate };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=nif.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nif.js","names":[],"sources":["../../src/fr/nif.ts"],"sourcesContent":["/**\n * NIF (Numéro d'Identification Fiscale).\n *\n * French tax identification number. 13 digits;\n * first digit is 0-3. Last 3 digits are a\n * check: first_10_digits % 511 == last_3.\n *\n * @see https://www.impots.gouv.fr/\n */\n\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 compact = (value: string): string =>\n clean(value, \" -\");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 13) {\n return err(\n \"INVALID_LENGTH\",\n \"French NIF must be exactly 13 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"French NIF must contain only digits\",\n );\n }\n const first = v[0];\n if (\n first !== \"0\" &&\n first !== \"1\" &&\n first !== \"2\" &&\n first !== \"3\"\n ) {\n return err(\n \"INVALID_COMPONENT\",\n \"French NIF must start with 0-3\",\n );\n }\n const front = Number(v.slice(0, 10));\n const check = Number(v.slice(10));\n if (front % 511 !== check) {\n return err(\n \"INVALID_CHECKSUM\",\n \"French NIF check digits mismatch\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return `${v.slice(0, 2)} ${v.slice(2, 4)} ${v.slice(4, 7)} ${v.slice(7, 10)} ${v.slice(10)}`;\n};\n\n/** Generate a random valid French NIF. */\nconst generate = (): string => {\n for (;;) {\n const c = String(randomInt(0, 3)) + randomDigits(12);\n if (validate(c).valid) return c;\n }\n};\n\n/** French Tax Identification Number. */\nconst nif: Validator = {\n name: \"French Tax ID\",\n localName: \"Numéro d'Identification Fiscale\",\n abbreviation: \"NIF\",\n aliases: [\n \"numéro fiscal\",\n \"NIF\",\n \"numéro d'identification fiscale\",\n ] as const,\n candidatePattern: \"\\\\d{13}\",\n country: \"FR\",\n entityType: \"person\",\n sourceUrl: \"https://www.impots.gouv.fr/\",\n examples: [\"3023217600053\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default nif;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;AAiBA,MAAM,WAAW,UACf,MAAM,OAAO,KAAK;AAEpB,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,sCACD;CAEH,MAAM,QAAQ,EAAE;AAChB,KACE,UAAU,OACV,UAAU,OACV,UAAU,OACV,UAAU,IAEV,QAAO,IACL,qBACA,iCACD;CAEH,MAAM,QAAQ,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;CACpC,MAAM,QAAQ,OAAO,EAAE,MAAM,GAAG,CAAC;AACjC,KAAI,QAAQ,QAAQ,MAClB,QAAO,IACL,oBACA,mCACD;AAEH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM;AACxB,QAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG;;;AAI5F,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;EACP;EACA;EACA;EACD;CACD,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,gBAAgB;CAC3B;CACA;CACA;CACA;CACD"}
|
package/dist/fr/nir.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ParsedPersonId, ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/fr/nir.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
|
+
declare const parse: (value: string) => ParsedPersonId | null;
|
|
9
|
+
/** Generate a random valid French NIR. */
|
|
10
|
+
declare const generate: () => string;
|
|
11
|
+
/** French Social Security Number. */
|
|
12
|
+
declare const nir: Validator;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { compact, nir as default, format, generate, parse, validate };
|
|
15
|
+
//# sourceMappingURL=nir.d.ts.map
|
package/dist/fr/nir.js
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { clean } from "../_util/clean.js";
|
|
2
|
+
import { randomInt } from "../_util/generate.js";
|
|
3
|
+
import { err } from "../_util/result.js";
|
|
4
|
+
import { resolveTwoDigitYear } from "../_util/date.js";
|
|
5
|
+
//#region src/fr/nir.ts
|
|
6
|
+
/**
|
|
7
|
+
* NIR (Numero d'Inscription au Repertoire).
|
|
8
|
+
*
|
|
9
|
+
* French social security number (numero de securite
|
|
10
|
+
* sociale). 15 digits: 13 identity digits + 2 check
|
|
11
|
+
* digits. Encodes gender, year/month of birth, and
|
|
12
|
+
* department of birth.
|
|
13
|
+
*
|
|
14
|
+
* Corsican departments 2A/2B are encoded as 19/18
|
|
15
|
+
* for the mod-97 checksum computation.
|
|
16
|
+
*
|
|
17
|
+
* @see https://en.wikipedia.org/wiki/INSEE_code
|
|
18
|
+
*/
|
|
19
|
+
const compact = (value) => clean(value, " -.");
|
|
20
|
+
const validate = (value) => {
|
|
21
|
+
const v = compact(value).toUpperCase();
|
|
22
|
+
if (v.length !== 15) return err("INVALID_LENGTH", "French NIR must be 15 characters");
|
|
23
|
+
const gender = v[0];
|
|
24
|
+
if (gender !== "1" && gender !== "2") return err("INVALID_COMPONENT", "French NIR first digit must be 1 or 2");
|
|
25
|
+
const yearPart = v.slice(1, 3);
|
|
26
|
+
if (!/^\d{2}$/.test(yearPart)) return err("INVALID_FORMAT", "French NIR year must be 2 digits");
|
|
27
|
+
const monthPart = v.slice(3, 5);
|
|
28
|
+
if (!/^\d{2}$/.test(monthPart) || monthPart === "00") return err("INVALID_FORMAT", "French NIR month must be 01-99");
|
|
29
|
+
const deptPart = v.slice(5, 7);
|
|
30
|
+
if (!(deptPart === "2A" || deptPart === "2B") && !/^\d{2}$/.test(deptPart)) return err("INVALID_FORMAT", "French NIR department must be 2 digits or 2A/2B");
|
|
31
|
+
const communePart = v.slice(7, 10);
|
|
32
|
+
if (!/^\d{3}$/.test(communePart)) return err("INVALID_FORMAT", "French NIR commune must be 3 digits");
|
|
33
|
+
const serialPart = v.slice(10, 13);
|
|
34
|
+
if (!/^\d{3}$/.test(serialPart)) return err("INVALID_FORMAT", "French NIR serial must be 3 digits");
|
|
35
|
+
const checkPart = v.slice(13, 15);
|
|
36
|
+
if (!/^\d{2}$/.test(checkPart)) return err("INVALID_FORMAT", "French NIR check must be 2 digits");
|
|
37
|
+
let numericBase;
|
|
38
|
+
if (deptPart === "2A") numericBase = v.slice(0, 5) + "19" + v.slice(7, 13);
|
|
39
|
+
else if (deptPart === "2B") numericBase = v.slice(0, 5) + "18" + v.slice(7, 13);
|
|
40
|
+
else numericBase = v.slice(0, 13);
|
|
41
|
+
if (97n - BigInt(numericBase) % 97n !== BigInt(checkPart)) return err("INVALID_CHECKSUM", "French NIR check digits mismatch");
|
|
42
|
+
return {
|
|
43
|
+
valid: true,
|
|
44
|
+
compact: v
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
const format = (value) => {
|
|
48
|
+
const v = compact(value).toUpperCase();
|
|
49
|
+
return `${v.slice(0, 1)} ${v.slice(1, 3)} ${v.slice(3, 5)} ${v.slice(5, 7)} ${v.slice(7, 10)} ${v.slice(10, 13)} ${v.slice(13)}`;
|
|
50
|
+
};
|
|
51
|
+
const parse = (value) => {
|
|
52
|
+
const result = validate(value);
|
|
53
|
+
if (!result.valid) return null;
|
|
54
|
+
const v = result.compact;
|
|
55
|
+
const genderDigit = v[0];
|
|
56
|
+
const yy = Number(v.slice(1, 3));
|
|
57
|
+
const mm = Number(v.slice(3, 5));
|
|
58
|
+
if (mm < 1 || mm > 12) return null;
|
|
59
|
+
const year = resolveTwoDigitYear(yy);
|
|
60
|
+
const gender = genderDigit === "1" ? "male" : "female";
|
|
61
|
+
return {
|
|
62
|
+
birthDate: new Date(year, mm - 1, 1),
|
|
63
|
+
gender
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
/** Generate a random valid French NIR. */
|
|
67
|
+
const generate = () => {
|
|
68
|
+
for (;;) {
|
|
69
|
+
const g = String(randomInt(1, 2));
|
|
70
|
+
const yy = String(randomInt(50, 99)).padStart(2, "0");
|
|
71
|
+
const mm = String(randomInt(1, 12)).padStart(2, "0");
|
|
72
|
+
const dept = String(randomInt(1, 95)).padStart(2, "0");
|
|
73
|
+
const com = String(randomInt(1, 999)).padStart(3, "0");
|
|
74
|
+
const s = String(randomInt(1, 999)).padStart(3, "0");
|
|
75
|
+
const base = g + yy + mm + dept + com + s;
|
|
76
|
+
const c = base + String(97 - Number(base) % 97).padStart(2, "0");
|
|
77
|
+
if (validate(c).valid) return c;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
/** French Social Security Number. */
|
|
81
|
+
const nir = {
|
|
82
|
+
name: "French Social Security Number",
|
|
83
|
+
localName: "Numero d'Inscription au Repertoire",
|
|
84
|
+
abbreviation: "NIR",
|
|
85
|
+
aliases: [
|
|
86
|
+
"NIR",
|
|
87
|
+
"numéro de sécurité sociale",
|
|
88
|
+
"numéro SS",
|
|
89
|
+
"sécu"
|
|
90
|
+
],
|
|
91
|
+
candidatePattern: "[12]\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{3}\\s?\\d{3}\\s?\\d{2}",
|
|
92
|
+
country: "FR",
|
|
93
|
+
entityType: "person",
|
|
94
|
+
description: "French social security number encoding gender, birth date, and department",
|
|
95
|
+
sourceUrl: "https://en.wikipedia.org/wiki/INSEE_code",
|
|
96
|
+
lengths: [15],
|
|
97
|
+
examples: ["295117823456784"],
|
|
98
|
+
compact,
|
|
99
|
+
format,
|
|
100
|
+
validate,
|
|
101
|
+
generate
|
|
102
|
+
};
|
|
103
|
+
//#endregion
|
|
104
|
+
export { compact, nir as default, format, generate, parse, validate };
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=nir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nir.js","names":[],"sources":["../../src/fr/nir.ts"],"sourcesContent":["/**\n * NIR (Numero d'Inscription au Repertoire).\n *\n * French social security number (numero de securite\n * sociale). 15 digits: 13 identity digits + 2 check\n * digits. Encodes gender, year/month of birth, and\n * department of birth.\n *\n * Corsican departments 2A/2B are encoded as 19/18\n * for the mod-97 checksum computation.\n *\n * @see https://en.wikipedia.org/wiki/INSEE_code\n */\n\nimport { clean } from \"#util/clean\";\nimport { resolveTwoDigitYear } from \"#util/date\";\nimport { randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\n\nimport type {\n ParsedPersonId,\n ValidateResult,\n Validator,\n} from \"../types\";\n\nconst compact = (value: string): string =>\n clean(value, \" -.\");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value).toUpperCase();\n if (v.length !== 15) {\n return err(\n \"INVALID_LENGTH\",\n \"French NIR must be 15 characters\",\n );\n }\n\n const gender = v[0];\n if (gender !== \"1\" && gender !== \"2\") {\n return err(\n \"INVALID_COMPONENT\",\n \"French NIR first digit must be 1 or 2\",\n );\n }\n\n const yearPart = v.slice(1, 3);\n if (!/^\\d{2}$/.test(yearPart)) {\n return err(\n \"INVALID_FORMAT\",\n \"French NIR year must be 2 digits\",\n );\n }\n\n const monthPart = v.slice(3, 5);\n if (!/^\\d{2}$/.test(monthPart) || monthPart === \"00\") {\n return err(\n \"INVALID_FORMAT\",\n \"French NIR month must be 01-99\",\n );\n }\n\n const deptPart = v.slice(5, 7);\n const isCorsica = deptPart === \"2A\" || deptPart === \"2B\";\n if (!isCorsica && !/^\\d{2}$/.test(deptPart)) {\n return err(\n \"INVALID_FORMAT\",\n \"French NIR department must be 2 digits or 2A/2B\",\n );\n }\n\n const communePart = v.slice(7, 10);\n if (!/^\\d{3}$/.test(communePart)) {\n return err(\n \"INVALID_FORMAT\",\n \"French NIR commune must be 3 digits\",\n );\n }\n\n const serialPart = v.slice(10, 13);\n if (!/^\\d{3}$/.test(serialPart)) {\n return err(\n \"INVALID_FORMAT\",\n \"French NIR serial must be 3 digits\",\n );\n }\n\n const checkPart = v.slice(13, 15);\n if (!/^\\d{2}$/.test(checkPart)) {\n return err(\n \"INVALID_FORMAT\",\n \"French NIR check must be 2 digits\",\n );\n }\n\n let numericBase: string;\n if (deptPart === \"2A\") {\n numericBase = v.slice(0, 5) + \"19\" + v.slice(7, 13);\n } else if (deptPart === \"2B\") {\n numericBase = v.slice(0, 5) + \"18\" + v.slice(7, 13);\n } else {\n numericBase = v.slice(0, 13);\n }\n\n const base = BigInt(numericBase);\n const expected = 97n - (base % 97n);\n const actual = BigInt(checkPart);\n\n if (expected !== actual) {\n return err(\n \"INVALID_CHECKSUM\",\n \"French NIR check digits mismatch\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value).toUpperCase();\n return (\n `${v.slice(0, 1)} ${v.slice(1, 3)}` +\n ` ${v.slice(3, 5)} ${v.slice(5, 7)}` +\n ` ${v.slice(7, 10)} ${v.slice(10, 13)}` +\n ` ${v.slice(13)}`\n );\n};\n\nconst parse = (value: string): ParsedPersonId | null => {\n const result = validate(value);\n if (!result.valid) return null;\n\n const v = result.compact;\n const genderDigit = v[0];\n const yy = Number(v.slice(1, 3));\n const mm = Number(v.slice(3, 5));\n\n if (mm < 1 || mm > 12) return null;\n\n const year = resolveTwoDigitYear(yy);\n const gender = genderDigit === \"1\" ? \"male\" : \"female\";\n\n return {\n birthDate: new Date(year, mm - 1, 1),\n gender,\n };\n};\n\n/** Generate a random valid French NIR. */\nconst generate = (): string => {\n for (;;) {\n const g = String(randomInt(1, 2));\n const yy = String(randomInt(50, 99)).padStart(2, \"0\");\n const mm = String(randomInt(1, 12)).padStart(2, \"0\");\n const dept = String(randomInt(1, 95)).padStart(2, \"0\");\n const com = String(randomInt(1, 999)).padStart(3, \"0\");\n const s = String(randomInt(1, 999)).padStart(3, \"0\");\n const base = g + yy + mm + dept + com + s;\n const check = String(97 - (Number(base) % 97)).padStart(\n 2,\n \"0\",\n );\n const c = base + check;\n if (validate(c).valid) return c;\n }\n};\n\n/** French Social Security Number. */\nconst nir: Validator = {\n name: \"French Social Security Number\",\n localName: \"Numero d'Inscription au Repertoire\",\n abbreviation: \"NIR\",\n aliases: [\n \"NIR\",\n \"numéro de sécurité sociale\",\n \"numéro SS\",\n \"sécu\",\n ] as const,\n candidatePattern:\n \"[12]\\\\s?\\\\d{2}\\\\s?\\\\d{2}\\\\s?\\\\d{2}\\\\s?\\\\d{3}\\\\s?\\\\d{3}\\\\s?\\\\d{2}\",\n country: \"FR\",\n entityType: \"person\",\n description:\n \"French social security number encoding \" +\n \"gender, birth date, and department\",\n sourceUrl: \"https://en.wikipedia.org/wiki/INSEE_code\",\n lengths: [15] as const,\n examples: [\"295117823456784\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default nir;\nexport { compact, format, parse, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAyBA,MAAM,WAAW,UACf,MAAM,OAAO,MAAM;AAErB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM,CAAC,aAAa;AACtC,KAAI,EAAE,WAAW,GACf,QAAO,IACL,kBACA,mCACD;CAGH,MAAM,SAAS,EAAE;AACjB,KAAI,WAAW,OAAO,WAAW,IAC/B,QAAO,IACL,qBACA,wCACD;CAGH,MAAM,WAAW,EAAE,MAAM,GAAG,EAAE;AAC9B,KAAI,CAAC,UAAU,KAAK,SAAS,CAC3B,QAAO,IACL,kBACA,mCACD;CAGH,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE;AAC/B,KAAI,CAAC,UAAU,KAAK,UAAU,IAAI,cAAc,KAC9C,QAAO,IACL,kBACA,iCACD;CAGH,MAAM,WAAW,EAAE,MAAM,GAAG,EAAE;AAE9B,KAAI,EADc,aAAa,QAAQ,aAAa,SAClC,CAAC,UAAU,KAAK,SAAS,CACzC,QAAO,IACL,kBACA,kDACD;CAGH,MAAM,cAAc,EAAE,MAAM,GAAG,GAAG;AAClC,KAAI,CAAC,UAAU,KAAK,YAAY,CAC9B,QAAO,IACL,kBACA,sCACD;CAGH,MAAM,aAAa,EAAE,MAAM,IAAI,GAAG;AAClC,KAAI,CAAC,UAAU,KAAK,WAAW,CAC7B,QAAO,IACL,kBACA,qCACD;CAGH,MAAM,YAAY,EAAE,MAAM,IAAI,GAAG;AACjC,KAAI,CAAC,UAAU,KAAK,UAAU,CAC5B,QAAO,IACL,kBACA,oCACD;CAGH,IAAI;AACJ,KAAI,aAAa,KACf,eAAc,EAAE,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,GAAG,GAAG;UAC1C,aAAa,KACtB,eAAc,EAAE,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,GAAG,GAAG;KAEnD,eAAc,EAAE,MAAM,GAAG,GAAG;AAO9B,KAHiB,MADJ,OAAO,YAAY,GACD,QAChB,OAAO,UAAU,CAG9B,QAAO,IACL,oBACA,mCACD;AAGH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM,CAAC,aAAa;AACtC,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,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,CAAA,GACjC,EAAE,MAAM,GAAG;;AAInB,MAAM,SAAS,UAAyC;CACtD,MAAM,SAAS,SAAS,MAAM;AAC9B,KAAI,CAAC,OAAO,MAAO,QAAO;CAE1B,MAAM,IAAI,OAAO;CACjB,MAAM,cAAc,EAAE;CACtB,MAAM,KAAK,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC;CAChC,MAAM,KAAK,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC;AAEhC,KAAI,KAAK,KAAK,KAAK,GAAI,QAAO;CAE9B,MAAM,OAAO,oBAAoB,GAAG;CACpC,MAAM,SAAS,gBAAgB,MAAM,SAAS;AAE9C,QAAO;EACL,WAAW,IAAI,KAAK,MAAM,KAAK,GAAG,EAAE;EACpC;EACD;;;AAIH,MAAM,iBAAyB;AAC7B,UAAS;EACP,MAAM,IAAI,OAAO,UAAU,GAAG,EAAE,CAAC;EACjC,MAAM,KAAK,OAAO,UAAU,IAAI,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI;EACrD,MAAM,KAAK,OAAO,UAAU,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI;EACpD,MAAM,OAAO,OAAO,UAAU,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI;EACtD,MAAM,MAAM,OAAO,UAAU,GAAG,IAAI,CAAC,CAAC,SAAS,GAAG,IAAI;EACtD,MAAM,IAAI,OAAO,UAAU,GAAG,IAAI,CAAC,CAAC,SAAS,GAAG,IAAI;EACpD,MAAM,OAAO,IAAI,KAAK,KAAK,OAAO,MAAM;EAKxC,MAAM,IAAI,OAJI,OAAO,KAAM,OAAO,KAAK,GAAG,GAAI,CAAC,SAC7C,GACA,IACD;AAED,MAAI,SAAS,EAAE,CAAC,MAAO,QAAO;;;;AAKlC,MAAM,MAAiB;CACrB,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EACP;EACA;EACA;EACA;EACD;CACD,kBACE;CACF,SAAS;CACT,YAAY;CACZ,aACE;CAEF,WAAW;CACX,SAAS,CAAC,GAAG;CACb,UAAU,CAAC,kBAAkB;CAC7B;CACA;CACA;CACA;CACD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/fr/siren.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 French SIREN. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** French Company Identification Number. */
|
|
11
|
+
declare const siren: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, siren as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=siren.d.ts.map
|
package/dist/fr/siren.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 { luhnChecksum, luhnValidate } from "../_checksums/luhn.js";
|
|
5
|
+
import { isdigits } from "../_util/strings.js";
|
|
6
|
+
//#region src/fr/siren.ts
|
|
7
|
+
/**
|
|
8
|
+
* SIREN (Système d'Identification du Répertoire
|
|
9
|
+
* des Entreprises).
|
|
10
|
+
*
|
|
11
|
+
* French company identification number. 9 digits
|
|
12
|
+
* validated with standard Luhn algorithm.
|
|
13
|
+
*
|
|
14
|
+
* @see https://www.insee.fr/fr/information/2549588
|
|
15
|
+
*/
|
|
16
|
+
const compact = (value) => clean(value, " -.");
|
|
17
|
+
const validate = (value) => {
|
|
18
|
+
const v = compact(value);
|
|
19
|
+
if (v.length !== 9) return err("INVALID_LENGTH", "SIREN must be exactly 9 digits");
|
|
20
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "SIREN must contain only digits");
|
|
21
|
+
if (!luhnValidate(v)) return err("INVALID_CHECKSUM", "SIREN fails Luhn check");
|
|
22
|
+
return {
|
|
23
|
+
valid: true,
|
|
24
|
+
compact: v
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
const format = (value) => {
|
|
28
|
+
const v = compact(value);
|
|
29
|
+
return `${v.slice(0, 3)} ${v.slice(3, 6)} ${v.slice(6)}`;
|
|
30
|
+
};
|
|
31
|
+
/** Generate a random valid French SIREN. */
|
|
32
|
+
const generate = () => {
|
|
33
|
+
const payload = randomDigits(8);
|
|
34
|
+
const cs = luhnChecksum(payload + "0");
|
|
35
|
+
return payload + String((10 - cs) % 10);
|
|
36
|
+
};
|
|
37
|
+
/** French Company Identification Number. */
|
|
38
|
+
const siren = {
|
|
39
|
+
name: "French Company ID",
|
|
40
|
+
localName: "Système d'Identification du Répertoire des Entreprises",
|
|
41
|
+
abbreviation: "SIREN",
|
|
42
|
+
aliases: ["SIREN", "numéro SIREN"],
|
|
43
|
+
candidatePattern: "\\d{3}\\s?\\d{3}\\s?\\d{3}",
|
|
44
|
+
country: "FR",
|
|
45
|
+
entityType: "company",
|
|
46
|
+
sourceUrl: "https://www.insee.fr/fr/information/2549588",
|
|
47
|
+
examples: ["552008443"],
|
|
48
|
+
compact,
|
|
49
|
+
format,
|
|
50
|
+
validate,
|
|
51
|
+
generate
|
|
52
|
+
};
|
|
53
|
+
//#endregion
|
|
54
|
+
export { compact, siren as default, format, generate, validate };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=siren.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siren.js","names":[],"sources":["../../src/fr/siren.ts"],"sourcesContent":["/**\n * SIREN (Système d'Identification du Répertoire\n * des Entreprises).\n *\n * French company identification number. 9 digits\n * validated with standard Luhn algorithm.\n *\n * @see https://www.insee.fr/fr/information/2549588\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 compact = (value: string): string =>\n clean(value, \" -.\");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 9) {\n return err(\n \"INVALID_LENGTH\",\n \"SIREN must be exactly 9 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"SIREN must contain only digits\",\n );\n }\n if (!luhnValidate(v)) {\n return err(\n \"INVALID_CHECKSUM\",\n \"SIREN fails Luhn check\",\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, 3)} ${v.slice(3, 6)} ${v.slice(6)}`;\n};\n\n/** Generate a random valid French SIREN. */\nconst generate = (): string => {\n const payload = randomDigits(8);\n const cs = luhnChecksum(payload + \"0\");\n return payload + String((10 - cs) % 10);\n};\n\n/** French Company Identification Number. */\nconst siren: Validator = {\n name: \"French Company ID\",\n localName:\n \"Système d'Identification du Répertoire des Entreprises\",\n abbreviation: \"SIREN\",\n aliases: [\"SIREN\", \"numéro SIREN\"] as const,\n candidatePattern: \"\\\\d{3}\\\\s?\\\\d{3}\\\\s?\\\\d{3}\",\n country: \"FR\",\n entityType: \"company\",\n sourceUrl: \"https://www.insee.fr/fr/information/2549588\",\n examples: [\"552008443\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default siren;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,MAAM,WAAW,UACf,MAAM,OAAO,MAAM;AAErB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,EACf,QAAO,IACL,kBACA,iCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,iCACD;AAEH,KAAI,CAAC,aAAa,EAAE,CAClB,QAAO,IACL,oBACA,yBACD;AAEH,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM;AACxB,QAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE;;;AAIxD,MAAM,iBAAyB;CAC7B,MAAM,UAAU,aAAa,EAAE;CAC/B,MAAM,KAAK,aAAa,UAAU,IAAI;AACtC,QAAO,UAAU,QAAQ,KAAK,MAAM,GAAG;;;AAIzC,MAAM,QAAmB;CACvB,MAAM;CACN,WACE;CACF,cAAc;CACd,SAAS,CAAC,SAAS,eAAe;CAClC,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,YAAY;CACvB;CACA;CACA;CACA;CACD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/fr/siret.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 French SIRET. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** French Establishment Identification Number. */
|
|
11
|
+
declare const siret: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, siret as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=siret.d.ts.map
|
package/dist/fr/siret.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
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/siret.ts
|
|
7
|
+
/**
|
|
8
|
+
* SIRET (Système d'Identification du Répertoire
|
|
9
|
+
* des Établissements).
|
|
10
|
+
*
|
|
11
|
+
* French establishment identification number.
|
|
12
|
+
* 14 digits: SIREN (9) + NIC (5). Validated
|
|
13
|
+
* with Luhn, with a special case for La Poste.
|
|
14
|
+
*
|
|
15
|
+
* @see https://www.insee.fr/fr/information/2549588
|
|
16
|
+
*/
|
|
17
|
+
const compact = (value) => clean(value, " -.");
|
|
18
|
+
/**
|
|
19
|
+
* La Poste SIRET uses digit sum % 5 instead of
|
|
20
|
+
* Luhn, EXCEPT the head office (35600000000048)
|
|
21
|
+
* which uses standard Luhn.
|
|
22
|
+
*/
|
|
23
|
+
const isLaPoste = (v) => v.startsWith("356000000") && v !== "35600000000048";
|
|
24
|
+
const digitSum = (v) => {
|
|
25
|
+
let sum = 0;
|
|
26
|
+
for (let i = 0; i < v.length; i++) sum += Number(v[i]);
|
|
27
|
+
return sum;
|
|
28
|
+
};
|
|
29
|
+
const validate = (value) => {
|
|
30
|
+
const v = compact(value);
|
|
31
|
+
if (v.length !== 14) return err("INVALID_LENGTH", "SIRET must be exactly 14 digits");
|
|
32
|
+
if (!isdigits(v)) return err("INVALID_FORMAT", "SIRET must contain only digits");
|
|
33
|
+
if (!luhnValidate(v.slice(0, 9)) && !isLaPoste(v)) return err("INVALID_CHECKSUM", "SIRET SIREN part fails Luhn check");
|
|
34
|
+
if (isLaPoste(v)) {
|
|
35
|
+
if (digitSum(v) % 5 !== 0) return err("INVALID_CHECKSUM", "SIRET La Poste digit sum check failed");
|
|
36
|
+
} else if (!luhnValidate(v)) return err("INVALID_CHECKSUM", "SIRET fails Luhn check");
|
|
37
|
+
return {
|
|
38
|
+
valid: true,
|
|
39
|
+
compact: v
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
const format = (value) => {
|
|
43
|
+
const v = compact(value);
|
|
44
|
+
return `${v.slice(0, 3)} ${v.slice(3, 6)} ${v.slice(6, 9)} ${v.slice(9)}`;
|
|
45
|
+
};
|
|
46
|
+
/** Generate a random valid French SIRET. */
|
|
47
|
+
const generate = () => {
|
|
48
|
+
const sp = randomDigits(8);
|
|
49
|
+
const sc = luhnChecksum(sp + "0");
|
|
50
|
+
const payload = sp + String((10 - sc) % 10) + randomDigits(4);
|
|
51
|
+
const cs = luhnChecksum(payload + "0");
|
|
52
|
+
return payload + String((10 - cs) % 10);
|
|
53
|
+
};
|
|
54
|
+
/** French Establishment Identification Number. */
|
|
55
|
+
const siret = {
|
|
56
|
+
name: "French Establishment ID",
|
|
57
|
+
localName: "Système d'Identification du Répertoire des Établissements",
|
|
58
|
+
abbreviation: "SIRET",
|
|
59
|
+
aliases: ["SIRET", "numéro SIRET"],
|
|
60
|
+
candidatePattern: "\\d{3}\\s?\\d{3}\\s?\\d{3}\\s?\\d{5}",
|
|
61
|
+
country: "FR",
|
|
62
|
+
entityType: "company",
|
|
63
|
+
sourceUrl: "https://www.insee.fr/fr/information/2549588",
|
|
64
|
+
examples: ["73282932000074"],
|
|
65
|
+
compact,
|
|
66
|
+
format,
|
|
67
|
+
validate,
|
|
68
|
+
generate
|
|
69
|
+
};
|
|
70
|
+
//#endregion
|
|
71
|
+
export { compact, siret as default, format, generate, validate };
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=siret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siret.js","names":[],"sources":["../../src/fr/siret.ts"],"sourcesContent":["/**\n * SIRET (Système d'Identification du Répertoire\n * des Établissements).\n *\n * French establishment identification number.\n * 14 digits: SIREN (9) + NIC (5). Validated\n * with Luhn, with a special case for La Poste.\n *\n * @see https://www.insee.fr/fr/information/2549588\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 compact = (value: string): string =>\n clean(value, \" -.\");\n\n/**\n * La Poste SIRET uses digit sum % 5 instead of\n * Luhn, EXCEPT the head office (35600000000048)\n * which uses standard Luhn.\n */\nconst isLaPoste = (v: string): boolean =>\n v.startsWith(\"356000000\") && v !== \"35600000000048\";\n\nconst digitSum = (v: string): number => {\n let sum = 0;\n for (let i = 0; i < v.length; i++) {\n sum += Number(v[i]);\n }\n return sum;\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 14) {\n return err(\n \"INVALID_LENGTH\",\n \"SIRET must be exactly 14 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"SIRET must contain only digits\",\n );\n }\n\n // Validate SIREN part (first 9 digits)\n const siren = v.slice(0, 9);\n if (!luhnValidate(siren) && !isLaPoste(v)) {\n return err(\n \"INVALID_CHECKSUM\",\n \"SIRET SIREN part fails Luhn check\",\n );\n }\n\n // La Poste: digit sum mod 5\n if (isLaPoste(v)) {\n if (digitSum(v) % 5 !== 0) {\n return err(\n \"INVALID_CHECKSUM\",\n \"SIRET La Poste digit sum check failed\",\n );\n }\n } else {\n // Standard: full 14-digit Luhn\n if (!luhnValidate(v)) {\n return err(\n \"INVALID_CHECKSUM\",\n \"SIRET fails Luhn check\",\n );\n }\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return `${v.slice(0, 3)} ${v.slice(3, 6)} ${v.slice(6, 9)} ${v.slice(9)}`;\n};\n\n/** Generate a random valid French SIRET. */\nconst generate = (): string => {\n const sp = randomDigits(8);\n const sc = luhnChecksum(sp + \"0\");\n const siren = sp + String((10 - sc) % 10);\n const nic = randomDigits(4);\n const payload = siren + nic;\n const cs = luhnChecksum(payload + \"0\");\n return payload + String((10 - cs) % 10);\n};\n\n/** French Establishment Identification Number. */\nconst siret: Validator = {\n name: \"French Establishment ID\",\n localName:\n \"Système d'Identification du Répertoire des Établissements\",\n abbreviation: \"SIRET\",\n aliases: [\"SIRET\", \"numéro SIRET\"] as const,\n candidatePattern: \"\\\\d{3}\\\\s?\\\\d{3}\\\\s?\\\\d{3}\\\\s?\\\\d{5}\",\n country: \"FR\",\n entityType: \"company\",\n sourceUrl: \"https://www.insee.fr/fr/information/2549588\",\n examples: [\"73282932000074\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default siret;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;;;;;;;;;;;AAsBA,MAAM,WAAW,UACf,MAAM,OAAO,MAAM;;;;;;AAOrB,MAAM,aAAa,MACjB,EAAE,WAAW,YAAY,IAAI,MAAM;AAErC,MAAM,YAAY,MAAsB;CACtC,IAAI,MAAM;AACV,MAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAC5B,QAAO,OAAO,EAAE,GAAG;AAErB,QAAO;;AAGT,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,MAAM;AACxB,KAAI,EAAE,WAAW,GACf,QAAO,IACL,kBACA,kCACD;AAEH,KAAI,CAAC,SAAS,EAAE,CACd,QAAO,IACL,kBACA,iCACD;AAKH,KAAI,CAAC,aADS,EAAE,MAAM,GAAG,EAAE,CACH,IAAI,CAAC,UAAU,EAAE,CACvC,QAAO,IACL,oBACA,oCACD;AAIH,KAAI,UAAU,EAAE;MACV,SAAS,EAAE,GAAG,MAAM,EACtB,QAAO,IACL,oBACA,wCACD;YAIC,CAAC,aAAa,EAAE,CAClB,QAAO,IACL,oBACA,yBACD;AAIL,QAAO;EAAE,OAAO;EAAM,SAAS;EAAG;;AAGpC,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,MAAM;AACxB,QAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE;;;AAIzE,MAAM,iBAAyB;CAC7B,MAAM,KAAK,aAAa,EAAE;CAC1B,MAAM,KAAK,aAAa,KAAK,IAAI;CAGjC,MAAM,UAFQ,KAAK,QAAQ,KAAK,MAAM,GAAG,GAC7B,aAAa,EAAE;CAE3B,MAAM,KAAK,aAAa,UAAU,IAAI;AACtC,QAAO,UAAU,QAAQ,KAAK,MAAM,GAAG;;;AAIzC,MAAM,QAAmB;CACvB,MAAM;CACN,WACE;CACF,cAAc;CACd,SAAS,CAAC,SAAS,eAAe;CAClC,kBAAkB;CAClB,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,iBAAiB;CAC5B;CACA;CACA;CACA;CACD"}
|
package/dist/fr/tva.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidateResult, Validator } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/fr/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 French TVA. */
|
|
9
|
+
declare const generate: () => string;
|
|
10
|
+
/** French VAT Number. */
|
|
11
|
+
declare const tva: Validator;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { compact, tva as default, format, generate, validate };
|
|
14
|
+
//# sourceMappingURL=tva.d.ts.map
|