@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/ai/tin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tin.js","names":[],"sources":["../../src/ai/tin.ts"],"sourcesContent":["/** Generate a random valid Anguilla TIN. */\nconst generate = (): string => {\n const prefix = Math.random() < 0.5 ? \"1\" : \"2\";\n return prefix + randomDigits(9);\n};\n\n/**\n * TIN (Anguilla Tax Identification Number).\n *\n * Issued by the Inland Revenue Department (IRD) to\n * individuals and entities for tax purposes. The\n * number consists of 10 digits including a prefix\n * digit and check digit:\n * - Prefix 1: individual TIN\n * - Prefix 2: non-individual (business) TIN\n *\n * Formatted as XXXXX-XXXXX.\n *\n * Source: OECD CRS TIN information sheet.\n *\n * PERSON/ENTITY\n *\n * @see https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Anguilla-TIN.pdf\n */\n\nimport {
|
|
1
|
+
{"version":3,"file":"tin.js","names":[],"sources":["../../src/ai/tin.ts"],"sourcesContent":["/** Generate a random valid Anguilla TIN. */\nconst generate = (): string => {\n const prefix = Math.random() < 0.5 ? \"1\" : \"2\";\n return prefix + randomDigits(9);\n};\n\n/**\n * TIN (Anguilla Tax Identification Number).\n *\n * Issued by the Inland Revenue Department (IRD) to\n * individuals and entities for tax purposes. The\n * number consists of 10 digits including a prefix\n * digit and check digit:\n * - Prefix 1: individual TIN\n * - Prefix 2: non-individual (business) TIN\n *\n * Formatted as XXXXX-XXXXX.\n *\n * Source: OECD CRS TIN information sheet.\n *\n * PERSON/ENTITY\n *\n * @see https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Anguilla-TIN.pdf\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\";\n\nconst compact = (value: string): string => {\n return clean(value, \" -\").trim();\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 10) {\n return err(\n \"INVALID_LENGTH\",\n \"Anguilla TIN must be 10 digits\",\n );\n }\n\n if (!/^\\d{10}$/.test(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Anguilla TIN must contain only digits\",\n );\n }\n\n const prefix = v[0];\n\n if (prefix !== \"1\" && prefix !== \"2\") {\n return err(\n \"INVALID_COMPONENT\",\n \"Anguilla TIN must start with 1 (individual) or 2 (business)\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return `${v.slice(0, 5)}-${v.slice(5)}`;\n};\n\n/**\n * Anguilla Tax Identification Number.\n *\n * Examples derived from stdnum-js test suite\n * (format-only validation, no published check\n * digit algorithm).\n */\nconst tin: CountryValidator<\"AI\"> = {\n name: \"Anguilla Tax Identification Number\",\n localName: \"Tax Identification Number\",\n abbreviation: \"TIN\",\n aliases: [\"TIN\"] as const,\n candidatePattern: \"\\\\d{11}\",\n scope: \"country\",\n country: \"AI\",\n entityType: \"any\",\n lengths: [10] as const,\n examples: [\"1234567890\", \"2345678901\"] as const,\n compact,\n format,\n validate,\n description:\n \"Anguilla tax number issued by the Inland Revenue Department\",\n sourceUrl:\n \"https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Anguilla-TIN.pdf\",\n generate,\n};\n\nexport default tin;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;AACA,MAAM,iBAAyB;CAE7B,QADe,KAAK,OAAO,IAAI,KAAM,MAAM,OAC3B,aAAa,CAAC;AAChC;AA8BA,MAAM,WAAW,UAA0B;CACzC,OAAO,MAAM,OAAO,IAAI,EAAE,KAAK;AACjC;AAEA,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CAEvB,IAAI,EAAE,WAAW,IACf,OAAO,IACL,kBACA,gCACF;CAGF,IAAI,CAAC,WAAW,KAAK,CAAC,GACpB,OAAO,IACL,kBACA,uCACF;CAGF,MAAM,SAAS,EAAE;CAEjB,IAAI,WAAW,OAAO,WAAW,KAC/B,OAAO,IACL,qBACA,6DACF;CAGF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,KAAK;CACvB,OAAO,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;AACtC;;;;;;;;AASA,MAAM,MAA8B;CAClC,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CAAC,KAAK;CACf,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,SAAS,CAAC,EAAE;CACZ,UAAU,CAAC,cAAc,YAAY;CACrC;CACA;CACA;CACA,aACE;CACF,WACE;CACF;AACF"}
|
package/dist/al/mod.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
1
|
import nipt from "./nipt.js";
|
|
3
2
|
|
|
4
3
|
//#region src/al/mod.d.ts
|
|
5
|
-
|
|
4
|
+
declare namespace mod_d_exports {
|
|
5
|
+
export { nipt };
|
|
6
|
+
}
|
|
6
7
|
//#endregion
|
|
7
8
|
export { mod_d_exports, nipt };
|
|
8
9
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/al/nipt.d.ts
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/al/nipt.d.ts
|
|
4
4
|
/** Generate a random valid Albanian NIPT. */
|
|
5
5
|
declare const generate: () => string;
|
|
6
|
+
/**
|
|
7
|
+
* NIPT (Numri i Identifikimit për Personin e Tatueshëm,
|
|
8
|
+
* Albanian tax number).
|
|
9
|
+
*
|
|
10
|
+
* 10 characters: a letter (A-M) indicating the decade or
|
|
11
|
+
* birth decade, 8 digits encoding year/month/day/serial,
|
|
12
|
+
* and a trailing check letter. The check digit algorithm
|
|
13
|
+
* is undocumented.
|
|
14
|
+
*
|
|
15
|
+
* @see https://www.tatime.gov.al/eng/c/4/103/business-lifecycle
|
|
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
|
/** Albanian NIPT (tax identification number). */
|
|
10
|
-
declare const nipt:
|
|
21
|
+
declare const nipt: CountryValidator<"AL">;
|
|
11
22
|
//#endregion
|
|
12
23
|
export { compact, nipt as default, format, generate, validate };
|
|
13
24
|
//# sourceMappingURL=nipt.d.ts.map
|
package/dist/al/nipt.js
CHANGED
|
@@ -2,17 +2,6 @@ import { clean } from "../_util/clean.js";
|
|
|
2
2
|
import { randomDigits, randomInt } from "../_util/generate.js";
|
|
3
3
|
import { err } from "../_util/result.js";
|
|
4
4
|
//#region src/al/nipt.ts
|
|
5
|
-
/**
|
|
6
|
-
* NIPT (Numri i Identifikimit për Personin e Tatueshëm,
|
|
7
|
-
* Albanian tax number).
|
|
8
|
-
*
|
|
9
|
-
* 10 characters: a letter (A-M) indicating the decade or
|
|
10
|
-
* birth decade, 8 digits encoding year/month/day/serial,
|
|
11
|
-
* and a trailing check letter. The check digit algorithm
|
|
12
|
-
* is undocumented.
|
|
13
|
-
*
|
|
14
|
-
* @see https://www.tatime.gov.al/eng/c/4/103/business-lifecycle
|
|
15
|
-
*/
|
|
16
5
|
/** Generate a random valid Albanian NIPT. */
|
|
17
6
|
const generate = () => {
|
|
18
7
|
return `${String.fromCodePoint(65 + randomInt(0, 12))}${randomDigits(8)}${String.fromCodePoint(65 + randomInt(0, 25))}`;
|
|
@@ -41,6 +30,7 @@ const nipt = {
|
|
|
41
30
|
abbreviation: "NIPT",
|
|
42
31
|
aliases: ["NIPT", "NUIS"],
|
|
43
32
|
candidatePattern: "[A-Z]\\d{8}[A-Z]",
|
|
33
|
+
scope: "country",
|
|
44
34
|
country: "AL",
|
|
45
35
|
entityType: "any",
|
|
46
36
|
sourceUrl: "https://www.tatime.gov.al/",
|
package/dist/al/nipt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nipt.js","names":[],"sources":["../../src/al/nipt.ts"],"sourcesContent":["/** Generate a random valid Albanian NIPT. */\nconst generate = (): string => {\n const first = String.fromCodePoint(65 + randomInt(0, 12)); // A-M\n const digits = randomDigits(8);\n const last = String.fromCodePoint(65 + randomInt(0, 25)); // A-Z\n return `${first}${digits}${last}`;\n};\n\n/**\n * NIPT (Numri i Identifikimit për Personin e Tatueshëm,\n * Albanian tax number).\n *\n * 10 characters: a letter (A-M) indicating the decade or\n * birth decade, 8 digits encoding year/month/day/serial,\n * and a trailing check letter. The check digit algorithm\n * is undocumented.\n *\n * @see https://www.tatime.gov.al/eng/c/4/103/business-lifecycle\n */\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits, randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\n\
|
|
1
|
+
{"version":3,"file":"nipt.js","names":[],"sources":["../../src/al/nipt.ts"],"sourcesContent":["/** Generate a random valid Albanian NIPT. */\nconst generate = (): string => {\n const first = String.fromCodePoint(65 + randomInt(0, 12)); // A-M\n const digits = randomDigits(8);\n const last = String.fromCodePoint(65 + randomInt(0, 25)); // A-Z\n return `${first}${digits}${last}`;\n};\n\n/**\n * NIPT (Numri i Identifikimit për Personin e Tatueshëm,\n * Albanian tax number).\n *\n * 10 characters: a letter (A-M) indicating the decade or\n * birth decade, 8 digits encoding year/month/day/serial,\n * and a trailing check letter. The check digit algorithm\n * is undocumented.\n *\n * @see https://www.tatime.gov.al/eng/c/4/103/business-lifecycle\n */\n\nimport type {\n ValidateResult,\n CountryValidator,\n} from \"../types\";\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits, randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\n\nconst NIPT_RE = /^[A-M]\\d{8}[A-Z]$/;\n\nconst compact = (value: string): string => {\n let v = clean(value, \" \").toUpperCase().trim();\n if (v.startsWith(\"(AL)\")) {\n v = v.slice(4);\n } else if (v.startsWith(\"AL\")) {\n v = v.slice(2);\n }\n return v;\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length !== 10) {\n return err(\n \"INVALID_LENGTH\",\n \"Albanian NIPT must be 10 characters\",\n );\n }\n if (!NIPT_RE.test(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Albanian NIPT must be letter + 8 digits + letter\" +\n \" (first letter A-M)\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\n/** Albanian NIPT (tax identification number). */\nconst nipt: CountryValidator<\"AL\"> = {\n name: \"Albanian Tax Number\",\n localName:\n \"Numri i Identifikimit për Personin e Tatueshëm\",\n abbreviation: \"NIPT\",\n aliases: [\"NIPT\", \"NUIS\"] as const,\n candidatePattern: \"[A-Z]\\\\d{8}[A-Z]\",\n scope: \"country\",\n country: \"AL\",\n entityType: \"any\",\n sourceUrl: \"https://www.tatime.gov.al/\",\n examples: [\"J91402501L\", \"K22218003V\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default nipt;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;AACA,MAAM,iBAAyB;CAI7B,OAAO,GAHO,OAAO,cAAc,KAAK,UAAU,GAAG,EAAE,CAGzC,IAFC,aAAa,CAEL,IADV,OAAO,cAAc,KAAK,UAAU,GAAG,EAAE,CACxB;AAChC;AAuBA,MAAM,UAAU;AAEhB,MAAM,WAAW,UAA0B;CACzC,IAAI,IAAI,MAAM,OAAO,GAAG,EAAE,YAAY,EAAE,KAAK;CAC7C,IAAI,EAAE,WAAW,MAAM,GACrB,IAAI,EAAE,MAAM,CAAC;MACR,IAAI,EAAE,WAAW,IAAI,GAC1B,IAAI,EAAE,MAAM,CAAC;CAEf,OAAO;AACT;AAEA,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CACvB,IAAI,EAAE,WAAW,IACf,OAAO,IACL,kBACA,qCACF;CAEF,IAAI,CAAC,QAAQ,KAAK,CAAC,GACjB,OAAO,IACL,kBACA,qEAEF;CAEF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B,QAAQ,KAAK;;AAGvD,MAAM,OAA+B;CACnC,MAAM;CACN,WACE;CACF,cAAc;CACd,SAAS,CAAC,QAAQ,MAAM;CACxB,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,cAAc,YAAY;CACrC;CACA;CACA;CACA;AACF"}
|
package/dist/am/mod.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
1
|
import tin from "./tin.js";
|
|
3
2
|
|
|
4
3
|
//#region src/am/mod.d.ts
|
|
5
|
-
|
|
4
|
+
declare namespace mod_d_exports {
|
|
5
|
+
export { tin };
|
|
6
|
+
}
|
|
6
7
|
//#endregion
|
|
7
8
|
export { mod_d_exports, tin };
|
|
8
9
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/am/tin.d.ts
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/am/tin.d.ts
|
|
4
4
|
/** Generate a random valid Armenian TIN. */
|
|
5
5
|
declare const generate: () => string;
|
|
6
|
+
/**
|
|
7
|
+
* TIN (Tax Identification Number, ՀԾՀ).
|
|
8
|
+
*
|
|
9
|
+
* Armenian taxpayer identification number issued by the
|
|
10
|
+
* State Revenue Committee (SRC). 8 digits; the 8th digit
|
|
11
|
+
* is a check digit calculated from the first 7. The
|
|
12
|
+
* checksum algorithm is not publicly documented, so only
|
|
13
|
+
* format validation is performed.
|
|
14
|
+
*
|
|
15
|
+
* Issued to both individuals and entities.
|
|
16
|
+
*
|
|
17
|
+
* @see https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Armenia-TIN.pdf
|
|
18
|
+
* @see https://www.src.am/en/taxpayerSearchSystemPage/112
|
|
19
|
+
*/
|
|
6
20
|
declare const compact: (value: string) => string;
|
|
7
21
|
declare const validate: (value: string) => ValidateResult;
|
|
8
22
|
declare const format: (value: string) => string;
|
|
9
23
|
/** Armenian Tax Identification Number. */
|
|
10
|
-
declare const tin:
|
|
24
|
+
declare const tin: CountryValidator<"AM">;
|
|
11
25
|
//#endregion
|
|
12
26
|
export { compact, tin as default, format, generate, validate };
|
|
13
27
|
//# sourceMappingURL=tin.d.ts.map
|
package/dist/am/tin.js
CHANGED
|
@@ -3,20 +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/am/tin.ts
|
|
6
|
-
/**
|
|
7
|
-
* TIN (Tax Identification Number, ՀԾՀ).
|
|
8
|
-
*
|
|
9
|
-
* Armenian taxpayer identification number issued by the
|
|
10
|
-
* State Revenue Committee (SRC). 8 digits; the 8th digit
|
|
11
|
-
* is a check digit calculated from the first 7. The
|
|
12
|
-
* checksum algorithm is not publicly documented, so only
|
|
13
|
-
* format validation is performed.
|
|
14
|
-
*
|
|
15
|
-
* Issued to both individuals and entities.
|
|
16
|
-
*
|
|
17
|
-
* @see https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Armenia-TIN.pdf
|
|
18
|
-
* @see https://www.src.am/en/taxpayerSearchSystemPage/112
|
|
19
|
-
*/
|
|
20
6
|
/** Generate a random valid Armenian TIN. */
|
|
21
7
|
const generate = () => randomDigits(8);
|
|
22
8
|
const compact = (value) => clean(value, " -").trim();
|
|
@@ -37,6 +23,7 @@ const tin = {
|
|
|
37
23
|
abbreviation: "TIN",
|
|
38
24
|
aliases: ["ՀՎՀՀ", "TIN"],
|
|
39
25
|
candidatePattern: "\\d{8}",
|
|
26
|
+
scope: "country",
|
|
40
27
|
country: "AM",
|
|
41
28
|
entityType: "any",
|
|
42
29
|
lengths: [8],
|
package/dist/am/tin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tin.js","names":[],"sources":["../../src/am/tin.ts"],"sourcesContent":["/** Generate a random valid Armenian TIN. */\nconst generate = (): string => randomDigits(8);\n\n/**\n * TIN (Tax Identification Number, ՀԾՀ).\n *\n * Armenian taxpayer identification number issued by the\n * State Revenue Committee (SRC). 8 digits; the 8th digit\n * is a check digit calculated from the first 7. The\n * checksum algorithm is not publicly documented, so only\n * format validation is performed.\n *\n * Issued to both individuals and entities.\n *\n * @see https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Armenia-TIN.pdf\n * @see https://www.src.am/en/taxpayerSearchSystemPage/112\n */\n\nimport {
|
|
1
|
+
{"version":3,"file":"tin.js","names":[],"sources":["../../src/am/tin.ts"],"sourcesContent":["/** Generate a random valid Armenian TIN. */\nconst generate = (): string => randomDigits(8);\n\n/**\n * TIN (Tax Identification Number, ՀԾՀ).\n *\n * Armenian taxpayer identification number issued by the\n * State Revenue Committee (SRC). 8 digits; the 8th digit\n * is a check digit calculated from the first 7. The\n * checksum algorithm is not publicly documented, so only\n * format validation is performed.\n *\n * Issued to both individuals and entities.\n *\n * @see https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Armenia-TIN.pdf\n * @see https://www.src.am/en/taxpayerSearchSystemPage/112\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 compact = (value: string): string =>\n clean(value, \" -\").trim();\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 8) {\n return err(\n \"INVALID_LENGTH\",\n \"Armenian TIN must be 8 digits\",\n );\n }\n\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Armenian TIN must contain only digits\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => compact(value);\n\n/** Armenian Tax Identification Number. */\nconst tin: CountryValidator<\"AM\"> = {\n name: \"Armenian Tax ID\",\n localName: \"Հարկ վճարողի հաշվառման համար\",\n abbreviation: \"TIN\",\n aliases: [\"ՀՎՀՀ\", \"TIN\"] as const,\n candidatePattern: \"\\\\d{8}\",\n scope: \"country\",\n country: \"AM\",\n entityType: \"any\",\n lengths: [8] as const,\n examples: [\"01234561\", \"10048376\"] as const,\n compact,\n format,\n validate,\n sourceUrl:\n \"https://www.oecd.org/tax/automatic-exchange/\" +\n \"crs-implementation-and-assistance/\" +\n \"tax-identification-numbers/Armenia-TIN.pdf\",\n generate,\n};\n\nexport default tin;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;AACA,MAAM,iBAAyB,aAAa,CAAC;AA2B7C,MAAM,WAAW,UACf,MAAM,OAAO,IAAI,EAAE,KAAK;AAE1B,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CAEvB,IAAI,EAAE,WAAW,GACf,OAAO,IACL,kBACA,+BACF;CAGF,IAAI,CAAC,SAAS,CAAC,GACb,OAAO,IACL,kBACA,uCACF;CAGF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B,QAAQ,KAAK;;AAGvD,MAAM,MAA8B;CAClC,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CAAC,QAAQ,KAAK;CACvB,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,SAAS,CAAC,CAAC;CACX,UAAU,CAAC,YAAY,UAAU;CACjC;CACA;CACA;CACA,WACE;CAGF;AACF"}
|
package/dist/ar/cbu.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/ar/cbu.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 CBU. */
|
|
9
8
|
declare const generate: () => string;
|
|
10
9
|
/** Argentine Uniform Bank Key. */
|
|
11
|
-
declare const cbu:
|
|
10
|
+
declare const cbu: CountryValidator<"AR">;
|
|
12
11
|
//#endregion
|
|
13
12
|
export { compact, cbu as default, format, generate, validate };
|
|
14
13
|
//# sourceMappingURL=cbu.d.ts.map
|
package/dist/ar/cbu.js
CHANGED
|
@@ -3,15 +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/ar/cbu.ts
|
|
6
|
-
/**
|
|
7
|
-
* CBU (Clave Bancaria Uniforme).
|
|
8
|
-
*
|
|
9
|
-
* Argentine bank account number used for electronic
|
|
10
|
-
* transfers. 22 digits: 3-digit bank + 4-digit branch
|
|
11
|
-
* + 1 check digit + 13-digit account + 1 check digit.
|
|
12
|
-
*
|
|
13
|
-
* @see https://es.wikipedia.org/wiki/Clave_bancaria_uniforme
|
|
14
|
-
*/
|
|
15
6
|
const WEIGHTS_BLOCK1 = [
|
|
16
7
|
7,
|
|
17
8
|
1,
|
|
@@ -39,7 +30,7 @@ const WEIGHTS_BLOCK2 = [
|
|
|
39
30
|
const compact = (value) => clean(value, " -").trim();
|
|
40
31
|
const calcCheck = (digits, weights) => {
|
|
41
32
|
let sum = 0;
|
|
42
|
-
for (
|
|
33
|
+
for (const [i, weight] of weights.entries()) sum += Number(digits[i]) * weight;
|
|
43
34
|
return (10 - sum % 10) % 10;
|
|
44
35
|
};
|
|
45
36
|
const validate = (value) => {
|
|
@@ -72,6 +63,7 @@ const cbu = {
|
|
|
72
63
|
abbreviation: "CBU",
|
|
73
64
|
aliases: ["CBU", "Clave Bancaria Uniforme"],
|
|
74
65
|
candidatePattern: "\\d{22}",
|
|
66
|
+
scope: "country",
|
|
75
67
|
country: "AR",
|
|
76
68
|
entityType: "any",
|
|
77
69
|
sourceUrl: "https://es.wikipedia.org/wiki/Clave_bancaria_uniforme",
|
package/dist/ar/cbu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cbu.js","names":[],"sources":["../../src/ar/cbu.ts"],"sourcesContent":["/**\n * CBU (Clave Bancaria Uniforme).\n *\n * Argentine bank account number used for electronic\n * transfers. 22 digits: 3-digit bank + 4-digit branch\n * + 1 check digit + 13-digit account + 1 check digit.\n *\n * @see https://es.wikipedia.org/wiki/Clave_bancaria_uniforme\n */\n\nimport {
|
|
1
|
+
{"version":3,"file":"cbu.js","names":[],"sources":["../../src/ar/cbu.ts"],"sourcesContent":["/**\n * CBU (Clave Bancaria Uniforme).\n *\n * Argentine bank account number used for electronic\n * transfers. 22 digits: 3-digit bank + 4-digit branch\n * + 1 check digit + 13-digit account + 1 check digit.\n *\n * @see https://es.wikipedia.org/wiki/Clave_bancaria_uniforme\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_BLOCK1 = [7, 1, 3, 9, 7, 1, 3];\nconst WEIGHTS_BLOCK2 = [\n 3, 9, 7, 1, 3, 9, 7, 1, 3, 9, 7, 1, 3,\n];\n\nconst compact = (value: string): string =>\n clean(value, \" -\").trim();\n\nconst calcCheck = (\n digits: string,\n weights: readonly number[],\n): number => {\n let sum = 0;\n for (const [i, weight] of weights.entries()) {\n sum += Number(digits[i]) * weight;\n }\n return (10 - (sum % 10)) % 10;\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 22) {\n return err(\"INVALID_LENGTH\", \"CBU must be 22 digits\");\n }\n\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"CBU must contain only digits\",\n );\n }\n\n // First block: digits 0-6, check digit at 7\n const check1 = calcCheck(v.slice(0, 7), WEIGHTS_BLOCK1);\n if (check1 !== Number(v[7])) {\n return err(\n \"INVALID_CHECKSUM\",\n \"CBU first check digit mismatch\",\n );\n }\n\n // Second block: digits 8-20, check digit at 21\n const check2 = calcCheck(v.slice(8, 21), WEIGHTS_BLOCK2);\n if (check2 !== Number(v[21])) {\n return err(\n \"INVALID_CHECKSUM\",\n \"CBU second check digit mismatch\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return `${v.slice(0, 8)} ${v.slice(8)}`;\n};\n\n/** Generate a random valid CBU. */\nconst generate = (): string => {\n const block1 = randomDigits(7);\n const check1 = calcCheck(block1, WEIGHTS_BLOCK1);\n const block2 = randomDigits(13);\n const check2 = calcCheck(block2, WEIGHTS_BLOCK2);\n return block1 + String(check1) + block2 + String(check2);\n};\n\n/** Argentine Uniform Bank Key. */\nconst cbu: CountryValidator<\"AR\"> = {\n name: \"Argentine Bank Account Number\",\n localName: \"Clave Bancaria Uniforme\",\n abbreviation: \"CBU\",\n aliases: [\"CBU\", \"Clave Bancaria Uniforme\"] as const,\n candidatePattern: \"\\\\d{22}\",\n scope: \"country\",\n country: \"AR\",\n entityType: \"any\",\n sourceUrl:\n \"https://es.wikipedia.org/wiki/Clave_bancaria_uniforme\",\n lengths: [22] as const,\n examples: [\"2850590940090418135201\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default cbu;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;AAoBA,MAAM,iBAAiB;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;AAAC;AAC3C,MAAM,iBAAiB;CACrB;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;AACtC;AAEA,MAAM,WAAW,UACf,MAAM,OAAO,IAAI,EAAE,KAAK;AAE1B,MAAM,aACJ,QACA,YACW;CACX,IAAI,MAAM;CACV,KAAK,MAAM,CAAC,GAAG,WAAW,QAAQ,QAAQ,GACxC,OAAO,OAAO,OAAO,EAAE,IAAI;CAE7B,QAAQ,KAAM,MAAM,MAAO;AAC7B;AAEA,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CAEvB,IAAI,EAAE,WAAW,IACf,OAAO,IAAI,kBAAkB,uBAAuB;CAGtD,IAAI,CAAC,SAAS,CAAC,GACb,OAAO,IACL,kBACA,8BACF;CAKF,IADe,UAAU,EAAE,MAAM,GAAG,CAAC,GAAG,cAC/B,MAAM,OAAO,EAAE,EAAE,GACxB,OAAO,IACL,oBACA,gCACF;CAKF,IADe,UAAU,EAAE,MAAM,GAAG,EAAE,GAAG,cAChC,MAAM,OAAO,EAAE,GAAG,GACzB,OAAO,IACL,oBACA,iCACF;CAGF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,KAAK;CACvB,OAAO,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;AACtC;;AAGA,MAAM,iBAAyB;CAC7B,MAAM,SAAS,aAAa,CAAC;CAC7B,MAAM,SAAS,UAAU,QAAQ,cAAc;CAC/C,MAAM,SAAS,aAAa,EAAE;CAC9B,MAAM,SAAS,UAAU,QAAQ,cAAc;CAC/C,OAAO,SAAS,OAAO,MAAM,IAAI,SAAS,OAAO,MAAM;AACzD;;AAGA,MAAM,MAA8B;CAClC,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS,CAAC,OAAO,yBAAyB;CAC1C,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,WACE;CACF,SAAS,CAAC,EAAE;CACZ,UAAU,CAAC,wBAAwB;CACnC;CACA;CACA;CACA;AACF"}
|
package/dist/ar/cuit.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/ar/cuit.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;
|
|
@@ -13,7 +12,7 @@ declare const generate: () => string;
|
|
|
13
12
|
* Examples sourced from python-stdnum test suite
|
|
14
13
|
* (ar.cuit module).
|
|
15
14
|
*/
|
|
16
|
-
declare const cuit:
|
|
15
|
+
declare const cuit: CountryValidator<"AR">;
|
|
17
16
|
//#endregion
|
|
18
17
|
export { compact, cuit as default, format, generate, validate };
|
|
19
18
|
//# sourceMappingURL=cuit.d.ts.map
|
package/dist/ar/cuit.js
CHANGED
|
@@ -1,25 +1,8 @@
|
|
|
1
1
|
import { clean } from "../_util/clean.js";
|
|
2
|
-
import { randomDigits } from "../_util/generate.js";
|
|
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/ar/cuit.ts
|
|
6
|
-
/**
|
|
7
|
-
* CUIT (Clave Única de Identificación Tributaria).
|
|
8
|
-
*
|
|
9
|
-
* Argentine tax identification number assigned by AFIP
|
|
10
|
-
* (Administración Federal de Ingresos Públicos). The
|
|
11
|
-
* number consists of 11 digits: a 2-digit type code,
|
|
12
|
-
* an 8-digit DNI number, and a single check digit
|
|
13
|
-
* computed using a weighted modulo 11 algorithm.
|
|
14
|
-
*
|
|
15
|
-
* Type codes: 20/23/24/27 = person, 30/33/34 = company,
|
|
16
|
-
* 50/51/55 = international.
|
|
17
|
-
*
|
|
18
|
-
* Format: XX-XXXXXXXX-X (11 digits).
|
|
19
|
-
*
|
|
20
|
-
* @see https://www.afip.gob.ar/
|
|
21
|
-
* @see https://en.wikipedia.org/wiki/CUIT_(Argentina)
|
|
22
|
-
*/
|
|
23
6
|
const VALID_TYPES = new Set([
|
|
24
7
|
"20",
|
|
25
8
|
"23",
|
|
@@ -44,6 +27,15 @@ const WEIGHTS = [
|
|
|
44
27
|
3,
|
|
45
28
|
2
|
|
46
29
|
];
|
|
30
|
+
const GENERATE_TYPES = [
|
|
31
|
+
"20",
|
|
32
|
+
"23",
|
|
33
|
+
"24",
|
|
34
|
+
"27",
|
|
35
|
+
"30",
|
|
36
|
+
"33",
|
|
37
|
+
"34"
|
|
38
|
+
];
|
|
47
39
|
const compact = (value) => clean(value, " -.").trim();
|
|
48
40
|
/**
|
|
49
41
|
* Compute the CUIT check digit using weighted sum
|
|
@@ -53,7 +45,7 @@ const compact = (value) => clean(value, " -.").trim();
|
|
|
53
45
|
*/
|
|
54
46
|
const calcCheckDigit = (body) => {
|
|
55
47
|
let sum = 0;
|
|
56
|
-
for (
|
|
48
|
+
for (const [i, weight] of WEIGHTS.entries()) sum += Number(body[i]) * weight;
|
|
57
49
|
const remainder = 11 - sum % 11;
|
|
58
50
|
if (remainder === 11) return 0;
|
|
59
51
|
if (remainder === 10) return 9;
|
|
@@ -78,16 +70,7 @@ const format = (value) => {
|
|
|
78
70
|
};
|
|
79
71
|
/** Generate a random valid CUIT. */
|
|
80
72
|
const generate = () => {
|
|
81
|
-
const
|
|
82
|
-
"20",
|
|
83
|
-
"23",
|
|
84
|
-
"24",
|
|
85
|
-
"27",
|
|
86
|
-
"30",
|
|
87
|
-
"33",
|
|
88
|
-
"34"
|
|
89
|
-
];
|
|
90
|
-
const body = types[Math.floor(Math.random() * types.length)] + randomDigits(8);
|
|
73
|
+
const body = randomPick(GENERATE_TYPES) + randomDigits(8);
|
|
91
74
|
const check = calcCheckDigit(body);
|
|
92
75
|
return body + String(check);
|
|
93
76
|
};
|
|
@@ -107,6 +90,7 @@ const cuit = {
|
|
|
107
90
|
"Clave Única de Identificación Tributaria"
|
|
108
91
|
],
|
|
109
92
|
candidatePattern: "\\d{2}-?\\d{8}-?\\d",
|
|
93
|
+
scope: "country",
|
|
110
94
|
country: "AR",
|
|
111
95
|
entityType: "any",
|
|
112
96
|
compact,
|
package/dist/ar/cuit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cuit.js","names":[],"sources":["../../src/ar/cuit.ts"],"sourcesContent":["/**\n * CUIT (Clave Única de Identificación Tributaria).\n *\n * Argentine tax identification number assigned by AFIP\n * (Administración Federal de Ingresos Públicos). The\n * number consists of 11 digits: a 2-digit type code,\n * an 8-digit DNI number, and a single check digit\n * computed using a weighted modulo 11 algorithm.\n *\n * Type codes: 20/23/24/27 = person, 30/33/34 = company,\n * 50/51/55 = international.\n *\n * Format: XX-XXXXXXXX-X (11 digits).\n *\n * @see https://www.afip.gob.ar/\n * @see https://en.wikipedia.org/wiki/CUIT_(Argentina)\n */\n\nimport {
|
|
1
|
+
{"version":3,"file":"cuit.js","names":[],"sources":["../../src/ar/cuit.ts"],"sourcesContent":["/**\n * CUIT (Clave Única de Identificación Tributaria).\n *\n * Argentine tax identification number assigned by AFIP\n * (Administración Federal de Ingresos Públicos). The\n * number consists of 11 digits: a 2-digit type code,\n * an 8-digit DNI number, and a single check digit\n * computed using a weighted modulo 11 algorithm.\n *\n * Type codes: 20/23/24/27 = person, 30/33/34 = company,\n * 50/51/55 = international.\n *\n * Format: XX-XXXXXXXX-X (11 digits).\n *\n * @see https://www.afip.gob.ar/\n * @see https://en.wikipedia.org/wiki/CUIT_(Argentina)\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 VALID_TYPES = new Set([\n \"20\",\n \"23\",\n \"24\",\n \"27\",\n \"30\",\n \"33\",\n \"34\",\n \"50\",\n \"51\",\n \"55\",\n]);\n\nconst WEIGHTS = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] as const;\n\nconst GENERATE_TYPES = [\n \"20\",\n \"23\",\n \"24\",\n \"27\",\n \"30\",\n \"33\",\n \"34\",\n] as const;\n\nconst compact = (value: string): string =>\n clean(value, \" -.\").trim();\n\n/**\n * Compute the CUIT check digit using weighted sum\n * mod 11. Weights: [5, 4, 3, 2, 7, 6, 5, 4, 3, 2].\n *\n * check = 11 - (sum % 11); if 11 -> 0, if 10 -> 9.\n */\nconst calcCheckDigit = (body: string): number => {\n let sum = 0;\n for (const [i, weight] of WEIGHTS.entries()) {\n sum += Number(body[i]) * weight;\n }\n const remainder = 11 - (sum % 11);\n if (remainder === 11) return 0;\n if (remainder === 10) return 9;\n return remainder;\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length !== 11) {\n return err(\"INVALID_LENGTH\", \"CUIT must be 11 digits\");\n }\n\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"CUIT must contain only digits\",\n );\n }\n\n const typeCode = v.slice(0, 2);\n if (!VALID_TYPES.has(typeCode)) {\n return err(\n \"INVALID_COMPONENT\",\n \"CUIT has an invalid type code\",\n );\n }\n\n const expected = calcCheckDigit(v.slice(0, 10));\n if (Number(v[10]) !== expected) {\n return err(\n \"INVALID_CHECKSUM\",\n \"CUIT check digit does not match\",\n );\n }\n\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string => {\n const v = compact(value);\n return `${v.slice(0, 2)}-${v.slice(2, 10)}-${v.slice(10)}`;\n};\n\n/** Generate a random valid CUIT. */\nconst generate = (): string => {\n const type = randomPick(GENERATE_TYPES);\n const body = type + randomDigits(8);\n const check = calcCheckDigit(body);\n return body + String(check);\n};\n\n/**\n * Argentine CUIT (tax identification number).\n *\n * Examples sourced from python-stdnum test suite\n * (ar.cuit module).\n */\nconst cuit: CountryValidator<\"AR\"> = {\n name: \"Argentine Tax ID\",\n localName: \"Clave Única de Identificación Tributaria\",\n abbreviation: \"CUIT\",\n aliases: [\n \"CUIT\",\n \"CUIL\",\n \"Clave Única de Identificación Tributaria\",\n ] as const,\n candidatePattern: \"\\\\d{2}-?\\\\d{8}-?\\\\d\",\n scope: \"country\",\n country: \"AR\",\n entityType: \"any\",\n compact,\n format,\n validate,\n sourceUrl: \"https://www.afip.gob.ar/\",\n lengths: [11] as const,\n examples: [\"20267565393\", \"20055361682\"] as const,\n generate,\n};\n\nexport default cuit;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;AA4BA,MAAM,cAAc,IAAI,IAAI;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,UAAU;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;AAAC;AAE7C,MAAM,iBAAiB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,WAAW,UACf,MAAM,OAAO,KAAK,EAAE,KAAK;;;;;;;AAQ3B,MAAM,kBAAkB,SAAyB;CAC/C,IAAI,MAAM;CACV,KAAK,MAAM,CAAC,GAAG,WAAW,QAAQ,QAAQ,GACxC,OAAO,OAAO,KAAK,EAAE,IAAI;CAE3B,MAAM,YAAY,KAAM,MAAM;CAC9B,IAAI,cAAc,IAAI,OAAO;CAC7B,IAAI,cAAc,IAAI,OAAO;CAC7B,OAAO;AACT;AAEA,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CAEvB,IAAI,EAAE,WAAW,IACf,OAAO,IAAI,kBAAkB,wBAAwB;CAGvD,IAAI,CAAC,SAAS,CAAC,GACb,OAAO,IACL,kBACA,+BACF;CAGF,MAAM,WAAW,EAAE,MAAM,GAAG,CAAC;CAC7B,IAAI,CAAC,YAAY,IAAI,QAAQ,GAC3B,OAAO,IACL,qBACA,+BACF;CAGF,MAAM,WAAW,eAAe,EAAE,MAAM,GAAG,EAAE,CAAC;CAC9C,IAAI,OAAO,EAAE,GAAG,MAAM,UACpB,OAAO,IACL,oBACA,iCACF;CAGF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UAA0B;CACxC,MAAM,IAAI,QAAQ,KAAK;CACvB,OAAO,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;AACzD;;AAGA,MAAM,iBAAyB;CAE7B,MAAM,OADO,WAAW,cACR,IAAI,aAAa,CAAC;CAClC,MAAM,QAAQ,eAAe,IAAI;CACjC,OAAO,OAAO,OAAO,KAAK;AAC5B;;;;;;;AAQA,MAAM,OAA+B;CACnC,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EACP;EACA;EACA;CACF;CACA,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ;CACA;CACA;CACA,WAAW;CACX,SAAS,CAAC,EAAE;CACZ,UAAU,CAAC,eAAe,aAAa;CACvC;AACF"}
|
package/dist/ar/dni.d.ts
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/ar/dni.d.ts
|
|
4
4
|
/** Generate a random valid Argentine DNI. */
|
|
5
5
|
declare const generate: () => string;
|
|
6
|
+
/**
|
|
7
|
+
* DNI (Documento Nacional de Identidad).
|
|
8
|
+
*
|
|
9
|
+
* Argentine national identity card number. The DNI is
|
|
10
|
+
* a 7 or 8-digit number assigned to all Argentine
|
|
11
|
+
* citizens and permanent residents. No check digit.
|
|
12
|
+
*
|
|
13
|
+
* @see https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)
|
|
14
|
+
*/
|
|
6
15
|
declare const compact: (value: string) => string;
|
|
7
16
|
declare const validate: (value: string) => ValidateResult;
|
|
8
17
|
declare const format: (value: string) => string;
|
|
9
18
|
/** Argentine National Identity Document. */
|
|
10
|
-
declare const dni:
|
|
19
|
+
declare const dni: CountryValidator<"AR">;
|
|
11
20
|
//#endregion
|
|
12
21
|
export { compact, dni as default, format, generate, validate };
|
|
13
22
|
//# sourceMappingURL=dni.d.ts.map
|
package/dist/ar/dni.js
CHANGED
|
@@ -3,15 +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/ar/dni.ts
|
|
6
|
-
/**
|
|
7
|
-
* DNI (Documento Nacional de Identidad).
|
|
8
|
-
*
|
|
9
|
-
* Argentine national identity card number. The DNI is
|
|
10
|
-
* a 7 or 8-digit number assigned to all Argentine
|
|
11
|
-
* citizens and permanent residents. No check digit.
|
|
12
|
-
*
|
|
13
|
-
* @see https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)
|
|
14
|
-
*/
|
|
15
6
|
/** Generate a random valid Argentine DNI. */
|
|
16
7
|
const generate = () => randomDigits(8);
|
|
17
8
|
const compact = (value) => clean(value, " -.").trim();
|
|
@@ -41,6 +32,7 @@ const dni = {
|
|
|
41
32
|
"Documento de Identidad"
|
|
42
33
|
],
|
|
43
34
|
candidatePattern: "\\d{1,2}\\.?\\d{3}\\.?\\d{3}",
|
|
35
|
+
scope: "country",
|
|
44
36
|
country: "AR",
|
|
45
37
|
entityType: "person",
|
|
46
38
|
sourceUrl: "https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)",
|
package/dist/ar/dni.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dni.js","names":[],"sources":["../../src/ar/dni.ts"],"sourcesContent":["/** Generate a random valid Argentine DNI. */\nconst generate = (): string => randomDigits(8);\n\n/**\n * DNI (Documento Nacional de Identidad).\n *\n * Argentine national identity card number. The DNI is\n * a 7 or 8-digit number assigned to all Argentine\n * citizens and permanent residents. No check digit.\n *\n * @see https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)\n */\n\nimport {
|
|
1
|
+
{"version":3,"file":"dni.js","names":[],"sources":["../../src/ar/dni.ts"],"sourcesContent":["/** Generate a random valid Argentine DNI. */\nconst generate = (): string => randomDigits(8);\n\n/**\n * DNI (Documento Nacional de Identidad).\n *\n * Argentine national identity card number. The DNI is\n * a 7 or 8-digit number assigned to all Argentine\n * citizens and permanent residents. No check digit.\n *\n * @see https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)\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 compact = (value: string): string =>\n clean(value, \" -.\").trim();\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n\n if (v.length < 7 || v.length > 8) {\n return err(\n \"INVALID_LENGTH\",\n \"DNI must be 7 or 8 digits\",\n );\n }\n\n if (!isdigits(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"DNI must contain only digits\",\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 === 8) {\n return `${v.slice(0, 2)}.${v.slice(2, 5)}.${v.slice(5)}`;\n }\n if (v.length === 7) {\n return `${v.slice(0, 1)}.${v.slice(1, 4)}.${v.slice(4)}`;\n }\n return v;\n};\n\n/** Argentine National Identity Document. */\nconst dni: CountryValidator<\"AR\"> = {\n name: \"Argentine Identity Card\",\n localName: \"Documento Nacional de Identidad\",\n abbreviation: \"DNI\",\n aliases: [\n \"DNI\",\n \"Documento Nacional de Identidad\",\n \"Documento de Identidad\",\n ] as const,\n candidatePattern: \"\\\\d{1,2}\\\\.?\\\\d{3}\\\\.?\\\\d{3}\",\n scope: \"country\",\n country: \"AR\",\n entityType: \"person\",\n sourceUrl:\n \"https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)\",\n lengths: [7, 8] as const,\n examples: [\"20123456\", \"12345678\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default dni;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;;AACA,MAAM,iBAAyB,aAAa,CAAC;AAsB7C,MAAM,WAAW,UACf,MAAM,OAAO,KAAK,EAAE,KAAK;AAE3B,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CAEvB,IAAI,EAAE,SAAS,KAAK,EAAE,SAAS,GAC7B,OAAO,IACL,kBACA,2BACF;CAGF,IAAI,CAAC,SAAS,CAAC,GACb,OAAO,IACL,kBACA,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,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;CAEvD,IAAI,EAAE,WAAW,GACf,OAAO,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;CAEvD,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,SAAS,CAAC,GAAG,CAAC;CACd,UAAU,CAAC,YAAY,UAAU;CACjC;CACA;CACA;CACA;AACF"}
|
package/dist/ar/mod.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
1
|
import cbu from "./cbu.js";
|
|
3
2
|
import cuit from "./cuit.js";
|
|
4
3
|
import dni from "./dni.js";
|
|
5
4
|
|
|
6
5
|
//#region src/ar/mod.d.ts
|
|
7
|
-
|
|
6
|
+
declare namespace mod_d_exports {
|
|
7
|
+
export { cbu, cuit, dni };
|
|
8
|
+
}
|
|
8
9
|
//#endregion
|
|
9
10
|
export { cbu, cuit, dni, mod_d_exports };
|
|
10
11
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/at/businessid.d.ts
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/at/businessid.d.ts
|
|
4
4
|
/** Generate a random valid Austrian Firmenbuchnummer. */
|
|
5
5
|
declare const generate: () => string;
|
|
6
|
+
/**
|
|
7
|
+
* Firmenbuchnummer (Austrian company register number).
|
|
8
|
+
*
|
|
9
|
+
* Digits followed by a single trailing letter.
|
|
10
|
+
* Optional "FN" prefix. No checksum.
|
|
11
|
+
*
|
|
12
|
+
* @see https://www.justiz.gv.at/
|
|
13
|
+
*/
|
|
6
14
|
declare const compact: (value: string) => string;
|
|
7
15
|
declare const validate: (value: string) => ValidateResult;
|
|
8
16
|
declare const format: (value: string) => string;
|
|
9
17
|
/** Austrian Company Register Number. */
|
|
10
|
-
declare const businessid:
|
|
18
|
+
declare const businessid: CountryValidator<"AT">;
|
|
11
19
|
//#endregion
|
|
12
20
|
export { compact, businessid as default, format, generate, validate };
|
|
13
21
|
//# sourceMappingURL=businessid.d.ts.map
|
package/dist/at/businessid.js
CHANGED
|
@@ -2,14 +2,6 @@ import { clean } from "../_util/clean.js";
|
|
|
2
2
|
import { randomDigits, randomInt } from "../_util/generate.js";
|
|
3
3
|
import { err } from "../_util/result.js";
|
|
4
4
|
//#region src/at/businessid.ts
|
|
5
|
-
/**
|
|
6
|
-
* Firmenbuchnummer (Austrian company register number).
|
|
7
|
-
*
|
|
8
|
-
* Digits followed by a single trailing letter.
|
|
9
|
-
* Optional "FN" prefix. No checksum.
|
|
10
|
-
*
|
|
11
|
-
* @see https://www.justiz.gv.at/
|
|
12
|
-
*/
|
|
13
5
|
/** Generate a random valid Austrian Firmenbuchnummer. */
|
|
14
6
|
const generate = () => {
|
|
15
7
|
return `${randomDigits(randomInt(5, 6))}${String.fromCodePoint(97 + randomInt(0, 25))}`;
|
|
@@ -41,6 +33,7 @@ const businessid = {
|
|
|
41
33
|
"FBN"
|
|
42
34
|
],
|
|
43
35
|
candidatePattern: "FN\\s?\\d{5,6}[a-z]?",
|
|
36
|
+
scope: "country",
|
|
44
37
|
country: "AT",
|
|
45
38
|
entityType: "company",
|
|
46
39
|
sourceUrl: "https://www.justiz.gv.at/",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"businessid.js","names":[],"sources":["../../src/at/businessid.ts"],"sourcesContent":["/** Generate a random valid Austrian Firmenbuchnummer. */\nconst generate = (): string => {\n const digits = randomDigits(randomInt(5, 6));\n const letter = String.fromCodePoint(\n 97 + randomInt(0, 25),\n ); // a-z (compact lowercases)\n return `${digits}${letter}`;\n};\n\n/**\n * Firmenbuchnummer (Austrian company register number).\n *\n * Digits followed by a single trailing letter.\n * Optional \"FN\" prefix. No checksum.\n *\n * @see https://www.justiz.gv.at/\n */\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits, randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\n\
|
|
1
|
+
{"version":3,"file":"businessid.js","names":[],"sources":["../../src/at/businessid.ts"],"sourcesContent":["/** Generate a random valid Austrian Firmenbuchnummer. */\nconst generate = (): string => {\n const digits = randomDigits(randomInt(5, 6));\n const letter = String.fromCodePoint(\n 97 + randomInt(0, 25),\n ); // a-z (compact lowercases)\n return `${digits}${letter}`;\n};\n\n/**\n * Firmenbuchnummer (Austrian company register number).\n *\n * Digits followed by a single trailing letter.\n * Optional \"FN\" prefix. No checksum.\n *\n * @see https://www.justiz.gv.at/\n */\n\nimport type {\n ValidateResult,\n CountryValidator,\n} from \"../types\";\n\nimport { clean } from \"#util/clean\";\nimport { randomDigits, randomInt } from \"#util/generate\";\nimport { err } from \"#util/result\";\n\nconst FN_RE = /^\\d+[a-z]$/i;\n\nconst compact = (value: string): string => {\n let v = clean(value, \" -/.\");\n if (v.slice(0, 2).toUpperCase() === \"FN\") {\n v = v.slice(2);\n }\n return v.toLowerCase();\n};\n\nconst validate = (value: string): ValidateResult => {\n const v = compact(value);\n if (v.length < 2) {\n return err(\n \"INVALID_LENGTH\",\n \"Austrian Firmenbuchnummer is too short\",\n );\n }\n if (!FN_RE.test(v)) {\n return err(\n \"INVALID_FORMAT\",\n \"Austrian Firmenbuchnummer must be digits\" +\n \" followed by a letter\",\n );\n }\n return { valid: true, compact: v };\n};\n\nconst format = (value: string): string =>\n `FN ${compact(value)}`;\n\n/** Austrian Company Register Number. */\nconst businessid: CountryValidator<\"AT\"> = {\n name: \"Austrian Company Register Number\",\n localName: \"Firmenbuchnummer\",\n abbreviation: \"FN\",\n aliases: [\"Firmenbuchnummer\", \"FN\", \"FBN\"] as const,\n candidatePattern: \"FN\\\\s?\\\\d{5,6}[a-z]?\",\n scope: \"country\",\n country: \"AT\",\n entityType: \"company\",\n sourceUrl: \"https://www.justiz.gv.at/\",\n examples: [\"122119m\"] as const,\n compact,\n format,\n validate,\n generate,\n};\n\nexport default businessid;\nexport { compact, format, validate, generate };\n"],"mappings":";;;;;AACA,MAAM,iBAAyB;CAK7B,OAAO,GAJQ,aAAa,UAAU,GAAG,CAAC,CAI3B,IAHA,OAAO,cACpB,KAAK,UAAU,GAAG,EAAE,CAEE;AAC1B;AAoBA,MAAM,QAAQ;AAEd,MAAM,WAAW,UAA0B;CACzC,IAAI,IAAI,MAAM,OAAO,MAAM;CAC3B,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,YAAY,MAAM,MAClC,IAAI,EAAE,MAAM,CAAC;CAEf,OAAO,EAAE,YAAY;AACvB;AAEA,MAAM,YAAY,UAAkC;CAClD,MAAM,IAAI,QAAQ,KAAK;CACvB,IAAI,EAAE,SAAS,GACb,OAAO,IACL,kBACA,wCACF;CAEF,IAAI,CAAC,MAAM,KAAK,CAAC,GACf,OAAO,IACL,kBACA,+DAEF;CAEF,OAAO;EAAE,OAAO;EAAM,SAAS;CAAE;AACnC;AAEA,MAAM,UAAU,UACd,MAAM,QAAQ,KAAK;;AAGrB,MAAM,aAAqC;CACzC,MAAM;CACN,WAAW;CACX,cAAc;CACd,SAAS;EAAC;EAAoB;EAAM;CAAK;CACzC,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,YAAY;CACZ,WAAW;CACX,UAAU,CAAC,SAAS;CACpB;CACA;CACA;CACA;AACF"}
|
package/dist/at/mod.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
1
|
import businessid from "./businessid.js";
|
|
3
2
|
import tin from "./tin.js";
|
|
4
3
|
import uid from "./uid.js";
|
|
5
4
|
import vnr from "./vnr.js";
|
|
6
5
|
|
|
7
6
|
//#region src/at/mod.d.ts
|
|
8
|
-
|
|
7
|
+
declare namespace mod_d_exports {
|
|
8
|
+
export { businessid, tin, uid, vnr };
|
|
9
|
+
}
|
|
9
10
|
//#endregion
|
|
10
11
|
export { businessid, mod_d_exports, tin, uid, vnr };
|
|
11
12
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/at/tin.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CountryValidator, ValidateResult } from "../types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/at/tin.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 Austrian TIN. */
|
|
9
8
|
declare const generate: () => string;
|
|
10
9
|
/** Austrian Tax Identification Number. */
|
|
11
|
-
declare const tin:
|
|
10
|
+
declare const tin: CountryValidator<"AT">;
|
|
12
11
|
//#endregion
|
|
13
12
|
export { compact, tin as default, format, generate, validate };
|
|
14
13
|
//# sourceMappingURL=tin.d.ts.map
|
package/dist/at/tin.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/at/tin.ts
|
|
6
|
-
/**
|
|
7
|
-
* TIN (Abgabenkontonummer).
|
|
8
|
-
*
|
|
9
|
-
* Austrian tax identification number. 9 digits:
|
|
10
|
-
* 2-digit tax office code (Finanzamtsnummer) +
|
|
11
|
-
* 6-digit subject number + 1 check digit.
|
|
12
|
-
* Uses a variant of the Luhn algorithm.
|
|
13
|
-
*
|
|
14
|
-
* @see https://de.wikipedia.org/wiki/Abgabenkontonummer
|
|
15
|
-
* @see https://service.bmf.gv.at/Service/Anwend/Behoerden/show_mast.asp
|
|
16
|
-
*/
|
|
17
6
|
/** Luhn-variant doubling table: position-dependent. */
|
|
18
7
|
const DOUBLE = "0246813579";
|
|
19
8
|
const compact = (value) => clean(value, " -./,");
|
|
@@ -55,6 +44,7 @@ const tin = {
|
|
|
55
44
|
"TIN"
|
|
56
45
|
],
|
|
57
46
|
candidatePattern: "\\d{2}-?\\d{3}/\\d{4}",
|
|
47
|
+
scope: "country",
|
|
58
48
|
country: "AT",
|
|
59
49
|
entityType: "any",
|
|
60
50
|
sourceUrl: "https://de.wikipedia.org/wiki/Abgabenkontonummer",
|