@stll/stdnum 0.0.1 → 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/LICENSE +1 -5
- package/README.md +28 -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 +5 -5
- 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.d.ts +13 -1
- package/dist/_util/generate.js +23 -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/mod.d.ts +3 -2
- package/dist/ad/nrt.d.ts +16 -2
- package/dist/ad/nrt.js +4 -16
- package/dist/ad/nrt.js.map +1 -1
- package/dist/ae/eid.d.ts +2 -3
- package/dist/ae/eid.js +2 -12
- package/dist/ae/eid.js.map +1 -1
- package/dist/ae/mod.d.ts +3 -2
- package/dist/ai/mod.d.ts +3 -2
- 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/mod.d.ts +3 -2
- 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/mod.d.ts +3 -2
- 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 -3
- package/dist/ar/cbu.js +2 -10
- package/dist/ar/cbu.js.map +1 -1
- package/dist/ar/cuit.d.ts +2 -3
- package/dist/ar/cuit.js +13 -29
- 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/ar/mod.d.ts +3 -2
- 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/mod.d.ts +3 -2
- package/dist/at/tin.d.ts +2 -3
- package/dist/at/tin.js +1 -11
- package/dist/at/tin.js.map +1 -1
- package/dist/at/uid.d.ts +2 -3
- package/dist/at/uid.js +2 -10
- package/dist/at/uid.js.map +1 -1
- package/dist/at/vnr.d.ts +5 -4
- package/dist/at/vnr.js +23 -16
- package/dist/at/vnr.js.map +1 -1
- package/dist/au/abn.d.ts +2 -3
- package/dist/au/abn.js +1 -10
- package/dist/au/abn.js.map +1 -1
- package/dist/au/acn.d.ts +2 -3
- package/dist/au/acn.js +1 -10
- package/dist/au/acn.js.map +1 -1
- package/dist/au/mod.d.ts +3 -2
- package/dist/au/tfn.d.ts +2 -3
- package/dist/au/tfn.js +1 -10
- package/dist/au/tfn.js.map +1 -1
- package/dist/az/mod.d.ts +3 -2
- package/dist/az/voen.d.ts +2 -3
- package/dist/az/voen.js +1 -14
- package/dist/az/voen.js.map +1 -1
- package/dist/ba/jmbg.d.ts +2 -3
- package/dist/ba/jmbg.js +4 -11
- package/dist/ba/jmbg.js.map +1 -1
- package/dist/ba/mod.d.ts +3 -2
- package/dist/bd/mod.d.ts +3 -2
- package/dist/bd/nid.d.ts +23 -2
- package/dist/bd/nid.js +11 -32
- package/dist/bd/nid.js.map +1 -1
- package/dist/be/bis.d.ts +2 -3
- package/dist/be/bis.js +1 -11
- package/dist/be/bis.js.map +1 -1
- package/dist/be/mod.d.ts +3 -2
- package/dist/be/nn.d.ts +2 -3
- package/dist/be/nn.js +1 -11
- package/dist/be/nn.js.map +1 -1
- package/dist/be/vat.d.ts +2 -3
- package/dist/be/vat.js +1 -9
- package/dist/be/vat.js.map +1 -1
- package/dist/bg/egn.d.ts +2 -3
- package/dist/bg/egn.js +5 -13
- package/dist/bg/egn.js.map +1 -1
- package/dist/bg/mod.d.ts +3 -2
- package/dist/bg/pnf.d.ts +2 -3
- package/dist/bg/pnf.js +1 -8
- package/dist/bg/pnf.js.map +1 -1
- package/dist/bg/vat.d.ts +2 -3
- package/dist/bg/vat.js +3 -9
- package/dist/bg/vat.js.map +1 -1
- package/dist/bh/cpr.d.ts +5 -4
- package/dist/bh/cpr.js +9 -19
- package/dist/bh/cpr.js.map +1 -1
- package/dist/bh/mod.d.ts +3 -2
- package/dist/bic.d.ts +13 -2
- package/dist/bic.js +14 -26
- package/dist/bic.js.map +1 -1
- package/dist/br/cnpj.d.ts +2 -3
- package/dist/br/cnpj.js +1 -20
- package/dist/br/cnpj.js.map +1 -1
- package/dist/br/cpf.d.ts +2 -3
- package/dist/br/cpf.js +1 -14
- package/dist/br/cpf.js.map +1 -1
- package/dist/br/mod.d.ts +3 -2
- package/dist/by/mod.d.ts +3 -2
- package/dist/by/unp.d.ts +2 -3
- package/dist/by/unp.js +9 -17
- package/dist/by/unp.js.map +1 -1
- package/dist/bz/mod.d.ts +3 -2
- package/dist/bz/tin.d.ts +5 -4
- package/dist/bz/tin.js +10 -27
- package/dist/bz/tin.js.map +1 -1
- package/dist/ca/bn.d.ts +2 -3
- package/dist/ca/bn.js +2 -10
- package/dist/ca/bn.js.map +1 -1
- package/dist/ca/mod.d.ts +3 -2
- package/dist/ca/sin.d.ts +2 -3
- package/dist/ca/sin.js +2 -10
- package/dist/ca/sin.js.map +1 -1
- package/dist/ch/mod.d.ts +3 -2
- package/dist/ch/ssn.d.ts +2 -3
- package/dist/ch/ssn.js +1 -9
- package/dist/ch/ssn.js.map +1 -1
- package/dist/ch/uid.d.ts +2 -3
- package/dist/ch/uid.js +1 -9
- package/dist/ch/uid.js.map +1 -1
- package/dist/ch/vat.d.ts +2 -3
- package/dist/ch/vat.js +1 -9
- package/dist/ch/vat.js.map +1 -1
- package/dist/cl/mod.d.ts +3 -2
- package/dist/cl/rut.d.ts +2 -3
- package/dist/cl/rut.js +2 -15
- package/dist/cl/rut.js.map +1 -1
- package/dist/cn/mod.d.ts +3 -2
- package/dist/cn/ric.d.ts +2 -3
- package/dist/cn/ric.js +4 -14
- package/dist/cn/ric.js.map +1 -1
- package/dist/cn/uscc.d.ts +2 -3
- package/dist/cn/uscc.js +8 -16
- package/dist/cn/uscc.js.map +1 -1
- package/dist/co/mod.d.ts +3 -2
- package/dist/co/nit.d.ts +2 -3
- package/dist/co/nit.js +6 -13
- package/dist/co/nit.js.map +1 -1
- package/dist/cr/cpf.d.ts +18 -2
- package/dist/cr/cpf.js +5 -19
- package/dist/cr/cpf.js.map +1 -1
- package/dist/cr/mod.d.ts +3 -2
- package/dist/creditcard.d.ts +2 -3
- package/dist/creditcard.js +5 -14
- package/dist/creditcard.js.map +1 -1
- package/dist/cu/mod.d.ts +3 -2
- package/dist/cu/ni.d.ts +5 -4
- package/dist/cu/ni.js +13 -18
- package/dist/cu/ni.js.map +1 -1
- package/dist/cy/mod.d.ts +3 -2
- package/dist/cy/vat.d.ts +2 -3
- package/dist/cy/vat.js +1 -8
- package/dist/cy/vat.js.map +1 -1
- package/dist/cz/dic.d.ts +2 -3
- package/dist/cz/dic.js +7 -13
- package/dist/cz/dic.js.map +1 -1
- package/dist/cz/ico.d.ts +2 -3
- package/dist/cz/ico.js +2 -10
- package/dist/cz/ico.js.map +1 -1
- package/dist/cz/mod.d.ts +3 -2
- package/dist/cz/rc.d.ts +2 -3
- package/dist/cz/rc.js +22 -21
- package/dist/cz/rc.js.map +1 -1
- package/dist/de/handelsreg.d.ts +19 -2
- package/dist/de/handelsreg.js +10 -26
- package/dist/de/handelsreg.js.map +1 -1
- package/dist/de/idnr.d.ts +2 -3
- package/dist/de/idnr.js +2 -12
- package/dist/de/idnr.js.map +1 -1
- package/dist/de/mod.d.ts +3 -2
- package/dist/de/stnr.d.ts +17 -3
- package/dist/de/stnr.js +1 -15
- package/dist/de/stnr.js.map +1 -1
- package/dist/de/svnr.d.ts +2 -3
- package/dist/de/svnr.js +4 -13
- package/dist/de/svnr.js.map +1 -1
- package/dist/de/vat.d.ts +2 -3
- package/dist/de/vat.js +2 -11
- package/dist/de/vat.js.map +1 -1
- package/dist/dk/cpr.d.ts +5 -4
- package/dist/dk/cpr.js +14 -12
- package/dist/dk/cpr.js.map +1 -1
- package/dist/dk/cvr.d.ts +2 -3
- package/dist/dk/cvr.js +2 -15
- package/dist/dk/cvr.js.map +1 -1
- package/dist/dk/mod.d.ts +3 -2
- package/dist/dk/vat.d.ts +2 -3
- package/dist/dk/vat.js +3 -13
- package/dist/dk/vat.js.map +1 -1
- package/dist/do/mod.d.ts +3 -2
- package/dist/do/rnc.d.ts +2 -3
- package/dist/do/rnc.js +3 -17
- package/dist/do/rnc.js.map +1 -1
- package/dist/ec/mod.d.ts +3 -2
- package/dist/ec/ruc.d.ts +2 -3
- package/dist/ec/ruc.js +2 -19
- package/dist/ec/ruc.js.map +1 -1
- package/dist/ee/ik.d.ts +2 -3
- package/dist/ee/ik.js +6 -15
- package/dist/ee/ik.js.map +1 -1
- package/dist/ee/mod.d.ts +3 -2
- package/dist/ee/registrikood.d.ts +2 -3
- package/dist/ee/registrikood.js +9 -15
- package/dist/ee/registrikood.js.map +1 -1
- package/dist/ee/vat.d.ts +2 -3
- package/dist/ee/vat.js +2 -10
- package/dist/ee/vat.js.map +1 -1
- package/dist/eg/mod.d.ts +3 -2
- 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 -3
- package/dist/es/cif.js +3 -12
- package/dist/es/cif.js.map +1 -1
- package/dist/es/dni.d.ts +2 -3
- package/dist/es/dni.js +1 -9
- package/dist/es/dni.js.map +1 -1
- package/dist/es/mod.d.ts +3 -2
- package/dist/es/nie.d.ts +2 -3
- package/dist/es/nie.js +14 -22
- package/dist/es/nie.js.map +1 -1
- package/dist/es/nss.d.ts +2 -3
- package/dist/es/nss.js +1 -16
- package/dist/es/nss.js.map +1 -1
- package/dist/es/vat.d.ts +2 -3
- package/dist/es/vat.js +5 -10
- package/dist/es/vat.js.map +1 -1
- package/dist/eu/mod.d.ts +3 -2
- package/dist/eu/vat.d.ts +5 -4
- package/dist/eu/vat.js +44 -2
- package/dist/eu/vat.js.map +1 -1
- package/dist/fi/hetu.d.ts +5 -4
- package/dist/fi/hetu.js +19 -12
- package/dist/fi/hetu.js.map +1 -1
- package/dist/fi/mod.d.ts +3 -2
- package/dist/fi/vat.d.ts +2 -3
- package/dist/fi/vat.js +3 -10
- package/dist/fi/vat.js.map +1 -1
- package/dist/fi/ytunnus.d.ts +2 -3
- package/dist/fi/ytunnus.js +2 -10
- package/dist/fi/ytunnus.js.map +1 -1
- package/dist/fr/mod.d.ts +3 -2
- package/dist/fr/nif.d.ts +2 -3
- package/dist/fr/nif.js +1 -9
- package/dist/fr/nif.js.map +1 -1
- package/dist/fr/nir.d.ts +2 -3
- package/dist/fr/nir.js +3 -14
- package/dist/fr/nir.js.map +1 -1
- package/dist/fr/siren.d.ts +2 -3
- package/dist/fr/siren.js +2 -10
- package/dist/fr/siren.js.map +1 -1
- package/dist/fr/siret.d.ts +2 -3
- package/dist/fr/siret.js +2 -11
- package/dist/fr/siret.js.map +1 -1
- package/dist/fr/tva.d.ts +2 -3
- package/dist/fr/tva.js +2 -12
- package/dist/fr/tva.js.map +1 -1
- package/dist/gb/mod.d.ts +3 -2
- package/dist/gb/nino.d.ts +12 -2
- package/dist/gb/nino.js +8 -17
- package/dist/gb/nino.js.map +1 -1
- package/dist/gb/sedol.d.ts +2 -3
- package/dist/gb/sedol.js +9 -18
- package/dist/gb/sedol.js.map +1 -1
- package/dist/gb/utr.d.ts +2 -3
- package/dist/gb/utr.js +2 -10
- package/dist/gb/utr.js.map +1 -1
- package/dist/gb/vat.d.ts +2 -3
- package/dist/gb/vat.js +2 -11
- package/dist/gb/vat.js.map +1 -1
- package/dist/ge/mod.d.ts +3 -2
- 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/mod.d.ts +3 -2
- package/dist/gh/tin.d.ts +2 -3
- package/dist/gh/tin.js +10 -24
- package/dist/gh/tin.js.map +1 -1
- package/dist/gr/amka.d.ts +2 -3
- package/dist/gr/amka.js +3 -11
- package/dist/gr/amka.js.map +1 -1
- package/dist/gr/mod.d.ts +3 -2
- package/dist/gr/vat.d.ts +2 -3
- package/dist/gr/vat.js +1 -10
- package/dist/gr/vat.js.map +1 -1
- package/dist/gt/mod.d.ts +3 -2
- package/dist/gt/nit.d.ts +2 -3
- package/dist/gt/nit.js +6 -14
- package/dist/gt/nit.js.map +1 -1
- package/dist/hk/hkid.d.ts +2 -3
- package/dist/hk/hkid.js +2 -10
- package/dist/hk/hkid.js.map +1 -1
- package/dist/hk/mod.d.ts +3 -2
- package/dist/hr/mod.d.ts +3 -2
- package/dist/hr/vat.d.ts +2 -3
- package/dist/hr/vat.js +2 -9
- package/dist/hr/vat.js.map +1 -1
- package/dist/hu/mod.d.ts +3 -2
- package/dist/hu/vat.d.ts +2 -3
- package/dist/hu/vat.js +3 -10
- package/dist/hu/vat.js.map +1 -1
- package/dist/iban.d.ts +2 -3
- package/dist/iban.js +2 -8
- package/dist/iban.js.map +1 -1
- package/dist/id/mod.d.ts +3 -2
- package/dist/id/npwp.d.ts +2 -3
- package/dist/id/npwp.js +3 -13
- package/dist/id/npwp.js.map +1 -1
- package/dist/ie/mod.d.ts +3 -2
- package/dist/ie/pps.d.ts +2 -3
- package/dist/ie/pps.js +1 -10
- package/dist/ie/pps.js.map +1 -1
- package/dist/ie/vat.d.ts +2 -3
- package/dist/ie/vat.js +1 -9
- package/dist/ie/vat.js.map +1 -1
- package/dist/il/idnr.d.ts +2 -3
- package/dist/il/idnr.js +2 -9
- package/dist/il/idnr.js.map +1 -1
- package/dist/il/mod.d.ts +3 -2
- package/dist/in/aadhaar.d.ts +2 -3
- package/dist/in/aadhaar.js +2 -12
- package/dist/in/aadhaar.js.map +1 -1
- package/dist/in/gstin.d.ts +2 -3
- package/dist/in/gstin.js +4 -11
- package/dist/in/gstin.js.map +1 -1
- package/dist/in/mod.d.ts +3 -2
- package/dist/in/pan.d.ts +15 -2
- package/dist/in/pan.js +3 -15
- package/dist/in/pan.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -6
- package/dist/iq/mod.d.ts +3 -2
- 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/mod.d.ts +3 -2
- package/dist/ir/nid.d.ts +2 -3
- package/dist/ir/nid.js +2 -24
- package/dist/ir/nid.js.map +1 -1
- package/dist/is/kennitala.d.ts +2 -3
- package/dist/is/kennitala.js +2 -13
- package/dist/is/kennitala.js.map +1 -1
- package/dist/is/mod.d.ts +3 -2
- 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 -3
- package/dist/isin.js +11 -21
- package/dist/isin.js.map +1 -1
- package/dist/it/codicefiscale.d.ts +5 -4
- package/dist/it/codicefiscale.js +27 -23
- package/dist/it/codicefiscale.js.map +1 -1
- package/dist/it/iva.d.ts +2 -3
- package/dist/it/iva.js +2 -9
- package/dist/it/iva.js.map +1 -1
- package/dist/it/mod.d.ts +3 -2
- package/dist/jp/cn.d.ts +2 -3
- package/dist/jp/cn.js +1 -9
- package/dist/jp/cn.js.map +1 -1
- package/dist/jp/mod.d.ts +3 -2
- package/dist/jp/mynumber.d.ts +2 -3
- 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/mod.d.ts +3 -2
- package/dist/kr/rrn.d.ts +5 -4
- package/dist/kr/rrn.js +15 -13
- package/dist/kr/rrn.js.map +1 -1
- package/dist/kw/civil.d.ts +6 -5
- package/dist/kw/civil.js +20 -17
- package/dist/kw/civil.js.map +1 -1
- package/dist/kw/mod.d.ts +3 -2
- package/dist/kz/iin.d.ts +2 -3
- package/dist/kz/iin.js +4 -18
- package/dist/kz/iin.js.map +1 -1
- package/dist/kz/mod.d.ts +3 -2
- package/dist/lei.d.ts +2 -3
- package/dist/lei.js +2 -11
- package/dist/lei.js.map +1 -1
- package/dist/li/mod.d.ts +3 -2
- 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/mod.d.ts +3 -2
- package/dist/lk/nic.d.ts +5 -4
- package/dist/lk/nic.js +16 -16
- package/dist/lk/nic.js.map +1 -1
- package/dist/lt/asmens.d.ts +2 -3
- package/dist/lt/asmens.js +2 -1
- package/dist/lt/asmens.js.map +1 -1
- package/dist/lt/mod.d.ts +3 -2
- package/dist/lt/vat.d.ts +2 -3
- package/dist/lt/vat.js +2 -10
- package/dist/lt/vat.js.map +1 -1
- package/dist/lu/mod.d.ts +3 -2
- package/dist/lu/vat.d.ts +2 -3
- package/dist/lu/vat.js +2 -8
- package/dist/lu/vat.js.map +1 -1
- package/dist/luhn.d.ts +2 -3
- package/dist/luhn.js +9 -9
- package/dist/luhn.js.map +1 -1
- package/dist/lv/mod.d.ts +3 -2
- package/dist/lv/vat.d.ts +2 -3
- package/dist/lv/vat.js +19 -18
- package/dist/lv/vat.js.map +1 -1
- package/dist/ma/ice.d.ts +2 -3
- package/dist/ma/ice.js +2 -11
- package/dist/ma/ice.js.map +1 -1
- package/dist/ma/mod.d.ts +3 -2
- package/dist/mc/mod.d.ts +3 -2
- package/dist/mc/tva.d.ts +2 -3
- package/dist/mc/tva.js +1 -0
- package/dist/mc/tva.js.map +1 -1
- package/dist/md/idno.d.ts +2 -3
- package/dist/md/idno.js +1 -10
- package/dist/md/idno.js.map +1 -1
- package/dist/md/mod.d.ts +3 -2
- package/dist/me/mod.d.ts +3 -2
- package/dist/me/pib.d.ts +2 -3
- package/dist/me/pib.js +2 -10
- package/dist/me/pib.js.map +1 -1
- package/dist/mk/edb.d.ts +2 -3
- package/dist/mk/edb.js +2 -11
- package/dist/mk/edb.js.map +1 -1
- package/dist/mk/mod.d.ts +3 -2
- package/dist/mt/mod.d.ts +3 -2
- package/dist/mt/vat.d.ts +2 -3
- 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/mu/mod.d.ts +3 -2
- package/dist/mx/clabe.d.ts +2 -3
- package/dist/mx/clabe.js +1 -14
- package/dist/mx/clabe.js.map +1 -1
- package/dist/mx/curp.d.ts +5 -4
- package/dist/mx/curp.js +27 -19
- package/dist/mx/curp.js.map +1 -1
- package/dist/mx/mod.d.ts +3 -2
- package/dist/mx/rfc.d.ts +5 -4
- package/dist/mx/rfc.js +23 -20
- package/dist/mx/rfc.js.map +1 -1
- package/dist/my/mod.d.ts +3 -2
- package/dist/my/nric.d.ts +5 -4
- package/dist/my/nric.js +18 -16
- package/dist/my/nric.js.map +1 -1
- package/dist/ng/mod.d.ts +3 -2
- 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/mod.d.ts +3 -2
- package/dist/ni/ruc.d.ts +2 -3
- package/dist/ni/ruc.js +1 -23
- package/dist/ni/ruc.js.map +1 -1
- package/dist/nl/bsn.d.ts +2 -3
- 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/mod.d.ts +3 -2
- package/dist/nl/vat.d.ts +2 -3
- package/dist/nl/vat.js +4 -50
- package/dist/nl/vat.js.map +1 -1
- package/dist/no/fodselsnummer.d.ts +2 -3
- package/dist/no/fodselsnummer.js +3 -10
- package/dist/no/fodselsnummer.js.map +1 -1
- package/dist/no/mod.d.ts +3 -2
- package/dist/no/mva.d.ts +2 -3
- package/dist/no/mva.js +1 -8
- package/dist/no/mva.js.map +1 -1
- package/dist/no/orgnr.d.ts +2 -3
- package/dist/no/orgnr.js +2 -8
- package/dist/no/orgnr.js.map +1 -1
- package/dist/nz/ird.d.ts +2 -3
- package/dist/nz/ird.js +4 -13
- package/dist/nz/ird.js.map +1 -1
- package/dist/nz/mod.d.ts +3 -2
- package/dist/pa/mod.d.ts +3 -2
- package/dist/pa/ruc.d.ts +2 -3
- package/dist/pa/ruc.js +4 -19
- package/dist/pa/ruc.js.map +1 -1
- package/dist/patterns.d.ts +8 -10
- package/dist/patterns.js +83 -28
- package/dist/patterns.js.map +1 -1
- package/dist/pe/mod.d.ts +3 -2
- package/dist/pe/ruc.d.ts +2 -3
- package/dist/pe/ruc.js +10 -24
- package/dist/pe/ruc.js.map +1 -1
- package/dist/ph/mod.d.ts +3 -2
- 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/pk/mod.d.ts +3 -2
- package/dist/pl/mod.d.ts +3 -2
- package/dist/pl/nip.d.ts +2 -3
- package/dist/pl/nip.js +2 -10
- package/dist/pl/nip.js.map +1 -1
- package/dist/pl/pesel.d.ts +2 -3
- package/dist/pl/pesel.js +4 -13
- package/dist/pl/pesel.js.map +1 -1
- package/dist/pl/regon.d.ts +2 -3
- package/dist/pl/regon.js +2 -11
- package/dist/pl/regon.js.map +1 -1
- package/dist/pt/cc.d.ts +2 -3
- package/dist/pt/cc.js +7 -13
- package/dist/pt/cc.js.map +1 -1
- package/dist/pt/mod.d.ts +3 -2
- package/dist/pt/vat.d.ts +2 -3
- package/dist/pt/vat.js +3 -11
- package/dist/pt/vat.js.map +1 -1
- package/dist/ro/cnp.d.ts +2 -3
- package/dist/ro/cnp.js +5 -14
- package/dist/ro/cnp.js.map +1 -1
- package/dist/ro/mod.d.ts +3 -2
- package/dist/ro/vat.d.ts +2 -3
- package/dist/ro/vat.js +13 -11
- package/dist/ro/vat.js.map +1 -1
- package/dist/rs/mod.d.ts +3 -2
- package/dist/rs/pib.d.ts +2 -3
- package/dist/rs/pib.js +1 -9
- package/dist/rs/pib.js.map +1 -1
- package/dist/ru/inn.d.ts +2 -3
- package/dist/ru/inn.js +2 -12
- package/dist/ru/inn.js.map +1 -1
- package/dist/ru/mod.d.ts +3 -2
- package/dist/se/mod.d.ts +3 -2
- package/dist/se/orgnr.d.ts +2 -3
- package/dist/se/orgnr.js +2 -9
- package/dist/se/orgnr.js.map +1 -1
- package/dist/se/personnummer.d.ts +2 -3
- package/dist/se/personnummer.js +8 -15
- package/dist/se/personnummer.js.map +1 -1
- package/dist/se/vat.d.ts +2 -3
- package/dist/se/vat.js +3 -10
- package/dist/se/vat.js.map +1 -1
- package/dist/sg/mod.d.ts +3 -2
- package/dist/sg/uen.d.ts +2 -3
- package/dist/sg/uen.js +47 -70
- package/dist/sg/uen.js.map +1 -1
- package/dist/si/emso.d.ts +2 -3
- package/dist/si/emso.js +12 -14
- package/dist/si/emso.js.map +1 -1
- package/dist/si/mod.d.ts +3 -2
- package/dist/si/vat.d.ts +2 -3
- package/dist/si/vat.js +3 -12
- package/dist/si/vat.js.map +1 -1
- package/dist/sk/dic.d.ts +2 -3
- package/dist/sk/dic.js +1 -0
- package/dist/sk/dic.js.map +1 -1
- package/dist/sk/ico.d.ts +2 -3
- package/dist/sk/ico.js +1 -0
- package/dist/sk/ico.js.map +1 -1
- package/dist/sk/mod.d.ts +3 -2
- package/dist/sk/rc.d.ts +4 -5
- package/dist/sk/rc.js +6 -2
- package/dist/sk/rc.js.map +1 -1
- package/dist/th/mod.d.ts +3 -2
- package/dist/th/tin.d.ts +2 -3
- package/dist/th/tin.js +1 -11
- package/dist/th/tin.js.map +1 -1
- package/dist/tr/mod.d.ts +3 -2
- package/dist/tr/tckimlik.d.ts +2 -3
- package/dist/tr/tckimlik.js +1 -20
- package/dist/tr/tckimlik.js.map +1 -1
- package/dist/tr/vkn.d.ts +2 -3
- package/dist/tr/vkn.js +1 -20
- package/dist/tr/vkn.js.map +1 -1
- package/dist/tw/mod.d.ts +3 -2
- package/dist/tw/ubn.d.ts +2 -3
- package/dist/tw/ubn.js +2 -12
- package/dist/tw/ubn.js.map +1 -1
- package/dist/types.d.ts +56 -21
- package/dist/ua/edrpou.d.ts +2 -3
- package/dist/ua/edrpou.js +5 -12
- package/dist/ua/edrpou.js.map +1 -1
- package/dist/ua/mod.d.ts +3 -2
- package/dist/us/ein.d.ts +12 -2
- package/dist/us/ein.js +88 -97
- package/dist/us/ein.js.map +1 -1
- package/dist/us/itin.d.ts +13 -2
- package/dist/us/itin.js +4 -15
- package/dist/us/itin.js.map +1 -1
- package/dist/us/mod.d.ts +3 -2
- package/dist/us/rtn.d.ts +2 -3
- package/dist/us/rtn.js +11 -23
- 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/mod.d.ts +3 -2
- package/dist/uy/rut.d.ts +2 -3
- package/dist/uy/rut.js +2 -15
- package/dist/uy/rut.js.map +1 -1
- package/dist/ve/mod.d.ts +3 -2
- package/dist/ve/rif.d.ts +2 -3
- package/dist/ve/rif.js +13 -26
- package/dist/ve/rif.js.map +1 -1
- package/dist/vn/mod.d.ts +3 -2
- package/dist/vn/mst.d.ts +2 -3
- package/dist/vn/mst.js +1 -12
- package/dist/vn/mst.js.map +1 -1
- package/dist/za/idnr.d.ts +2 -3
- package/dist/za/idnr.js +4 -16
- package/dist/za/idnr.js.map +1 -1
- package/dist/za/mod.d.ts +3 -2
- package/package.json +34 -21
- package/src/_checksums/mod1110.ts +1 -1
- package/src/_checksums/mod112.ts +7 -6
- package/src/_util/generate.ts +38 -0
- package/src/ad/nrt.ts +19 -7
- 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 +9 -5
- package/src/ar/cuit.ts +22 -10
- 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 +62 -12
- 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 +9 -3
- package/src/ba/jmbg.ts +9 -7
- package/src/bd/nid.ts +11 -7
- 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 +19 -10
- package/src/bg/pnf.ts +7 -3
- package/src/bg/vat.ts +8 -3
- package/src/bh/cpr.ts +17 -4
- package/src/bic.ts +26 -20
- package/src/br/cnpj.ts +7 -3
- package/src/br/cpf.ts +7 -3
- package/src/by/unp.ts +19 -9
- package/src/bz/tin.ts +19 -4
- 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 +11 -5
- package/src/cn/ric.ts +11 -7
- package/src/cn/uscc.ts +27 -11
- package/src/co/nit.ts +14 -6
- package/src/cr/cpf.ts +11 -6
- package/src/creditcard.ts +10 -6
- package/src/cu/ni.ts +28 -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 +61 -29
- package/src/de/handelsreg.ts +21 -6
- package/src/de/idnr.ts +10 -3
- package/src/de/stnr.ts +11 -3
- package/src/de/svnr.ts +14 -5
- package/src/de/vat.ts +7 -3
- package/src/dk/cpr.ts +23 -8
- package/src/dk/cvr.ts +7 -3
- package/src/dk/vat.ts +8 -3
- package/src/do/rnc.ts +9 -5
- package/src/ec/ruc.ts +9 -5
- package/src/ee/ik.ts +21 -10
- package/src/ee/registrikood.ts +12 -7
- package/src/ee/vat.ts +7 -3
- package/src/eg/tn.ts +7 -3
- package/src/es/cif.ts +10 -7
- package/src/es/dni.ts +7 -3
- package/src/es/nie.ts +18 -9
- package/src/es/nss.ts +7 -3
- package/src/es/vat.ts +13 -5
- package/src/eu/vat.ts +55 -6
- package/src/fi/hetu.ts +26 -8
- 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 +9 -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 +18 -13
- package/src/gb/sedol.ts +21 -15
- 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 +11 -6
- package/src/gr/amka.ts +7 -3
- package/src/gr/vat.ts +7 -3
- package/src/gt/nit.ts +13 -6
- package/src/hk/hkid.ts +9 -4
- 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 +10 -4
- package/src/in/pan.ts +15 -6
- package/src/index.ts +6 -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 +17 -7
- package/src/it/codicefiscale.ts +49 -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 +27 -8
- package/src/kw/civil.ts +31 -14
- package/src/kz/iin.ts +9 -8
- package/src/lei.ts +7 -3
- package/src/li/peid.ts +7 -3
- package/src/lk/nic.ts +31 -8
- 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 +10 -3
- package/src/lv/vat.ts +53 -23
- 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 +47 -10
- package/src/mx/rfc.ts +42 -7
- package/src/my/nric.ts +33 -8
- 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 +18 -69
- package/src/no/fodselsnummer.ts +12 -7
- package/src/no/mva.ts +9 -5
- package/src/no/orgnr.ts +7 -3
- package/src/nz/ird.ts +12 -8
- package/src/pa/ruc.ts +39 -11
- package/src/patterns.ts +184 -46
- package/src/pe/ruc.ts +13 -10
- package/src/ph/philid.ts +7 -3
- package/src/pk/cnic.ts +9 -3
- package/src/pl/nip.ts +7 -3
- package/src/pl/pesel.ts +9 -7
- package/src/pl/regon.ts +7 -3
- package/src/pt/cc.ts +13 -7
- package/src/pt/vat.ts +8 -3
- package/src/ro/cnp.ts +16 -8
- package/src/ro/vat.ts +8 -3
- package/src/rs/pib.ts +7 -3
- package/src/ru/inn.ts +9 -5
- package/src/se/orgnr.ts +7 -3
- package/src/se/personnummer.ts +35 -32
- package/src/se/vat.ts +8 -3
- package/src/sg/uen.ts +44 -23
- package/src/si/emso.ts +37 -11
- 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 +17 -4
- 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 +9 -5
- package/src/types.ts +69 -7
- package/src/ua/edrpou.ts +10 -5
- package/src/us/ein.ts +95 -91
- package/src/us/itin.ts +14 -11
- package/src/us/rtn.ts +32 -19
- package/src/us/ssn.ts +7 -3
- package/src/uy/rut.ts +9 -5
- package/src/ve/rif.ts +19 -12
- package/src/vn/mst.ts +7 -3
- package/src/za/idnr.ts +9 -7
package/dist/ua/edrpou.js
CHANGED
|
@@ -3,17 +3,6 @@ import { randomDigits } from "../_util/generate.js";
|
|
|
3
3
|
import { err } from "../_util/result.js";
|
|
4
4
|
import { isdigits } from "../_util/strings.js";
|
|
5
5
|
//#region src/ua/edrpou.ts
|
|
6
|
-
/**
|
|
7
|
-
* EDRPOU (ЄДРПОУ, Unified State Register of
|
|
8
|
-
* Enterprises and Organizations of Ukraine).
|
|
9
|
-
*
|
|
10
|
-
* 8-digit company identification number with a
|
|
11
|
-
* weighted checksum. Two sets of weights are used
|
|
12
|
-
* depending on whether the first digit is 0-2/6-9 or 3-5.
|
|
13
|
-
*
|
|
14
|
-
* @see https://en.wikipedia.org/wiki/EDRPOU
|
|
15
|
-
* @see https://usr.minjust.gov.ua/
|
|
16
|
-
*/
|
|
17
6
|
const WEIGHTS_A = [
|
|
18
7
|
1,
|
|
19
8
|
2,
|
|
@@ -52,7 +41,10 @@ const WEIGHTS_B2 = [
|
|
|
52
41
|
];
|
|
53
42
|
const calcCheck = (value, weights) => {
|
|
54
43
|
let sum = 0;
|
|
55
|
-
for (
|
|
44
|
+
for (const [i, weight] of weights.entries()) {
|
|
45
|
+
if (i >= 7) break;
|
|
46
|
+
sum += Number(value[i]) * weight;
|
|
47
|
+
}
|
|
56
48
|
return sum % 11;
|
|
57
49
|
};
|
|
58
50
|
const compact = (value) => clean(value, " -");
|
|
@@ -87,6 +79,7 @@ const edrpou = {
|
|
|
87
79
|
abbreviation: "ЄДРПОУ",
|
|
88
80
|
aliases: ["ЄДРПОУ", "EDRPOU"],
|
|
89
81
|
candidatePattern: "\\d{8}",
|
|
82
|
+
scope: "country",
|
|
90
83
|
country: "UA",
|
|
91
84
|
entityType: "company",
|
|
92
85
|
lengths: [8],
|
package/dist/ua/edrpou.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edrpou.js","names":[],"sources":["../../src/ua/edrpou.ts"],"sourcesContent":["/**\n * EDRPOU (ЄДРПОУ, Unified State Register of\n * Enterprises and Organizations of Ukraine).\n *\n * 8-digit company identification number with a\n * weighted checksum. Two sets of weights are used\n * depending on whether the first digit is 0-2/6-9 or 3-5.\n *\n * @see https://en.wikipedia.org/wiki/EDRPOU\n * @see https://usr.minjust.gov.ua/\n */\n\nimport {
|
|
1
|
+
{"version":3,"file":"edrpou.js","names":[],"sources":["../../src/ua/edrpou.ts"],"sourcesContent":["/**\n * EDRPOU (ЄДРПОУ, Unified State Register of\n * Enterprises and Organizations of Ukraine).\n *\n * 8-digit company identification number with a\n * weighted checksum. Two sets of weights are used\n * depending on whether the first digit is 0-2/6-9 or 3-5.\n *\n * @see https://en.wikipedia.org/wiki/EDRPOU\n * @see https://usr.minjust.gov.ua/\n */\n\nimport type {\n ValidateResult,\n CountryValidator,\n} from \"../types\";\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nconst WEIGHTS_A = [1, 2, 3, 4, 5, 6, 7] as const;\nconst WEIGHTS_B = [7, 1, 2, 3, 4, 5, 6] as const;\nconst WEIGHTS_A2 = [3, 4, 5, 6, 7, 8, 9] as const;\nconst WEIGHTS_B2 = [9, 3, 4, 5, 6, 7, 8] as const;\n\nconst calcCheck = (\n value: string,\n weights: readonly number[],\n): number => {\n let sum = 0;\n for (const [i, weight] of weights.entries()) {\n if (i >= 7) break;\n sum += Number(value[i]) * weight;\n }\n return sum % 11;\n};\n\nconst compact = (value: string): string =>\n clean(value, \" -\");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 8) {\n return err(\n \"INVALID_LENGTH\",\n \"EDRPOU must be exactly 8 digits\",\n );\n }\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"EDRPOU must contain only digits\",\n );\n }\n\n const firstDigit = Number(v[0]);\n const useA = firstDigit < 3 || firstDigit >= 6;\n const weightsFirst = useA ? WEIGHTS_A : WEIGHTS_B;\n const weightsSecond = useA ? WEIGHTS_A2 : WEIGHTS_B2;\n\n let check = calcCheck(v, weightsFirst);\n if (check >= 10) {\n check = calcCheck(v, weightsSecond) % 10;\n }\n\n if (check !== Number(v[7])) {\n return err(\n \"INVALID_CHECKSUM\",\n \"EDRPOU check digit mismatch\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\n/** Generate a random valid Ukrainian EDRPOU. */\nconst generate = (): string => {\n for (;;) {\n const c = randomDigits(8);\n if (validate(c).valid) return c;\n }\n};\n\n/** Ukrainian Company Register Number. */\nconst edrpou: CountryValidator<\"UA\"> = {\n name: \"Ukrainian Company Register Number\",\n localName: \"ЄДРПОУ\",\n abbreviation: \"ЄДРПОУ\",\n aliases: [\"ЄДРПОУ\", \"EDRPOU\"] as const,\n candidatePattern: \"\\\\d{8}\",\n scope: \"country\",\n country: \"UA\",\n entityType: \"company\",\n lengths: [8] as const,\n sourceUrl: \"https://usr.minjust.gov.ua/\",\n examples: [\"14360570\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default edrpou;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;AAsBA,MAAM,YAAY;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;AAAC;AACtC,MAAM,YAAY;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;AAAC;AACtC,MAAM,aAAa;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;AAAC;AACvC,MAAM,aAAa;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;AAAC;AAEvC,MAAM,aACJ,OACA,YACW;CACX,IAAI,MAAM;CACV,KAAK,MAAM,CAAC,GAAG,WAAW,QAAQ,QAAQ,GAAG;EAC3C,IAAI,KAAK,GAAG;EACZ,OAAO,OAAO,MAAM,EAAE,IAAI;CAC5B;CACA,OAAO,MAAM;AACf;AAEA,MAAM,WAAW,UACf,MAAM,OAAO,IAAI;AAEnB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CACvB,IAAI,EAAE,WAAW,GACf,OAAO,IACL,kBACA,iCACF;CAEF,IAAI,CAAC,SAAS,CAAC,GACb,OAAO,IACL,kBACA,iCACF;CAGF,MAAM,aAAa,OAAO,EAAE,EAAE;CAC9B,MAAM,OAAO,aAAa,KAAK,cAAc;CAC7C,MAAM,eAAe,OAAO,YAAY;CACxC,MAAM,gBAAgB,OAAO,aAAa;CAE1C,IAAI,QAAQ,UAAU,GAAG,YAAY;CACrC,IAAI,SAAS,IACX,QAAQ,UAAU,GAAG,aAAa,IAAI;CAGxC,IAAI,UAAU,OAAO,EAAE,EAAE,GACvB,OAAO,IACL,oBACA,6BACF;CAGF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B,QAAQ,KAAK;;AAGvD,MAAM,iBAAyB;CAC7B,SAAS;EACP,MAAM,IAAI,aAAa,CAAC;EACxB,IAAI,SAAS,CAAC,EAAE,OAAO,OAAO;CAChC;AACF;;AAGA,MAAM,SAAiC;CACrC,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CAAC,UAAU,QAAQ;CAC5B,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,SAAS,CAAC,CAAC;CACX,WAAW;CACX,UAAU,CAAC,UAAU;CACrB;CACA;CACA;CACA;AACF"}
|
package/dist/ua/mod.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
1
|
import edrpou from "./edrpou.js";
|
|
3
2
|
|
|
4
3
|
//#region src/ua/mod.d.ts
|
|
5
|
-
|
|
4
|
+
declare namespace mod_d_exports {
|
|
5
|
+
export { edrpou };
|
|
6
|
+
}
|
|
6
7
|
//#endregion
|
|
7
8
|
export { edrpou, mod_d_exports };
|
|
8
9
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/us/ein.d.ts
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/us/ein.d.ts
|
|
4
4
|
/** Generate a random valid U.S. EIN. */
|
|
5
5
|
declare const generate: () => string;
|
|
6
|
+
/**
|
|
7
|
+
* EIN (U.S. Employer Identification Number).
|
|
8
|
+
*
|
|
9
|
+
* 9-digit identifier: 2-digit campus prefix +
|
|
10
|
+
* 7-digit group. No checksum. The first 2 digits
|
|
11
|
+
* must be a valid IRS campus code.
|
|
12
|
+
*
|
|
13
|
+
* @see https://en.wikipedia.org/wiki/Employer_Identification_Number
|
|
14
|
+
* @see https://www.irs.gov/businesses/small-businesses-self-employed/how-eins-are-assigned-and-valid-ein-prefixes
|
|
15
|
+
*/
|
|
6
16
|
declare const compact: (value: string) => string;
|
|
7
17
|
declare const validate: (value: string) => ValidateResult;
|
|
8
18
|
declare const format: (value: string) => string;
|
|
9
19
|
/** U.S. Employer Identification Number. */
|
|
10
|
-
declare const ein:
|
|
20
|
+
declare const ein: CountryValidator<"US">;
|
|
11
21
|
//#endregion
|
|
12
22
|
export { compact, ein as default, format, generate, validate };
|
|
13
23
|
//# sourceMappingURL=ein.d.ts.map
|
package/dist/us/ein.js
CHANGED
|
@@ -1,106 +1,96 @@
|
|
|
1
1
|
import { clean } from "../_util/clean.js";
|
|
2
|
-
import { randomDigits,
|
|
2
|
+
import { randomDigits, randomPick } from "../_util/generate.js";
|
|
3
3
|
import { err } from "../_util/result.js";
|
|
4
4
|
import { isdigits } from "../_util/strings.js";
|
|
5
5
|
//#region src/us/ein.ts
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
const EIN_PREFIXES = [
|
|
7
|
+
"01",
|
|
8
|
+
"02",
|
|
9
|
+
"03",
|
|
10
|
+
"04",
|
|
11
|
+
"05",
|
|
12
|
+
"06",
|
|
13
|
+
"10",
|
|
14
|
+
"11",
|
|
15
|
+
"12",
|
|
16
|
+
"13",
|
|
17
|
+
"14",
|
|
18
|
+
"15",
|
|
19
|
+
"16",
|
|
20
|
+
"20",
|
|
21
|
+
"21",
|
|
22
|
+
"22",
|
|
23
|
+
"23",
|
|
24
|
+
"24",
|
|
25
|
+
"25",
|
|
26
|
+
"26",
|
|
27
|
+
"27",
|
|
28
|
+
"30",
|
|
29
|
+
"31",
|
|
30
|
+
"32",
|
|
31
|
+
"33",
|
|
32
|
+
"34",
|
|
33
|
+
"35",
|
|
34
|
+
"36",
|
|
35
|
+
"37",
|
|
36
|
+
"38",
|
|
37
|
+
"39",
|
|
38
|
+
"40",
|
|
39
|
+
"41",
|
|
40
|
+
"42",
|
|
41
|
+
"43",
|
|
42
|
+
"44",
|
|
43
|
+
"45",
|
|
44
|
+
"46",
|
|
45
|
+
"47",
|
|
46
|
+
"48",
|
|
47
|
+
"50",
|
|
48
|
+
"51",
|
|
49
|
+
"52",
|
|
50
|
+
"53",
|
|
51
|
+
"54",
|
|
52
|
+
"55",
|
|
53
|
+
"56",
|
|
54
|
+
"57",
|
|
55
|
+
"58",
|
|
56
|
+
"59",
|
|
57
|
+
"60",
|
|
58
|
+
"61",
|
|
59
|
+
"62",
|
|
60
|
+
"63",
|
|
61
|
+
"64",
|
|
62
|
+
"65",
|
|
63
|
+
"66",
|
|
64
|
+
"67",
|
|
65
|
+
"68",
|
|
66
|
+
"71",
|
|
67
|
+
"72",
|
|
68
|
+
"73",
|
|
69
|
+
"74",
|
|
70
|
+
"75",
|
|
71
|
+
"76",
|
|
72
|
+
"77",
|
|
73
|
+
"80",
|
|
74
|
+
"81",
|
|
75
|
+
"82",
|
|
76
|
+
"83",
|
|
77
|
+
"84",
|
|
78
|
+
"85",
|
|
79
|
+
"86",
|
|
80
|
+
"87",
|
|
81
|
+
"88",
|
|
82
|
+
"90",
|
|
83
|
+
"91",
|
|
84
|
+
"92",
|
|
85
|
+
"93",
|
|
86
|
+
"94",
|
|
87
|
+
"95",
|
|
88
|
+
"98",
|
|
89
|
+
"99"
|
|
90
|
+
];
|
|
16
91
|
/** Generate a random valid U.S. EIN. */
|
|
17
92
|
const generate = () => {
|
|
18
|
-
|
|
19
|
-
"01",
|
|
20
|
-
"02",
|
|
21
|
-
"03",
|
|
22
|
-
"04",
|
|
23
|
-
"05",
|
|
24
|
-
"06",
|
|
25
|
-
"10",
|
|
26
|
-
"11",
|
|
27
|
-
"12",
|
|
28
|
-
"13",
|
|
29
|
-
"14",
|
|
30
|
-
"15",
|
|
31
|
-
"16",
|
|
32
|
-
"20",
|
|
33
|
-
"21",
|
|
34
|
-
"22",
|
|
35
|
-
"23",
|
|
36
|
-
"24",
|
|
37
|
-
"25",
|
|
38
|
-
"26",
|
|
39
|
-
"27",
|
|
40
|
-
"30",
|
|
41
|
-
"31",
|
|
42
|
-
"32",
|
|
43
|
-
"33",
|
|
44
|
-
"34",
|
|
45
|
-
"35",
|
|
46
|
-
"36",
|
|
47
|
-
"37",
|
|
48
|
-
"38",
|
|
49
|
-
"39",
|
|
50
|
-
"40",
|
|
51
|
-
"41",
|
|
52
|
-
"42",
|
|
53
|
-
"43",
|
|
54
|
-
"44",
|
|
55
|
-
"45",
|
|
56
|
-
"46",
|
|
57
|
-
"47",
|
|
58
|
-
"48",
|
|
59
|
-
"50",
|
|
60
|
-
"51",
|
|
61
|
-
"52",
|
|
62
|
-
"53",
|
|
63
|
-
"54",
|
|
64
|
-
"55",
|
|
65
|
-
"56",
|
|
66
|
-
"57",
|
|
67
|
-
"58",
|
|
68
|
-
"59",
|
|
69
|
-
"60",
|
|
70
|
-
"61",
|
|
71
|
-
"62",
|
|
72
|
-
"63",
|
|
73
|
-
"64",
|
|
74
|
-
"65",
|
|
75
|
-
"66",
|
|
76
|
-
"67",
|
|
77
|
-
"68",
|
|
78
|
-
"71",
|
|
79
|
-
"72",
|
|
80
|
-
"73",
|
|
81
|
-
"74",
|
|
82
|
-
"75",
|
|
83
|
-
"76",
|
|
84
|
-
"77",
|
|
85
|
-
"80",
|
|
86
|
-
"81",
|
|
87
|
-
"82",
|
|
88
|
-
"83",
|
|
89
|
-
"84",
|
|
90
|
-
"85",
|
|
91
|
-
"86",
|
|
92
|
-
"87",
|
|
93
|
-
"88",
|
|
94
|
-
"90",
|
|
95
|
-
"91",
|
|
96
|
-
"92",
|
|
97
|
-
"93",
|
|
98
|
-
"94",
|
|
99
|
-
"95",
|
|
100
|
-
"98",
|
|
101
|
-
"99"
|
|
102
|
-
];
|
|
103
|
-
return prefixes[randomInt(0, prefixes.length - 1)] + randomDigits(7);
|
|
93
|
+
return randomPick(EIN_PREFIXES) + randomDigits(7);
|
|
104
94
|
};
|
|
105
95
|
/**
|
|
106
96
|
* Valid EIN campus prefixes. Sourced from IRS
|
|
@@ -219,6 +209,7 @@ const ein = {
|
|
|
219
209
|
"Federal Tax ID"
|
|
220
210
|
],
|
|
221
211
|
candidatePattern: "\\d{2}-?\\d{7}",
|
|
212
|
+
scope: "country",
|
|
222
213
|
country: "US",
|
|
223
214
|
entityType: "company",
|
|
224
215
|
sourceUrl: "https://www.irs.gov/businesses/small-businesses-self-employed/how-eins-are-assigned-and-valid-ein-prefixes",
|
package/dist/us/ein.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ein.js","names":[],"sources":["../../src/us/ein.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"ein.js","names":[],"sources":["../../src/us/ein.ts"],"sourcesContent":["const EIN_PREFIXES = [\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n \"24\",\n \"25\",\n \"26\",\n \"27\",\n \"30\",\n \"31\",\n \"32\",\n \"33\",\n \"34\",\n \"35\",\n \"36\",\n \"37\",\n \"38\",\n \"39\",\n \"40\",\n \"41\",\n \"42\",\n \"43\",\n \"44\",\n \"45\",\n \"46\",\n \"47\",\n \"48\",\n \"50\",\n \"51\",\n \"52\",\n \"53\",\n \"54\",\n \"55\",\n \"56\",\n \"57\",\n \"58\",\n \"59\",\n \"60\",\n \"61\",\n \"62\",\n \"63\",\n \"64\",\n \"65\",\n \"66\",\n \"67\",\n \"68\",\n \"71\",\n \"72\",\n \"73\",\n \"74\",\n \"75\",\n \"76\",\n \"77\",\n \"80\",\n \"81\",\n \"82\",\n \"83\",\n \"84\",\n \"85\",\n \"86\",\n \"87\",\n \"88\",\n \"90\",\n \"91\",\n \"92\",\n \"93\",\n \"94\",\n \"95\",\n \"98\",\n \"99\",\n] as const;\n\n/** Generate a random valid U.S. EIN. */\nconst generate = (): string => {\n const prefix = randomPick(EIN_PREFIXES);\n return prefix + randomDigits(7);\n};\n\n/**\n * EIN (U.S. Employer Identification Number).\n *\n * 9-digit identifier: 2-digit campus prefix +\n * 7-digit group. No checksum. The first 2 digits\n * must be a valid IRS campus code.\n *\n * @see https://en.wikipedia.org/wiki/Employer_Identification_Number\n * @see https://www.irs.gov/businesses/small-businesses-self-employed/how-eins-are-assigned-and-valid-ein-prefixes\n */\n\nimport type {\n ValidateResult,\n CountryValidator,\n} from \"../types\";\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits, randomPick } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\n/**\n * Valid EIN campus prefixes. Sourced from IRS\n * documentation and python-stdnum's numdb.\n */\nconst VALID_PREFIXES = new Set([\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n \"24\",\n \"25\",\n \"26\",\n \"27\",\n \"30\",\n \"31\",\n \"32\",\n \"33\",\n \"34\",\n \"35\",\n \"36\",\n \"37\",\n \"38\",\n \"39\",\n \"40\",\n \"41\",\n \"42\",\n \"43\",\n \"44\",\n \"45\",\n \"46\",\n \"47\",\n \"48\",\n \"50\",\n \"51\",\n \"52\",\n \"53\",\n \"54\",\n \"55\",\n \"56\",\n \"57\",\n \"58\",\n \"59\",\n \"60\",\n \"61\",\n \"62\",\n \"63\",\n \"64\",\n \"65\",\n \"66\",\n \"67\",\n \"68\",\n \"71\",\n \"72\",\n \"73\",\n \"74\",\n \"75\",\n \"76\",\n \"77\",\n \"80\",\n \"81\",\n \"82\",\n \"83\",\n \"84\",\n \"85\",\n \"86\",\n \"87\",\n \"88\",\n \"90\",\n \"91\",\n \"92\",\n \"93\",\n \"94\",\n \"95\",\n \"98\",\n \"99\",\n]);\n\nconst compact = (value: string): string =>\n clean(value, \" -\");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"EIN must contain only digits\",\n );\n }\n if (v.length !== 9) {\n return err(\"INVALID_LENGTH\", \"EIN must be 9 digits\");\n }\n const prefix = v.slice(0, 2);\n if (!VALID_PREFIXES.has(prefix)) {\n return err(\n \"INVALID_COMPONENT\",\n \"EIN campus prefix is invalid\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n if (v.length === 9) {\n return `${v.slice(0, 2)}-${v.slice(2)}`;\n }\n return v;\n};\n\n/** U.S. Employer Identification Number. */\nconst ein: CountryValidator<\"US\"> = {\n name: \"Employer Identification Number\",\n localName: \"Employer Identification Number\",\n abbreviation: \"EIN\",\n aliases: [\n \"EIN\",\n \"Employer Identification Number\",\n \"Federal Tax ID\",\n ] as const,\n candidatePattern: \"\\\\d{2}-?\\\\d{7}\",\n scope: \"country\",\n country: \"US\",\n entityType: \"company\",\n sourceUrl:\n \"https://www.irs.gov/businesses/small-businesses-self-employed/how-eins-are-assigned-and-valid-ein-prefixes\",\n examples: [\"042103594\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default ein;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;AAAA,MAAM,eAAe;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;;AAGA,MAAM,iBAAyB;CAE7B,OADe,WAAW,YACd,IAAI,aAAa,CAAC;AAChC;;;;;AA2BA,MAAM,iBAAiB,IAAI,IAAI;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,WAAW,UACf,MAAM,OAAO,IAAI;AAEnB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CACvB,IAAI,CAAC,SAAS,CAAC,GACb,OAAO,IACL,kBACA,8BACF;CAEF,IAAI,EAAE,WAAW,GACf,OAAO,IAAI,kBAAkB,sBAAsB;CAErD,MAAM,SAAS,EAAE,MAAM,GAAG,CAAC;CAC3B,IAAI,CAAC,eAAe,IAAI,MAAM,GAC5B,OAAO,IACL,qBACA,8BACF;CAGF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,KAAK;CACvB,IAAI,EAAE,WAAW,GACf,OAAO,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;CAEtC,OAAO;AACT;;AAGA,MAAM,MAA8B;CAClC,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EACP;EACA;EACA;CACF;CACA,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,WACE;CACF,UAAU,CAAC,WAAW;CACtB;CACA;CACA;CACA;AACF"}
|
package/dist/us/itin.d.ts
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/us/itin.d.ts
|
|
4
4
|
/** Generate a random valid U.S. ITIN. */
|
|
5
5
|
declare const generate: () => string;
|
|
6
|
+
/**
|
|
7
|
+
* ITIN (U.S. Individual Taxpayer Identification
|
|
8
|
+
* Number).
|
|
9
|
+
*
|
|
10
|
+
* 9-digit number issued by the IRS to individuals
|
|
11
|
+
* who need a taxpayer ID but are not eligible for
|
|
12
|
+
* an SSN. Starts with 9; digits 4-5 (the "group")
|
|
13
|
+
* must be in the range 70-99 excluding 89 and 93.
|
|
14
|
+
*
|
|
15
|
+
* @see https://www.irs.gov/individuals/individual-taxpayer-identification-number
|
|
16
|
+
*/
|
|
6
17
|
declare const compact: (value: string) => string;
|
|
7
18
|
declare const validate: (value: string) => ValidateResult;
|
|
8
19
|
declare const format: (value: string) => string;
|
|
9
20
|
/**
|
|
10
21
|
* U.S. Individual Taxpayer Identification Number.
|
|
11
22
|
*/
|
|
12
|
-
declare const itin:
|
|
23
|
+
declare const itin: CountryValidator<"US">;
|
|
13
24
|
//#endregion
|
|
14
25
|
export { compact, itin as default, format, generate, validate };
|
|
15
26
|
//# sourceMappingURL=itin.d.ts.map
|
package/dist/us/itin.js
CHANGED
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
import { clean } from "../_util/clean.js";
|
|
2
|
-
import { randomDigits,
|
|
2
|
+
import { randomDigits, randomPick } from "../_util/generate.js";
|
|
3
3
|
import { err } from "../_util/result.js";
|
|
4
4
|
import { isdigits } from "../_util/strings.js";
|
|
5
5
|
//#region src/us/itin.ts
|
|
6
|
-
|
|
7
|
-
* ITIN (U.S. Individual Taxpayer Identification
|
|
8
|
-
* Number).
|
|
9
|
-
*
|
|
10
|
-
* 9-digit number issued by the IRS to individuals
|
|
11
|
-
* who need a taxpayer ID but are not eligible for
|
|
12
|
-
* an SSN. Starts with 9; digits 4-5 (the "group")
|
|
13
|
-
* must be in the range 70-99 excluding 89 and 93.
|
|
14
|
-
*
|
|
15
|
-
* @see https://www.irs.gov/individuals/individual-taxpayer-identification-number
|
|
16
|
-
*/
|
|
6
|
+
const ITIN_ALLOWED_GROUPS = Array.from({ length: 30 }, (_, i) => i + 70).filter((g) => g !== 89 && g !== 93);
|
|
17
7
|
/** Generate a random valid U.S. ITIN. */
|
|
18
8
|
const generate = () => {
|
|
19
|
-
|
|
20
|
-
const allowed = Array.from({ length: 30 }, (_, i) => i + 70).filter((g) => g !== 89 && g !== 93);
|
|
21
|
-
return `${area}${String(allowed[randomInt(0, allowed.length - 1)])}${randomDigits(4)}`;
|
|
9
|
+
return `${"9" + randomDigits(2)}${String(randomPick(ITIN_ALLOWED_GROUPS))}${randomDigits(4)}`;
|
|
22
10
|
};
|
|
23
11
|
const ITIN_RE = /^(?<area>\d{3})-?(?<group>\d{2})-?\d{4}$/;
|
|
24
12
|
/** Groups 70-99 excluding 89 and 93. */
|
|
@@ -53,6 +41,7 @@ const itin = {
|
|
|
53
41
|
abbreviation: "ITIN",
|
|
54
42
|
aliases: ["ITIN", "Individual Taxpayer Identification Number"],
|
|
55
43
|
candidatePattern: "9\\d{2}[\\s-]?\\d{2}[\\s-]?\\d{4}",
|
|
44
|
+
scope: "country",
|
|
56
45
|
country: "US",
|
|
57
46
|
entityType: "person",
|
|
58
47
|
sourceUrl: "https://www.irs.gov/individuals/individual-taxpayer-identification-number",
|
package/dist/us/itin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"itin.js","names":[],"sources":["../../src/us/itin.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"itin.js","names":[],"sources":["../../src/us/itin.ts"],"sourcesContent":["const ITIN_ALLOWED_GROUPS = Array.from(\n { length: 30 },\n (_, i) => i + 70,\n).filter((g) => g !== 89 && g !== 93);\n\n/** Generate a random valid U.S. ITIN. */\nconst generate = (): string => {\n const area = \"9\" + randomDigits(2);\n const group = String(randomPick(ITIN_ALLOWED_GROUPS));\n const serial = randomDigits(4);\n return `${area}${group}${serial}`;\n};\n\n/**\n * ITIN (U.S. Individual Taxpayer Identification\n * Number).\n *\n * 9-digit number issued by the IRS to individuals\n * who need a taxpayer ID but are not eligible for\n * an SSN. Starts with 9; digits 4-5 (the \"group\")\n * must be in the range 70-99 excluding 89 and 93.\n *\n * @see https://www.irs.gov/individuals/individual-taxpayer-identification-number\n */\n\nimport type {\n ValidateResult,\n CountryValidator,\n} from \"../types\";\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits, randomPick } from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nconst ITIN_RE = /^(?<area>\\d{3})-?(?<group>\\d{2})-?\\d{4}$/;\n\n/** Groups 70-99 excluding 89 and 93. */\nconst ALLOWED_GROUPS = new Set(\n Array.from({ length: 30 }, (_, i) => i + 70)\n .filter((g) => g !== 89 && g !== 93)\n .map(String),\n);\n\nconst compact = (value: string): string =>\n clean(value, \" -\");\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"ITIN must contain only digits\",\n );\n }\n if (v.length !== 9) {\n return err(\"INVALID_LENGTH\", \"ITIN must be 9 digits\");\n }\n\n const match = ITIN_RE.exec(v);\n if (!match?.groups) {\n return err(\n \"INVALID_FORMAT\",\n \"ITIN must be 9 digits, optionally \" +\n \"formatted as NNN-NN-NNNN\",\n );\n }\n\n const { area, group } = match.groups;\n if (!area || !group) {\n return err(\"INVALID_FORMAT\", \"ITIN must be 9 digits\");\n }\n\n if (area[0] !== \"9\") {\n return err(\n \"INVALID_COMPONENT\",\n \"ITIN area must start with 9\",\n );\n }\n\n if (!ALLOWED_GROUPS.has(group)) {\n return err(\n \"INVALID_COMPONENT\",\n \"ITIN group digits are not in the \" +\n \"allowed range (70-99 excl. 89, 93)\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n if (v.length === 9) {\n return (\n `${v.slice(0, 3)}-${v.slice(3, 5)}` + `-${v.slice(5)}`\n );\n }\n return v;\n};\n\n/**\n * U.S. Individual Taxpayer Identification Number.\n */\nconst itin: CountryValidator<\"US\"> = {\n name: \"Individual Taxpayer Identification Number\",\n localName: \"Individual Taxpayer Identification Number\",\n abbreviation: \"ITIN\",\n aliases: [\n \"ITIN\",\n \"Individual Taxpayer Identification Number\",\n ] as const,\n candidatePattern: \"9\\\\d{2}[\\\\s-]?\\\\d{2}[\\\\s-]?\\\\d{4}\",\n scope: \"country\",\n country: \"US\",\n entityType: \"person\",\n sourceUrl:\n \"https://www.irs.gov/individuals/\" +\n \"individual-taxpayer-identification-number\",\n lengths: [9] as const,\n examples: [\"912-90-3456\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default itin;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;AAAA,MAAM,sBAAsB,MAAM,KAChC,EAAE,QAAQ,GAAG,IACZ,GAAG,MAAM,IAAI,EAChB,EAAE,QAAQ,MAAM,MAAM,MAAM,MAAM,EAAE;;AAGpC,MAAM,iBAAyB;CAI7B,OAAO,GAHM,MAAM,aAAa,CAAC,IACnB,OAAO,WAAW,mBAAmB,CAE9B,IADN,aAAa,CACE;AAChC;AAwBA,MAAM,UAAU;;AAGhB,MAAM,iBAAiB,IAAI,IACzB,MAAM,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,IAAI,EAAE,EACxC,QAAQ,MAAM,MAAM,MAAM,MAAM,EAAE,EAClC,IAAI,MAAM,CACf;AAEA,MAAM,WAAW,UACf,MAAM,OAAO,IAAI;AAEnB,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CACvB,IAAI,CAAC,SAAS,CAAC,GACb,OAAO,IACL,kBACA,+BACF;CAEF,IAAI,EAAE,WAAW,GACf,OAAO,IAAI,kBAAkB,uBAAuB;CAGtD,MAAM,QAAQ,QAAQ,KAAK,CAAC;CAC5B,IAAI,CAAC,OAAO,QACV,OAAO,IACL,kBACA,4DAEF;CAGF,MAAM,EAAE,MAAM,UAAU,MAAM;CAC9B,IAAI,CAAC,QAAQ,CAAC,OACZ,OAAO,IAAI,kBAAkB,uBAAuB;CAGtD,IAAI,KAAK,OAAO,KACd,OAAO,IACL,qBACA,6BACF;CAGF,IAAI,CAAC,eAAe,IAAI,KAAK,GAC3B,OAAO,IACL,qBACA,qEAEF;CAGF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,KAAK;CACvB,IAAI,EAAE,WAAW,GACf,OACE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAA,GAAU,EAAE,MAAM,CAAC;CAGvD,OAAO;AACT;;;;AAKA,MAAM,OAA+B;CACnC,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CACP,QACA,2CACF;CACA,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,WACE;CAEF,SAAS,CAAC,CAAC;CACX,UAAU,CAAC,aAAa;CACxB;CACA;CACA;CACA;AACF"}
|
package/dist/us/mod.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
1
|
import ein from "./ein.js";
|
|
3
2
|
import itin from "./itin.js";
|
|
4
3
|
import rtn from "./rtn.js";
|
|
5
4
|
import ssn from "./ssn.js";
|
|
6
5
|
|
|
7
6
|
//#region src/us/mod.d.ts
|
|
8
|
-
|
|
7
|
+
declare namespace mod_d_exports {
|
|
8
|
+
export { ein, itin, rtn, ssn };
|
|
9
|
+
}
|
|
9
10
|
//#endregion
|
|
10
11
|
export { ein, itin, mod_d_exports, rtn, ssn };
|
|
11
12
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/us/rtn.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/us/rtn.d.ts
|
|
4
|
-
|
|
5
4
|
declare const compact: (value: string) => string;
|
|
6
5
|
declare const validate: (value: string) => ValidateResult;
|
|
7
6
|
declare const format: (value: string) => string;
|
|
8
7
|
/** Generate a random valid U.S. RTN. */
|
|
9
8
|
declare const generate: () => string;
|
|
10
9
|
/** U.S. Routing Transit Number. */
|
|
11
|
-
declare const rtn:
|
|
10
|
+
declare const rtn: CountryValidator<"US">;
|
|
12
11
|
//#endregion
|
|
13
12
|
export { compact, rtn as default, format, generate, validate };
|
|
14
13
|
//# sourceMappingURL=rtn.d.ts.map
|
package/dist/us/rtn.js
CHANGED
|
@@ -1,24 +1,8 @@
|
|
|
1
1
|
import { clean } from "../_util/clean.js";
|
|
2
|
-
import { randomDigits, randomInt } from "../_util/generate.js";
|
|
2
|
+
import { randomDigits, randomInt, randomPick } from "../_util/generate.js";
|
|
3
3
|
import { err } from "../_util/result.js";
|
|
4
4
|
import { isdigits } from "../_util/strings.js";
|
|
5
5
|
//#region src/us/rtn.ts
|
|
6
|
-
/**
|
|
7
|
-
* RTN (Routing Transit Number / ABA Number).
|
|
8
|
-
*
|
|
9
|
-
* 9-digit number used by U.S. financial institutions
|
|
10
|
-
* for routing wire transfers, ACH, and check
|
|
11
|
-
* processing. Uses a weighted checksum with weights
|
|
12
|
-
* [3, 7, 1] repeated three times.
|
|
13
|
-
*
|
|
14
|
-
* The first two digits identify the Federal Reserve
|
|
15
|
-
* district (01-12) or special ranges (21-32 for
|
|
16
|
-
* thrifts, 61-72 for electronic, 80 for traveler's
|
|
17
|
-
* cheques).
|
|
18
|
-
*
|
|
19
|
-
* @see https://en.wikipedia.org/wiki/ABA_routing_transit_number
|
|
20
|
-
* @see https://www.frbservices.org/
|
|
21
|
-
*/
|
|
22
6
|
const WEIGHTS = [
|
|
23
7
|
3,
|
|
24
8
|
7,
|
|
@@ -36,9 +20,9 @@ const validate = (value) => {
|
|
|
36
20
|
if (v.length !== 9) return err("INVALID_LENGTH", "RTN must be 9 digits");
|
|
37
21
|
if (!isdigits(v)) return err("INVALID_FORMAT", "RTN must contain only digits");
|
|
38
22
|
const prefix = Number(v.slice(0, 2));
|
|
39
|
-
if (!(prefix >=
|
|
23
|
+
if (!(prefix >= 0 && prefix <= 12 || prefix >= 21 && prefix <= 32 || prefix >= 61 && prefix <= 72 || prefix === 80)) return err("INVALID_COMPONENT", "RTN has an invalid Federal Reserve district");
|
|
40
24
|
let sum = 0;
|
|
41
|
-
for (
|
|
25
|
+
for (const [i, weight] of WEIGHTS.entries()) sum += Number(v[i]) * weight;
|
|
42
26
|
if (sum % 10 !== 0) return err("INVALID_CHECKSUM", "RTN checksum is invalid");
|
|
43
27
|
return {
|
|
44
28
|
valid: true,
|
|
@@ -48,17 +32,20 @@ const validate = (value) => {
|
|
|
48
32
|
const format = (value) => compact(value);
|
|
49
33
|
/** All valid Federal Reserve prefix ranges. */
|
|
50
34
|
const PREFIX_RANGES = [
|
|
51
|
-
[
|
|
35
|
+
[0, 12],
|
|
52
36
|
[21, 32],
|
|
53
37
|
[61, 72],
|
|
54
38
|
[80, 80]
|
|
55
39
|
];
|
|
56
40
|
/** Generate a random valid U.S. RTN. */
|
|
57
41
|
const generate = () => {
|
|
58
|
-
const
|
|
59
|
-
const body = String(randomInt(
|
|
42
|
+
const [low, high] = randomPick(PREFIX_RANGES);
|
|
43
|
+
const body = String(randomInt(low, high)).padStart(2, "0") + randomDigits(6);
|
|
60
44
|
let sum = 0;
|
|
61
|
-
for (
|
|
45
|
+
for (const [i, weight] of WEIGHTS.entries()) {
|
|
46
|
+
if (i >= 8) break;
|
|
47
|
+
sum += Number(body[i]) * weight;
|
|
48
|
+
}
|
|
62
49
|
const check = (10 - sum % 10) % 10;
|
|
63
50
|
return body + String(check);
|
|
64
51
|
};
|
|
@@ -75,6 +62,7 @@ const rtn = {
|
|
|
75
62
|
"Routing Transit Number"
|
|
76
63
|
],
|
|
77
64
|
candidatePattern: "\\d{9}",
|
|
65
|
+
scope: "country",
|
|
78
66
|
country: "US",
|
|
79
67
|
entityType: "company",
|
|
80
68
|
sourceUrl: "https://en.wikipedia.org/wiki/ABA_routing_transit_number",
|
package/dist/us/rtn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtn.js","names":[],"sources":["../../src/us/rtn.ts"],"sourcesContent":["/**\n * RTN (Routing Transit Number / ABA Number).\n *\n * 9-digit number used by U.S. financial institutions\n * for routing wire transfers, ACH, and check\n * processing. Uses a weighted checksum with weights\n * [3, 7, 1] repeated three times.\n *\n * The first two digits identify the Federal Reserve\n * district (01-12) or special ranges (21-32 for
|
|
1
|
+
{"version":3,"file":"rtn.js","names":[],"sources":["../../src/us/rtn.ts"],"sourcesContent":["/**\n * RTN (Routing Transit Number / ABA Number).\n *\n * 9-digit number used by U.S. financial institutions\n * for routing wire transfers, ACH, and check\n * processing. Uses a weighted checksum with weights\n * [3, 7, 1] repeated three times.\n *\n * The first two digits identify the Federal Reserve\n * district (01-12) or special ranges (00 for U.S.\n * Government, 21-32 for thrifts, 61-72 for electronic,\n * 80 for traveler's cheques).\n *\n * @see https://en.wikipedia.org/wiki/ABA_routing_transit_number\n * @see https://www.frbservices.org/\n */\n\nimport type {\n ValidateResult,\n CountryValidator,\n} from \"../types\";\n\nimport { clean } from \"#util/clean\";\nimport {\n randomDigits,\n randomInt,\n randomPick,\n} from \"#util/generate\";\nimport { err } from \"#util/result\";\nimport { isdigits } from \"#util/strings\";\n\nconst WEIGHTS = [3, 7, 1, 3, 7, 1, 3, 7, 1] as const;\n\nconst compact = (value: string): string =>\n clean(value, \" -\").trim();\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 9) {\n return err(\"INVALID_LENGTH\", \"RTN must be 9 digits\");\n }\n\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"RTN must contain only digits\",\n );\n }\n\n // Validate Federal Reserve prefix (first 2 digits)\n const prefix = Number(v.slice(0, 2));\n const validPrefixRanges =\n // 00 is reserved for U.S. Government and federal\n // agencies per the ABA Routing Number Policy;\n // 01-12 are the 12 Federal Reserve districts.\n // @see https://en.wikipedia.org/wiki/ABA_routing_transit_number\n (prefix >= 0 && prefix <= 12) ||\n (prefix >= 21 && prefix <= 32) ||\n (prefix >= 61 && prefix <= 72) ||\n prefix === 80;\n if (!validPrefixRanges) {\n return err(\n \"INVALID_COMPONENT\",\n \"RTN has an invalid Federal Reserve district\",\n );\n }\n\n // Weighted checksum must be divisible by 10\n let sum = 0;\n for (const [i, weight] of WEIGHTS.entries()) {\n sum += Number(v[i]) * weight;\n }\n if (sum % 10 !== 0) {\n return err(\n \"INVALID_CHECKSUM\",\n \"RTN checksum is invalid\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\n/** All valid Federal Reserve prefix ranges. */\nconst PREFIX_RANGES: readonly [number, number][] = [\n [0, 12],\n [21, 32],\n [61, 72],\n [80, 80],\n];\n\n/** Generate a random valid U.S. RTN. */\nconst generate = (): string => {\n const [low, high] = randomPick(PREFIX_RANGES);\n const prefix = String(randomInt(low, high)).padStart(\n 2,\n \"0\",\n );\n const mid = randomDigits(6);\n const body = prefix + mid;\n let sum = 0;\n for (const [i, weight] of WEIGHTS.entries()) {\n if (i >= 8) break;\n sum += Number(body[i]) * weight;\n }\n const check = (10 - (sum % 10)) % 10;\n return body + String(check);\n};\n\n/** U.S. Routing Transit Number. */\nconst rtn: CountryValidator<\"US\"> = {\n name: \"Routing Transit Number\",\n localName: \"Routing Transit Number\",\n abbreviation: \"RTN\",\n aliases: [\n \"RTN\",\n \"ABA\",\n \"Routing Number\",\n \"ABA Routing Number\",\n \"Routing Transit Number\",\n ] as const,\n candidatePattern: \"\\\\d{9}\",\n scope: \"country\",\n country: \"US\",\n entityType: \"company\",\n sourceUrl:\n \"https://en.wikipedia.org/wiki/ABA_routing_transit_number\",\n lengths: [9] as const,\n examples: [\"111000025\", \"021000021\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default rtn;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;AA+BA,MAAM,UAAU;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;AAAC;AAE1C,MAAM,WAAW,UACf,MAAM,OAAO,IAAI,EAAE,KAAK;AAE1B,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CAEvB,IAAI,EAAE,WAAW,GACf,OAAO,IAAI,kBAAkB,sBAAsB;CAGrD,IAAI,CAAC,SAAS,CAAC,GACb,OAAO,IACL,kBACA,8BACF;CAIF,MAAM,SAAS,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC;CAUnC,IAAI,EAJD,UAAU,KAAK,UAAU,MACzB,UAAU,MAAM,UAAU,MAC1B,UAAU,MAAM,UAAU,MAC3B,WAAW,KAEX,OAAO,IACL,qBACA,6CACF;CAIF,IAAI,MAAM;CACV,KAAK,MAAM,CAAC,GAAG,WAAW,QAAQ,QAAQ,GACxC,OAAO,OAAO,EAAE,EAAE,IAAI;CAExB,IAAI,MAAM,OAAO,GACf,OAAO,IACL,oBACA,yBACF;CAGF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B,QAAQ,KAAK;;AAGvD,MAAM,gBAA6C;CACjD,CAAC,GAAG,EAAE;CACN,CAAC,IAAI,EAAE;CACP,CAAC,IAAI,EAAE;CACP,CAAC,IAAI,EAAE;AACT;;AAGA,MAAM,iBAAyB;CAC7B,MAAM,CAAC,KAAK,QAAQ,WAAW,aAAa;CAM5C,MAAM,OALS,OAAO,UAAU,KAAK,IAAI,CAAC,EAAE,SAC1C,GACA,GAGgB,IADN,aAAa,CACD;CACxB,IAAI,MAAM;CACV,KAAK,MAAM,CAAC,GAAG,WAAW,QAAQ,QAAQ,GAAG;EAC3C,IAAI,KAAK,GAAG;EACZ,OAAO,OAAO,KAAK,EAAE,IAAI;CAC3B;CACA,MAAM,SAAS,KAAM,MAAM,MAAO;CAClC,OAAO,OAAO,OAAO,KAAK;AAC5B;;AAGA,MAAM,MAA8B;CAClC,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EACP;EACA;EACA;EACA;EACA;CACF;CACA,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,WACE;CACF,SAAS,CAAC,CAAC;CACX,UAAU,CAAC,aAAa,WAAW;CACnC;CACA;CACA;CACA;AACF"}
|
package/dist/us/ssn.d.ts
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/us/ssn.d.ts
|
|
4
4
|
/** Generate a random valid U.S. SSN. */
|
|
5
5
|
declare const generate: () => string;
|
|
6
|
+
/**
|
|
7
|
+
* SSN (U.S. Social Security Number).
|
|
8
|
+
*
|
|
9
|
+
* 9-digit identifier: 3-digit area, 2-digit group,
|
|
10
|
+
* 4-digit serial. No checksum. Area cannot be 000,
|
|
11
|
+
* 666, or 900-999; group cannot be 00; serial
|
|
12
|
+
* cannot be 0000.
|
|
13
|
+
*
|
|
14
|
+
* @see https://en.wikipedia.org/wiki/Social_Security_number
|
|
15
|
+
* @see https://www.ssa.gov/employer/verifySSN.htm
|
|
16
|
+
*/
|
|
6
17
|
declare const compact: (value: string) => string;
|
|
7
18
|
declare const validate: (value: string) => ValidateResult;
|
|
8
19
|
declare const format: (value: string) => string;
|
|
9
20
|
/** U.S. Social Security Number. */
|
|
10
|
-
declare const ssn:
|
|
21
|
+
declare const ssn: CountryValidator<"US">;
|
|
11
22
|
//#endregion
|
|
12
23
|
export { compact, ssn as default, format, generate, validate };
|
|
13
24
|
//# sourceMappingURL=ssn.d.ts.map
|
package/dist/us/ssn.js
CHANGED
|
@@ -3,17 +3,6 @@ import { randomInt } from "../_util/generate.js";
|
|
|
3
3
|
import { err } from "../_util/result.js";
|
|
4
4
|
import { isdigits } from "../_util/strings.js";
|
|
5
5
|
//#region src/us/ssn.ts
|
|
6
|
-
/**
|
|
7
|
-
* SSN (U.S. Social Security Number).
|
|
8
|
-
*
|
|
9
|
-
* 9-digit identifier: 3-digit area, 2-digit group,
|
|
10
|
-
* 4-digit serial. No checksum. Area cannot be 000,
|
|
11
|
-
* 666, or 900-999; group cannot be 00; serial
|
|
12
|
-
* cannot be 0000.
|
|
13
|
-
*
|
|
14
|
-
* @see https://en.wikipedia.org/wiki/Social_Security_number
|
|
15
|
-
* @see https://www.ssa.gov/employer/verifySSN.htm
|
|
16
|
-
*/
|
|
17
6
|
/** Generate a random valid U.S. SSN. */
|
|
18
7
|
const generate = () => {
|
|
19
8
|
for (;;) {
|
|
@@ -62,6 +51,7 @@ const ssn = {
|
|
|
62
51
|
abbreviation: "SSN",
|
|
63
52
|
aliases: ["SSN", "Social Security Number"],
|
|
64
53
|
candidatePattern: "\\d{3}-?\\d{2}-?\\d{4}",
|
|
54
|
+
scope: "country",
|
|
65
55
|
country: "US",
|
|
66
56
|
entityType: "person",
|
|
67
57
|
sourceUrl: "https://www.ssa.gov/employer/verifySSN.htm",
|