@stll/stdnum 1.0.0 → 2.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/README.md +1 -4
- package/dist/_checksums/luhn.js.map +1 -1
- package/dist/_checksums/mod1110.js +1 -1
- package/dist/_checksums/mod1110.js.map +1 -1
- package/dist/_checksums/mod112.js.map +1 -1
- package/dist/_checksums/mod97.js.map +1 -1
- package/dist/_checksums/verhoeff.js.map +1 -1
- package/dist/_checksums/weighted-sum.js.map +1 -1
- package/dist/_util/arabic.js.map +1 -1
- package/dist/_util/clean.js.map +1 -1
- package/dist/_util/date.js.map +1 -1
- package/dist/_util/generate.js.map +1 -1
- package/dist/_util/result.js.map +1 -1
- package/dist/_util/strings.js.map +1 -1
- package/dist/ad/nrt.d.ts +16 -2
- package/dist/ad/nrt.js +1 -14
- package/dist/ad/nrt.js.map +1 -1
- package/dist/ae/eid.d.ts +2 -2
- package/dist/ae/eid.js +2 -12
- package/dist/ae/eid.js.map +1 -1
- package/dist/ai/tin.d.ts +20 -2
- package/dist/ai/tin.js +1 -18
- package/dist/ai/tin.js.map +1 -1
- package/dist/al/nipt.d.ts +13 -2
- package/dist/al/nipt.js +1 -11
- package/dist/al/nipt.js.map +1 -1
- package/dist/am/tin.d.ts +16 -2
- package/dist/am/tin.js +1 -14
- package/dist/am/tin.js.map +1 -1
- package/dist/ar/cbu.d.ts +2 -2
- package/dist/ar/cbu.js +1 -9
- package/dist/ar/cbu.js.map +1 -1
- package/dist/ar/cuit.d.ts +2 -2
- package/dist/ar/cuit.js +1 -17
- package/dist/ar/cuit.js.map +1 -1
- package/dist/ar/dni.d.ts +11 -2
- package/dist/ar/dni.js +1 -9
- package/dist/ar/dni.js.map +1 -1
- package/dist/at/businessid.d.ts +10 -2
- package/dist/at/businessid.js +1 -8
- package/dist/at/businessid.js.map +1 -1
- package/dist/at/tin.d.ts +2 -2
- package/dist/at/tin.js +1 -11
- package/dist/at/tin.js.map +1 -1
- package/dist/at/uid.d.ts +2 -2
- package/dist/at/uid.js +2 -10
- package/dist/at/uid.js.map +1 -1
- package/dist/at/vnr.d.ts +2 -2
- package/dist/at/vnr.js +4 -14
- package/dist/at/vnr.js.map +1 -1
- package/dist/au/abn.d.ts +2 -2
- package/dist/au/abn.js +1 -10
- package/dist/au/abn.js.map +1 -1
- package/dist/au/acn.d.ts +2 -2
- package/dist/au/acn.js +1 -10
- package/dist/au/acn.js.map +1 -1
- package/dist/au/tfn.d.ts +2 -2
- package/dist/au/tfn.js +1 -10
- package/dist/au/tfn.js.map +1 -1
- package/dist/az/voen.d.ts +2 -2
- package/dist/az/voen.js +1 -14
- package/dist/az/voen.js.map +1 -1
- package/dist/ba/jmbg.d.ts +2 -2
- package/dist/ba/jmbg.js +3 -11
- package/dist/ba/jmbg.js.map +1 -1
- package/dist/bd/nid.d.ts +23 -2
- package/dist/bd/nid.js +1 -21
- package/dist/bd/nid.js.map +1 -1
- package/dist/be/bis.d.ts +2 -2
- package/dist/be/bis.js +1 -11
- package/dist/be/bis.js.map +1 -1
- package/dist/be/nn.d.ts +2 -2
- package/dist/be/nn.js +1 -11
- package/dist/be/nn.js.map +1 -1
- package/dist/be/vat.d.ts +2 -2
- package/dist/be/vat.js +1 -9
- package/dist/be/vat.js.map +1 -1
- package/dist/bg/egn.d.ts +2 -2
- package/dist/bg/egn.js +3 -18
- package/dist/bg/egn.js.map +1 -1
- package/dist/bg/pnf.d.ts +2 -2
- package/dist/bg/pnf.js +1 -8
- package/dist/bg/pnf.js.map +1 -1
- package/dist/bg/vat.d.ts +2 -2
- package/dist/bg/vat.js +3 -9
- package/dist/bg/vat.js.map +1 -1
- package/dist/bh/cpr.d.ts +2 -2
- package/dist/bh/cpr.js +1 -17
- package/dist/bh/cpr.js.map +1 -1
- package/dist/bic.d.ts +13 -2
- package/dist/bic.js +1 -11
- package/dist/bic.js.map +1 -1
- package/dist/br/cnpj.d.ts +2 -2
- package/dist/br/cnpj.js +1 -20
- package/dist/br/cnpj.js.map +1 -1
- package/dist/br/cpf.d.ts +2 -2
- package/dist/br/cpf.js +1 -14
- package/dist/br/cpf.js.map +1 -1
- package/dist/by/unp.d.ts +2 -2
- package/dist/by/unp.js +3 -14
- package/dist/by/unp.js.map +1 -1
- package/dist/bz/tin.d.ts +2 -2
- package/dist/bz/tin.js +1 -26
- package/dist/bz/tin.js.map +1 -1
- package/dist/ca/bn.d.ts +2 -2
- package/dist/ca/bn.js +2 -10
- package/dist/ca/bn.js.map +1 -1
- package/dist/ca/sin.d.ts +2 -2
- package/dist/ca/sin.js +2 -10
- package/dist/ca/sin.js.map +1 -1
- package/dist/ch/ssn.d.ts +2 -2
- package/dist/ch/ssn.js +1 -9
- package/dist/ch/ssn.js.map +1 -1
- package/dist/ch/uid.d.ts +2 -2
- package/dist/ch/uid.js +1 -9
- package/dist/ch/uid.js.map +1 -1
- package/dist/ch/vat.d.ts +2 -2
- package/dist/ch/vat.js +1 -9
- package/dist/ch/vat.js.map +1 -1
- package/dist/cl/rut.d.ts +2 -2
- package/dist/cl/rut.js +1 -14
- package/dist/cl/rut.js.map +1 -1
- package/dist/cn/ric.d.ts +2 -2
- package/dist/cn/ric.js +3 -14
- package/dist/cn/ric.js.map +1 -1
- package/dist/cn/uscc.d.ts +2 -2
- package/dist/cn/uscc.js +1 -10
- package/dist/cn/uscc.js.map +1 -1
- package/dist/co/nit.d.ts +2 -2
- package/dist/co/nit.js +2 -12
- package/dist/co/nit.js.map +1 -1
- package/dist/cr/cpf.d.ts +18 -2
- package/dist/cr/cpf.js +1 -16
- package/dist/cr/cpf.js.map +1 -1
- package/dist/creditcard.d.ts +2 -2
- package/dist/creditcard.js +5 -14
- package/dist/creditcard.js.map +1 -1
- package/dist/cu/ni.d.ts +2 -2
- package/dist/cu/ni.js +2 -17
- package/dist/cu/ni.js.map +1 -1
- package/dist/cy/vat.d.ts +2 -2
- package/dist/cy/vat.js +1 -8
- package/dist/cy/vat.js.map +1 -1
- package/dist/cz/dic.d.ts +2 -2
- package/dist/cz/dic.js +7 -13
- package/dist/cz/dic.js.map +1 -1
- package/dist/cz/ico.d.ts +2 -2
- package/dist/cz/ico.js +2 -10
- package/dist/cz/ico.js.map +1 -1
- package/dist/cz/rc.d.ts +2 -2
- package/dist/cz/rc.js +2 -26
- package/dist/cz/rc.js.map +1 -1
- package/dist/de/handelsreg.d.ts +19 -2
- package/dist/de/handelsreg.js +1 -17
- package/dist/de/handelsreg.js.map +1 -1
- package/dist/de/idnr.d.ts +2 -2
- package/dist/de/idnr.js +2 -12
- package/dist/de/idnr.js.map +1 -1
- package/dist/de/stnr.d.ts +17 -2
- package/dist/de/stnr.js +1 -15
- package/dist/de/stnr.js.map +1 -1
- package/dist/de/svnr.d.ts +2 -2
- package/dist/de/svnr.js +2 -11
- package/dist/de/svnr.js.map +1 -1
- package/dist/de/vat.d.ts +2 -2
- package/dist/de/vat.js +2 -11
- package/dist/de/vat.js.map +1 -1
- package/dist/dk/cpr.d.ts +2 -2
- package/dist/dk/cpr.js +2 -10
- package/dist/dk/cpr.js.map +1 -1
- package/dist/dk/cvr.d.ts +2 -2
- package/dist/dk/cvr.js +2 -15
- package/dist/dk/cvr.js.map +1 -1
- package/dist/dk/vat.d.ts +2 -2
- package/dist/dk/vat.js +3 -13
- package/dist/dk/vat.js.map +1 -1
- package/dist/do/rnc.d.ts +2 -2
- package/dist/do/rnc.js +2 -16
- package/dist/do/rnc.js.map +1 -1
- package/dist/ec/ruc.d.ts +2 -2
- package/dist/ec/ruc.js +1 -18
- package/dist/ec/ruc.js.map +1 -1
- package/dist/ee/ik.d.ts +2 -2
- package/dist/ee/ik.js +3 -20
- package/dist/ee/ik.js.map +1 -1
- package/dist/ee/registrikood.d.ts +2 -2
- package/dist/ee/registrikood.js +1 -8
- package/dist/ee/registrikood.js.map +1 -1
- package/dist/ee/vat.d.ts +2 -2
- package/dist/ee/vat.js +2 -10
- package/dist/ee/vat.js.map +1 -1
- package/dist/eg/tn.d.ts +11 -2
- package/dist/eg/tn.js +1 -9
- package/dist/eg/tn.js.map +1 -1
- package/dist/es/cif.d.ts +2 -2
- package/dist/es/cif.js +1 -10
- package/dist/es/cif.js.map +1 -1
- package/dist/es/dni.d.ts +2 -2
- package/dist/es/dni.js +1 -9
- package/dist/es/dni.js.map +1 -1
- package/dist/es/nie.d.ts +2 -2
- package/dist/es/nie.js +1 -9
- package/dist/es/nie.js.map +1 -1
- package/dist/es/nss.d.ts +2 -2
- package/dist/es/nss.js +1 -16
- package/dist/es/nss.js.map +1 -1
- package/dist/es/vat.d.ts +2 -2
- package/dist/es/vat.js +5 -10
- package/dist/es/vat.js.map +1 -1
- package/dist/eu/vat.d.ts +2 -2
- package/dist/eu/vat.js +1 -0
- package/dist/eu/vat.js.map +1 -1
- package/dist/fi/hetu.d.ts +2 -2
- package/dist/fi/hetu.js +2 -10
- package/dist/fi/hetu.js.map +1 -1
- package/dist/fi/vat.d.ts +2 -2
- package/dist/fi/vat.js +3 -10
- package/dist/fi/vat.js.map +1 -1
- package/dist/fi/ytunnus.d.ts +2 -2
- package/dist/fi/ytunnus.js +2 -10
- package/dist/fi/ytunnus.js.map +1 -1
- package/dist/fr/nif.d.ts +2 -2
- package/dist/fr/nif.js +1 -9
- package/dist/fr/nif.js.map +1 -1
- package/dist/fr/nir.d.ts +2 -2
- package/dist/fr/nir.js +2 -14
- package/dist/fr/nir.js.map +1 -1
- package/dist/fr/siren.d.ts +2 -2
- package/dist/fr/siren.js +2 -10
- package/dist/fr/siren.js.map +1 -1
- package/dist/fr/siret.d.ts +2 -2
- package/dist/fr/siret.js +2 -11
- package/dist/fr/siret.js.map +1 -1
- package/dist/fr/tva.d.ts +2 -2
- package/dist/fr/tva.js +2 -12
- package/dist/fr/tva.js.map +1 -1
- package/dist/gb/nino.d.ts +12 -2
- package/dist/gb/nino.js +1 -10
- package/dist/gb/nino.js.map +1 -1
- package/dist/gb/sedol.d.ts +2 -2
- package/dist/gb/sedol.js +1 -11
- package/dist/gb/sedol.js.map +1 -1
- package/dist/gb/utr.d.ts +2 -2
- package/dist/gb/utr.js +2 -10
- package/dist/gb/utr.js.map +1 -1
- package/dist/gb/vat.d.ts +2 -2
- package/dist/gb/vat.js +2 -11
- package/dist/gb/vat.js.map +1 -1
- package/dist/ge/pin.d.ts +14 -2
- package/dist/ge/pin.js +1 -12
- package/dist/ge/pin.js.map +1 -1
- package/dist/gh/tin.d.ts +2 -2
- package/dist/gh/tin.js +1 -15
- package/dist/gh/tin.js.map +1 -1
- package/dist/gr/amka.d.ts +2 -2
- package/dist/gr/amka.js +3 -11
- package/dist/gr/amka.js.map +1 -1
- package/dist/gr/vat.d.ts +2 -2
- package/dist/gr/vat.js +1 -10
- package/dist/gr/vat.js.map +1 -1
- package/dist/gt/nit.d.ts +2 -2
- package/dist/gt/nit.js +1 -12
- package/dist/gt/nit.js.map +1 -1
- package/dist/hk/hkid.d.ts +2 -2
- package/dist/hk/hkid.js +1 -10
- package/dist/hk/hkid.js.map +1 -1
- package/dist/hr/vat.d.ts +2 -2
- package/dist/hr/vat.js +2 -9
- package/dist/hr/vat.js.map +1 -1
- package/dist/hu/vat.d.ts +2 -2
- package/dist/hu/vat.js +3 -10
- package/dist/hu/vat.js.map +1 -1
- package/dist/iban.d.ts +2 -2
- package/dist/iban.js +2 -8
- package/dist/iban.js.map +1 -1
- package/dist/id/npwp.d.ts +2 -2
- package/dist/id/npwp.js +3 -13
- package/dist/id/npwp.js.map +1 -1
- package/dist/ie/pps.d.ts +2 -2
- package/dist/ie/pps.js +1 -10
- package/dist/ie/pps.js.map +1 -1
- package/dist/ie/vat.d.ts +2 -2
- package/dist/ie/vat.js +1 -9
- package/dist/ie/vat.js.map +1 -1
- package/dist/il/idnr.d.ts +2 -2
- package/dist/il/idnr.js +2 -9
- package/dist/il/idnr.js.map +1 -1
- package/dist/in/aadhaar.d.ts +2 -2
- package/dist/in/aadhaar.js +2 -12
- package/dist/in/aadhaar.js.map +1 -1
- package/dist/in/gstin.d.ts +2 -2
- package/dist/in/gstin.js +1 -10
- package/dist/in/gstin.js.map +1 -1
- package/dist/in/pan.d.ts +15 -2
- package/dist/in/pan.js +1 -13
- package/dist/in/pan.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -6
- package/dist/iq/nid.d.ts +16 -2
- package/dist/iq/nid.js +2 -15
- package/dist/iq/nid.js.map +1 -1
- package/dist/ir/nid.d.ts +2 -2
- package/dist/ir/nid.js +2 -24
- package/dist/ir/nid.js.map +1 -1
- package/dist/is/kennitala.d.ts +2 -2
- package/dist/is/kennitala.js +2 -13
- package/dist/is/kennitala.js.map +1 -1
- package/dist/is/vsk.d.ts +9 -2
- package/dist/is/vsk.js +1 -7
- package/dist/is/vsk.js.map +1 -1
- package/dist/isin.d.ts +2 -2
- package/dist/isin.js +2 -12
- package/dist/isin.js.map +1 -1
- package/dist/it/codicefiscale.d.ts +2 -2
- package/dist/it/codicefiscale.js +1 -21
- package/dist/it/codicefiscale.js.map +1 -1
- package/dist/it/iva.d.ts +2 -2
- package/dist/it/iva.js +2 -9
- package/dist/it/iva.js.map +1 -1
- package/dist/jp/cn.d.ts +2 -2
- package/dist/jp/cn.js +1 -9
- package/dist/jp/cn.js.map +1 -1
- package/dist/jp/mynumber.d.ts +2 -2
- package/dist/jp/mynumber.js +1 -10
- package/dist/jp/mynumber.js.map +1 -1
- package/dist/kr/brn.d.ts +11 -2
- package/dist/kr/brn.js +1 -9
- package/dist/kr/brn.js.map +1 -1
- package/dist/kr/rrn.d.ts +2 -2
- package/dist/kr/rrn.js +2 -11
- package/dist/kr/rrn.js.map +1 -1
- package/dist/kw/civil.d.ts +2 -2
- package/dist/kw/civil.js +2 -14
- package/dist/kw/civil.js.map +1 -1
- package/dist/kz/iin.d.ts +2 -2
- package/dist/kz/iin.js +3 -18
- package/dist/kz/iin.js.map +1 -1
- package/dist/lei.d.ts +2 -2
- package/dist/lei.js +2 -11
- package/dist/lei.js.map +1 -1
- package/dist/li/peid.d.ts +11 -2
- package/dist/li/peid.js +1 -9
- package/dist/li/peid.js.map +1 -1
- package/dist/lk/nic.d.ts +2 -2
- package/dist/lk/nic.js +2 -14
- package/dist/lk/nic.js.map +1 -1
- package/dist/lt/asmens.d.ts +2 -2
- package/dist/lt/asmens.js +2 -1
- package/dist/lt/asmens.js.map +1 -1
- package/dist/lt/vat.d.ts +2 -2
- package/dist/lt/vat.js +2 -10
- package/dist/lt/vat.js.map +1 -1
- package/dist/lu/vat.d.ts +2 -2
- package/dist/lu/vat.js +2 -8
- package/dist/lu/vat.js.map +1 -1
- package/dist/luhn.d.ts +2 -2
- package/dist/luhn.js +2 -9
- package/dist/luhn.js.map +1 -1
- package/dist/lv/vat.d.ts +2 -2
- package/dist/lv/vat.js +2 -28
- package/dist/lv/vat.js.map +1 -1
- package/dist/ma/ice.d.ts +2 -2
- package/dist/ma/ice.js +2 -11
- package/dist/ma/ice.js.map +1 -1
- package/dist/mc/tva.d.ts +2 -2
- package/dist/mc/tva.js +1 -0
- package/dist/mc/tva.js.map +1 -1
- package/dist/md/idno.d.ts +2 -2
- package/dist/md/idno.js +1 -10
- package/dist/md/idno.js.map +1 -1
- package/dist/me/pib.d.ts +2 -2
- package/dist/me/pib.js +2 -10
- package/dist/me/pib.js.map +1 -1
- package/dist/mk/edb.d.ts +2 -2
- package/dist/mk/edb.js +2 -11
- package/dist/mk/edb.js.map +1 -1
- package/dist/mt/vat.d.ts +2 -2
- package/dist/mt/vat.js +3 -10
- package/dist/mt/vat.js.map +1 -1
- package/dist/mu/brn.d.ts +23 -2
- package/dist/mu/brn.js +1 -21
- package/dist/mu/brn.js.map +1 -1
- package/dist/mx/clabe.d.ts +2 -2
- package/dist/mx/clabe.js +1 -14
- package/dist/mx/clabe.js.map +1 -1
- package/dist/mx/curp.d.ts +2 -2
- package/dist/mx/curp.js +3 -17
- package/dist/mx/curp.js.map +1 -1
- package/dist/mx/rfc.d.ts +2 -2
- package/dist/mx/rfc.js +3 -19
- package/dist/mx/rfc.js.map +1 -1
- package/dist/my/nric.d.ts +2 -2
- package/dist/my/nric.js +2 -14
- package/dist/my/nric.js.map +1 -1
- package/dist/ng/nin.d.ts +13 -2
- package/dist/ng/nin.js +1 -11
- package/dist/ng/nin.js.map +1 -1
- package/dist/ni/ruc.d.ts +2 -2
- package/dist/ni/ruc.js +1 -23
- package/dist/ni/ruc.js.map +1 -1
- package/dist/nl/bsn.d.ts +2 -2
- package/dist/nl/bsn.js +2 -10
- package/dist/nl/bsn.js.map +1 -1
- package/dist/nl/kvk.d.ts +9 -2
- package/dist/nl/kvk.js +1 -7
- package/dist/nl/kvk.js.map +1 -1
- package/dist/nl/vat.d.ts +2 -2
- package/dist/nl/vat.js +1 -13
- package/dist/nl/vat.js.map +1 -1
- package/dist/no/fodselsnummer.d.ts +2 -2
- package/dist/no/fodselsnummer.js +2 -10
- package/dist/no/fodselsnummer.js.map +1 -1
- package/dist/no/mva.d.ts +2 -2
- package/dist/no/mva.js +1 -8
- package/dist/no/mva.js.map +1 -1
- package/dist/no/orgnr.d.ts +2 -2
- package/dist/no/orgnr.js +2 -8
- package/dist/no/orgnr.js.map +1 -1
- package/dist/nz/ird.d.ts +2 -2
- package/dist/nz/ird.js +2 -11
- package/dist/nz/ird.js.map +1 -1
- package/dist/pa/ruc.d.ts +2 -2
- package/dist/pa/ruc.js +1 -18
- package/dist/pa/ruc.js.map +1 -1
- package/dist/patterns.d.ts +8 -7
- package/dist/patterns.js +3 -5
- package/dist/patterns.js.map +1 -1
- package/dist/pe/ruc.d.ts +2 -2
- package/dist/pe/ruc.js +1 -15
- package/dist/pe/ruc.js.map +1 -1
- package/dist/ph/philid.d.ts +14 -2
- package/dist/ph/philid.js +1 -12
- package/dist/ph/philid.js.map +1 -1
- package/dist/pk/cnic.d.ts +14 -2
- package/dist/pk/cnic.js +1 -12
- package/dist/pk/cnic.js.map +1 -1
- package/dist/pl/nip.d.ts +2 -2
- package/dist/pl/nip.js +2 -10
- package/dist/pl/nip.js.map +1 -1
- package/dist/pl/pesel.d.ts +2 -2
- package/dist/pl/pesel.js +3 -13
- package/dist/pl/pesel.js.map +1 -1
- package/dist/pl/regon.d.ts +2 -2
- package/dist/pl/regon.js +2 -11
- package/dist/pl/regon.js.map +1 -1
- package/dist/pt/cc.d.ts +2 -2
- package/dist/pt/cc.js +1 -9
- package/dist/pt/cc.js.map +1 -1
- package/dist/pt/vat.d.ts +2 -2
- package/dist/pt/vat.js +3 -11
- package/dist/pt/vat.js.map +1 -1
- package/dist/ro/cnp.d.ts +2 -2
- package/dist/ro/cnp.js +4 -14
- package/dist/ro/cnp.js.map +1 -1
- package/dist/ro/vat.d.ts +2 -2
- package/dist/ro/vat.js +13 -11
- package/dist/ro/vat.js.map +1 -1
- package/dist/rs/pib.d.ts +2 -2
- package/dist/rs/pib.js +1 -9
- package/dist/rs/pib.js.map +1 -1
- package/dist/ru/inn.d.ts +2 -2
- package/dist/ru/inn.js +1 -11
- package/dist/ru/inn.js.map +1 -1
- package/dist/se/orgnr.d.ts +2 -2
- package/dist/se/orgnr.js +2 -9
- package/dist/se/orgnr.js.map +1 -1
- package/dist/se/personnummer.d.ts +2 -2
- package/dist/se/personnummer.js +7 -15
- package/dist/se/personnummer.js.map +1 -1
- package/dist/se/vat.d.ts +2 -2
- package/dist/se/vat.js +3 -10
- package/dist/se/vat.js.map +1 -1
- package/dist/sg/uen.d.ts +2 -2
- package/dist/sg/uen.js +1 -15
- package/dist/sg/uen.js.map +1 -1
- package/dist/si/emso.d.ts +2 -2
- package/dist/si/emso.js +3 -18
- package/dist/si/emso.js.map +1 -1
- package/dist/si/vat.d.ts +2 -2
- package/dist/si/vat.js +3 -12
- package/dist/si/vat.js.map +1 -1
- package/dist/sk/dic.d.ts +2 -2
- package/dist/sk/dic.js +1 -0
- package/dist/sk/dic.js.map +1 -1
- package/dist/sk/ico.d.ts +2 -2
- package/dist/sk/ico.js +1 -0
- package/dist/sk/ico.js.map +1 -1
- package/dist/sk/rc.d.ts +2 -2
- package/dist/sk/rc.js +1 -0
- package/dist/sk/rc.js.map +1 -1
- package/dist/th/tin.d.ts +2 -2
- package/dist/th/tin.js +1 -11
- package/dist/th/tin.js.map +1 -1
- package/dist/tr/tckimlik.d.ts +2 -2
- package/dist/tr/tckimlik.js +1 -20
- package/dist/tr/tckimlik.js.map +1 -1
- package/dist/tr/vkn.d.ts +2 -2
- package/dist/tr/vkn.js +1 -20
- package/dist/tr/vkn.js.map +1 -1
- package/dist/tw/ubn.d.ts +2 -2
- package/dist/tw/ubn.js +1 -11
- package/dist/tw/ubn.js.map +1 -1
- package/dist/types.d.ts +26 -4
- package/dist/ua/edrpou.d.ts +2 -2
- package/dist/ua/edrpou.js +1 -11
- package/dist/ua/edrpou.js.map +1 -1
- package/dist/us/ein.d.ts +12 -2
- package/dist/us/ein.js +1 -10
- package/dist/us/ein.js.map +1 -1
- package/dist/us/itin.d.ts +13 -2
- package/dist/us/itin.js +1 -11
- package/dist/us/itin.js.map +1 -1
- package/dist/us/rtn.d.ts +2 -2
- package/dist/us/rtn.js +3 -18
- package/dist/us/rtn.js.map +1 -1
- package/dist/us/ssn.d.ts +13 -2
- package/dist/us/ssn.js +1 -11
- package/dist/us/ssn.js.map +1 -1
- package/dist/uy/rut.d.ts +2 -2
- package/dist/uy/rut.js +1 -14
- package/dist/uy/rut.js.map +1 -1
- package/dist/ve/rif.d.ts +2 -2
- package/dist/ve/rif.js +2 -15
- package/dist/ve/rif.js.map +1 -1
- package/dist/vn/mst.d.ts +2 -2
- package/dist/vn/mst.js +1 -12
- package/dist/vn/mst.js.map +1 -1
- package/dist/za/idnr.d.ts +2 -2
- package/dist/za/idnr.js +3 -16
- package/dist/za/idnr.js.map +1 -1
- package/package.json +22 -12
- package/src/_checksums/mod1110.ts +1 -1
- package/src/ad/nrt.ts +7 -3
- package/src/ae/eid.ts +7 -3
- package/src/ai/tin.ts +7 -3
- package/src/al/nipt.ts +7 -3
- package/src/am/tin.ts +7 -3
- package/src/ar/cbu.ts +7 -3
- package/src/ar/cuit.ts +7 -3
- package/src/ar/dni.ts +7 -3
- package/src/at/businessid.ts +7 -3
- package/src/at/tin.ts +7 -3
- package/src/at/uid.ts +7 -3
- package/src/at/vnr.ts +37 -9
- package/src/au/abn.ts +7 -3
- package/src/au/acn.ts +7 -3
- package/src/au/tfn.ts +7 -3
- package/src/az/voen.ts +7 -3
- package/src/ba/jmbg.ts +8 -7
- package/src/bd/nid.ts +7 -3
- package/src/be/bis.ts +8 -4
- package/src/be/nn.ts +7 -3
- package/src/be/vat.ts +7 -3
- package/src/bg/egn.ts +8 -7
- package/src/bg/pnf.ts +7 -3
- package/src/bg/vat.ts +8 -3
- package/src/bh/cpr.ts +7 -3
- package/src/bic.ts +7 -3
- package/src/br/cnpj.ts +7 -3
- package/src/br/cpf.ts +7 -3
- package/src/by/unp.ts +10 -5
- package/src/bz/tin.ts +7 -3
- package/src/ca/bn.ts +7 -3
- package/src/ca/sin.ts +7 -3
- package/src/ch/ssn.ts +7 -3
- package/src/ch/uid.ts +7 -3
- package/src/ch/vat.ts +9 -5
- package/src/cl/rut.ts +7 -3
- package/src/cn/ric.ts +8 -7
- package/src/cn/uscc.ts +7 -3
- package/src/co/nit.ts +8 -4
- package/src/cr/cpf.ts +7 -3
- package/src/creditcard.ts +10 -6
- package/src/cu/ni.ts +8 -7
- package/src/cy/vat.ts +7 -3
- package/src/cz/dic.ts +9 -4
- package/src/cz/ico.ts +7 -3
- package/src/cz/rc.ts +8 -7
- package/src/de/handelsreg.ts +7 -3
- package/src/de/idnr.ts +7 -3
- package/src/de/stnr.ts +7 -3
- package/src/de/svnr.ts +7 -3
- package/src/de/vat.ts +7 -3
- package/src/dk/cpr.ts +8 -7
- package/src/dk/cvr.ts +7 -3
- package/src/dk/vat.ts +8 -3
- package/src/do/rnc.ts +7 -3
- package/src/ec/ruc.ts +7 -3
- package/src/ee/ik.ts +8 -7
- package/src/ee/registrikood.ts +8 -4
- package/src/ee/vat.ts +7 -3
- package/src/eg/tn.ts +7 -3
- package/src/es/cif.ts +8 -4
- package/src/es/dni.ts +7 -3
- package/src/es/nie.ts +8 -4
- package/src/es/nss.ts +7 -3
- package/src/es/vat.ts +13 -5
- package/src/eu/vat.ts +10 -6
- package/src/fi/hetu.ts +8 -7
- package/src/fi/vat.ts +8 -3
- package/src/fi/ytunnus.ts +7 -3
- package/src/fr/nif.ts +7 -3
- package/src/fr/nir.ts +8 -7
- package/src/fr/siren.ts +7 -3
- package/src/fr/siret.ts +7 -3
- package/src/fr/tva.ts +7 -3
- package/src/gb/nino.ts +7 -3
- package/src/gb/sedol.ts +7 -3
- package/src/gb/utr.ts +7 -3
- package/src/gb/vat.ts +7 -3
- package/src/ge/pin.ts +7 -3
- package/src/gh/tin.ts +7 -3
- package/src/gr/amka.ts +7 -3
- package/src/gr/vat.ts +7 -3
- package/src/gt/nit.ts +7 -3
- package/src/hk/hkid.ts +7 -3
- package/src/hr/vat.ts +7 -3
- package/src/hu/vat.ts +8 -3
- package/src/iban.ts +7 -3
- package/src/id/npwp.ts +7 -3
- package/src/ie/pps.ts +7 -3
- package/src/ie/vat.ts +7 -3
- package/src/il/idnr.ts +7 -3
- package/src/in/aadhaar.ts +7 -3
- package/src/in/gstin.ts +7 -3
- package/src/in/pan.ts +7 -3
- package/src/index.ts +3 -0
- package/src/iq/nid.ts +7 -3
- package/src/ir/nid.ts +7 -3
- package/src/is/kennitala.ts +7 -3
- package/src/is/vsk.ts +7 -3
- package/src/isin.ts +7 -3
- package/src/it/codicefiscale.ts +11 -7
- package/src/it/iva.ts +7 -3
- package/src/jp/cn.ts +7 -3
- package/src/jp/mynumber.ts +7 -3
- package/src/kr/brn.ts +7 -3
- package/src/kr/rrn.ts +8 -7
- package/src/kw/civil.ts +8 -7
- package/src/kz/iin.ts +8 -8
- package/src/lei.ts +7 -3
- package/src/li/peid.ts +7 -3
- package/src/lk/nic.ts +8 -7
- package/src/lt/asmens.ts +8 -4
- package/src/lt/vat.ts +8 -3
- package/src/lu/vat.ts +8 -3
- package/src/luhn.ts +7 -3
- package/src/lv/vat.ts +7 -3
- package/src/ma/ice.ts +7 -3
- package/src/mc/tva.ts +9 -5
- package/src/md/idno.ts +7 -3
- package/src/me/pib.ts +7 -3
- package/src/mk/edb.ts +7 -3
- package/src/mt/vat.ts +8 -3
- package/src/mu/brn.ts +7 -3
- package/src/mx/clabe.ts +7 -3
- package/src/mx/curp.ts +9 -8
- package/src/mx/rfc.ts +8 -4
- package/src/my/nric.ts +8 -7
- package/src/ng/nin.ts +7 -3
- package/src/ni/ruc.ts +7 -3
- package/src/nl/bsn.ts +7 -3
- package/src/nl/kvk.ts +7 -3
- package/src/nl/vat.ts +7 -3
- package/src/no/fodselsnummer.ts +11 -7
- package/src/no/mva.ts +9 -5
- package/src/no/orgnr.ts +7 -3
- package/src/nz/ird.ts +8 -4
- package/src/pa/ruc.ts +7 -3
- package/src/patterns.ts +49 -18
- package/src/pe/ruc.ts +7 -3
- package/src/ph/philid.ts +7 -3
- package/src/pk/cnic.ts +7 -3
- package/src/pl/nip.ts +7 -3
- package/src/pl/pesel.ts +8 -7
- package/src/pl/regon.ts +7 -3
- package/src/pt/cc.ts +7 -3
- package/src/pt/vat.ts +8 -3
- package/src/ro/cnp.ts +15 -8
- package/src/ro/vat.ts +8 -3
- package/src/rs/pib.ts +7 -3
- package/src/ru/inn.ts +7 -3
- package/src/se/orgnr.ts +7 -3
- package/src/se/personnummer.ts +35 -33
- package/src/se/vat.ts +8 -3
- package/src/sg/uen.ts +7 -3
- package/src/si/emso.ts +8 -7
- package/src/si/vat.ts +8 -3
- package/src/sk/dic.ts +8 -4
- package/src/sk/ico.ts +3 -2
- package/src/sk/rc.ts +6 -2
- package/src/th/tin.ts +7 -3
- package/src/tr/tckimlik.ts +7 -3
- package/src/tr/vkn.ts +7 -3
- package/src/tw/ubn.ts +7 -3
- package/src/types.ts +34 -3
- package/src/ua/edrpou.ts +7 -3
- package/src/us/ein.ts +7 -3
- package/src/us/itin.ts +7 -3
- package/src/us/rtn.ts +16 -8
- package/src/us/ssn.ts +7 -3
- package/src/uy/rut.ts +7 -3
- package/src/ve/rif.ts +8 -6
- package/src/vn/mst.ts +7 -3
- package/src/za/idnr.ts +8 -7
package/src/sk/ico.ts
CHANGED
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
generate,
|
|
14
14
|
validate,
|
|
15
15
|
} from "../cz/ico";
|
|
16
|
-
import type {
|
|
16
|
+
import type { CountryValidator } from "../types";
|
|
17
17
|
|
|
18
18
|
/** Slovak Company Identification Number. */
|
|
19
|
-
const ico:
|
|
19
|
+
const ico: CountryValidator<"SK"> = {
|
|
20
20
|
name: "Slovak Company ID",
|
|
21
21
|
localName: "Identifikačné číslo organizácie",
|
|
22
22
|
abbreviation: "IČO",
|
|
@@ -25,6 +25,7 @@ const ico: Validator = {
|
|
|
25
25
|
"identifikačné číslo organizácie",
|
|
26
26
|
] as const,
|
|
27
27
|
candidatePattern: "\\d{8}",
|
|
28
|
+
scope: "country",
|
|
28
29
|
country: "SK",
|
|
29
30
|
entityType: "company",
|
|
30
31
|
sourceUrl: "https://www.statistics.sk/",
|
package/src/sk/rc.ts
CHANGED
|
@@ -15,15 +15,19 @@ import {
|
|
|
15
15
|
parse,
|
|
16
16
|
validate,
|
|
17
17
|
} from "../cz/rc";
|
|
18
|
-
import type {
|
|
18
|
+
import type {
|
|
19
|
+
ParsedPersonId,
|
|
20
|
+
CountryValidator,
|
|
21
|
+
} from "../types";
|
|
19
22
|
|
|
20
23
|
/** Slovak Birth Number. */
|
|
21
|
-
const rc:
|
|
24
|
+
const rc: CountryValidator<"SK", ParsedPersonId> = {
|
|
22
25
|
name: "Slovak Birth Number",
|
|
23
26
|
localName: "Rodné číslo",
|
|
24
27
|
abbreviation: "RČ",
|
|
25
28
|
aliases: ["rodné číslo", "RČ"] as const,
|
|
26
29
|
candidatePattern: "\\d{6}/\\d{3,4}",
|
|
30
|
+
scope: "country",
|
|
27
31
|
country: "SK",
|
|
28
32
|
entityType: "person",
|
|
29
33
|
sourceUrl: "https://www.minv.sk/",
|
package/src/th/tin.ts
CHANGED
|
@@ -10,13 +10,16 @@
|
|
|
10
10
|
* @see https://en.wikipedia.org/wiki/Thai_identity_card
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
import type {
|
|
14
|
+
ValidateResult,
|
|
15
|
+
CountryValidator,
|
|
16
|
+
} from "../types";
|
|
17
|
+
|
|
13
18
|
import { clean } from "#util/clean";
|
|
14
19
|
import { randomDigits, randomInt } from "#util/generate";
|
|
15
20
|
import { err } from "#util/result";
|
|
16
21
|
import { isdigits } from "#util/strings";
|
|
17
22
|
|
|
18
|
-
import type { ValidateResult, Validator } from "../types";
|
|
19
|
-
|
|
20
23
|
const compact = (value: string): string =>
|
|
21
24
|
clean(value, " -");
|
|
22
25
|
|
|
@@ -79,12 +82,13 @@ const generate = (): string => {
|
|
|
79
82
|
};
|
|
80
83
|
|
|
81
84
|
/** Thai Tax Identification Number. */
|
|
82
|
-
const tin:
|
|
85
|
+
const tin: CountryValidator<"TH"> = {
|
|
83
86
|
name: "Thai Tax Identification Number",
|
|
84
87
|
localName: "เลขประจำตัวผู้เสียภาษี",
|
|
85
88
|
abbreviation: "TIN",
|
|
86
89
|
aliases: ["เลขประจำตัวผู้เสียภาษี", "TIN"] as const,
|
|
87
90
|
candidatePattern: "\\d{13}",
|
|
91
|
+
scope: "country",
|
|
88
92
|
country: "TH",
|
|
89
93
|
entityType: "any",
|
|
90
94
|
description:
|
package/src/tr/tckimlik.ts
CHANGED
|
@@ -19,13 +19,16 @@
|
|
|
19
19
|
* @see https://www.turkiye.gov.tr/nvi-tckn-dogrulama
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
+
import type {
|
|
23
|
+
ValidateResult,
|
|
24
|
+
CountryValidator,
|
|
25
|
+
} from "../types";
|
|
26
|
+
|
|
22
27
|
import { clean } from "#util/clean";
|
|
23
28
|
import { randomDigits, randomInt } from "#util/generate";
|
|
24
29
|
import { err } from "#util/result";
|
|
25
30
|
import { isdigits } from "#util/strings";
|
|
26
31
|
|
|
27
|
-
import type { ValidateResult, Validator } from "../types";
|
|
28
|
-
|
|
29
32
|
const compact = (value: string): string =>
|
|
30
33
|
clean(value, " -./");
|
|
31
34
|
|
|
@@ -88,7 +91,7 @@ const generate = (): string => {
|
|
|
88
91
|
};
|
|
89
92
|
|
|
90
93
|
/** Turkish Personal Identification Number. */
|
|
91
|
-
const tckimlik:
|
|
94
|
+
const tckimlik: CountryValidator<"TR"> = {
|
|
92
95
|
name: "Turkish Personal ID",
|
|
93
96
|
localName: "T.C. Kimlik Numarası",
|
|
94
97
|
abbreviation: "T.C. Kimlik",
|
|
@@ -97,6 +100,7 @@ const tckimlik: Validator = {
|
|
|
97
100
|
"T.C. Kimlik Numarası",
|
|
98
101
|
] as const,
|
|
99
102
|
candidatePattern: "[1-9]\\d{10}",
|
|
103
|
+
scope: "country",
|
|
100
104
|
country: "TR",
|
|
101
105
|
entityType: "person",
|
|
102
106
|
sourceUrl: "https://www.nvi.gov.tr/",
|
package/src/tr/vkn.ts
CHANGED
|
@@ -19,13 +19,16 @@
|
|
|
19
19
|
* @see https://www.gib.gov.tr/
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
+
import type {
|
|
23
|
+
ValidateResult,
|
|
24
|
+
CountryValidator,
|
|
25
|
+
} from "../types";
|
|
26
|
+
|
|
22
27
|
import { clean } from "#util/clean";
|
|
23
28
|
import { randomDigits } from "#util/generate";
|
|
24
29
|
import { err } from "#util/result";
|
|
25
30
|
import { isdigits } from "#util/strings";
|
|
26
31
|
|
|
27
|
-
import type { ValidateResult, Validator } from "../types";
|
|
28
|
-
|
|
29
32
|
const compact = (value: string): string =>
|
|
30
33
|
clean(value, " -./");
|
|
31
34
|
|
|
@@ -77,12 +80,13 @@ const generate = (): string => {
|
|
|
77
80
|
};
|
|
78
81
|
|
|
79
82
|
/** Turkish Tax Identification Number. */
|
|
80
|
-
const vkn:
|
|
83
|
+
const vkn: CountryValidator<"TR"> = {
|
|
81
84
|
name: "Turkish Tax ID",
|
|
82
85
|
localName: "Vergi Kimlik Numarası",
|
|
83
86
|
abbreviation: "VKN",
|
|
84
87
|
aliases: ["VKN", "Vergi Kimlik Numarası"] as const,
|
|
85
88
|
candidatePattern: "\\d{10}",
|
|
89
|
+
scope: "country",
|
|
86
90
|
country: "TR",
|
|
87
91
|
entityType: "company",
|
|
88
92
|
sourceUrl: "https://www.gib.gov.tr/",
|
package/src/tw/ubn.ts
CHANGED
|
@@ -10,13 +10,16 @@
|
|
|
10
10
|
* @see https://zh.wikipedia.org/wiki/統一編號
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
import type {
|
|
14
|
+
ValidateResult,
|
|
15
|
+
CountryValidator,
|
|
16
|
+
} from "../types";
|
|
17
|
+
|
|
13
18
|
import { clean } from "#util/clean";
|
|
14
19
|
import { randomDigits } from "#util/generate";
|
|
15
20
|
import { err } from "#util/result";
|
|
16
21
|
import { isdigits } from "#util/strings";
|
|
17
22
|
|
|
18
|
-
import type { ValidateResult, Validator } from "../types";
|
|
19
|
-
|
|
20
23
|
const WEIGHTS = [1, 2, 1, 2, 1, 2, 4, 1] as const;
|
|
21
24
|
|
|
22
25
|
/** Sum the individual digits of a number. */
|
|
@@ -84,12 +87,13 @@ const generate = (): string => {
|
|
|
84
87
|
};
|
|
85
88
|
|
|
86
89
|
/** Taiwanese Unified Business Number. */
|
|
87
|
-
const ubn:
|
|
90
|
+
const ubn: CountryValidator<"TW"> = {
|
|
88
91
|
name: "Unified Business Number",
|
|
89
92
|
localName: "統一編號",
|
|
90
93
|
abbreviation: "UBN",
|
|
91
94
|
aliases: ["統一編號", "UBN"] as const,
|
|
92
95
|
candidatePattern: "\\d{8}",
|
|
96
|
+
scope: "country",
|
|
93
97
|
country: "TW",
|
|
94
98
|
entityType: "company",
|
|
95
99
|
description:
|
package/src/types.ts
CHANGED
|
@@ -135,7 +135,20 @@ export type ParsedIdentifier =
|
|
|
135
135
|
| ParsedBirthDate
|
|
136
136
|
| ParsedPersonId;
|
|
137
137
|
|
|
138
|
-
|
|
138
|
+
/**
|
|
139
|
+
* Whether an identifier is scoped to a single
|
|
140
|
+
* country (e.g. Czech IČO) or is cross-border by
|
|
141
|
+
* design (e.g. IBAN, ISIN, BIC, LEI, EU VAT).
|
|
142
|
+
*
|
|
143
|
+
* Modeled as a discriminated union so consumers
|
|
144
|
+
* can group, filter, and exhaustively switch
|
|
145
|
+
* without null-checking `country`.
|
|
146
|
+
*/
|
|
147
|
+
export type ValidatorScope =
|
|
148
|
+
| { scope: "country"; country: CountryCode }
|
|
149
|
+
| { scope: "global" };
|
|
150
|
+
|
|
151
|
+
type ValidatorBase<
|
|
139
152
|
TParsed extends ParsedIdentifier | undefined = undefined,
|
|
140
153
|
> = {
|
|
141
154
|
/** English name. */
|
|
@@ -144,8 +157,6 @@ export type Validator<
|
|
|
144
157
|
localName: string;
|
|
145
158
|
/** Common abbreviation (e.g. "IČO"). */
|
|
146
159
|
abbreviation: string;
|
|
147
|
-
/** Country this identifier belongs to. */
|
|
148
|
-
country?: CountryCode;
|
|
149
160
|
/** What kind of entity this identifies. */
|
|
150
161
|
entityType: "person" | "company" | "any";
|
|
151
162
|
|
|
@@ -226,6 +237,26 @@ export type Validator<
|
|
|
226
237
|
? unknown
|
|
227
238
|
: { parse: (value: string) => TParsed | null });
|
|
228
239
|
|
|
240
|
+
export type CountryValidator<
|
|
241
|
+
TCountry extends CountryCode = CountryCode,
|
|
242
|
+
TParsed extends ParsedIdentifier | undefined = undefined,
|
|
243
|
+
> = ValidatorBase<TParsed> & {
|
|
244
|
+
scope: "country";
|
|
245
|
+
country: TCountry;
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
export type GlobalValidator<
|
|
249
|
+
TParsed extends ParsedIdentifier | undefined = undefined,
|
|
250
|
+
> = ValidatorBase<TParsed> & {
|
|
251
|
+
scope: "global";
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
export type Validator<
|
|
255
|
+
TParsed extends ParsedIdentifier | undefined = undefined,
|
|
256
|
+
> =
|
|
257
|
+
| CountryValidator<CountryCode, TParsed>
|
|
258
|
+
| GlobalValidator<TParsed>;
|
|
259
|
+
|
|
229
260
|
export type ParsableValidator<
|
|
230
261
|
TParsed extends ParsedIdentifier = ParsedIdentifier,
|
|
231
262
|
> = Validator<TParsed>;
|
package/src/ua/edrpou.ts
CHANGED
|
@@ -10,13 +10,16 @@
|
|
|
10
10
|
* @see https://usr.minjust.gov.ua/
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
import type {
|
|
14
|
+
ValidateResult,
|
|
15
|
+
CountryValidator,
|
|
16
|
+
} from "../types";
|
|
17
|
+
|
|
13
18
|
import { clean } from "#util/clean";
|
|
14
19
|
import { randomDigits } from "#util/generate";
|
|
15
20
|
import { err } from "#util/result";
|
|
16
21
|
import { isdigits } from "#util/strings";
|
|
17
22
|
|
|
18
|
-
import type { ValidateResult, Validator } from "../types";
|
|
19
|
-
|
|
20
23
|
const WEIGHTS_A = [1, 2, 3, 4, 5, 6, 7] as const;
|
|
21
24
|
const WEIGHTS_B = [7, 1, 2, 3, 4, 5, 6] as const;
|
|
22
25
|
const WEIGHTS_A2 = [3, 4, 5, 6, 7, 8, 9] as const;
|
|
@@ -83,12 +86,13 @@ const generate = (): string => {
|
|
|
83
86
|
};
|
|
84
87
|
|
|
85
88
|
/** Ukrainian Company Register Number. */
|
|
86
|
-
const edrpou:
|
|
89
|
+
const edrpou: CountryValidator<"UA"> = {
|
|
87
90
|
name: "Ukrainian Company Register Number",
|
|
88
91
|
localName: "ЄДРПОУ",
|
|
89
92
|
abbreviation: "ЄДРПОУ",
|
|
90
93
|
aliases: ["ЄДРПОУ", "EDRPOU"] as const,
|
|
91
94
|
candidatePattern: "\\d{8}",
|
|
95
|
+
scope: "country",
|
|
92
96
|
country: "UA",
|
|
93
97
|
entityType: "company",
|
|
94
98
|
lengths: [8] as const,
|
package/src/us/ein.ts
CHANGED
|
@@ -101,13 +101,16 @@ const generate = (): string => {
|
|
|
101
101
|
* @see https://www.irs.gov/businesses/small-businesses-self-employed/how-eins-are-assigned-and-valid-ein-prefixes
|
|
102
102
|
*/
|
|
103
103
|
|
|
104
|
+
import type {
|
|
105
|
+
ValidateResult,
|
|
106
|
+
CountryValidator,
|
|
107
|
+
} from "../types";
|
|
108
|
+
|
|
104
109
|
import { clean } from "#util/clean";
|
|
105
110
|
import { randomDigits, randomPick } from "#util/generate";
|
|
106
111
|
import { err } from "#util/result";
|
|
107
112
|
import { isdigits } from "#util/strings";
|
|
108
113
|
|
|
109
|
-
import type { ValidateResult, Validator } from "../types";
|
|
110
|
-
|
|
111
114
|
/**
|
|
112
115
|
* Valid EIN campus prefixes. Sourced from IRS
|
|
113
116
|
* documentation and python-stdnum's numdb.
|
|
@@ -232,7 +235,7 @@ const format = (value: string): string => {
|
|
|
232
235
|
};
|
|
233
236
|
|
|
234
237
|
/** U.S. Employer Identification Number. */
|
|
235
|
-
const ein:
|
|
238
|
+
const ein: CountryValidator<"US"> = {
|
|
236
239
|
name: "Employer Identification Number",
|
|
237
240
|
localName: "Employer Identification Number",
|
|
238
241
|
abbreviation: "EIN",
|
|
@@ -242,6 +245,7 @@ const ein: Validator = {
|
|
|
242
245
|
"Federal Tax ID",
|
|
243
246
|
] as const,
|
|
244
247
|
candidatePattern: "\\d{2}-?\\d{7}",
|
|
248
|
+
scope: "country",
|
|
245
249
|
country: "US",
|
|
246
250
|
entityType: "company",
|
|
247
251
|
sourceUrl:
|
package/src/us/itin.ts
CHANGED
|
@@ -23,13 +23,16 @@ const generate = (): string => {
|
|
|
23
23
|
* @see https://www.irs.gov/individuals/individual-taxpayer-identification-number
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
+
import type {
|
|
27
|
+
ValidateResult,
|
|
28
|
+
CountryValidator,
|
|
29
|
+
} from "../types";
|
|
30
|
+
|
|
26
31
|
import { clean } from "#util/clean";
|
|
27
32
|
import { randomDigits, randomPick } from "#util/generate";
|
|
28
33
|
import { err } from "#util/result";
|
|
29
34
|
import { isdigits } from "#util/strings";
|
|
30
35
|
|
|
31
|
-
import type { ValidateResult, Validator } from "../types";
|
|
32
|
-
|
|
33
36
|
const ITIN_RE = /^(?<area>\d{3})-?(?<group>\d{2})-?\d{4}$/;
|
|
34
37
|
|
|
35
38
|
/** Groups 70-99 excluding 89 and 93. */
|
|
@@ -99,7 +102,7 @@ const format = (value: string): string => {
|
|
|
99
102
|
/**
|
|
100
103
|
* U.S. Individual Taxpayer Identification Number.
|
|
101
104
|
*/
|
|
102
|
-
const itin:
|
|
105
|
+
const itin: CountryValidator<"US"> = {
|
|
103
106
|
name: "Individual Taxpayer Identification Number",
|
|
104
107
|
localName: "Individual Taxpayer Identification Number",
|
|
105
108
|
abbreviation: "ITIN",
|
|
@@ -108,6 +111,7 @@ const itin: Validator = {
|
|
|
108
111
|
"Individual Taxpayer Identification Number",
|
|
109
112
|
] as const,
|
|
110
113
|
candidatePattern: "9\\d{2}[\\s-]?\\d{2}[\\s-]?\\d{4}",
|
|
114
|
+
scope: "country",
|
|
111
115
|
country: "US",
|
|
112
116
|
entityType: "person",
|
|
113
117
|
sourceUrl:
|
package/src/us/rtn.ts
CHANGED
|
@@ -7,14 +7,19 @@
|
|
|
7
7
|
* [3, 7, 1] repeated three times.
|
|
8
8
|
*
|
|
9
9
|
* The first two digits identify the Federal Reserve
|
|
10
|
-
* district (01-12) or special ranges (
|
|
11
|
-
* thrifts, 61-72 for electronic,
|
|
12
|
-
* cheques).
|
|
10
|
+
* district (01-12) or special ranges (00 for U.S.
|
|
11
|
+
* Government, 21-32 for thrifts, 61-72 for electronic,
|
|
12
|
+
* 80 for traveler's cheques).
|
|
13
13
|
*
|
|
14
14
|
* @see https://en.wikipedia.org/wiki/ABA_routing_transit_number
|
|
15
15
|
* @see https://www.frbservices.org/
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
+
import type {
|
|
19
|
+
ValidateResult,
|
|
20
|
+
CountryValidator,
|
|
21
|
+
} from "../types";
|
|
22
|
+
|
|
18
23
|
import { clean } from "#util/clean";
|
|
19
24
|
import {
|
|
20
25
|
randomDigits,
|
|
@@ -24,8 +29,6 @@ import {
|
|
|
24
29
|
import { err } from "#util/result";
|
|
25
30
|
import { isdigits } from "#util/strings";
|
|
26
31
|
|
|
27
|
-
import type { ValidateResult, Validator } from "../types";
|
|
28
|
-
|
|
29
32
|
const WEIGHTS = [3, 7, 1, 3, 7, 1, 3, 7, 1] as const;
|
|
30
33
|
|
|
31
34
|
const compact = (value: string): string =>
|
|
@@ -48,7 +51,11 @@ const validate = (value: string): ValidateResult => {
|
|
|
48
51
|
// Validate Federal Reserve prefix (first 2 digits)
|
|
49
52
|
const prefix = Number(v.slice(0, 2));
|
|
50
53
|
const validPrefixRanges =
|
|
51
|
-
|
|
54
|
+
// 00 is reserved for U.S. Government and federal
|
|
55
|
+
// agencies per the ABA Routing Number Policy;
|
|
56
|
+
// 01-12 are the 12 Federal Reserve districts.
|
|
57
|
+
// @see https://en.wikipedia.org/wiki/ABA_routing_transit_number
|
|
58
|
+
(prefix >= 0 && prefix <= 12) ||
|
|
52
59
|
(prefix >= 21 && prefix <= 32) ||
|
|
53
60
|
(prefix >= 61 && prefix <= 72) ||
|
|
54
61
|
prefix === 80;
|
|
@@ -78,7 +85,7 @@ const format = (value: string): string => compact(value);
|
|
|
78
85
|
|
|
79
86
|
/** All valid Federal Reserve prefix ranges. */
|
|
80
87
|
const PREFIX_RANGES: readonly [number, number][] = [
|
|
81
|
-
[
|
|
88
|
+
[0, 12],
|
|
82
89
|
[21, 32],
|
|
83
90
|
[61, 72],
|
|
84
91
|
[80, 80],
|
|
@@ -103,7 +110,7 @@ const generate = (): string => {
|
|
|
103
110
|
};
|
|
104
111
|
|
|
105
112
|
/** U.S. Routing Transit Number. */
|
|
106
|
-
const rtn:
|
|
113
|
+
const rtn: CountryValidator<"US"> = {
|
|
107
114
|
name: "Routing Transit Number",
|
|
108
115
|
localName: "Routing Transit Number",
|
|
109
116
|
abbreviation: "RTN",
|
|
@@ -115,6 +122,7 @@ const rtn: Validator = {
|
|
|
115
122
|
"Routing Transit Number",
|
|
116
123
|
] as const,
|
|
117
124
|
candidatePattern: "\\d{9}",
|
|
125
|
+
scope: "country",
|
|
118
126
|
country: "US",
|
|
119
127
|
entityType: "company",
|
|
120
128
|
sourceUrl:
|
package/src/us/ssn.ts
CHANGED
|
@@ -27,13 +27,16 @@ const generate = (): string => {
|
|
|
27
27
|
* @see https://www.ssa.gov/employer/verifySSN.htm
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
+
import type {
|
|
31
|
+
ValidateResult,
|
|
32
|
+
CountryValidator,
|
|
33
|
+
} from "../types";
|
|
34
|
+
|
|
30
35
|
import { clean } from "#util/clean";
|
|
31
36
|
import { randomInt } from "#util/generate";
|
|
32
37
|
import { err } from "#util/result";
|
|
33
38
|
import { isdigits } from "#util/strings";
|
|
34
39
|
|
|
35
|
-
import type { ValidateResult, Validator } from "../types";
|
|
36
|
-
|
|
37
40
|
/** Known-invalid SSNs used in advertisements. */
|
|
38
41
|
const BLACKLIST = new Set([
|
|
39
42
|
"078051120",
|
|
@@ -97,12 +100,13 @@ const format = (value: string): string => {
|
|
|
97
100
|
};
|
|
98
101
|
|
|
99
102
|
/** U.S. Social Security Number. */
|
|
100
|
-
const ssn:
|
|
103
|
+
const ssn: CountryValidator<"US"> = {
|
|
101
104
|
name: "Social Security Number",
|
|
102
105
|
localName: "Social Security Number",
|
|
103
106
|
abbreviation: "SSN",
|
|
104
107
|
aliases: ["SSN", "Social Security Number"] as const,
|
|
105
108
|
candidatePattern: "\\d{3}-?\\d{2}-?\\d{4}",
|
|
109
|
+
scope: "country",
|
|
106
110
|
country: "US",
|
|
107
111
|
entityType: "person",
|
|
108
112
|
sourceUrl: "https://www.ssa.gov/employer/verifySSN.htm",
|
package/src/uy/rut.ts
CHANGED
|
@@ -13,13 +13,16 @@
|
|
|
13
13
|
* @see https://www.agesic.gub.uy/
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
+
import type {
|
|
17
|
+
ValidateResult,
|
|
18
|
+
CountryValidator,
|
|
19
|
+
} from "../types";
|
|
20
|
+
|
|
16
21
|
import { clean } from "#util/clean";
|
|
17
22
|
import { randomDigits, randomInt } from "#util/generate";
|
|
18
23
|
import { err } from "#util/result";
|
|
19
24
|
import { isdigits } from "#util/strings";
|
|
20
25
|
|
|
21
|
-
import type { ValidateResult, Validator } from "../types";
|
|
22
|
-
|
|
23
26
|
const WEIGHTS = [4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;
|
|
24
27
|
|
|
25
28
|
const compact = (value: string): string => {
|
|
@@ -125,12 +128,13 @@ const generate = (): string => {
|
|
|
125
128
|
*
|
|
126
129
|
* Examples sourced from python-stdnum test suite.
|
|
127
130
|
*/
|
|
128
|
-
const rut:
|
|
131
|
+
const rut: CountryValidator<"UY"> = {
|
|
129
132
|
name: "Uruguayan Tax ID",
|
|
130
133
|
localName: "Registro Único Tributario",
|
|
131
134
|
abbreviation: "RUT",
|
|
132
135
|
aliases: ["RUT", "Registro Único Tributario"] as const,
|
|
133
136
|
candidatePattern: "\\d{12}",
|
|
137
|
+
scope: "country",
|
|
134
138
|
country: "UY",
|
|
135
139
|
entityType: "any",
|
|
136
140
|
lengths: [12] as const,
|
package/src/ve/rif.ts
CHANGED
|
@@ -13,13 +13,16 @@
|
|
|
13
13
|
* @see https://en.wikipedia.org/wiki/Tax_Identification_Number#Venezuela
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
+
import type {
|
|
17
|
+
ValidateResult,
|
|
18
|
+
CountryValidator,
|
|
19
|
+
} from "../types";
|
|
20
|
+
|
|
16
21
|
import { clean } from "#util/clean";
|
|
17
22
|
import { randomDigits, randomPick } from "#util/generate";
|
|
18
23
|
import { err } from "#util/result";
|
|
19
24
|
import { isdigits } from "#util/strings";
|
|
20
25
|
|
|
21
|
-
import type { ValidateResult, Validator } from "../types";
|
|
22
|
-
|
|
23
26
|
/**
|
|
24
27
|
* Map prefix letter to its numeric offset used
|
|
25
28
|
* in the check digit computation.
|
|
@@ -110,9 +113,7 @@ const GENERATE_TYPES = ["V", "E", "J", "P", "G"] as const;
|
|
|
110
113
|
const generate = (): string => {
|
|
111
114
|
const prefix = randomPick(GENERATE_TYPES);
|
|
112
115
|
const body = randomDigits(8);
|
|
113
|
-
return (
|
|
114
|
-
prefix + body + String(calcCheckDigit(prefix, body))
|
|
115
|
-
);
|
|
116
|
+
return prefix + body + calcCheckDigit(prefix, body);
|
|
116
117
|
};
|
|
117
118
|
|
|
118
119
|
/**
|
|
@@ -120,7 +121,7 @@ const generate = (): string => {
|
|
|
120
121
|
*
|
|
121
122
|
* Examples sourced from python-stdnum test suite.
|
|
122
123
|
*/
|
|
123
|
-
const rif:
|
|
124
|
+
const rif: CountryValidator<"VE"> = {
|
|
124
125
|
name: "Venezuelan Tax ID",
|
|
125
126
|
localName: "Registro de Información Fiscal",
|
|
126
127
|
abbreviation: "RIF",
|
|
@@ -129,6 +130,7 @@ const rif: Validator = {
|
|
|
129
130
|
"Registro de Información Fiscal",
|
|
130
131
|
] as const,
|
|
131
132
|
candidatePattern: "[VEJPG]-?\\d{8}-?\\d",
|
|
133
|
+
scope: "country",
|
|
132
134
|
country: "VE",
|
|
133
135
|
entityType: "any",
|
|
134
136
|
lengths: [10] as const,
|
package/src/vn/mst.ts
CHANGED
|
@@ -11,13 +11,16 @@
|
|
|
11
11
|
* @see https://easyinvoice.vn/ma-so-thue/
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
import type {
|
|
15
|
+
ValidateResult,
|
|
16
|
+
CountryValidator,
|
|
17
|
+
} from "../types";
|
|
18
|
+
|
|
14
19
|
import { clean } from "#util/clean";
|
|
15
20
|
import { randomDigits, randomInt } from "#util/generate";
|
|
16
21
|
import { err } from "#util/result";
|
|
17
22
|
import { isdigits } from "#util/strings";
|
|
18
23
|
|
|
19
|
-
import type { ValidateResult, Validator } from "../types";
|
|
20
|
-
|
|
21
24
|
const WEIGHTS = [31, 29, 23, 19, 17, 13, 7, 5, 3] as const;
|
|
22
25
|
|
|
23
26
|
const calcCheckDigit = (number: string): string => {
|
|
@@ -104,12 +107,13 @@ const generate = (): string => {
|
|
|
104
107
|
};
|
|
105
108
|
|
|
106
109
|
/** Vietnamese Tax Number. */
|
|
107
|
-
const mst:
|
|
110
|
+
const mst: CountryValidator<"VN"> = {
|
|
108
111
|
name: "Vietnamese Tax Number",
|
|
109
112
|
localName: "Mã số thuế",
|
|
110
113
|
abbreviation: "MST",
|
|
111
114
|
aliases: ["MST", "mã số thuế"] as const,
|
|
112
115
|
candidatePattern: "\\d{10}(-\\d{3})?",
|
|
116
|
+
scope: "country",
|
|
113
117
|
country: "VN",
|
|
114
118
|
entityType: "company",
|
|
115
119
|
description:
|
package/src/za/idnr.ts
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
* @see https://en.wikipedia.org/wiki/South_African_identity_document
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
+
import type {
|
|
17
|
+
ParsedPersonId,
|
|
18
|
+
ValidateResult,
|
|
19
|
+
CountryValidator,
|
|
20
|
+
} from "../types";
|
|
21
|
+
|
|
16
22
|
import {
|
|
17
23
|
luhnValidate,
|
|
18
24
|
luhnChecksum,
|
|
@@ -23,12 +29,6 @@ import { randomDigits, randomInt } from "#util/generate";
|
|
|
23
29
|
import { err } from "#util/result";
|
|
24
30
|
import { isdigits } from "#util/strings";
|
|
25
31
|
|
|
26
|
-
import type {
|
|
27
|
-
ParsedPersonId,
|
|
28
|
-
ValidateResult,
|
|
29
|
-
Validator,
|
|
30
|
-
} from "../types";
|
|
31
|
-
|
|
32
32
|
const compact = (value: string): string =>
|
|
33
33
|
clean(value, " ");
|
|
34
34
|
|
|
@@ -132,12 +132,13 @@ const generate = (): string => {
|
|
|
132
132
|
};
|
|
133
133
|
|
|
134
134
|
/** South African Identity Number. */
|
|
135
|
-
const idnr:
|
|
135
|
+
const idnr: CountryValidator<"ZA", ParsedPersonId> = {
|
|
136
136
|
name: "South African Identity Number",
|
|
137
137
|
localName: "South African Identity Number",
|
|
138
138
|
abbreviation: "SA ID",
|
|
139
139
|
aliases: ["ID number", "RSA ID"] as const,
|
|
140
140
|
candidatePattern: "\\d{13}",
|
|
141
|
+
scope: "country",
|
|
141
142
|
country: "ZA",
|
|
142
143
|
entityType: "person",
|
|
143
144
|
compact,
|