@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/my/nric.ts
CHANGED
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
* @see https://en.wikipedia.org/wiki/Malaysian_identity_card
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
+
import type {
|
|
16
|
+
ParsedPersonId,
|
|
17
|
+
ValidateResult,
|
|
18
|
+
CountryValidator,
|
|
19
|
+
} from "../types";
|
|
20
|
+
|
|
15
21
|
import { clean } from "#util/clean";
|
|
16
22
|
import { isValidDate } from "#util/date";
|
|
17
23
|
import { randomInt } from "#util/generate";
|
|
18
24
|
import { err } from "#util/result";
|
|
19
25
|
import { isdigits } from "#util/strings";
|
|
20
26
|
|
|
21
|
-
import type {
|
|
22
|
-
ParsedPersonId,
|
|
23
|
-
ValidateResult,
|
|
24
|
-
Validator,
|
|
25
|
-
} from "../types";
|
|
26
|
-
|
|
27
27
|
/**
|
|
28
28
|
* Valid place-of-birth codes (2-digit).
|
|
29
29
|
* Codes 01-16 are states, 21-59 are pre-2000
|
|
@@ -234,12 +234,13 @@ const generate = (): string => {
|
|
|
234
234
|
};
|
|
235
235
|
|
|
236
236
|
/** Malaysian National Registration Identity Card. */
|
|
237
|
-
const nric:
|
|
237
|
+
const nric: CountryValidator<"MY", ParsedPersonId> = {
|
|
238
238
|
name: "Malaysian National Registration Identity Card Number",
|
|
239
239
|
localName: "Nombor Kad Pengenalan",
|
|
240
240
|
abbreviation: "NRIC",
|
|
241
241
|
aliases: ["NRIC", "MyKad", "kad pengenalan"] as const,
|
|
242
242
|
candidatePattern: "\\d{6}-?\\d{2}-?\\d{4}",
|
|
243
|
+
scope: "country",
|
|
243
244
|
country: "MY",
|
|
244
245
|
entityType: "person",
|
|
245
246
|
description:
|
package/src/ng/nin.ts
CHANGED
|
@@ -13,13 +13,16 @@ const generate = (): string => randomDigits(11);
|
|
|
13
13
|
* @see https://nimc.gov.ng/about-nin/
|
|
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
|
import { isdigits } from "#util/strings";
|
|
20
25
|
|
|
21
|
-
import type { ValidateResult, Validator } from "../types";
|
|
22
|
-
|
|
23
26
|
const compact = (value: string): string =>
|
|
24
27
|
clean(value, " -");
|
|
25
28
|
|
|
@@ -46,7 +49,7 @@ const format = (value: string): string => {
|
|
|
46
49
|
};
|
|
47
50
|
|
|
48
51
|
/** Nigerian National Identification Number. */
|
|
49
|
-
const nin:
|
|
52
|
+
const nin: CountryValidator<"NG"> = {
|
|
50
53
|
name: "National Identification Number",
|
|
51
54
|
localName: "National Identification Number",
|
|
52
55
|
abbreviation: "NIN",
|
|
@@ -55,6 +58,7 @@ const nin: Validator = {
|
|
|
55
58
|
"National Identification Number",
|
|
56
59
|
] as const,
|
|
57
60
|
candidatePattern: "\\d{11}",
|
|
61
|
+
scope: "country",
|
|
58
62
|
country: "NG",
|
|
59
63
|
entityType: "person",
|
|
60
64
|
lengths: [11] as const,
|
package/src/ni/ruc.ts
CHANGED
|
@@ -22,13 +22,16 @@
|
|
|
22
22
|
* @see https://www.dgi.gob.ni/
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
+
import type {
|
|
26
|
+
ValidateResult,
|
|
27
|
+
CountryValidator,
|
|
28
|
+
} from "../types";
|
|
29
|
+
|
|
25
30
|
import { clean } from "#util/clean";
|
|
26
31
|
import { randomDigits } from "#util/generate";
|
|
27
32
|
import { err } from "#util/result";
|
|
28
33
|
import { isdigits } from "#util/strings";
|
|
29
34
|
|
|
30
|
-
import type { ValidateResult, Validator } from "../types";
|
|
31
|
-
|
|
32
35
|
/**
|
|
33
36
|
* Check letter alphabet (mod 23). Excludes I, O, Z
|
|
34
37
|
* to prevent transcription errors.
|
|
@@ -154,12 +157,13 @@ const format = (value: string): string => {
|
|
|
154
157
|
const generate = (): string => "J" + randomDigits(13);
|
|
155
158
|
|
|
156
159
|
/** Nicaragua tax identification number. */
|
|
157
|
-
const ruc:
|
|
160
|
+
const ruc: CountryValidator<"NI"> = {
|
|
158
161
|
name: "Tax Identification Number",
|
|
159
162
|
localName: "Registro Único de Contribuyente",
|
|
160
163
|
abbreviation: "RUC",
|
|
161
164
|
aliases: ["RUC"] as const,
|
|
162
165
|
candidatePattern: "[JKME]\\d{13}",
|
|
166
|
+
scope: "country",
|
|
163
167
|
country: "NI",
|
|
164
168
|
entityType: "any",
|
|
165
169
|
description: "Tax identifier issued by Nicaragua's DGI",
|
package/src/nl/bsn.ts
CHANGED
|
@@ -8,14 +8,17 @@
|
|
|
8
8
|
* @see https://www.government.nl/topics/personal-data/citizen-service-number-bsn
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {
|
|
12
|
+
ValidateResult,
|
|
13
|
+
CountryValidator,
|
|
14
|
+
} from "../types";
|
|
15
|
+
|
|
11
16
|
import { weightedSum } from "#checksums/weighted-sum";
|
|
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 = [9, 8, 7, 6, 5, 4, 3, 2, -1] as const;
|
|
20
23
|
|
|
21
24
|
const compact = (value: string): string =>
|
|
@@ -62,7 +65,7 @@ const generate = (): string => {
|
|
|
62
65
|
};
|
|
63
66
|
|
|
64
67
|
/** Dutch Citizen Service Number. */
|
|
65
|
-
const bsn:
|
|
68
|
+
const bsn: CountryValidator<"NL"> = {
|
|
66
69
|
name: "Dutch Citizen Service Number",
|
|
67
70
|
localName: "Burgerservicenummer",
|
|
68
71
|
abbreviation: "BSN",
|
|
@@ -72,6 +75,7 @@ const bsn: Validator = {
|
|
|
72
75
|
"sofinummer",
|
|
73
76
|
] as const,
|
|
74
77
|
candidatePattern: "\\d{9}",
|
|
78
|
+
scope: "country",
|
|
75
79
|
country: "NL",
|
|
76
80
|
entityType: "person",
|
|
77
81
|
sourceUrl:
|
package/src/nl/kvk.ts
CHANGED
|
@@ -9,13 +9,16 @@ const generate = (): string => randomDigits(8);
|
|
|
9
9
|
* @see https://www.kvk.nl/
|
|
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 compact = (value: string): string =>
|
|
20
23
|
clean(value, " -/.");
|
|
21
24
|
|
|
@@ -39,12 +42,13 @@ const validate = (value: string): ValidateResult => {
|
|
|
39
42
|
const format = (value: string): string => compact(value);
|
|
40
43
|
|
|
41
44
|
/** Dutch Chamber of Commerce Number. */
|
|
42
|
-
const kvk:
|
|
45
|
+
const kvk: CountryValidator<"NL"> = {
|
|
43
46
|
name: "Dutch Chamber of Commerce Number",
|
|
44
47
|
localName: "KvK-nummer",
|
|
45
48
|
abbreviation: "KvK",
|
|
46
49
|
aliases: ["KVK-nummer", "Kamer van Koophandel"] as const,
|
|
47
50
|
candidatePattern: "\\d{8}",
|
|
51
|
+
scope: "country",
|
|
48
52
|
country: "NL",
|
|
49
53
|
entityType: "company",
|
|
50
54
|
sourceUrl: "https://www.kvk.nl/",
|
package/src/nl/vat.ts
CHANGED
|
@@ -12,13 +12,16 @@
|
|
|
12
12
|
* @see https://business.gov.nl/regulations/using-checking-vat-numbers/
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
+
import type {
|
|
16
|
+
ValidateResult,
|
|
17
|
+
CountryValidator,
|
|
18
|
+
} from "../types";
|
|
19
|
+
|
|
15
20
|
import { clean } from "#util/clean";
|
|
16
21
|
import { randomDigits } from "#util/generate";
|
|
17
22
|
import { err } from "#util/result";
|
|
18
23
|
import { isdigits } from "#util/strings";
|
|
19
24
|
|
|
20
|
-
import type { ValidateResult, Validator } from "../types";
|
|
21
|
-
|
|
22
25
|
const compact = (value: string): string => {
|
|
23
26
|
let v = clean(value, " -/.");
|
|
24
27
|
if (v.startsWith("NL") || v.startsWith("nl")) {
|
|
@@ -70,12 +73,13 @@ const generate = (): string =>
|
|
|
70
73
|
`${randomDigits(9)}B${randomDigits(2)}`;
|
|
71
74
|
|
|
72
75
|
/** Dutch VAT Number. */
|
|
73
|
-
const vat:
|
|
76
|
+
const vat: CountryValidator<"NL"> = {
|
|
74
77
|
name: "Dutch VAT Number",
|
|
75
78
|
localName: "BTW-identificatienummer",
|
|
76
79
|
abbreviation: "BTW",
|
|
77
80
|
aliases: ["BTW-nummer", "BTW-id"] as const,
|
|
78
81
|
candidatePattern: "NL\\d{9}B\\d{2}",
|
|
82
|
+
scope: "country",
|
|
79
83
|
country: "NL",
|
|
80
84
|
entityType: "company",
|
|
81
85
|
sourceUrl:
|
package/src/no/fodselsnummer.ts
CHANGED
|
@@ -8,18 +8,18 @@
|
|
|
8
8
|
* @see https://www.skatteetaten.no/
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {
|
|
12
|
+
ParsedPersonId,
|
|
13
|
+
ValidateResult,
|
|
14
|
+
CountryValidator,
|
|
15
|
+
} from "../types";
|
|
16
|
+
|
|
11
17
|
import { clean } from "#util/clean";
|
|
12
18
|
import { isValidDate } from "#util/date";
|
|
13
19
|
import { randomDigits, randomInt } from "#util/generate";
|
|
14
20
|
import { err } from "#util/result";
|
|
15
21
|
import { isdigits } from "#util/strings";
|
|
16
22
|
|
|
17
|
-
import type {
|
|
18
|
-
ParsedPersonId,
|
|
19
|
-
ValidateResult,
|
|
20
|
-
Validator,
|
|
21
|
-
} from "../types";
|
|
22
|
-
|
|
23
23
|
const WEIGHTS_D1 = [3, 7, 6, 1, 8, 9, 4, 5, 2] as const;
|
|
24
24
|
const WEIGHTS_D2 = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] as const;
|
|
25
25
|
|
|
@@ -172,12 +172,16 @@ const generate = (): string => {
|
|
|
172
172
|
};
|
|
173
173
|
|
|
174
174
|
/** Norwegian Birth Number. */
|
|
175
|
-
const fodselsnummer:
|
|
175
|
+
const fodselsnummer: CountryValidator<
|
|
176
|
+
"NO",
|
|
177
|
+
ParsedPersonId
|
|
178
|
+
> = {
|
|
176
179
|
name: "Norwegian Birth Number",
|
|
177
180
|
localName: "Fødselsnummer",
|
|
178
181
|
abbreviation: "Fødselsnr",
|
|
179
182
|
aliases: ["fødselsnummer", "personnummer"] as const,
|
|
180
183
|
candidatePattern: "\\d{11}",
|
|
184
|
+
scope: "country",
|
|
181
185
|
country: "NO",
|
|
182
186
|
entityType: "person",
|
|
183
187
|
sourceUrl: "https://www.skatteetaten.no/",
|
package/src/no/mva.ts
CHANGED
|
@@ -7,15 +7,18 @@
|
|
|
7
7
|
* @see https://www.skatteetaten.no/
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
import type {
|
|
11
|
+
ValidateResult,
|
|
12
|
+
CountryValidator,
|
|
13
|
+
} from "../types";
|
|
14
14
|
import {
|
|
15
15
|
validate as validateOrgnr,
|
|
16
16
|
generate as generateOrgnr,
|
|
17
17
|
} from "./orgnr";
|
|
18
18
|
|
|
19
|
+
import { clean } from "#util/clean";
|
|
20
|
+
import { err } from "#util/result";
|
|
21
|
+
|
|
19
22
|
const compact = (value: string): string => {
|
|
20
23
|
let v = clean(value, " -").toUpperCase();
|
|
21
24
|
if (v.startsWith("NO")) {
|
|
@@ -53,12 +56,13 @@ const format = (value: string): string => {
|
|
|
53
56
|
const generate = (): string => generateOrgnr() + "MVA";
|
|
54
57
|
|
|
55
58
|
/** Norwegian VAT Number. */
|
|
56
|
-
const mva:
|
|
59
|
+
const mva: CountryValidator<"NO"> = {
|
|
57
60
|
name: "Norwegian VAT Number",
|
|
58
61
|
localName: "Merverdiavgift",
|
|
59
62
|
abbreviation: "MVA",
|
|
60
63
|
aliases: ["MVA-nummer", "organisasjonsnummer"] as const,
|
|
61
64
|
candidatePattern: "NO\\d{9}MVA",
|
|
65
|
+
scope: "country",
|
|
62
66
|
country: "NO",
|
|
63
67
|
entityType: "company",
|
|
64
68
|
sourceUrl: "https://www.skatteetaten.no/",
|
package/src/no/orgnr.ts
CHANGED
|
@@ -6,14 +6,17 @@
|
|
|
6
6
|
* @see https://www.brreg.no/
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import type {
|
|
10
|
+
ValidateResult,
|
|
11
|
+
CountryValidator,
|
|
12
|
+
} from "../types";
|
|
13
|
+
|
|
9
14
|
import { weightedSum } from "#checksums/weighted-sum";
|
|
10
15
|
import { clean } from "#util/clean";
|
|
11
16
|
import { randomDigits } from "#util/generate";
|
|
12
17
|
import { err } from "#util/result";
|
|
13
18
|
import { isdigits } from "#util/strings";
|
|
14
19
|
|
|
15
|
-
import type { ValidateResult, Validator } from "../types";
|
|
16
|
-
|
|
17
20
|
const WEIGHTS = [3, 2, 7, 6, 5, 4, 3, 2, 1] as const;
|
|
18
21
|
|
|
19
22
|
const compact = (value: string): string =>
|
|
@@ -59,12 +62,13 @@ const generate = (): string => {
|
|
|
59
62
|
};
|
|
60
63
|
|
|
61
64
|
/** Norwegian Organization Number. */
|
|
62
|
-
const orgnr:
|
|
65
|
+
const orgnr: CountryValidator<"NO"> = {
|
|
63
66
|
name: "Norwegian Organization Number",
|
|
64
67
|
localName: "Organisasjonsnummer",
|
|
65
68
|
abbreviation: "Orgnr",
|
|
66
69
|
aliases: ["organisasjonsnummer", "org.nr"] as const,
|
|
67
70
|
candidatePattern: "\\d{9}",
|
|
71
|
+
scope: "country",
|
|
68
72
|
country: "NO",
|
|
69
73
|
entityType: "company",
|
|
70
74
|
sourceUrl: "https://www.brreg.no/",
|
package/src/nz/ird.ts
CHANGED
|
@@ -9,13 +9,16 @@
|
|
|
9
9
|
* @see https://www.ird.govt.nz/
|
|
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 PRIMARY_WEIGHTS = [3, 2, 7, 6, 5, 4, 3, 2] as const;
|
|
20
23
|
|
|
21
24
|
const SECONDARY_WEIGHTS = [7, 4, 3, 2, 5, 2, 7, 6] as const;
|
|
@@ -80,7 +83,7 @@ const validate = (value: string): ValidateResult => {
|
|
|
80
83
|
"IRD number cannot have a valid check digit",
|
|
81
84
|
);
|
|
82
85
|
}
|
|
83
|
-
if (expected !== Number(v
|
|
86
|
+
if (expected !== Number(v.at(-1))) {
|
|
84
87
|
return err(
|
|
85
88
|
"INVALID_CHECKSUM",
|
|
86
89
|
"IRD check digit does not match",
|
|
@@ -105,12 +108,13 @@ const generate = (): string => {
|
|
|
105
108
|
};
|
|
106
109
|
|
|
107
110
|
/** New Zealand IRD Number. */
|
|
108
|
-
const ird:
|
|
111
|
+
const ird: CountryValidator<"NZ"> = {
|
|
109
112
|
name: "IRD Number",
|
|
110
113
|
localName: "IRD Number",
|
|
111
114
|
abbreviation: "IRD",
|
|
112
115
|
aliases: ["IRD number", "tax number NZ"] as const,
|
|
113
116
|
candidatePattern: "\\d{8,9}",
|
|
117
|
+
scope: "country",
|
|
114
118
|
country: "NZ",
|
|
115
119
|
entityType: "any",
|
|
116
120
|
compact,
|
package/src/pa/ruc.ts
CHANGED
|
@@ -17,12 +17,15 @@
|
|
|
17
17
|
* @see https://dgi.mef.gob.pa/
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
+
import type {
|
|
21
|
+
ValidateResult,
|
|
22
|
+
CountryValidator,
|
|
23
|
+
} from "../types";
|
|
24
|
+
|
|
20
25
|
import { clean } from "#util/clean";
|
|
21
26
|
import { randomInt } from "#util/generate";
|
|
22
27
|
import { err } from "#util/result";
|
|
23
28
|
|
|
24
|
-
import type { ValidateResult, Validator } from "../types";
|
|
25
|
-
|
|
26
29
|
/**
|
|
27
30
|
* Legacy cross-reference table: maps two-digit codes
|
|
28
31
|
* at positions 5–6 of old-format juridical RUCs.
|
|
@@ -359,12 +362,13 @@ const generate = (): string => {
|
|
|
359
362
|
};
|
|
360
363
|
|
|
361
364
|
/** Panama tax identification number. */
|
|
362
|
-
const ruc:
|
|
365
|
+
const ruc: CountryValidator<"PA"> = {
|
|
363
366
|
name: "Tax Identification Number",
|
|
364
367
|
localName: "Registro Único de Contribuyente",
|
|
365
368
|
abbreviation: "RUC",
|
|
366
369
|
aliases: ["RUC"] as const,
|
|
367
370
|
candidatePattern: "\\d{1,2}-?\\d{1,4}-?\\d{1,6}",
|
|
371
|
+
scope: "country",
|
|
368
372
|
country: "PA",
|
|
369
373
|
entityType: "any",
|
|
370
374
|
description: "Tax identifier issued by Panama's DGI",
|
package/src/patterns.ts
CHANGED
|
@@ -27,13 +27,19 @@
|
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
-
import type {
|
|
30
|
+
import type {
|
|
31
|
+
CountryCode,
|
|
32
|
+
CountryValidator,
|
|
33
|
+
Validator,
|
|
34
|
+
} from "./types";
|
|
31
35
|
|
|
32
36
|
// ─── Pattern type ─────────────────────────────
|
|
33
37
|
|
|
34
|
-
export type ValidatorPattern
|
|
38
|
+
export type ValidatorPattern<
|
|
39
|
+
TValidator extends Validator = Validator,
|
|
40
|
+
> = {
|
|
35
41
|
/** The validator this pattern was derived from. */
|
|
36
|
-
validator:
|
|
42
|
+
validator: TValidator;
|
|
37
43
|
/** Loose regex matching candidates in text. */
|
|
38
44
|
regex: RegExp;
|
|
39
45
|
};
|
|
@@ -314,9 +320,9 @@ export const toRegex = (v: Validator): RegExp => {
|
|
|
314
320
|
/**
|
|
315
321
|
* Build patterns for a list of validators.
|
|
316
322
|
*/
|
|
317
|
-
export const toPatterns = (
|
|
318
|
-
validators: readonly
|
|
319
|
-
): ValidatorPattern[] =>
|
|
323
|
+
export const toPatterns = <TValidator extends Validator>(
|
|
324
|
+
validators: readonly TValidator[],
|
|
325
|
+
): ValidatorPattern<TValidator>[] =>
|
|
320
326
|
validators.map((v) => ({
|
|
321
327
|
validator: v,
|
|
322
328
|
regex: toRegex(v),
|
|
@@ -326,22 +332,47 @@ export const toPatterns = (
|
|
|
326
332
|
* Filter validators by country code and build
|
|
327
333
|
* patterns.
|
|
328
334
|
*/
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
+
type CountryScopedValidator<
|
|
336
|
+
TValidator extends Validator,
|
|
337
|
+
TCountry extends CountryCode,
|
|
338
|
+
> =
|
|
339
|
+
TValidator extends CountryValidator<
|
|
340
|
+
infer TValidatorCountry,
|
|
341
|
+
infer TParsed
|
|
342
|
+
>
|
|
343
|
+
? TCountry extends TValidatorCountry
|
|
344
|
+
? TValidator & CountryValidator<TCountry, TParsed>
|
|
345
|
+
: TValidatorCountry extends TCountry
|
|
346
|
+
? TValidator
|
|
347
|
+
: never
|
|
348
|
+
: never;
|
|
349
|
+
|
|
350
|
+
export const byCountry = <
|
|
351
|
+
TCountry extends CountryCode,
|
|
352
|
+
TValidator extends Validator,
|
|
353
|
+
>(
|
|
354
|
+
country: TCountry,
|
|
355
|
+
validators: readonly TValidator[],
|
|
356
|
+
): ValidatorPattern<
|
|
357
|
+
CountryScopedValidator<TValidator, TCountry>
|
|
358
|
+
>[] => {
|
|
359
|
+
const countryValidators = validators.filter(
|
|
360
|
+
(
|
|
361
|
+
v,
|
|
362
|
+
): v is CountryScopedValidator<TValidator, TCountry> =>
|
|
363
|
+
v.scope === "country" && v.country === country,
|
|
335
364
|
);
|
|
365
|
+
return toPatterns(countryValidators);
|
|
366
|
+
};
|
|
336
367
|
|
|
337
368
|
/**
|
|
338
369
|
* Filter validators by entity type and build
|
|
339
370
|
* patterns.
|
|
340
371
|
*/
|
|
341
|
-
export const byEntityType = (
|
|
372
|
+
export const byEntityType = <TValidator extends Validator>(
|
|
342
373
|
entityType: "person" | "company" | "any",
|
|
343
|
-
validators: readonly
|
|
344
|
-
): ValidatorPattern[] =>
|
|
374
|
+
validators: readonly TValidator[],
|
|
375
|
+
): ValidatorPattern<TValidator>[] =>
|
|
345
376
|
toPatterns(
|
|
346
377
|
validators.filter(
|
|
347
378
|
(v) =>
|
|
@@ -354,6 +385,6 @@ export const byEntityType = (
|
|
|
354
385
|
/**
|
|
355
386
|
* Build patterns for ALL provided validators.
|
|
356
387
|
*/
|
|
357
|
-
export const allPatterns = (
|
|
358
|
-
validators: readonly
|
|
359
|
-
): ValidatorPattern[] => toPatterns(validators);
|
|
388
|
+
export const allPatterns = <TValidator extends Validator>(
|
|
389
|
+
validators: readonly TValidator[],
|
|
390
|
+
): ValidatorPattern<TValidator>[] => toPatterns(validators);
|
package/src/pe/ruc.ts
CHANGED
|
@@ -14,13 +14,16 @@
|
|
|
14
14
|
* @see https://en.wikipedia.org/wiki/Tax_identification_number#Peru
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import type {
|
|
18
|
+
ValidateResult,
|
|
19
|
+
CountryValidator,
|
|
20
|
+
} from "../types";
|
|
21
|
+
|
|
17
22
|
import { clean } from "#util/clean";
|
|
18
23
|
import { randomDigits, randomPick } 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
|
/**
|
|
25
28
|
* Valid type prefixes for RUC numbers.
|
|
26
29
|
* 10 = natural person, 15 = non-domiciled without RUC,
|
|
@@ -99,12 +102,13 @@ const generate = (): string => {
|
|
|
99
102
|
* Examples sourced from python-stdnum test suite
|
|
100
103
|
* (pe.ruc module).
|
|
101
104
|
*/
|
|
102
|
-
const ruc:
|
|
105
|
+
const ruc: CountryValidator<"PE"> = {
|
|
103
106
|
name: "Peruvian Tax ID",
|
|
104
107
|
localName: "Registro Único de Contribuyentes",
|
|
105
108
|
abbreviation: "RUC",
|
|
106
109
|
aliases: ["RUC"] as const,
|
|
107
110
|
candidatePattern: "\\d{11}",
|
|
111
|
+
scope: "country",
|
|
108
112
|
country: "PE",
|
|
109
113
|
entityType: "any",
|
|
110
114
|
compact,
|
package/src/ph/philid.ts
CHANGED
|
@@ -14,13 +14,16 @@ const generate = (): string => randomDigits(12);
|
|
|
14
14
|
* @see https://philsys.gov.ph/
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import type {
|
|
18
|
+
ValidateResult,
|
|
19
|
+
CountryValidator,
|
|
20
|
+
} from "../types";
|
|
21
|
+
|
|
17
22
|
import { clean } from "#util/clean";
|
|
18
23
|
import { randomDigits } 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
|
|
|
@@ -50,12 +53,13 @@ const format = (value: string): string => {
|
|
|
50
53
|
};
|
|
51
54
|
|
|
52
55
|
/** Philippine Identification System Number. */
|
|
53
|
-
const philid:
|
|
56
|
+
const philid: CountryValidator<"PH"> = {
|
|
54
57
|
name: "Philippine Identification System Number",
|
|
55
58
|
localName: "PhilSys Card Number",
|
|
56
59
|
abbreviation: "PhilID",
|
|
57
60
|
aliases: ["PhilID", "PhilSys", "Philippine ID"] as const,
|
|
58
61
|
candidatePattern: "\\d{4}-\\d{4}-\\d{4}-\\d{4}",
|
|
62
|
+
scope: "country",
|
|
59
63
|
country: "PH",
|
|
60
64
|
entityType: "person",
|
|
61
65
|
description:
|
package/src/pk/cnic.ts
CHANGED
|
@@ -20,13 +20,16 @@ const generate = (): string => {
|
|
|
20
20
|
* @see https://en.wikipedia.org/wiki/CNIC_(Pakistan)
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
+
import type {
|
|
24
|
+
ValidateResult,
|
|
25
|
+
CountryValidator,
|
|
26
|
+
} from "../types";
|
|
27
|
+
|
|
23
28
|
import { clean } from "#util/clean";
|
|
24
29
|
import { randomDigits, randomInt } from "#util/generate";
|
|
25
30
|
import { err } from "#util/result";
|
|
26
31
|
import { isdigits } from "#util/strings";
|
|
27
32
|
|
|
28
|
-
import type { ValidateResult, Validator } from "../types";
|
|
29
|
-
|
|
30
33
|
const compact = (value: string): string =>
|
|
31
34
|
clean(value, " -");
|
|
32
35
|
|
|
@@ -81,12 +84,13 @@ const format = (value: string): string => {
|
|
|
81
84
|
};
|
|
82
85
|
|
|
83
86
|
/** Pakistan Computerized National Identity Card. */
|
|
84
|
-
const cnic:
|
|
87
|
+
const cnic: CountryValidator<"PK"> = {
|
|
85
88
|
name: "Computerized National Identity Card",
|
|
86
89
|
localName: "Computerized National Identity Card",
|
|
87
90
|
abbreviation: "CNIC",
|
|
88
91
|
aliases: ["CNIC", "شناختی کارڈ"] as const,
|
|
89
92
|
candidatePattern: "\\d{5}-?\\d{7}-?\\d",
|
|
93
|
+
scope: "country",
|
|
90
94
|
country: "PK",
|
|
91
95
|
entityType: "person",
|
|
92
96
|
lengths: [13],
|
package/src/pl/nip.ts
CHANGED
|
@@ -8,14 +8,17 @@
|
|
|
8
8
|
* @see https://www.oecd.org/content/dam/oecd/en/topics/policy-issue-focus/aeoi/poland-tin.pdf
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {
|
|
12
|
+
ValidateResult,
|
|
13
|
+
CountryValidator,
|
|
14
|
+
} from "../types";
|
|
15
|
+
|
|
11
16
|
import { weightedSum } from "#checksums/weighted-sum";
|
|
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 = [6, 5, 7, 2, 3, 4, 5, 6, 7] as const;
|
|
20
23
|
|
|
21
24
|
const compact = (value: string): string => {
|
|
@@ -73,7 +76,7 @@ const generate = (): string => {
|
|
|
73
76
|
};
|
|
74
77
|
|
|
75
78
|
/** Polish VAT Number. */
|
|
76
|
-
const nip:
|
|
79
|
+
const nip: CountryValidator<"PL"> = {
|
|
77
80
|
name: "Polish VAT Number",
|
|
78
81
|
localName: "Numer Identyfikacji Podatkowej",
|
|
79
82
|
abbreviation: "NIP",
|
|
@@ -82,6 +85,7 @@ const nip: Validator = {
|
|
|
82
85
|
"numer identyfikacji podatkowej",
|
|
83
86
|
] as const,
|
|
84
87
|
candidatePattern: "\\d{3}-?\\d{3}-?\\d{2}-?\\d{2}",
|
|
88
|
+
scope: "country",
|
|
85
89
|
country: "PL",
|
|
86
90
|
entityType: "company",
|
|
87
91
|
sourceUrl: "https://www.biznes.gov.pl/en/portal/004124",
|