@stll/stdnum 1.0.0 → 2.0.0
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/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/ae/eid.ts
CHANGED
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
* @see https://u.ae/en/information-and-services/visa-and-emirates-id/emirates-id
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
import type {
|
|
14
|
+
ValidateResult,
|
|
15
|
+
CountryValidator,
|
|
16
|
+
} from "../types";
|
|
17
|
+
|
|
13
18
|
import {
|
|
14
19
|
luhnChecksum,
|
|
15
20
|
luhnValidate,
|
|
@@ -19,8 +24,6 @@ import { randomDigits, randomInt } from "#util/generate";
|
|
|
19
24
|
import { err } from "#util/result";
|
|
20
25
|
import { isdigits } from "#util/strings";
|
|
21
26
|
|
|
22
|
-
import type { ValidateResult, Validator } from "../types";
|
|
23
|
-
|
|
24
27
|
const compact = (value: string): string =>
|
|
25
28
|
clean(value, " -/");
|
|
26
29
|
|
|
@@ -77,12 +80,13 @@ const generate = (): string => {
|
|
|
77
80
|
};
|
|
78
81
|
|
|
79
82
|
/** UAE Emirates ID. */
|
|
80
|
-
const eid:
|
|
83
|
+
const eid: CountryValidator<"AE"> = {
|
|
81
84
|
name: "Emirates ID",
|
|
82
85
|
localName: "رقم الهوية",
|
|
83
86
|
abbreviation: "EID",
|
|
84
87
|
aliases: ["EID", "Emirates ID", "رقم الهوية"] as const,
|
|
85
88
|
candidatePattern: "784-\\d{4}-\\d{7}-\\d",
|
|
89
|
+
scope: "country",
|
|
86
90
|
country: "AE",
|
|
87
91
|
entityType: "person",
|
|
88
92
|
lengths: [15],
|
package/src/ai/tin.ts
CHANGED
|
@@ -23,12 +23,15 @@ const generate = (): string => {
|
|
|
23
23
|
* @see https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Anguilla-TIN.pdf
|
|
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 } from "#util/generate";
|
|
28
33
|
import { err } from "#util/result";
|
|
29
34
|
|
|
30
|
-
import type { ValidateResult, Validator } from "../types";
|
|
31
|
-
|
|
32
35
|
const compact = (value: string): string => {
|
|
33
36
|
return clean(value, " -").trim();
|
|
34
37
|
};
|
|
@@ -74,12 +77,13 @@ const format = (value: string): string => {
|
|
|
74
77
|
* (format-only validation, no published check
|
|
75
78
|
* digit algorithm).
|
|
76
79
|
*/
|
|
77
|
-
const tin:
|
|
80
|
+
const tin: CountryValidator<"AI"> = {
|
|
78
81
|
name: "Anguilla Tax Identification Number",
|
|
79
82
|
localName: "Tax Identification Number",
|
|
80
83
|
abbreviation: "TIN",
|
|
81
84
|
aliases: ["TIN"] as const,
|
|
82
85
|
candidatePattern: "\\d{11}",
|
|
86
|
+
scope: "country",
|
|
83
87
|
country: "AI",
|
|
84
88
|
entityType: "any",
|
|
85
89
|
lengths: [10] as const,
|
package/src/al/nipt.ts
CHANGED
|
@@ -18,12 +18,15 @@ const generate = (): string => {
|
|
|
18
18
|
* @see https://www.tatime.gov.al/eng/c/4/103/business-lifecycle
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
+
import type {
|
|
22
|
+
ValidateResult,
|
|
23
|
+
CountryValidator,
|
|
24
|
+
} from "../types";
|
|
25
|
+
|
|
21
26
|
import { clean } from "#util/clean";
|
|
22
27
|
import { randomDigits, randomInt } from "#util/generate";
|
|
23
28
|
import { err } from "#util/result";
|
|
24
29
|
|
|
25
|
-
import type { ValidateResult, Validator } from "../types";
|
|
26
|
-
|
|
27
30
|
const NIPT_RE = /^[A-M]\d{8}[A-Z]$/;
|
|
28
31
|
|
|
29
32
|
const compact = (value: string): string => {
|
|
@@ -57,13 +60,14 @@ const validate = (value: string): ValidateResult => {
|
|
|
57
60
|
const format = (value: string): string => compact(value);
|
|
58
61
|
|
|
59
62
|
/** Albanian NIPT (tax identification number). */
|
|
60
|
-
const nipt:
|
|
63
|
+
const nipt: CountryValidator<"AL"> = {
|
|
61
64
|
name: "Albanian Tax Number",
|
|
62
65
|
localName:
|
|
63
66
|
"Numri i Identifikimit për Personin e Tatueshëm",
|
|
64
67
|
abbreviation: "NIPT",
|
|
65
68
|
aliases: ["NIPT", "NUIS"] as const,
|
|
66
69
|
candidatePattern: "[A-Z]\\d{8}[A-Z]",
|
|
70
|
+
scope: "country",
|
|
67
71
|
country: "AL",
|
|
68
72
|
entityType: "any",
|
|
69
73
|
sourceUrl: "https://www.tatime.gov.al/",
|
package/src/am/tin.ts
CHANGED
|
@@ -16,13 +16,16 @@ const generate = (): string => randomDigits(8);
|
|
|
16
16
|
* @see https://www.src.am/en/taxpayerSearchSystemPage/112
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
+
import type {
|
|
20
|
+
ValidateResult,
|
|
21
|
+
CountryValidator,
|
|
22
|
+
} from "../types";
|
|
23
|
+
|
|
19
24
|
import { clean } from "#util/clean";
|
|
20
25
|
import { randomDigits } from "#util/generate";
|
|
21
26
|
import { err } from "#util/result";
|
|
22
27
|
import { isdigits } from "#util/strings";
|
|
23
28
|
|
|
24
|
-
import type { ValidateResult, Validator } from "../types";
|
|
25
|
-
|
|
26
29
|
const compact = (value: string): string =>
|
|
27
30
|
clean(value, " -").trim();
|
|
28
31
|
|
|
@@ -49,12 +52,13 @@ const validate = (value: string): ValidateResult => {
|
|
|
49
52
|
const format = (value: string): string => compact(value);
|
|
50
53
|
|
|
51
54
|
/** Armenian Tax Identification Number. */
|
|
52
|
-
const tin:
|
|
55
|
+
const tin: CountryValidator<"AM"> = {
|
|
53
56
|
name: "Armenian Tax ID",
|
|
54
57
|
localName: "Հարկ վճարողի հաշվառման համար",
|
|
55
58
|
abbreviation: "TIN",
|
|
56
59
|
aliases: ["ՀՎՀՀ", "TIN"] as const,
|
|
57
60
|
candidatePattern: "\\d{8}",
|
|
61
|
+
scope: "country",
|
|
58
62
|
country: "AM",
|
|
59
63
|
entityType: "any",
|
|
60
64
|
lengths: [8] as const,
|
package/src/ar/cbu.ts
CHANGED
|
@@ -8,13 +8,16 @@
|
|
|
8
8
|
* @see https://es.wikipedia.org/wiki/Clave_bancaria_uniforme
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {
|
|
12
|
+
ValidateResult,
|
|
13
|
+
CountryValidator,
|
|
14
|
+
} from "../types";
|
|
15
|
+
|
|
11
16
|
import { clean } from "#util/clean";
|
|
12
17
|
import { randomDigits } from "#util/generate";
|
|
13
18
|
import { err } from "#util/result";
|
|
14
19
|
import { isdigits } from "#util/strings";
|
|
15
20
|
|
|
16
|
-
import type { ValidateResult, Validator } from "../types";
|
|
17
|
-
|
|
18
21
|
const WEIGHTS_BLOCK1 = [7, 1, 3, 9, 7, 1, 3];
|
|
19
22
|
const WEIGHTS_BLOCK2 = [
|
|
20
23
|
3, 9, 7, 1, 3, 9, 7, 1, 3, 9, 7, 1, 3,
|
|
@@ -84,12 +87,13 @@ const generate = (): string => {
|
|
|
84
87
|
};
|
|
85
88
|
|
|
86
89
|
/** Argentine Uniform Bank Key. */
|
|
87
|
-
const cbu:
|
|
90
|
+
const cbu: CountryValidator<"AR"> = {
|
|
88
91
|
name: "Argentine Bank Account Number",
|
|
89
92
|
localName: "Clave Bancaria Uniforme",
|
|
90
93
|
abbreviation: "CBU",
|
|
91
94
|
aliases: ["CBU", "Clave Bancaria Uniforme"] as const,
|
|
92
95
|
candidatePattern: "\\d{22}",
|
|
96
|
+
scope: "country",
|
|
93
97
|
country: "AR",
|
|
94
98
|
entityType: "any",
|
|
95
99
|
sourceUrl:
|
package/src/ar/cuit.ts
CHANGED
|
@@ -16,13 +16,16 @@
|
|
|
16
16
|
* @see https://en.wikipedia.org/wiki/CUIT_(Argentina)
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
+
import type {
|
|
20
|
+
ValidateResult,
|
|
21
|
+
CountryValidator,
|
|
22
|
+
} from "../types";
|
|
23
|
+
|
|
19
24
|
import { clean } from "#util/clean";
|
|
20
25
|
import { randomDigits, randomPick } from "#util/generate";
|
|
21
26
|
import { err } from "#util/result";
|
|
22
27
|
import { isdigits } from "#util/strings";
|
|
23
28
|
|
|
24
|
-
import type { ValidateResult, Validator } from "../types";
|
|
25
|
-
|
|
26
29
|
const VALID_TYPES = new Set([
|
|
27
30
|
"20",
|
|
28
31
|
"23",
|
|
@@ -120,7 +123,7 @@ const generate = (): string => {
|
|
|
120
123
|
* Examples sourced from python-stdnum test suite
|
|
121
124
|
* (ar.cuit module).
|
|
122
125
|
*/
|
|
123
|
-
const cuit:
|
|
126
|
+
const cuit: CountryValidator<"AR"> = {
|
|
124
127
|
name: "Argentine Tax ID",
|
|
125
128
|
localName: "Clave Única de Identificación Tributaria",
|
|
126
129
|
abbreviation: "CUIT",
|
|
@@ -130,6 +133,7 @@ const cuit: Validator = {
|
|
|
130
133
|
"Clave Única de Identificación Tributaria",
|
|
131
134
|
] as const,
|
|
132
135
|
candidatePattern: "\\d{2}-?\\d{8}-?\\d",
|
|
136
|
+
scope: "country",
|
|
133
137
|
country: "AR",
|
|
134
138
|
entityType: "any",
|
|
135
139
|
compact,
|
package/src/ar/dni.ts
CHANGED
|
@@ -11,13 +11,16 @@ const generate = (): string => randomDigits(8);
|
|
|
11
11
|
* @see https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)
|
|
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 } 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 compact = (value: string): string =>
|
|
22
25
|
clean(value, " -.").trim();
|
|
23
26
|
|
|
@@ -53,7 +56,7 @@ const format = (value: string): string => {
|
|
|
53
56
|
};
|
|
54
57
|
|
|
55
58
|
/** Argentine National Identity Document. */
|
|
56
|
-
const dni:
|
|
59
|
+
const dni: CountryValidator<"AR"> = {
|
|
57
60
|
name: "Argentine Identity Card",
|
|
58
61
|
localName: "Documento Nacional de Identidad",
|
|
59
62
|
abbreviation: "DNI",
|
|
@@ -63,6 +66,7 @@ const dni: Validator = {
|
|
|
63
66
|
"Documento de Identidad",
|
|
64
67
|
] as const,
|
|
65
68
|
candidatePattern: "\\d{1,2}\\.?\\d{3}\\.?\\d{3}",
|
|
69
|
+
scope: "country",
|
|
66
70
|
country: "AR",
|
|
67
71
|
entityType: "person",
|
|
68
72
|
sourceUrl:
|
package/src/at/businessid.ts
CHANGED
|
@@ -16,12 +16,15 @@ const generate = (): string => {
|
|
|
16
16
|
* @see https://www.justiz.gv.at/
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
+
import type {
|
|
20
|
+
ValidateResult,
|
|
21
|
+
CountryValidator,
|
|
22
|
+
} from "../types";
|
|
23
|
+
|
|
19
24
|
import { clean } from "#util/clean";
|
|
20
25
|
import { randomDigits, randomInt } from "#util/generate";
|
|
21
26
|
import { err } from "#util/result";
|
|
22
27
|
|
|
23
|
-
import type { ValidateResult, Validator } from "../types";
|
|
24
|
-
|
|
25
28
|
const FN_RE = /^\d+[a-z]$/i;
|
|
26
29
|
|
|
27
30
|
const compact = (value: string): string => {
|
|
@@ -54,12 +57,13 @@ const format = (value: string): string =>
|
|
|
54
57
|
`FN ${compact(value)}`;
|
|
55
58
|
|
|
56
59
|
/** Austrian Company Register Number. */
|
|
57
|
-
const businessid:
|
|
60
|
+
const businessid: CountryValidator<"AT"> = {
|
|
58
61
|
name: "Austrian Company Register Number",
|
|
59
62
|
localName: "Firmenbuchnummer",
|
|
60
63
|
abbreviation: "FN",
|
|
61
64
|
aliases: ["Firmenbuchnummer", "FN", "FBN"] as const,
|
|
62
65
|
candidatePattern: "FN\\s?\\d{5,6}[a-z]?",
|
|
66
|
+
scope: "country",
|
|
63
67
|
country: "AT",
|
|
64
68
|
entityType: "company",
|
|
65
69
|
sourceUrl: "https://www.justiz.gv.at/",
|
package/src/at/tin.ts
CHANGED
|
@@ -10,13 +10,16 @@
|
|
|
10
10
|
* @see https://service.bmf.gv.at/Service/Anwend/Behoerden/show_mast.asp
|
|
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
|
/** Luhn-variant doubling table: position-dependent. */
|
|
21
24
|
const DOUBLE = "0246813579";
|
|
22
25
|
|
|
@@ -69,12 +72,13 @@ const generate = (): string => {
|
|
|
69
72
|
};
|
|
70
73
|
|
|
71
74
|
/** Austrian Tax Identification Number. */
|
|
72
|
-
const tin:
|
|
75
|
+
const tin: CountryValidator<"AT"> = {
|
|
73
76
|
name: "Austrian Tax Identification Number",
|
|
74
77
|
localName: "Abgabenkontonummer",
|
|
75
78
|
abbreviation: "TIN",
|
|
76
79
|
aliases: ["Steuernummer", "St.Nr.", "TIN"] as const,
|
|
77
80
|
candidatePattern: "\\d{2}-?\\d{3}/\\d{4}",
|
|
81
|
+
scope: "country",
|
|
78
82
|
country: "AT",
|
|
79
83
|
entityType: "any",
|
|
80
84
|
sourceUrl:
|
package/src/at/uid.ts
CHANGED
|
@@ -8,14 +8,17 @@
|
|
|
8
8
|
* @see https://www.bmf.gv.at/
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {
|
|
12
|
+
ValidateResult,
|
|
13
|
+
CountryValidator,
|
|
14
|
+
} from "../types";
|
|
15
|
+
|
|
11
16
|
import { luhnChecksum } from "#checksums/luhn";
|
|
12
17
|
import { clean } from "#util/clean";
|
|
13
18
|
import { randomDigits } from "#util/generate";
|
|
14
19
|
import { err } from "#util/result";
|
|
15
20
|
import { isdigits } from "#util/strings";
|
|
16
21
|
|
|
17
|
-
import type { ValidateResult, Validator } from "../types";
|
|
18
|
-
|
|
19
22
|
const compact = (value: string): string => {
|
|
20
23
|
let v = clean(value, " -/");
|
|
21
24
|
if (v.startsWith("AT") || v.startsWith("at")) {
|
|
@@ -68,7 +71,7 @@ const generate = (): string => {
|
|
|
68
71
|
};
|
|
69
72
|
|
|
70
73
|
/** Austrian VAT Identification Number. */
|
|
71
|
-
const uid:
|
|
74
|
+
const uid: CountryValidator<"AT"> = {
|
|
72
75
|
name: "Austrian VAT Number",
|
|
73
76
|
localName: "Umsatzsteuer-Identifikationsnummer",
|
|
74
77
|
abbreviation: "UID",
|
|
@@ -78,6 +81,7 @@ const uid: Validator = {
|
|
|
78
81
|
"ATU",
|
|
79
82
|
] as const,
|
|
80
83
|
candidatePattern: "ATU\\d{8}",
|
|
84
|
+
scope: "country",
|
|
81
85
|
country: "AT",
|
|
82
86
|
entityType: "company",
|
|
83
87
|
sourceUrl: "https://www.bmf.gv.at/",
|
package/src/at/vnr.ts
CHANGED
|
@@ -6,17 +6,31 @@
|
|
|
6
6
|
* The check digit is computed using a weighted sum
|
|
7
7
|
* mod 11 over the 9 non-check digits.
|
|
8
8
|
*
|
|
9
|
+
* The 6-digit "birth date" field is not always a real
|
|
10
|
+
* calendar date. Sozialversicherung.at documents that
|
|
11
|
+
* persons with unknown date of birth are issued
|
|
12
|
+
* substitute values (01.01. or 01.07.), and that
|
|
13
|
+
* months 13, 14, etc. are issued when the daily serial
|
|
14
|
+
* pool for a given substitute date is exhausted. We
|
|
15
|
+
* therefore do not enforce a calendar-valid month here.
|
|
16
|
+
* The day field, however, is always within 01-31 — even
|
|
17
|
+
* in the documented overflow cases the day stays "01"
|
|
18
|
+
* — so we keep the day-bounds check.
|
|
19
|
+
*
|
|
9
20
|
* @see https://de.wikipedia.org/wiki/Sozialversicherungsnummer#%C3%96sterreich
|
|
10
|
-
* @see https://www.sozialversicherung.at/
|
|
21
|
+
* @see https://www.sozialversicherung.at/cdscontent/?contentid=10007.820902&viewmode=content
|
|
11
22
|
*/
|
|
12
23
|
|
|
24
|
+
import type {
|
|
25
|
+
ValidateResult,
|
|
26
|
+
CountryValidator,
|
|
27
|
+
} from "../types";
|
|
28
|
+
|
|
13
29
|
import { clean } from "#util/clean";
|
|
14
30
|
import { randomDigits, randomInt } from "#util/generate";
|
|
15
31
|
import { err } from "#util/result";
|
|
16
32
|
import { isdigits } from "#util/strings";
|
|
17
33
|
|
|
18
|
-
import type { ValidateResult, Validator } from "../types";
|
|
19
|
-
|
|
20
34
|
/**
|
|
21
35
|
* Weights for the 9 non-check digits (positions
|
|
22
36
|
* 0,1,2, then 4,5,6,7,8,9). Check digit is at
|
|
@@ -44,13 +58,24 @@ const validate = (value: string): ValidateResult => {
|
|
|
44
58
|
);
|
|
45
59
|
}
|
|
46
60
|
|
|
47
|
-
//
|
|
61
|
+
// Per sozialversicherung.at, the 3-digit serial
|
|
62
|
+
// (positions 0-2) never starts with zero.
|
|
63
|
+
if (v[0] === "0") {
|
|
64
|
+
return err(
|
|
65
|
+
"INVALID_COMPONENT",
|
|
66
|
+
"Austrian VNR serial must not start with zero",
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Day (positions 4-5) is always within 01-31, even
|
|
71
|
+
// in the documented substitute and overflow cases
|
|
72
|
+
// where the month is shifted. The month is left
|
|
73
|
+
// unchecked per the source.
|
|
48
74
|
const day = Number(v.slice(4, 6));
|
|
49
|
-
|
|
50
|
-
if (day < 1 || day > 31 || month < 1 || month > 12) {
|
|
75
|
+
if (day < 1 || day > 31) {
|
|
51
76
|
return err(
|
|
52
77
|
"INVALID_COMPONENT",
|
|
53
|
-
"Austrian VNR
|
|
78
|
+
"Austrian VNR day field must be within 01-31",
|
|
54
79
|
);
|
|
55
80
|
}
|
|
56
81
|
|
|
@@ -88,7 +113,9 @@ const format = (value: string): string => {
|
|
|
88
113
|
/** Generate a random valid Austrian VNR. */
|
|
89
114
|
const generate = (): string => {
|
|
90
115
|
for (;;) {
|
|
91
|
-
|
|
116
|
+
// Serial must not start with zero (see validate).
|
|
117
|
+
const serial =
|
|
118
|
+
String(randomInt(1, 9)) + randomDigits(2);
|
|
92
119
|
const day = String(randomInt(1, 28)).padStart(2, "0");
|
|
93
120
|
const month = String(randomInt(1, 12)).padStart(2, "0");
|
|
94
121
|
const year = String(randomInt(0, 99)).padStart(2, "0");
|
|
@@ -106,7 +133,7 @@ const generate = (): string => {
|
|
|
106
133
|
};
|
|
107
134
|
|
|
108
135
|
/** Austrian Social Insurance Number. */
|
|
109
|
-
const vnr:
|
|
136
|
+
const vnr: CountryValidator<"AT"> = {
|
|
110
137
|
name: "Austrian Social Insurance Number",
|
|
111
138
|
localName: "Versicherungsnummer",
|
|
112
139
|
abbreviation: "VNR",
|
|
@@ -117,6 +144,7 @@ const vnr: Validator = {
|
|
|
117
144
|
"Sozialversicherungsnummer",
|
|
118
145
|
] as const,
|
|
119
146
|
candidatePattern: "\\d{4}\\s?\\d{6}",
|
|
147
|
+
scope: "country",
|
|
120
148
|
country: "AT",
|
|
121
149
|
entityType: "person",
|
|
122
150
|
sourceUrl:
|
package/src/au/abn.ts
CHANGED
|
@@ -9,13 +9,16 @@
|
|
|
9
9
|
* @see https://abr.business.gov.au/
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
import type {
|
|
13
|
+
ValidateResult,
|
|
14
|
+
CountryValidator,
|
|
15
|
+
} from "../types";
|
|
16
|
+
|
|
12
17
|
import { clean } from "#util/clean";
|
|
13
18
|
import { randomDigits } from "#util/generate";
|
|
14
19
|
import { err } from "#util/result";
|
|
15
20
|
import { isdigits } from "#util/strings";
|
|
16
21
|
|
|
17
|
-
import type { ValidateResult, Validator } from "../types";
|
|
18
|
-
|
|
19
22
|
const WEIGHTS = [
|
|
20
23
|
10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19,
|
|
21
24
|
] as const;
|
|
@@ -65,12 +68,13 @@ const generate = (): string => {
|
|
|
65
68
|
};
|
|
66
69
|
|
|
67
70
|
/** Australian Business Number. */
|
|
68
|
-
const abn:
|
|
71
|
+
const abn: CountryValidator<"AU"> = {
|
|
69
72
|
name: "Australian Business Number",
|
|
70
73
|
localName: "Australian Business Number",
|
|
71
74
|
abbreviation: "ABN",
|
|
72
75
|
aliases: ["ABN", "Australian Business Number"] as const,
|
|
73
76
|
candidatePattern: "\\d{2}\\s?\\d{3}\\s?\\d{3}\\s?\\d{3}",
|
|
77
|
+
scope: "country",
|
|
74
78
|
country: "AU",
|
|
75
79
|
entityType: "company",
|
|
76
80
|
sourceUrl: "https://abr.business.gov.au/",
|
package/src/au/acn.ts
CHANGED
|
@@ -9,13 +9,16 @@
|
|
|
9
9
|
* @see https://asic.gov.au/
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
import type {
|
|
13
|
+
ValidateResult,
|
|
14
|
+
CountryValidator,
|
|
15
|
+
} from "../types";
|
|
16
|
+
|
|
12
17
|
import { clean } from "#util/clean";
|
|
13
18
|
import { randomDigits } from "#util/generate";
|
|
14
19
|
import { err } from "#util/result";
|
|
15
20
|
import { isdigits } from "#util/strings";
|
|
16
21
|
|
|
17
|
-
import type { ValidateResult, Validator } from "../types";
|
|
18
|
-
|
|
19
22
|
const WEIGHTS = [8, 7, 6, 5, 4, 3, 2, 1] as const;
|
|
20
23
|
|
|
21
24
|
const compact = (value: string): string =>
|
|
@@ -66,12 +69,13 @@ const generate = (): string => {
|
|
|
66
69
|
};
|
|
67
70
|
|
|
68
71
|
/** Australian Company Number. */
|
|
69
|
-
const acn:
|
|
72
|
+
const acn: CountryValidator<"AU"> = {
|
|
70
73
|
name: "Australian Company Number",
|
|
71
74
|
localName: "Australian Company Number",
|
|
72
75
|
abbreviation: "ACN",
|
|
73
76
|
aliases: ["ACN", "Australian Company Number"] as const,
|
|
74
77
|
candidatePattern: "\\d{3}\\s?\\d{3}\\s?\\d{3}",
|
|
78
|
+
scope: "country",
|
|
75
79
|
country: "AU",
|
|
76
80
|
entityType: "company",
|
|
77
81
|
sourceUrl: "https://asic.gov.au/",
|
package/src/au/tfn.ts
CHANGED
|
@@ -9,13 +9,16 @@
|
|
|
9
9
|
* @see https://www.ato.gov.au/Individuals/Tax-file-number/
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
import type {
|
|
13
|
+
ValidateResult,
|
|
14
|
+
CountryValidator,
|
|
15
|
+
} from "../types";
|
|
16
|
+
|
|
12
17
|
import { clean } from "#util/clean";
|
|
13
18
|
import { randomDigits } from "#util/generate";
|
|
14
19
|
import { err } from "#util/result";
|
|
15
20
|
import { isdigits } from "#util/strings";
|
|
16
21
|
|
|
17
|
-
import type { ValidateResult, Validator } from "../types";
|
|
18
|
-
|
|
19
22
|
const WEIGHTS = [1, 4, 3, 7, 5, 8, 6, 9, 10] as const;
|
|
20
23
|
|
|
21
24
|
const compact = (value: string): string =>
|
|
@@ -64,12 +67,13 @@ const generate = (): string => {
|
|
|
64
67
|
};
|
|
65
68
|
|
|
66
69
|
/** Australian Tax File Number. */
|
|
67
|
-
const tfn:
|
|
70
|
+
const tfn: CountryValidator<"AU"> = {
|
|
68
71
|
name: "Tax File Number",
|
|
69
72
|
localName: "Tax File Number",
|
|
70
73
|
abbreviation: "TFN",
|
|
71
74
|
aliases: ["TFN", "Tax File Number"] as const,
|
|
72
75
|
candidatePattern: "\\d{8,9}",
|
|
76
|
+
scope: "country",
|
|
73
77
|
country: "AU",
|
|
74
78
|
entityType: "person",
|
|
75
79
|
sourceUrl:
|
package/src/az/voen.ts
CHANGED
|
@@ -13,12 +13,15 @@
|
|
|
13
13
|
* @see https://www.taxes.gov.az/
|
|
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 } from "#util/generate";
|
|
18
23
|
import { err } from "#util/result";
|
|
19
24
|
|
|
20
|
-
import type { ValidateResult, Validator } from "../types";
|
|
21
|
-
|
|
22
25
|
/** Weights for check digit computation (positions 0-7). */
|
|
23
26
|
const WEIGHTS = [4, 1, 8, 6, 2, 7, 5, 3] as const;
|
|
24
27
|
|
|
@@ -106,12 +109,13 @@ const generate = (): string => {
|
|
|
106
109
|
*
|
|
107
110
|
* Examples sourced from python-stdnum test suite.
|
|
108
111
|
*/
|
|
109
|
-
const voen:
|
|
112
|
+
const voen: CountryValidator<"AZ"> = {
|
|
110
113
|
name: "Azerbaijani Tax ID",
|
|
111
114
|
localName: "Vergi Ödəyicisinin Eyniləşdirmə Nömrəsi",
|
|
112
115
|
abbreviation: "VÖEN",
|
|
113
116
|
aliases: ["VÖEN"] as const,
|
|
114
117
|
candidatePattern: "\\d{10}",
|
|
118
|
+
scope: "country",
|
|
115
119
|
country: "AZ",
|
|
116
120
|
entityType: "any",
|
|
117
121
|
lengths: [10] as const,
|
package/src/ba/jmbg.ts
CHANGED
|
@@ -8,6 +8,12 @@
|
|
|
8
8
|
* @see https://en.wikipedia.org/wiki/Unique_Master_Citizen_Number
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {
|
|
12
|
+
ParsedPersonId,
|
|
13
|
+
ValidateResult,
|
|
14
|
+
CountryValidator,
|
|
15
|
+
} from "../types";
|
|
16
|
+
|
|
11
17
|
import { weightedSum } from "#checksums/weighted-sum";
|
|
12
18
|
import { clean } from "#util/clean";
|
|
13
19
|
import { isValidDate } from "#util/date";
|
|
@@ -15,12 +21,6 @@ import { randomInt } from "#util/generate";
|
|
|
15
21
|
import { err } from "#util/result";
|
|
16
22
|
import { isdigits } from "#util/strings";
|
|
17
23
|
|
|
18
|
-
import type {
|
|
19
|
-
ParsedPersonId,
|
|
20
|
-
ValidateResult,
|
|
21
|
-
Validator,
|
|
22
|
-
} from "../types";
|
|
23
|
-
|
|
24
24
|
const WEIGHTS = [
|
|
25
25
|
7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2,
|
|
26
26
|
] as const;
|
|
@@ -106,12 +106,13 @@ const generate = (): string => {
|
|
|
106
106
|
};
|
|
107
107
|
|
|
108
108
|
/** Bosnian Unique Master Citizen Number. */
|
|
109
|
-
const jmbg:
|
|
109
|
+
const jmbg: CountryValidator<"BA", ParsedPersonId> = {
|
|
110
110
|
name: "Bosnian Personal ID",
|
|
111
111
|
localName: "Jedinstveni matični broj građana",
|
|
112
112
|
abbreviation: "JMBG",
|
|
113
113
|
aliases: ["JMBG", "matični broj"] as const,
|
|
114
114
|
candidatePattern: "\\d{13}",
|
|
115
|
+
scope: "country",
|
|
115
116
|
country: "BA",
|
|
116
117
|
entityType: "person",
|
|
117
118
|
lengths: [13] as const,
|
package/src/bd/nid.ts
CHANGED
|
@@ -30,13 +30,16 @@ const generate = (): string => {
|
|
|
30
30
|
* @see https://www.nidw.gov.bd/
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
|
+
import type {
|
|
34
|
+
ValidateResult,
|
|
35
|
+
CountryValidator,
|
|
36
|
+
} from "../types";
|
|
37
|
+
|
|
33
38
|
import { clean } from "#util/clean";
|
|
34
39
|
import { randomDigits, randomPick } from "#util/generate";
|
|
35
40
|
import { err } from "#util/result";
|
|
36
41
|
import { isdigits } from "#util/strings";
|
|
37
42
|
|
|
38
|
-
import type { ValidateResult, Validator } from "../types";
|
|
39
|
-
|
|
40
43
|
/**
|
|
41
44
|
* Valid RMO (residential/municipal/other) codes.
|
|
42
45
|
* 1 = Rural, 2 = Municipality, 3 = City,
|
|
@@ -106,7 +109,7 @@ const validate = (value: string): ValidateResult => {
|
|
|
106
109
|
const format = (value: string): string => compact(value);
|
|
107
110
|
|
|
108
111
|
/** Bangladesh National Identity Number. */
|
|
109
|
-
const nid:
|
|
112
|
+
const nid: CountryValidator<"BD"> = {
|
|
110
113
|
name: "National Identity Number",
|
|
111
114
|
localName: "জাতীয় পরিচয়পত্র",
|
|
112
115
|
abbreviation: "NID",
|
|
@@ -116,6 +119,7 @@ const nid: Validator = {
|
|
|
116
119
|
"National ID Card",
|
|
117
120
|
] as const,
|
|
118
121
|
candidatePattern: "\\d{10,17}",
|
|
122
|
+
scope: "country",
|
|
119
123
|
country: "BD",
|
|
120
124
|
entityType: "person",
|
|
121
125
|
lengths: [10, 13, 17],
|