@stll/stdnum 2.1.1 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.js +1 -0
- package/dist/ad/mod.d.ts +0 -2
- package/dist/ad/mod.js +1 -1
- package/dist/ad/mod.js.map +1 -1
- package/dist/ad/nrt.d.ts +4 -21
- package/dist/ad/nrt.js +9 -53
- package/dist/ad/nrt.js.map +1 -1
- package/dist/ae/eid.d.ts +3 -9
- package/dist/ae/eid.js +9 -65
- package/dist/ae/eid.js.map +1 -1
- package/dist/ae/mod.d.ts +0 -2
- package/dist/ae/mod.js +1 -1
- package/dist/ae/mod.js.map +1 -1
- package/dist/ai/mod.d.ts +0 -2
- package/dist/ai/mod.js +1 -1
- package/dist/ai/mod.js.map +1 -1
- package/dist/ai/tin.d.ts +4 -31
- package/dist/ai/tin.js +9 -51
- package/dist/ai/tin.js.map +1 -1
- package/dist/al/mod.d.ts +0 -2
- package/dist/al/mod.js +1 -1
- package/dist/al/mod.js.map +1 -1
- package/dist/al/nipt.d.ts +4 -18
- package/dist/al/nipt.js +9 -42
- package/dist/al/nipt.js.map +1 -1
- package/dist/am/mod.d.ts +0 -2
- package/dist/am/mod.js +1 -1
- package/dist/am/mod.js.map +1 -1
- package/dist/am/tin.d.ts +4 -21
- package/dist/am/tin.js +9 -36
- package/dist/am/tin.js.map +1 -1
- package/dist/ar/cbu.d.ts +3 -6
- package/dist/ar/cbu.js +9 -76
- package/dist/ar/cbu.js.map +1 -1
- package/dist/ar/cuit.d.ts +3 -11
- package/dist/ar/cuit.js +9 -103
- package/dist/ar/cuit.js.map +1 -1
- package/dist/ar/dni.d.ts +4 -16
- package/dist/ar/dni.js +9 -45
- package/dist/ar/dni.js.map +1 -1
- package/dist/ar/mod.d.ts +0 -2
- package/dist/ar/mod.js +1 -1
- package/dist/ar/mod.js.map +1 -1
- package/dist/at/businessid.d.ts +4 -15
- package/dist/at/businessid.js +9 -45
- package/dist/at/businessid.js.map +1 -1
- package/dist/at/mod.d.ts +0 -2
- package/dist/at/mod.js +1 -1
- package/dist/at/mod.js.map +1 -1
- package/dist/at/tin.d.ts +3 -6
- package/dist/at/tin.js +9 -56
- package/dist/at/tin.js.map +1 -1
- package/dist/at/uid.d.ts +3 -6
- package/dist/at/uid.js +9 -52
- package/dist/at/uid.js.map +1 -1
- package/dist/at/vnr.d.ts +3 -6
- package/dist/at/vnr.js +9 -82
- package/dist/at/vnr.js.map +1 -1
- package/dist/au/abn.d.ts +3 -6
- package/dist/au/abn.js +9 -64
- package/dist/au/abn.js.map +1 -1
- package/dist/au/acn.d.ts +3 -6
- package/dist/au/acn.js +9 -57
- package/dist/au/acn.js.map +1 -1
- package/dist/au/mod.d.ts +0 -2
- package/dist/au/mod.js +1 -1
- package/dist/au/mod.js.map +1 -1
- package/dist/au/tfn.d.ts +3 -6
- package/dist/au/tfn.js +9 -58
- package/dist/au/tfn.js.map +1 -1
- package/dist/az/mod.d.ts +0 -2
- package/dist/az/mod.js +1 -1
- package/dist/az/mod.js.map +1 -1
- package/dist/az/voen.d.ts +3 -13
- package/dist/az/voen.js +9 -83
- package/dist/az/voen.js.map +1 -1
- package/dist/ba/jmbg.d.ts +5 -8
- package/dist/ba/jmbg.js +10 -86
- package/dist/ba/jmbg.js.map +1 -1
- package/dist/ba/mod.d.ts +0 -2
- package/dist/ba/mod.js +1 -1
- package/dist/ba/mod.js.map +1 -1
- package/dist/bd/mod.d.ts +0 -2
- package/dist/bd/mod.js +1 -1
- package/dist/bd/mod.js.map +1 -1
- package/dist/bd/nid.d.ts +4 -28
- package/dist/bd/nid.js +9 -91
- package/dist/bd/nid.js.map +1 -1
- package/dist/be/bis.d.ts +3 -6
- package/dist/be/bis.js +9 -51
- package/dist/be/bis.js.map +1 -1
- package/dist/be/mod.d.ts +0 -2
- package/dist/be/mod.js +2 -2
- package/dist/be/mod.js.map +1 -1
- package/dist/be/nn.d.ts +4 -13
- package/dist/be/nn.js +10 -70
- package/dist/be/nn.js.map +1 -1
- package/dist/be/vat.d.ts +3 -6
- package/dist/be/vat.js +9 -58
- package/dist/be/vat.js.map +1 -1
- package/dist/bg/egn.d.ts +5 -12
- package/dist/bg/egn.js +10 -110
- package/dist/bg/egn.js.map +1 -1
- package/dist/bg/mod.d.ts +0 -2
- package/dist/bg/mod.js +1 -1
- package/dist/bg/mod.js.map +1 -1
- package/dist/bg/pnf.d.ts +3 -6
- package/dist/bg/pnf.js +9 -59
- package/dist/bg/pnf.js.map +1 -1
- package/dist/bg/vat.d.ts +3 -6
- package/dist/bg/vat.js +9 -143
- package/dist/bg/vat.js.map +1 -1
- package/dist/bh/cpr.d.ts +3 -6
- package/dist/bh/cpr.js +9 -44
- package/dist/bh/cpr.js.map +1 -1
- package/dist/bh/mod.d.ts +0 -2
- package/dist/bh/mod.js +1 -1
- package/dist/bh/mod.js.map +1 -1
- package/dist/bic.d.ts +4 -18
- package/dist/bic.js +9 -56
- package/dist/bic.js.map +1 -1
- package/dist/br/cnpj.d.ts +3 -13
- package/dist/br/cnpj.js +9 -109
- package/dist/br/cnpj.js.map +1 -1
- package/dist/br/cpf.d.ts +3 -6
- package/dist/br/cpf.js +9 -66
- package/dist/br/cpf.js.map +1 -1
- package/dist/br/mod.d.ts +0 -2
- package/dist/br/mod.js +1 -1
- package/dist/br/mod.js.map +1 -1
- package/dist/by/mod.d.ts +0 -2
- package/dist/by/mod.js +1 -1
- package/dist/by/mod.js.map +1 -1
- package/dist/by/unp.d.ts +3 -6
- package/dist/by/unp.js +9 -102
- package/dist/by/unp.js.map +1 -1
- package/dist/bz/mod.d.ts +0 -2
- package/dist/bz/mod.js +1 -1
- package/dist/bz/mod.js.map +1 -1
- package/dist/bz/tin.d.ts +3 -10
- package/dist/bz/tin.js +9 -64
- package/dist/bz/tin.js.map +1 -1
- package/dist/ca/bn.d.ts +3 -6
- package/dist/ca/bn.js +9 -61
- package/dist/ca/bn.js.map +1 -1
- package/dist/ca/mod.d.ts +0 -2
- package/dist/ca/mod.js +1 -1
- package/dist/ca/mod.js.map +1 -1
- package/dist/ca/sin.d.ts +3 -6
- package/dist/ca/sin.js +9 -50
- package/dist/ca/sin.js.map +1 -1
- package/dist/catalog.d.ts +9 -0
- package/dist/catalog.js +9 -0
- package/dist/catalog.js.map +1 -0
- package/dist/ch/mod.d.ts +1 -3
- package/dist/ch/mod.js +2 -2
- package/dist/ch/mod.js.map +1 -1
- package/dist/ch/ssn.d.ts +3 -6
- package/dist/ch/ssn.js +9 -55
- package/dist/ch/ssn.js.map +1 -1
- package/dist/ch/uid.d.ts +3 -6
- package/dist/ch/uid.js +9 -69
- package/dist/ch/uid.js.map +1 -1
- package/dist/ch/vat.d.ts +3 -6
- package/dist/ch/vat.js +9 -58
- package/dist/ch/vat.js.map +1 -1
- package/dist/cl/mod.d.ts +0 -2
- package/dist/cl/mod.js +1 -1
- package/dist/cl/mod.js.map +1 -1
- package/dist/cl/rut.d.ts +3 -11
- package/dist/cl/rut.js +9 -78
- package/dist/cl/rut.js.map +1 -1
- package/dist/cn/mod.d.ts +0 -2
- package/dist/cn/mod.js +1 -1
- package/dist/cn/mod.js.map +1 -1
- package/dist/cn/ric.d.ts +5 -12
- package/dist/cn/ric.js +10 -94
- package/dist/cn/ric.js.map +1 -1
- package/dist/cn/uscc.d.ts +3 -6
- package/dist/cn/uscc.js +9 -76
- package/dist/cn/uscc.js.map +1 -1
- package/dist/co/mod.d.ts +0 -2
- package/dist/co/mod.js +1 -1
- package/dist/co/mod.js.map +1 -1
- package/dist/co/nit.d.ts +3 -6
- package/dist/co/nit.js +9 -98
- package/dist/co/nit.js.map +1 -1
- package/dist/cr/cpf.d.ts +4 -31
- package/dist/cr/cpf.js +9 -61
- package/dist/cr/cpf.js.map +1 -1
- package/dist/cr/mod.d.ts +0 -2
- package/dist/cr/mod.js +1 -1
- package/dist/cr/mod.js.map +1 -1
- package/dist/creditcard.d.ts +5 -18
- package/dist/creditcard.js +8 -109
- package/dist/creditcard.js.map +1 -1
- package/dist/crypto/btcbase58.d.ts +5 -6
- package/dist/crypto/btcbase58.js +8 -73
- package/dist/crypto/btcbase58.js.map +1 -1
- package/dist/crypto/btcbech32.d.ts +7 -9
- package/dist/crypto/btcbech32.js +10 -142
- package/dist/crypto/btcbech32.js.map +1 -1
- package/dist/crypto/eth.d.ts +4 -5
- package/dist/crypto/eth.js +7 -59
- package/dist/crypto/eth.js.map +1 -1
- package/dist/crypto/mod.d.ts +4 -6
- package/dist/crypto/mod.js +6 -6
- package/dist/crypto/mod.js.map +1 -1
- package/dist/crypto/wallet.d.ts +3 -4
- package/dist/crypto/wallet.js +6 -51
- package/dist/crypto/wallet.js.map +1 -1
- package/dist/cu/mod.d.ts +0 -2
- package/dist/cu/mod.js +1 -1
- package/dist/cu/mod.js.map +1 -1
- package/dist/cu/ni.d.ts +5 -16
- package/dist/cu/ni.js +10 -81
- package/dist/cu/ni.js.map +1 -1
- package/dist/cy/mod.d.ts +0 -2
- package/dist/cy/mod.js +1 -1
- package/dist/cy/mod.js.map +1 -1
- package/dist/cy/vat.d.ts +3 -6
- package/dist/cy/vat.js +9 -77
- package/dist/cy/vat.js.map +1 -1
- package/dist/cz/dic.d.ts +3 -6
- package/dist/cz/dic.js +9 -87
- package/dist/cz/dic.js.map +1 -1
- package/dist/cz/ico.d.ts +3 -6
- package/dist/cz/ico.js +9 -58
- package/dist/cz/ico.js.map +1 -1
- package/dist/cz/mod.d.ts +0 -2
- package/dist/cz/mod.js +2 -2
- package/dist/cz/mod.js.map +1 -1
- package/dist/cz/rc.d.ts +5 -15
- package/dist/cz/rc.js +10 -113
- package/dist/cz/rc.js.map +1 -1
- package/dist/de/handelsreg.d.ts +4 -28
- package/dist/de/handelsreg.js +9 -66
- package/dist/de/handelsreg.js.map +1 -1
- package/dist/de/idnr.d.ts +3 -6
- package/dist/de/idnr.js +9 -88
- package/dist/de/idnr.js.map +1 -1
- package/dist/de/mod.d.ts +0 -2
- package/dist/de/mod.js +1 -1
- package/dist/de/mod.js.map +1 -1
- package/dist/de/stnr.d.ts +4 -30
- package/dist/de/stnr.js +9 -126
- package/dist/de/stnr.js.map +1 -1
- package/dist/de/svnr.d.ts +3 -6
- package/dist/de/svnr.js +9 -95
- package/dist/de/svnr.js.map +1 -1
- package/dist/de/vat.d.ts +3 -6
- package/dist/de/vat.js +9 -52
- package/dist/de/vat.js.map +1 -1
- package/dist/dk/cpr.d.ts +5 -12
- package/dist/dk/cpr.js +10 -79
- package/dist/dk/cpr.js.map +1 -1
- package/dist/dk/cvr.d.ts +3 -6
- package/dist/dk/cvr.js +9 -53
- package/dist/dk/cvr.js.map +1 -1
- package/dist/dk/mod.d.ts +0 -2
- package/dist/dk/mod.js +1 -1
- package/dist/dk/mod.js.map +1 -1
- package/dist/dk/vat.d.ts +3 -6
- package/dist/dk/vat.js +9 -58
- package/dist/dk/vat.js.map +1 -1
- package/dist/do/mod.d.ts +0 -2
- package/dist/do/mod.js +1 -1
- package/dist/do/mod.js.map +1 -1
- package/dist/do/rnc.d.ts +3 -10
- package/dist/do/rnc.js +9 -77
- package/dist/do/rnc.js.map +1 -1
- package/dist/ec/mod.d.ts +0 -2
- package/dist/ec/mod.js +1 -1
- package/dist/ec/mod.js.map +1 -1
- package/dist/ec/ruc.d.ts +3 -6
- package/dist/ec/ruc.js +9 -129
- package/dist/ec/ruc.js.map +1 -1
- package/dist/ee/ik.d.ts +6 -17
- package/dist/ee/ik.js +11 -118
- package/dist/ee/ik.js.map +1 -1
- package/dist/ee/mod.d.ts +0 -2
- package/dist/ee/mod.js +1 -1
- package/dist/ee/mod.js.map +1 -1
- package/dist/ee/registrikood.d.ts +3 -6
- package/dist/ee/registrikood.js +9 -53
- package/dist/ee/registrikood.js.map +1 -1
- package/dist/ee/vat.d.ts +3 -6
- package/dist/ee/vat.js +9 -57
- package/dist/ee/vat.js.map +1 -1
- package/dist/eg/mod.d.ts +0 -2
- package/dist/eg/mod.js +1 -1
- package/dist/eg/mod.js.map +1 -1
- package/dist/eg/tn.d.ts +4 -16
- package/dist/eg/tn.js +9 -69
- package/dist/eg/tn.js.map +1 -1
- package/dist/es/cif.d.ts +3 -6
- package/dist/es/cif.js +9 -53
- package/dist/es/cif.js.map +1 -1
- package/dist/es/dni.d.ts +4 -7
- package/dist/es/dni.js +9 -45
- package/dist/es/dni.js.map +1 -1
- package/dist/es/mod.d.ts +0 -2
- package/dist/es/mod.js +2 -2
- package/dist/es/mod.js.map +1 -1
- package/dist/es/nie.d.ts +3 -6
- package/dist/es/nie.js +9 -66
- package/dist/es/nie.js.map +1 -1
- package/dist/es/nss.d.ts +3 -6
- package/dist/es/nss.js +9 -53
- package/dist/es/nss.js.map +1 -1
- package/dist/es/vat.d.ts +4 -7
- package/dist/es/vat.js +10 -95
- package/dist/es/vat.js.map +1 -1
- package/dist/eu/mod.d.ts +3 -5
- package/dist/eu/mod.js +4 -4
- package/dist/eu/mod.js.map +1 -1
- package/dist/eu/vat.d.ts +4 -15
- package/dist/eu/vat.js +10 -184
- package/dist/eu/vat.js.map +1 -1
- package/dist/fi/hetu.d.ts +5 -12
- package/dist/fi/hetu.js +10 -110
- package/dist/fi/hetu.js.map +1 -1
- package/dist/fi/mod.d.ts +0 -2
- package/dist/fi/mod.js +2 -2
- package/dist/fi/mod.js.map +1 -1
- package/dist/fi/vat.d.ts +3 -6
- package/dist/fi/vat.js +9 -57
- package/dist/fi/vat.js.map +1 -1
- package/dist/fi/ytunnus.d.ts +3 -6
- package/dist/fi/ytunnus.js +9 -59
- package/dist/fi/ytunnus.js.map +1 -1
- package/dist/fr/mod.d.ts +0 -2
- package/dist/fr/mod.js +2 -2
- package/dist/fr/mod.js.map +1 -1
- package/dist/fr/nif.d.ts +3 -6
- package/dist/fr/nif.js +9 -52
- package/dist/fr/nif.js.map +1 -1
- package/dist/fr/nir.d.ts +5 -8
- package/dist/fr/nir.js +10 -91
- package/dist/fr/nir.js.map +1 -1
- package/dist/fr/siren.d.ts +3 -6
- package/dist/fr/siren.js +9 -44
- package/dist/fr/siren.js.map +1 -1
- package/dist/fr/siret.d.ts +3 -6
- package/dist/fr/siret.js +9 -60
- package/dist/fr/siret.js.map +1 -1
- package/dist/fr/tva.d.ts +3 -6
- package/dist/fr/tva.js +9 -66
- package/dist/fr/tva.js.map +1 -1
- package/dist/gb/mod.d.ts +0 -2
- package/dist/gb/mod.js +2 -2
- package/dist/gb/mod.js.map +1 -1
- package/dist/gb/nhs.d.ts +4 -5
- package/dist/gb/nhs.js +7 -47
- package/dist/gb/nhs.js.map +1 -1
- package/dist/gb/nino.d.ts +4 -17
- package/dist/gb/nino.js +9 -90
- package/dist/gb/nino.js.map +1 -1
- package/dist/gb/sedol.d.ts +4 -7
- package/dist/gb/sedol.js +10 -72
- package/dist/gb/sedol.js.map +1 -1
- package/dist/gb/utr.d.ts +3 -6
- package/dist/gb/utr.js +9 -57
- package/dist/gb/utr.js.map +1 -1
- package/dist/gb/vat.d.ts +3 -6
- package/dist/gb/vat.js +9 -89
- package/dist/gb/vat.js.map +1 -1
- package/dist/ge/mod.d.ts +0 -2
- package/dist/ge/mod.js +1 -1
- package/dist/ge/mod.js.map +1 -1
- package/dist/ge/pin.d.ts +4 -19
- package/dist/ge/pin.js +9 -36
- package/dist/ge/pin.js.map +1 -1
- package/dist/gh/mod.d.ts +0 -2
- package/dist/gh/mod.js +1 -1
- package/dist/gh/mod.js.map +1 -1
- package/dist/gh/tin.d.ts +3 -6
- package/dist/gh/tin.js +9 -62
- package/dist/gh/tin.js.map +1 -1
- package/dist/gr/amka.d.ts +3 -6
- package/dist/gr/amka.js +9 -59
- package/dist/gr/amka.js.map +1 -1
- package/dist/gr/mod.d.ts +0 -2
- package/dist/gr/mod.js +2 -2
- package/dist/gr/mod.js.map +1 -1
- package/dist/gr/vat.d.ts +3 -6
- package/dist/gr/vat.js +9 -53
- package/dist/gr/vat.js.map +1 -1
- package/dist/gt/mod.d.ts +0 -2
- package/dist/gt/mod.js +1 -1
- package/dist/gt/mod.js.map +1 -1
- package/dist/gt/nit.d.ts +3 -13
- package/dist/gt/nit.js +9 -86
- package/dist/gt/nit.js.map +1 -1
- package/dist/hk/hkid.d.ts +3 -7
- package/dist/hk/hkid.js +9 -80
- package/dist/hk/hkid.js.map +1 -1
- package/dist/hk/mod.d.ts +0 -2
- package/dist/hk/mod.js +1 -1
- package/dist/hk/mod.js.map +1 -1
- package/dist/hr/mod.d.ts +0 -2
- package/dist/hr/mod.js +1 -1
- package/dist/hr/mod.js.map +1 -1
- package/dist/hr/vat.d.ts +3 -6
- package/dist/hr/vat.js +9 -44
- package/dist/hr/vat.js.map +1 -1
- package/dist/hu/mod.d.ts +0 -2
- package/dist/hu/mod.js +1 -1
- package/dist/hu/mod.js.map +1 -1
- package/dist/hu/vat.d.ts +3 -6
- package/dist/hu/vat.js +9 -57
- package/dist/hu/vat.js.map +1 -1
- package/dist/iban.d.ts +3 -8
- package/dist/iban.js +9 -272
- package/dist/iban.js.map +1 -1
- package/dist/id/mod.d.ts +0 -2
- package/dist/id/mod.js +1 -1
- package/dist/id/mod.js.map +1 -1
- package/dist/id/npwp.d.ts +3 -6
- package/dist/id/npwp.js +9 -119
- package/dist/id/npwp.js.map +1 -1
- package/dist/ie/mod.d.ts +0 -2
- package/dist/ie/mod.js +2 -2
- package/dist/ie/mod.js.map +1 -1
- package/dist/ie/pps.d.ts +3 -6
- package/dist/ie/pps.js +9 -56
- package/dist/ie/pps.js.map +1 -1
- package/dist/ie/vat.d.ts +3 -6
- package/dist/ie/vat.js +9 -71
- package/dist/ie/vat.js.map +1 -1
- package/dist/il/idnr.d.ts +3 -6
- package/dist/il/idnr.js +9 -50
- package/dist/il/idnr.js.map +1 -1
- package/dist/il/mod.d.ts +0 -2
- package/dist/il/mod.js +1 -1
- package/dist/il/mod.js.map +1 -1
- package/dist/in/aadhaar.d.ts +3 -6
- package/dist/in/aadhaar.js +9 -47
- package/dist/in/aadhaar.js.map +1 -1
- package/dist/in/gstin.d.ts +3 -6
- package/dist/in/gstin.js +9 -119
- package/dist/in/gstin.js.map +1 -1
- package/dist/in/mod.d.ts +0 -2
- package/dist/in/mod.js +1 -1
- package/dist/in/mod.js.map +1 -1
- package/dist/in/pan.d.ts +4 -20
- package/dist/in/pan.js +9 -42
- package/dist/in/pan.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +2 -2
- package/dist/iq/mod.d.ts +0 -2
- package/dist/iq/mod.js +1 -1
- package/dist/iq/mod.js.map +1 -1
- package/dist/iq/nid.d.ts +4 -22
- package/dist/iq/nid.js +9 -39
- package/dist/iq/nid.js.map +1 -1
- package/dist/ir/mod.d.ts +0 -2
- package/dist/ir/mod.js +1 -1
- package/dist/ir/mod.js.map +1 -1
- package/dist/ir/nid.d.ts +3 -10
- package/dist/ir/nid.js +9 -64
- package/dist/ir/nid.js.map +1 -1
- package/dist/is/kennitala.d.ts +3 -6
- package/dist/is/kennitala.js +9 -77
- package/dist/is/kennitala.js.map +1 -1
- package/dist/is/mod.d.ts +0 -2
- package/dist/is/mod.js +1 -1
- package/dist/is/mod.js.map +1 -1
- package/dist/is/vsk.d.ts +4 -14
- package/dist/is/vsk.js +9 -37
- package/dist/is/vsk.js.map +1 -1
- package/dist/isin.d.ts +3 -6
- package/dist/isin.js +9 -71
- package/dist/isin.js.map +1 -1
- package/dist/it/codicefiscale.d.ts +5 -13
- package/dist/it/codicefiscale.js +10 -214
- package/dist/it/codicefiscale.js.map +1 -1
- package/dist/it/iva.d.ts +3 -6
- package/dist/it/iva.js +9 -60
- package/dist/it/iva.js.map +1 -1
- package/dist/it/mod.d.ts +0 -2
- package/dist/it/mod.js +2 -2
- package/dist/it/mod.js.map +1 -1
- package/dist/jp/cn.d.ts +3 -6
- package/dist/jp/cn.js +9 -56
- package/dist/jp/cn.js.map +1 -1
- package/dist/jp/mod.d.ts +0 -2
- package/dist/jp/mod.js +1 -1
- package/dist/jp/mod.js.map +1 -1
- package/dist/jp/mynumber.d.ts +3 -6
- package/dist/jp/mynumber.js +9 -73
- package/dist/jp/mynumber.js.map +1 -1
- package/dist/kr/brn.d.ts +4 -16
- package/dist/kr/brn.js +9 -55
- package/dist/kr/brn.js.map +1 -1
- package/dist/kr/mod.d.ts +0 -2
- package/dist/kr/mod.js +1 -1
- package/dist/kr/mod.js.map +1 -1
- package/dist/kr/rrn.d.ts +5 -17
- package/dist/kr/rrn.js +10 -131
- package/dist/kr/rrn.js.map +1 -1
- package/dist/kw/civil.d.ts +5 -13
- package/dist/kw/civil.js +10 -98
- package/dist/kw/civil.js.map +1 -1
- package/dist/kw/mod.d.ts +0 -2
- package/dist/kw/mod.js +1 -1
- package/dist/kw/mod.js.map +1 -1
- package/dist/kz/iin.d.ts +5 -16
- package/dist/kz/iin.js +10 -132
- package/dist/kz/iin.js.map +1 -1
- package/dist/kz/mod.d.ts +0 -2
- package/dist/kz/mod.js +1 -1
- package/dist/kz/mod.js.map +1 -1
- package/dist/lei.d.ts +3 -6
- package/dist/lei.js +9 -55
- package/dist/lei.js.map +1 -1
- package/dist/li/mod.d.ts +0 -2
- package/dist/li/mod.js +1 -1
- package/dist/li/mod.js.map +1 -1
- package/dist/li/peid.d.ts +4 -16
- package/dist/li/peid.js +9 -49
- package/dist/li/peid.js.map +1 -1
- package/dist/lk/mod.d.ts +0 -2
- package/dist/lk/mod.js +1 -1
- package/dist/lk/mod.js.map +1 -1
- package/dist/lk/nic.d.ts +5 -12
- package/dist/lk/nic.js +10 -135
- package/dist/lk/nic.js.map +1 -1
- package/dist/lt/asmens.d.ts +3 -6
- package/dist/lt/asmens.js +9 -78
- package/dist/lt/asmens.js.map +1 -1
- package/dist/lt/mod.d.ts +0 -2
- package/dist/lt/mod.js +2 -2
- package/dist/lt/mod.js.map +1 -1
- package/dist/lt/vat.d.ts +3 -6
- package/dist/lt/vat.js +9 -60
- package/dist/lt/vat.js.map +1 -1
- package/dist/lu/mod.d.ts +0 -2
- package/dist/lu/mod.js +1 -1
- package/dist/lu/mod.js.map +1 -1
- package/dist/lu/vat.d.ts +3 -6
- package/dist/lu/vat.js +9 -46
- package/dist/lu/vat.js.map +1 -1
- package/dist/luhn.d.ts +3 -9
- package/dist/luhn.js +7 -47
- package/dist/luhn.js.map +1 -1
- package/dist/lv/mod.d.ts +0 -2
- package/dist/lv/mod.js +1 -1
- package/dist/lv/mod.js.map +1 -1
- package/dist/lv/vat.d.ts +3 -6
- package/dist/lv/vat.js +9 -101
- package/dist/lv/vat.js.map +1 -1
- package/dist/ma/ice.d.ts +3 -6
- package/dist/ma/ice.js +9 -44
- package/dist/ma/ice.js.map +1 -1
- package/dist/ma/mod.d.ts +0 -2
- package/dist/ma/mod.js +1 -1
- package/dist/ma/mod.js.map +1 -1
- package/dist/mc/mod.d.ts +0 -2
- package/dist/mc/mod.js +1 -1
- package/dist/mc/mod.js.map +1 -1
- package/dist/mc/tva.d.ts +3 -6
- package/dist/mc/tva.js +9 -50
- package/dist/mc/tva.js.map +1 -1
- package/dist/md/idno.d.ts +3 -5
- package/dist/md/idno.js +6 -58
- package/dist/md/idno.js.map +1 -1
- package/dist/md/mod.d.ts +0 -2
- package/dist/md/mod.js +1 -1
- package/dist/md/mod.js.map +1 -1
- package/dist/me/mod.d.ts +0 -2
- package/dist/me/mod.js +1 -1
- package/dist/me/mod.js.map +1 -1
- package/dist/me/pib.d.ts +3 -6
- package/dist/me/pib.js +9 -51
- package/dist/me/pib.js.map +1 -1
- package/dist/metadata.d.ts +3505 -0
- package/dist/metadata.js +4949 -0
- package/dist/metadata.js.map +1 -0
- package/dist/mk/edb.d.ts +3 -6
- package/dist/mk/edb.js +9 -64
- package/dist/mk/edb.js.map +1 -1
- package/dist/mk/mod.d.ts +0 -2
- package/dist/mk/mod.js +1 -1
- package/dist/mk/mod.js.map +1 -1
- package/dist/mt/mod.d.ts +0 -2
- package/dist/mt/mod.js +1 -1
- package/dist/mt/mod.js.map +1 -1
- package/dist/mt/vat.d.ts +3 -6
- package/dist/mt/vat.js +9 -58
- package/dist/mt/vat.js.map +1 -1
- package/dist/mu/brn.d.ts +4 -28
- package/dist/mu/brn.js +9 -44
- package/dist/mu/brn.js.map +1 -1
- package/dist/mu/mod.d.ts +0 -2
- package/dist/mu/mod.js +1 -1
- package/dist/mu/mod.js.map +1 -1
- package/dist/mx/clabe.d.ts +3 -10
- package/dist/mx/clabe.js +9 -70
- package/dist/mx/clabe.js.map +1 -1
- package/dist/mx/curp.d.ts +5 -16
- package/dist/mx/curp.js +10 -144
- package/dist/mx/curp.js.map +1 -1
- package/dist/mx/mod.d.ts +0 -2
- package/dist/mx/mod.js +1 -1
- package/dist/mx/mod.js.map +1 -1
- package/dist/mx/rfc.d.ts +3 -10
- package/dist/mx/rfc.js +9 -91
- package/dist/mx/rfc.js.map +1 -1
- package/dist/my/mod.d.ts +0 -2
- package/dist/my/mod.js +1 -1
- package/dist/my/mod.js.map +1 -1
- package/dist/my/nric.d.ts +5 -12
- package/dist/my/nric.js +10 -184
- package/dist/my/nric.js.map +1 -1
- package/dist/native-node.d.ts +14 -0
- package/dist/native-node.js +75 -0
- package/dist/native-node.js.map +1 -0
- package/dist/native.d.ts +79 -0
- package/dist/native.js +24 -0
- package/dist/native.js.map +1 -0
- package/dist/ng/mod.d.ts +0 -2
- package/dist/ng/mod.js +1 -1
- package/dist/ng/mod.js.map +1 -1
- package/dist/ng/nin.d.ts +4 -18
- package/dist/ng/nin.js +9 -40
- package/dist/ng/nin.js.map +1 -1
- package/dist/ni/mod.d.ts +0 -2
- package/dist/ni/mod.js +1 -1
- package/dist/ni/mod.js.map +1 -1
- package/dist/ni/ruc.d.ts +3 -15
- package/dist/ni/ruc.js +9 -87
- package/dist/ni/ruc.js.map +1 -1
- package/dist/nl/bsn.d.ts +3 -6
- package/dist/nl/bsn.js +9 -58
- package/dist/nl/bsn.js.map +1 -1
- package/dist/nl/kvk.d.ts +4 -14
- package/dist/nl/kvk.js +9 -35
- package/dist/nl/kvk.js.map +1 -1
- package/dist/nl/mod.d.ts +0 -2
- package/dist/nl/mod.js +2 -2
- package/dist/nl/mod.js.map +1 -1
- package/dist/nl/vat.d.ts +3 -6
- package/dist/nl/vat.js +9 -44
- package/dist/nl/vat.js.map +1 -1
- package/dist/no/fodselsnummer.d.ts +5 -13
- package/dist/no/fodselsnummer.js +10 -123
- package/dist/no/fodselsnummer.js.map +1 -1
- package/dist/no/mod.d.ts +2 -4
- package/dist/no/mod.js +3 -3
- package/dist/no/mod.js.map +1 -1
- package/dist/no/mva.d.ts +3 -6
- package/dist/no/mva.js +9 -43
- package/dist/no/mva.js.map +1 -1
- package/dist/no/orgnr.d.ts +3 -6
- package/dist/no/orgnr.js +9 -56
- package/dist/no/orgnr.js.map +1 -1
- package/dist/nz/ird.d.ts +3 -6
- package/dist/nz/ird.js +9 -92
- package/dist/nz/ird.js.map +1 -1
- package/dist/nz/mod.d.ts +0 -2
- package/dist/nz/mod.js +1 -1
- package/dist/nz/mod.js.map +1 -1
- package/dist/pa/mod.d.ts +0 -2
- package/dist/pa/mod.js +1 -1
- package/dist/pa/mod.js.map +1 -1
- package/dist/pa/ruc.d.ts +3 -15
- package/dist/pa/ruc.js +9 -181
- package/dist/pa/ruc.js.map +1 -1
- package/dist/patterns.d.ts +6 -35
- package/dist/patterns.js +10 -171
- package/dist/patterns.js.map +1 -1
- package/dist/pe/mod.d.ts +0 -2
- package/dist/pe/mod.js +1 -1
- package/dist/pe/mod.js.map +1 -1
- package/dist/pe/ruc.d.ts +3 -11
- package/dist/pe/ruc.js +9 -91
- package/dist/pe/ruc.js.map +1 -1
- package/dist/ph/mod.d.ts +0 -2
- package/dist/ph/mod.js +1 -1
- package/dist/ph/mod.js.map +1 -1
- package/dist/ph/philid.d.ts +4 -19
- package/dist/ph/philid.js +9 -45
- package/dist/ph/philid.js.map +1 -1
- package/dist/pk/cnic.d.ts +4 -19
- package/dist/pk/cnic.js +9 -54
- package/dist/pk/cnic.js.map +1 -1
- package/dist/pk/mod.d.ts +0 -2
- package/dist/pk/mod.js +1 -1
- package/dist/pk/mod.js.map +1 -1
- package/dist/pl/mod.d.ts +0 -2
- package/dist/pl/mod.js +1 -1
- package/dist/pl/mod.js.map +1 -1
- package/dist/pl/nip.d.ts +3 -10
- package/dist/pl/nip.js +9 -65
- package/dist/pl/nip.js.map +1 -1
- package/dist/pl/pesel.d.ts +5 -12
- package/dist/pl/pesel.js +10 -96
- package/dist/pl/pesel.js.map +1 -1
- package/dist/pl/regon.d.ts +3 -6
- package/dist/pl/regon.js +9 -72
- package/dist/pl/regon.js.map +1 -1
- package/dist/pt/cc.d.ts +3 -6
- package/dist/pt/cc.js +9 -67
- package/dist/pt/cc.js.map +1 -1
- package/dist/pt/mod.d.ts +0 -2
- package/dist/pt/mod.js +2 -2
- package/dist/pt/mod.js.map +1 -1
- package/dist/pt/vat.d.ts +3 -6
- package/dist/pt/vat.js +9 -61
- package/dist/pt/vat.js.map +1 -1
- package/dist/registry.d.ts +6 -0
- package/dist/registry.js +357 -0
- package/dist/registry.js.map +1 -0
- package/dist/ro/cnp.d.ts +5 -12
- package/dist/ro/cnp.js +10 -163
- package/dist/ro/cnp.js.map +1 -1
- package/dist/ro/mod.d.ts +0 -2
- package/dist/ro/mod.js +2 -2
- package/dist/ro/mod.js.map +1 -1
- package/dist/ro/vat.d.ts +3 -6
- package/dist/ro/vat.js +9 -74
- package/dist/ro/vat.js.map +1 -1
- package/dist/rs/mod.d.ts +0 -2
- package/dist/rs/mod.js +1 -1
- package/dist/rs/mod.js.map +1 -1
- package/dist/rs/pib.d.ts +3 -6
- package/dist/rs/pib.js +9 -48
- package/dist/rs/pib.js.map +1 -1
- package/dist/ru/inn.d.ts +3 -6
- package/dist/ru/inn.js +9 -89
- package/dist/ru/inn.js.map +1 -1
- package/dist/ru/mod.d.ts +0 -2
- package/dist/ru/mod.js +1 -1
- package/dist/ru/mod.js.map +1 -1
- package/dist/runtime.js +121 -0
- package/dist/runtime.js.map +1 -0
- package/dist/se/mod.d.ts +0 -2
- package/dist/se/mod.js +2 -2
- package/dist/se/mod.js.map +1 -1
- package/dist/se/orgnr.d.ts +3 -6
- package/dist/se/orgnr.js +9 -48
- package/dist/se/orgnr.js.map +1 -1
- package/dist/se/personnummer.d.ts +5 -16
- package/dist/se/personnummer.js +10 -111
- package/dist/se/personnummer.js.map +1 -1
- package/dist/se/vat.d.ts +3 -6
- package/dist/se/vat.js +9 -52
- package/dist/se/vat.js.map +1 -1
- package/dist/sg/mod.d.ts +0 -2
- package/dist/sg/mod.js +1 -1
- package/dist/sg/mod.js.map +1 -1
- package/dist/sg/uen.d.ts +3 -6
- package/dist/sg/uen.js +9 -180
- package/dist/sg/uen.js.map +1 -1
- package/dist/si/emso.d.ts +5 -12
- package/dist/si/emso.js +10 -102
- package/dist/si/emso.js.map +1 -1
- package/dist/si/mod.d.ts +0 -2
- package/dist/si/mod.js +2 -2
- package/dist/si/mod.js.map +1 -1
- package/dist/si/vat.d.ts +3 -6
- package/dist/si/vat.js +9 -61
- package/dist/si/vat.js.map +1 -1
- package/dist/sk/dic.d.ts +3 -6
- package/dist/sk/dic.js +9 -63
- package/dist/sk/dic.js.map +1 -1
- package/dist/sk/ico.d.ts +6 -5
- package/dist/sk/ico.js +9 -27
- package/dist/sk/ico.js.map +1 -1
- package/dist/sk/mod.d.ts +0 -2
- package/dist/sk/mod.js +1 -1
- package/dist/sk/mod.js.map +1 -1
- package/dist/sk/rc.d.ts +7 -5
- package/dist/sk/rc.js +10 -30
- package/dist/sk/rc.js.map +1 -1
- package/dist/th/mod.d.ts +0 -2
- package/dist/th/mod.js +1 -1
- package/dist/th/mod.js.map +1 -1
- package/dist/th/tin.d.ts +3 -6
- package/dist/th/tin.js +9 -49
- package/dist/th/tin.js.map +1 -1
- package/dist/tr/mod.d.ts +0 -2
- package/dist/tr/mod.js +1 -1
- package/dist/tr/mod.js.map +1 -1
- package/dist/tr/tckimlik.d.ts +3 -7
- package/dist/tr/tckimlik.js +9 -56
- package/dist/tr/tckimlik.js.map +1 -1
- package/dist/tr/vkn.d.ts +3 -7
- package/dist/tr/vkn.js +9 -56
- package/dist/tr/vkn.js.map +1 -1
- package/dist/tw/mod.d.ts +0 -2
- package/dist/tw/mod.js +1 -1
- package/dist/tw/mod.js.map +1 -1
- package/dist/tw/ubn.d.ts +3 -6
- package/dist/tw/ubn.js +9 -72
- package/dist/tw/ubn.js.map +1 -1
- package/dist/types.d.ts +16 -85
- package/dist/ua/edrpou.d.ts +3 -6
- package/dist/ua/edrpou.js +9 -92
- package/dist/ua/edrpou.js.map +1 -1
- package/dist/ua/mod.d.ts +0 -2
- package/dist/ua/mod.js +1 -1
- package/dist/ua/mod.js.map +1 -1
- package/dist/us/ein.d.ts +4 -17
- package/dist/us/ein.js +9 -221
- package/dist/us/ein.js.map +1 -1
- package/dist/us/itin.d.ts +4 -20
- package/dist/us/itin.js +9 -54
- package/dist/us/itin.js.map +1 -1
- package/dist/us/mod.d.ts +0 -2
- package/dist/us/mod.js +1 -1
- package/dist/us/mod.js.map +1 -1
- package/dist/us/rtn.d.ts +3 -6
- package/dist/us/rtn.js +9 -75
- package/dist/us/rtn.js.map +1 -1
- package/dist/us/ssn.d.ts +4 -18
- package/dist/us/ssn.js +9 -63
- package/dist/us/ssn.js.map +1 -1
- package/dist/uy/mod.d.ts +0 -2
- package/dist/uy/mod.js +1 -1
- package/dist/uy/mod.js.map +1 -1
- package/dist/uy/rut.d.ts +3 -10
- package/dist/uy/rut.js +9 -88
- package/dist/uy/rut.js.map +1 -1
- package/dist/ve/mod.d.ts +0 -2
- package/dist/ve/mod.js +1 -1
- package/dist/ve/mod.js.map +1 -1
- package/dist/ve/rif.d.ts +3 -10
- package/dist/ve/rif.js +9 -92
- package/dist/ve/rif.js.map +1 -1
- package/dist/vn/mod.d.ts +0 -2
- package/dist/vn/mod.js +1 -1
- package/dist/vn/mod.js.map +1 -1
- package/dist/vn/mst.d.ts +3 -6
- package/dist/vn/mst.js +9 -67
- package/dist/vn/mst.js.map +1 -1
- package/dist/za/idnr.d.ts +5 -12
- package/dist/za/idnr.js +10 -94
- package/dist/za/idnr.js.map +1 -1
- package/dist/za/mod.d.ts +0 -2
- package/dist/za/mod.js +1 -1
- package/dist/za/mod.js.map +1 -1
- package/index.cjs +3 -0
- package/package.json +38 -62
- package/registry.json +4829 -0
- package/registry.schema.json +94 -0
- package/LICENSE +0 -21
- package/README.md +0 -346
- package/dist/_checksums/keccak.d.ts +0 -5
- package/dist/_checksums/keccak.js +0 -118
- package/dist/_checksums/keccak.js.map +0 -1
- package/dist/_checksums/luhn.d.ts +0 -12
- package/dist/_checksums/luhn.js +0 -26
- package/dist/_checksums/luhn.js.map +0 -1
- package/dist/_checksums/mod1110.d.ts +0 -12
- package/dist/_checksums/mod1110.js +0 -25
- package/dist/_checksums/mod1110.js.map +0 -1
- package/dist/_checksums/mod112.d.ts +0 -24
- package/dist/_checksums/mod112.js +0 -53
- package/dist/_checksums/mod112.js.map +0 -1
- package/dist/_checksums/mod97.d.ts +0 -23
- package/dist/_checksums/mod97.js +0 -28
- package/dist/_checksums/mod97.js.map +0 -1
- package/dist/_checksums/sha256.d.ts +0 -5
- package/dist/_checksums/sha256.js +0 -164
- package/dist/_checksums/sha256.js.map +0 -1
- package/dist/_checksums/verhoeff.d.ts +0 -22
- package/dist/_checksums/verhoeff.js +0 -271
- package/dist/_checksums/verhoeff.js.map +0 -1
- package/dist/_checksums/weighted-sum.d.ts +0 -13
- package/dist/_checksums/weighted-sum.js +0 -22
- package/dist/_checksums/weighted-sum.js.map +0 -1
- package/dist/_util/arabic.d.ts +0 -19
- package/dist/_util/arabic.js +0 -41
- package/dist/_util/arabic.js.map +0 -1
- package/dist/_util/clean.d.ts +0 -18
- package/dist/_util/clean.js +0 -76
- package/dist/_util/clean.js.map +0 -1
- package/dist/_util/date.d.ts +0 -12
- package/dist/_util/date.js +0 -19
- package/dist/_util/date.js.map +0 -1
- package/dist/_util/generate.d.ts +0 -28
- package/dist/_util/generate.js +0 -43
- package/dist/_util/generate.js.map +0 -1
- package/dist/_util/result.d.ts +0 -8
- package/dist/_util/result.js +0 -13
- package/dist/_util/result.js.map +0 -1
- package/dist/_util/strings.d.ts +0 -21
- package/dist/_util/strings.js +0 -28
- package/dist/_util/strings.js.map +0 -1
- package/src/_checksums/keccak.ts +0 -145
- package/src/_checksums/luhn.ts +0 -24
- package/src/_checksums/mod1110.ts +0 -24
- package/src/_checksums/mod112.ts +0 -41
- package/src/_checksums/mod97.ts +0 -28
- package/src/_checksums/sha256.ts +0 -125
- package/src/_checksums/verhoeff.ts +0 -71
- package/src/_checksums/weighted-sum.ts +0 -23
- package/src/_util/arabic.ts +0 -48
- package/src/_util/clean.ts +0 -91
- package/src/_util/date.ts +0 -23
- package/src/_util/generate.ts +0 -62
- package/src/_util/result.ts +0 -10
- package/src/_util/strings.ts +0 -32
- package/src/ad/mod.ts +0 -1
- package/src/ad/nrt.ts +0 -123
- package/src/ae/eid.ts +0 -110
- package/src/ae/mod.ts +0 -1
- package/src/ai/mod.ts +0 -1
- package/src/ai/tin.ts +0 -102
- package/src/al/mod.ts +0 -1
- package/src/al/nipt.ts +0 -82
- package/src/am/mod.ts +0 -1
- package/src/am/tin.ts +0 -77
- package/src/ar/cbu.ts +0 -110
- package/src/ar/cuit.ts +0 -149
- package/src/ar/dni.ts +0 -83
- package/src/ar/mod.ts +0 -3
- package/src/at/businessid.ts +0 -78
- package/src/at/mod.ts +0 -4
- package/src/at/tin.ts +0 -94
- package/src/at/uid.ts +0 -96
- package/src/at/vnr.ts +0 -161
- package/src/au/abn.ts +0 -89
- package/src/au/acn.ts +0 -90
- package/src/au/mod.ts +0 -3
- package/src/au/tfn.ts +0 -89
- package/src/az/mod.ts +0 -1
- package/src/az/voen.ts +0 -131
- package/src/ba/jmbg.ts +0 -130
- package/src/ba/mod.ts +0 -1
- package/src/bd/mod.ts +0 -1
- package/src/bd/nid.ts +0 -143
- package/src/be/bis.ts +0 -109
- package/src/be/mod.ts +0 -3
- package/src/be/nn.ts +0 -129
- package/src/be/vat.ts +0 -111
- package/src/bg/egn.ts +0 -164
- package/src/bg/mod.ts +0 -3
- package/src/bg/pnf.ts +0 -90
- package/src/bg/vat.ts +0 -160
- package/src/bh/cpr.ts +0 -94
- package/src/bh/mod.ts +0 -1
- package/src/bic.ts +0 -105
- package/src/br/cnpj.ts +0 -156
- package/src/br/cpf.ts +0 -118
- package/src/br/mod.ts +0 -2
- package/src/by/mod.ts +0 -1
- package/src/by/unp.ts +0 -163
- package/src/bz/mod.ts +0 -1
- package/src/bz/tin.ts +0 -122
- package/src/ca/bn.ts +0 -111
- package/src/ca/mod.ts +0 -2
- package/src/ca/sin.ts +0 -95
- package/src/ch/mod.ts +0 -3
- package/src/ch/ssn.ts +0 -99
- package/src/ch/uid.ts +0 -112
- package/src/ch/vat.ts +0 -89
- package/src/cl/mod.ts +0 -1
- package/src/cl/rut.ts +0 -124
- package/src/cn/mod.ts +0 -2
- package/src/cn/ric.ts +0 -184
- package/src/cn/uscc.ts +0 -127
- package/src/co/mod.ts +0 -1
- package/src/co/nit.ts +0 -116
- package/src/cr/cpf.ts +0 -116
- package/src/cr/mod.ts +0 -1
- package/src/creditcard.ts +0 -194
- package/src/crypto/btcbase58.ts +0 -144
- package/src/crypto/btcbech32.ts +0 -210
- package/src/crypto/eth.ts +0 -114
- package/src/crypto/mod.ts +0 -4
- package/src/crypto/wallet.ts +0 -67
- package/src/cu/mod.ts +0 -1
- package/src/cu/ni.ts +0 -146
- package/src/cy/mod.ts +0 -1
- package/src/cy/vat.ts +0 -134
- package/src/cz/dic.ts +0 -140
- package/src/cz/ico.ts +0 -86
- package/src/cz/mod.ts +0 -3
- package/src/cz/rc.ts +0 -222
- package/src/de/handelsreg.ts +0 -122
- package/src/de/idnr.ts +0 -147
- package/src/de/mod.ts +0 -5
- package/src/de/stnr.ts +0 -222
- package/src/de/svnr.ts +0 -171
- package/src/de/vat.ts +0 -102
- package/src/dk/cpr.ts +0 -137
- package/src/dk/cvr.ts +0 -91
- package/src/dk/mod.ts +0 -3
- package/src/dk/vat.ts +0 -96
- package/src/do/mod.ts +0 -1
- package/src/do/rnc.ts +0 -130
- package/src/ec/mod.ts +0 -1
- package/src/ec/ruc.ts +0 -199
- package/src/ee/ik.ts +0 -167
- package/src/ee/mod.ts +0 -3
- package/src/ee/registrikood.ts +0 -86
- package/src/ee/vat.ts +0 -89
- package/src/eg/mod.ts +0 -1
- package/src/eg/tn.ts +0 -107
- package/src/es/cif.ts +0 -108
- package/src/es/dni.ts +0 -94
- package/src/es/mod.ts +0 -5
- package/src/es/nie.ts +0 -111
- package/src/es/nss.ts +0 -113
- package/src/es/vat.ts +0 -186
- package/src/eu/mod.ts +0 -1
- package/src/eu/vat.ts +0 -220
- package/src/fi/hetu.ts +0 -200
- package/src/fi/mod.ts +0 -3
- package/src/fi/vat.ts +0 -87
- package/src/fi/ytunnus.ts +0 -87
- package/src/fr/mod.ts +0 -5
- package/src/fr/nif.ts +0 -97
- package/src/fr/nir.ts +0 -197
- package/src/fr/siren.ts +0 -83
- package/src/fr/siret.ts +0 -126
- package/src/fr/tva.ts +0 -150
- package/src/gb/mod.ts +0 -5
- package/src/gb/nhs.ts +0 -92
- package/src/gb/nino.ts +0 -158
- package/src/gb/sedol.ts +0 -143
- package/src/gb/utr.ts +0 -85
- package/src/gb/vat.ts +0 -162
- package/src/ge/mod.ts +0 -1
- package/src/ge/pin.ts +0 -75
- package/src/gh/mod.ts +0 -1
- package/src/gh/tin.ts +0 -105
- package/src/gr/amka.ts +0 -108
- package/src/gr/mod.ts +0 -2
- package/src/gr/vat.ts +0 -100
- package/src/gt/mod.ts +0 -1
- package/src/gt/nit.ts +0 -123
- package/src/hk/hkid.ts +0 -136
- package/src/hk/mod.ts +0 -1
- package/src/hr/mod.ts +0 -1
- package/src/hr/vat.ts +0 -83
- package/src/hu/mod.ts +0 -1
- package/src/hu/vat.ts +0 -87
- package/src/iban.ts +0 -344
- package/src/id/mod.ts +0 -1
- package/src/id/npwp.ts +0 -191
- package/src/ie/mod.ts +0 -2
- package/src/ie/pps.ts +0 -109
- package/src/ie/vat.ts +0 -142
- package/src/il/idnr.ts +0 -91
- package/src/il/mod.ts +0 -1
- package/src/in/aadhaar.ts +0 -100
- package/src/in/gstin.ts +0 -175
- package/src/in/mod.ts +0 -3
- package/src/in/pan.ts +0 -97
- package/src/index.ts +0 -123
- package/src/iq/mod.ts +0 -1
- package/src/iq/nid.ts +0 -75
- package/src/ir/mod.ts +0 -1
- package/src/ir/nid.ts +0 -124
- package/src/is/kennitala.ts +0 -129
- package/src/is/mod.ts +0 -2
- package/src/is/vsk.ts +0 -67
- package/src/isin.ts +0 -124
- package/src/it/codicefiscale.ts +0 -332
- package/src/it/iva.ts +0 -119
- package/src/it/mod.ts +0 -2
- package/src/jp/cn.ts +0 -95
- package/src/jp/mod.ts +0 -2
- package/src/jp/mynumber.ts +0 -107
- package/src/kr/brn.ts +0 -105
- package/src/kr/mod.ts +0 -2
- package/src/kr/rrn.ts +0 -189
- package/src/kw/civil.ts +0 -161
- package/src/kw/mod.ts +0 -1
- package/src/kz/iin.ts +0 -184
- package/src/kz/mod.ts +0 -1
- package/src/lei.ts +0 -102
- package/src/li/mod.ts +0 -1
- package/src/li/peid.ts +0 -70
- package/src/lk/mod.ts +0 -1
- package/src/lk/nic.ts +0 -233
- package/src/lt/asmens.ts +0 -124
- package/src/lt/mod.ts +0 -2
- package/src/lt/vat.ts +0 -114
- package/src/lu/mod.ts +0 -1
- package/src/lu/vat.ts +0 -85
- package/src/luhn.ts +0 -79
- package/src/lv/mod.ts +0 -1
- package/src/lv/vat.ts +0 -169
- package/src/ma/ice.ts +0 -83
- package/src/ma/mod.ts +0 -1
- package/src/mc/mod.ts +0 -1
- package/src/mc/tva.ts +0 -78
- package/src/md/idno.ts +0 -90
- package/src/md/mod.ts +0 -1
- package/src/me/mod.ts +0 -1
- package/src/me/pib.ts +0 -83
- package/src/mk/edb.ts +0 -95
- package/src/mk/mod.ts +0 -1
- package/src/mt/mod.ts +0 -1
- package/src/mt/vat.ts +0 -93
- package/src/mu/brn.ts +0 -106
- package/src/mu/mod.ts +0 -1
- package/src/mx/clabe.ts +0 -115
- package/src/mx/curp.ts +0 -247
- package/src/mx/mod.ts +0 -3
- package/src/mx/rfc.ts +0 -179
- package/src/my/mod.ts +0 -1
- package/src/my/nric.ts +0 -260
- package/src/ng/mod.ts +0 -1
- package/src/ng/nin.ts +0 -76
- package/src/ni/mod.ts +0 -1
- package/src/ni/ruc.ts +0 -180
- package/src/nl/bsn.ts +0 -91
- package/src/nl/kvk.ts +0 -63
- package/src/nl/mod.ts +0 -3
- package/src/nl/vat.ts +0 -95
- package/src/no/fodselsnummer.ts +0 -197
- package/src/no/mod.ts +0 -3
- package/src/no/mva.ts +0 -77
- package/src/no/orgnr.ts +0 -83
- package/src/nz/ird.ts +0 -132
- package/src/nz/mod.ts +0 -1
- package/src/pa/mod.ts +0 -1
- package/src/pa/ruc.ts +0 -387
- package/src/patterns.ts +0 -390
- package/src/pe/mod.ts +0 -1
- package/src/pe/ruc.ts +0 -124
- package/src/ph/mod.ts +0 -1
- package/src/ph/philid.ts +0 -80
- package/src/pk/cnic.ts +0 -109
- package/src/pk/mod.ts +0 -1
- package/src/pl/mod.ts +0 -3
- package/src/pl/nip.ts +0 -100
- package/src/pl/pesel.ts +0 -155
- package/src/pl/regon.ts +0 -102
- package/src/pt/cc.ts +0 -112
- package/src/pt/mod.ts +0 -2
- package/src/pt/vat.ts +0 -98
- package/src/ro/cnp.ts +0 -179
- package/src/ro/mod.ts +0 -2
- package/src/ro/vat.ts +0 -99
- package/src/rs/mod.ts +0 -1
- package/src/rs/pib.ts +0 -87
- package/src/ru/inn.ts +0 -113
- package/src/ru/mod.ts +0 -1
- package/src/se/mod.ts +0 -3
- package/src/se/orgnr.ts +0 -85
- package/src/se/personnummer.ts +0 -183
- package/src/se/vat.ts +0 -97
- package/src/sg/mod.ts +0 -1
- package/src/sg/uen.ts +0 -288
- package/src/si/emso.ts +0 -178
- package/src/si/mod.ts +0 -2
- package/src/si/vat.ts +0 -113
- package/src/sk/dic.ts +0 -110
- package/src/sk/ico.ts +0 -40
- package/src/sk/mod.ts +0 -3
- package/src/sk/rc.ts +0 -44
- package/src/th/mod.ts +0 -1
- package/src/th/tin.ts +0 -106
- package/src/tr/mod.ts +0 -2
- package/src/tr/tckimlik.ts +0 -115
- package/src/tr/vkn.ts +0 -101
- package/src/tw/mod.ts +0 -1
- package/src/tw/ubn.ts +0 -112
- package/src/types.ts +0 -262
- package/src/ua/edrpou.ts +0 -108
- package/src/ua/mod.ts +0 -1
- package/src/us/ein.ts +0 -261
- package/src/us/itin.ts +0 -129
- package/src/us/mod.ts +0 -4
- package/src/us/rtn.ts +0 -139
- package/src/us/ssn.ts +0 -121
- package/src/uy/mod.ts +0 -1
- package/src/uy/rut.ts +0 -150
- package/src/ve/mod.ts +0 -1
- package/src/ve/rif.ts +0 -147
- package/src/vn/mod.ts +0 -1
- package/src/vn/mst.ts +0 -132
- package/src/za/idnr.ts +0 -159
- package/src/za/mod.ts +0 -1
package/src/patterns.ts
DELETED
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Derive candidate-matching regex patterns from
|
|
3
|
-
* validators. These patterns find CANDIDATES in
|
|
4
|
-
* text — use `validate()` to confirm each match.
|
|
5
|
-
*
|
|
6
|
-
* Designed for integration with regex-set or
|
|
7
|
-
* similar multi-pattern scanning engines.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* import {
|
|
12
|
-
* toRegex, byCountry, byEntityType,
|
|
13
|
-
* } from "@stll/stdnum/patterns";
|
|
14
|
-
* import { cz } from "@stll/stdnum";
|
|
15
|
-
*
|
|
16
|
-
* // Single validator
|
|
17
|
-
* toRegex(cz.ico);
|
|
18
|
-
* // → /(?<!\w)\d{8}(?!\w)/g
|
|
19
|
-
*
|
|
20
|
-
* // All Czech validators
|
|
21
|
-
* byCountry("CZ");
|
|
22
|
-
* // → [{ validator: cz.ico, regex }, ...]
|
|
23
|
-
*
|
|
24
|
-
* // All company identifiers
|
|
25
|
-
* byEntityType("company");
|
|
26
|
-
* // → [{ validator, regex }, ...]
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
import type {
|
|
31
|
-
CountryCode,
|
|
32
|
-
CountryValidator,
|
|
33
|
-
Validator,
|
|
34
|
-
} from "./types";
|
|
35
|
-
|
|
36
|
-
// ─── Pattern type ─────────────────────────────
|
|
37
|
-
|
|
38
|
-
export type ValidatorPattern<
|
|
39
|
-
TValidator extends Validator = Validator,
|
|
40
|
-
> = {
|
|
41
|
-
/** The validator this pattern was derived from. */
|
|
42
|
-
validator: TValidator;
|
|
43
|
-
/** Loose regex matching candidates in text. */
|
|
44
|
-
regex: RegExp;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
// ─── Regex derivation ─────────────────────────
|
|
48
|
-
|
|
49
|
-
/** Separator chars that compact() strips. */
|
|
50
|
-
const SEP = "[\\s\\-./]?";
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Infer compact lengths from metadata or examples.
|
|
54
|
-
*/
|
|
55
|
-
const inferLengths = (v: Validator): number[] => {
|
|
56
|
-
if (v.lengths && v.lengths.length > 0) {
|
|
57
|
-
return [...v.lengths];
|
|
58
|
-
}
|
|
59
|
-
if (v.examples && v.examples.length > 0) {
|
|
60
|
-
const lens = new Set<number>();
|
|
61
|
-
for (const ex of v.examples) {
|
|
62
|
-
lens.add(v.compact(ex).length);
|
|
63
|
-
}
|
|
64
|
-
return [...lens];
|
|
65
|
-
}
|
|
66
|
-
return [];
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Derive the display grouping from format().
|
|
71
|
-
* Returns an array of group sizes, e.g.,
|
|
72
|
-
* "25 123 891" → [2, 3, 3].
|
|
73
|
-
*/
|
|
74
|
-
const inferGroups = (v: Validator): number[] | null => {
|
|
75
|
-
const first = v.examples?.[0];
|
|
76
|
-
if (first === undefined) return null;
|
|
77
|
-
const compact = v.compact(first);
|
|
78
|
-
const formatted = v.format(compact);
|
|
79
|
-
if (formatted === compact) return null;
|
|
80
|
-
|
|
81
|
-
// Split on non-alphanumeric separators
|
|
82
|
-
const parts = formatted.split(/[^a-zA-Z0-9]+/);
|
|
83
|
-
if (parts.length <= 1) return null;
|
|
84
|
-
|
|
85
|
-
// For digit-only validators, skip letter-only
|
|
86
|
-
// tokens (prefix like "CHE"). For alphanumeric
|
|
87
|
-
// validators (IBAN, ISIN), keep all groups.
|
|
88
|
-
const isAlphanumeric = parts.some(
|
|
89
|
-
(p) => /[a-zA-Z]/.test(p) && /\d/.test(p),
|
|
90
|
-
);
|
|
91
|
-
const groups = parts
|
|
92
|
-
.filter(
|
|
93
|
-
(p) =>
|
|
94
|
-
p.length > 0 && (isAlphanumeric || /\d/.test(p)),
|
|
95
|
-
)
|
|
96
|
-
.map((p) => p.length);
|
|
97
|
-
|
|
98
|
-
return groups.length > 1 ? groups : null;
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Detect if this validator uses a known prefix
|
|
103
|
-
* (e.g., "CZ" for DIČ, "CHE" for Swiss UID).
|
|
104
|
-
*/
|
|
105
|
-
const inferPrefix = (v: Validator): string | null => {
|
|
106
|
-
const examples = v.examples;
|
|
107
|
-
const first = examples?.[0];
|
|
108
|
-
if (!examples || first === undefined) return null;
|
|
109
|
-
const compact = v.compact(first);
|
|
110
|
-
// Prefix already present in compact form.
|
|
111
|
-
// But only if ALL examples share the same prefix
|
|
112
|
-
// (e.g., "CHE" for Swiss UID). If examples have
|
|
113
|
-
// different prefixes (IBAN: GB/DE/FR), there's
|
|
114
|
-
// no fixed prefix — it's part of the value.
|
|
115
|
-
const compactMatch = compact.match(/^([A-Z]+)\d/);
|
|
116
|
-
const compactPrefix = compactMatch?.[1];
|
|
117
|
-
if (compactPrefix !== undefined && examples.length > 1) {
|
|
118
|
-
const allSame = examples.every((ex) =>
|
|
119
|
-
v.compact(ex).startsWith(compactPrefix),
|
|
120
|
-
);
|
|
121
|
-
if (allSame) return compactPrefix;
|
|
122
|
-
} else if (
|
|
123
|
-
compactPrefix !== undefined &&
|
|
124
|
-
examples.length === 1
|
|
125
|
-
) {
|
|
126
|
-
return compactPrefix;
|
|
127
|
-
}
|
|
128
|
-
// Prefix added only by format()
|
|
129
|
-
// (e.g., "DE" for de.vat, "CZ" for cz.dic)
|
|
130
|
-
const formatted = v.format(compact);
|
|
131
|
-
const fmtMatch = formatted.match(/^([A-Z]+)[\s\-./]?\d/);
|
|
132
|
-
const fmtPrefix = fmtMatch?.[1];
|
|
133
|
-
if (
|
|
134
|
-
fmtPrefix !== undefined &&
|
|
135
|
-
!compact.startsWith(fmtPrefix)
|
|
136
|
-
) {
|
|
137
|
-
return fmtPrefix;
|
|
138
|
-
}
|
|
139
|
-
return null;
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Character class for a string fragment:
|
|
144
|
-
* `\d` if all digits, `[A-Z]` if all letters,
|
|
145
|
-
* `[A-Z0-9]` if mixed.
|
|
146
|
-
*/
|
|
147
|
-
const charClassFor = (s: string): string => {
|
|
148
|
-
let hasLetter = false;
|
|
149
|
-
let hasDigit = false;
|
|
150
|
-
for (const ch of s) {
|
|
151
|
-
if (/[a-zA-Z]/.test(ch)) hasLetter = true;
|
|
152
|
-
if (/\d/.test(ch)) hasDigit = true;
|
|
153
|
-
}
|
|
154
|
-
if (hasLetter && hasDigit) return "[A-Z0-9]";
|
|
155
|
-
if (hasLetter) return "[A-Z]";
|
|
156
|
-
return "\\d";
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Determine the character class needed for the
|
|
161
|
-
* compact form: `\d` if all digits, `[A-Z0-9]`
|
|
162
|
-
* if alphanumeric, etc.
|
|
163
|
-
*/
|
|
164
|
-
const inferCharClass = (v: Validator): string => {
|
|
165
|
-
if (!v.examples || v.examples.length === 0) {
|
|
166
|
-
return "\\d";
|
|
167
|
-
}
|
|
168
|
-
const combined = v.examples
|
|
169
|
-
.map((ex) => v.compact(ex))
|
|
170
|
-
.join("");
|
|
171
|
-
return charClassFor(combined);
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
type PerGroup = { size: number; charClass: string };
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Infer per-group sizes AND character classes from
|
|
178
|
-
* format(). Returns groups with per-position char
|
|
179
|
-
* classes, e.g., "12 010188 M 01 1" →
|
|
180
|
-
* sizes: [2, 6, 1, 2, 1]
|
|
181
|
-
* classes: ["\d", "\d", "[A-Z]", "\d", "\d"]
|
|
182
|
-
*
|
|
183
|
-
* Only returns non-null when per-group classes
|
|
184
|
-
* differ (some groups are letters, some digits).
|
|
185
|
-
* Letter-only groups before the first digit group
|
|
186
|
-
* are treated as prefixes and excluded (handled
|
|
187
|
-
* by inferPrefix separately).
|
|
188
|
-
*/
|
|
189
|
-
const inferPerGroup = (v: Validator): PerGroup[] | null => {
|
|
190
|
-
const first = v.examples?.[0];
|
|
191
|
-
if (first === undefined) return null;
|
|
192
|
-
const compact = v.compact(first);
|
|
193
|
-
const formatted = v.format(compact);
|
|
194
|
-
if (formatted === compact) return null;
|
|
195
|
-
|
|
196
|
-
// Only applies to mixed validators (compact has
|
|
197
|
-
// both letters and digits in separate positions,
|
|
198
|
-
// like German SVNR "12010188M011").
|
|
199
|
-
const compactMixed =
|
|
200
|
-
/[a-zA-Z]/.test(compact) && /\d/.test(compact);
|
|
201
|
-
if (!compactMixed) return null;
|
|
202
|
-
|
|
203
|
-
// Also skip if any single part mixes letters and
|
|
204
|
-
// digits (IBAN, ISIN) — inferGroups already
|
|
205
|
-
// handles those correctly with the global class.
|
|
206
|
-
const parts = formatted.split(/[^a-zA-Z0-9]+/);
|
|
207
|
-
const isAlphanumeric = parts.some(
|
|
208
|
-
(p) => /[a-zA-Z]/.test(p) && /\d/.test(p),
|
|
209
|
-
);
|
|
210
|
-
if (isAlphanumeric) return null;
|
|
211
|
-
|
|
212
|
-
// Keep digit groups and letter-only groups that
|
|
213
|
-
// appear AFTER the first digit group (embedded
|
|
214
|
-
// letters). Skip letter-only groups before the
|
|
215
|
-
// first digit group (prefix like "CHE").
|
|
216
|
-
const filtered: PerGroup[] = [];
|
|
217
|
-
let seenDigitGroup = false;
|
|
218
|
-
for (const p of parts) {
|
|
219
|
-
if (p.length === 0) continue;
|
|
220
|
-
if (/\d/.test(p)) {
|
|
221
|
-
seenDigitGroup = true;
|
|
222
|
-
filtered.push({
|
|
223
|
-
size: p.length,
|
|
224
|
-
charClass: charClassFor(p),
|
|
225
|
-
});
|
|
226
|
-
} else if (seenDigitGroup) {
|
|
227
|
-
filtered.push({
|
|
228
|
-
size: p.length,
|
|
229
|
-
charClass: charClassFor(p),
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
if (filtered.length <= 1) return null;
|
|
235
|
-
|
|
236
|
-
const firstClass = filtered[0]?.charClass;
|
|
237
|
-
const allSame = filtered.every(
|
|
238
|
-
(g) => g.charClass === firstClass,
|
|
239
|
-
);
|
|
240
|
-
if (allSame) return null;
|
|
241
|
-
|
|
242
|
-
return filtered;
|
|
243
|
-
};
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Build a group regex from group sizes + char class.
|
|
247
|
-
* [2, 3, 3] with \d → /\d{2}[\s\-.]?\d{3}[\s\-.]?\d{3}/
|
|
248
|
-
*/
|
|
249
|
-
const groupsToPattern = (
|
|
250
|
-
groups: number[],
|
|
251
|
-
cc: string,
|
|
252
|
-
): string => groups.map((g) => `${cc}{${g}}`).join(SEP);
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* Build a group regex with per-group char classes.
|
|
256
|
-
* Produces tighter patterns when groups have different
|
|
257
|
-
* character types (e.g., digits vs letters).
|
|
258
|
-
*/
|
|
259
|
-
const groupsToPatternPerClass = (
|
|
260
|
-
groups: readonly { size: number; charClass: string }[],
|
|
261
|
-
): string =>
|
|
262
|
-
groups
|
|
263
|
-
.map(({ size, charClass }) => `${charClass}{${size}}`)
|
|
264
|
-
.join(SEP);
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Derive a loose candidate-matching regex from
|
|
268
|
-
* a validator. The regex finds potential matches;
|
|
269
|
-
* use `validate()` to confirm.
|
|
270
|
-
*
|
|
271
|
-
* Handles both digit-only (IČO, NIP) and
|
|
272
|
-
* alphanumeric (IBAN, BIC, ISIN, LEI) validators.
|
|
273
|
-
*/
|
|
274
|
-
export const toRegex = (v: Validator): RegExp => {
|
|
275
|
-
const prefix = inferPrefix(v);
|
|
276
|
-
const groups = inferGroups(v);
|
|
277
|
-
const lengths = inferLengths(v);
|
|
278
|
-
const cc = inferCharClass(v);
|
|
279
|
-
|
|
280
|
-
let pattern: string;
|
|
281
|
-
|
|
282
|
-
// Use per-group char classes when groups mix
|
|
283
|
-
// digits and letters (e.g., German SVNR:
|
|
284
|
-
// "12 010188 M 01 1" → [\d, \d, [A-Z], \d, \d]).
|
|
285
|
-
// This prevents overly broad [A-Z0-9] from
|
|
286
|
-
// matching all-caps prose as identifiers.
|
|
287
|
-
const perGroup = inferPerGroup(v);
|
|
288
|
-
|
|
289
|
-
if (perGroup && lengths.length <= 1) {
|
|
290
|
-
pattern = groupsToPatternPerClass(perGroup);
|
|
291
|
-
} else if (groups && lengths.length <= 1) {
|
|
292
|
-
pattern = groupsToPattern(groups, cc);
|
|
293
|
-
} else if (lengths.length === 1) {
|
|
294
|
-
pattern = `${cc}{${lengths[0]}}`;
|
|
295
|
-
} else if (lengths.length > 1) {
|
|
296
|
-
const min = Math.min(...lengths);
|
|
297
|
-
const max = Math.max(...lengths);
|
|
298
|
-
pattern = `${cc}{${min},${max}}`;
|
|
299
|
-
} else {
|
|
300
|
-
pattern = `${cc}{6,20}`;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
if (prefix) {
|
|
304
|
-
pattern = `${prefix}${SEP}${pattern}`;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
// Word boundary to avoid matching inside
|
|
308
|
-
// larger numbers
|
|
309
|
-
return new RegExp(`(?<!\\w)${pattern}(?!\\w)`, "g");
|
|
310
|
-
};
|
|
311
|
-
|
|
312
|
-
// ─── Grouped collections ──────────────────────
|
|
313
|
-
|
|
314
|
-
/**
|
|
315
|
-
* All discovered validators, lazily populated.
|
|
316
|
-
* Import * from "../src" would pull everything;
|
|
317
|
-
* instead, callers pass validators explicitly.
|
|
318
|
-
*/
|
|
319
|
-
|
|
320
|
-
/**
|
|
321
|
-
* Build patterns for a list of validators.
|
|
322
|
-
*/
|
|
323
|
-
export const toPatterns = <TValidator extends Validator>(
|
|
324
|
-
validators: readonly TValidator[],
|
|
325
|
-
): ValidatorPattern<TValidator>[] =>
|
|
326
|
-
validators.map((v) => ({
|
|
327
|
-
validator: v,
|
|
328
|
-
regex: toRegex(v),
|
|
329
|
-
}));
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* Filter validators by country code and build
|
|
333
|
-
* patterns.
|
|
334
|
-
*/
|
|
335
|
-
type CountryScopedValidator<
|
|
336
|
-
TValidator extends Validator,
|
|
337
|
-
TCountry extends CountryCode,
|
|
338
|
-
> =
|
|
339
|
-
TValidator extends CountryValidator<
|
|
340
|
-
infer TValidatorCountry,
|
|
341
|
-
infer TParsed
|
|
342
|
-
>
|
|
343
|
-
? TCountry extends TValidatorCountry
|
|
344
|
-
? TValidator & CountryValidator<TCountry, TParsed>
|
|
345
|
-
: TValidatorCountry extends TCountry
|
|
346
|
-
? TValidator
|
|
347
|
-
: never
|
|
348
|
-
: never;
|
|
349
|
-
|
|
350
|
-
export const byCountry = <
|
|
351
|
-
TCountry extends CountryCode,
|
|
352
|
-
TValidator extends Validator,
|
|
353
|
-
>(
|
|
354
|
-
country: TCountry,
|
|
355
|
-
validators: readonly TValidator[],
|
|
356
|
-
): ValidatorPattern<
|
|
357
|
-
CountryScopedValidator<TValidator, TCountry>
|
|
358
|
-
>[] => {
|
|
359
|
-
const countryValidators = validators.filter(
|
|
360
|
-
(
|
|
361
|
-
v,
|
|
362
|
-
): v is CountryScopedValidator<TValidator, TCountry> =>
|
|
363
|
-
v.scope === "country" && v.country === country,
|
|
364
|
-
);
|
|
365
|
-
return toPatterns(countryValidators);
|
|
366
|
-
};
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* Filter validators by entity type and build
|
|
370
|
-
* patterns.
|
|
371
|
-
*/
|
|
372
|
-
export const byEntityType = <TValidator extends Validator>(
|
|
373
|
-
entityType: "person" | "company" | "any",
|
|
374
|
-
validators: readonly TValidator[],
|
|
375
|
-
): ValidatorPattern<TValidator>[] =>
|
|
376
|
-
toPatterns(
|
|
377
|
-
validators.filter(
|
|
378
|
-
(v) =>
|
|
379
|
-
entityType === "any" ||
|
|
380
|
-
v.entityType === entityType ||
|
|
381
|
-
v.entityType === "any",
|
|
382
|
-
),
|
|
383
|
-
);
|
|
384
|
-
|
|
385
|
-
/**
|
|
386
|
-
* Build patterns for ALL provided validators.
|
|
387
|
-
*/
|
|
388
|
-
export const allPatterns = <TValidator extends Validator>(
|
|
389
|
-
validators: readonly TValidator[],
|
|
390
|
-
): ValidatorPattern<TValidator>[] => toPatterns(validators);
|
package/src/pe/mod.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as ruc } from "./ruc";
|
package/src/pe/ruc.ts
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RUC (Registro Único de Contribuyentes).
|
|
3
|
-
*
|
|
4
|
-
* Peruvian tax identification number assigned by SUNAT
|
|
5
|
-
* (Superintendencia Nacional de Aduanas y de
|
|
6
|
-
* Administración Tributaria). The number consists of
|
|
7
|
-
* 11 digits: a type prefix (10 = person, 20 = company,
|
|
8
|
-
* among others), 8 identification digits, and a check
|
|
9
|
-
* digit computed using a weighted modulo 11 algorithm.
|
|
10
|
-
*
|
|
11
|
-
* Format: XXXXXXXXXXX (11 digits, no separators).
|
|
12
|
-
*
|
|
13
|
-
* @see https://www.sunat.gob.pe/
|
|
14
|
-
* @see https://en.wikipedia.org/wiki/Tax_identification_number#Peru
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import type {
|
|
18
|
-
ValidateResult,
|
|
19
|
-
CountryValidator,
|
|
20
|
-
} from "../types";
|
|
21
|
-
|
|
22
|
-
import { clean } from "#util/clean";
|
|
23
|
-
import { randomDigits, randomPick } from "#util/generate";
|
|
24
|
-
import { err } from "#util/result";
|
|
25
|
-
import { isdigits } from "#util/strings";
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Valid type prefixes for RUC numbers.
|
|
29
|
-
* 10 = natural person, 15 = non-domiciled without RUC,
|
|
30
|
-
* 17 = non-domiciled, 20 = legal entity,
|
|
31
|
-
* others for specific entity types.
|
|
32
|
-
*/
|
|
33
|
-
const VALID_PREFIXES = new Set(["10", "15", "17", "20"]);
|
|
34
|
-
|
|
35
|
-
const WEIGHTS = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] as const;
|
|
36
|
-
const GENERATE_PREFIXES = ["10", "15", "17", "20"] as const;
|
|
37
|
-
|
|
38
|
-
const compact = (value: string): string =>
|
|
39
|
-
clean(value, " -.").trim();
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Compute the RUC check digit using weighted sum
|
|
43
|
-
* mod 11. Weights: [5, 4, 3, 2, 7, 6, 5, 4, 3, 2].
|
|
44
|
-
*
|
|
45
|
-
* check = 11 - (sum % 11); if >= 10, subtract 10.
|
|
46
|
-
*/
|
|
47
|
-
const calcCheckDigit = (body: string): number => {
|
|
48
|
-
let sum = 0;
|
|
49
|
-
for (const [i, weight] of WEIGHTS.entries()) {
|
|
50
|
-
sum += Number(body[i]) * weight;
|
|
51
|
-
}
|
|
52
|
-
const remainder = 11 - (sum % 11);
|
|
53
|
-
if (remainder >= 10) return remainder - 10;
|
|
54
|
-
return remainder;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
const validate = (value: string): ValidateResult => {
|
|
58
|
-
const v = compact(value);
|
|
59
|
-
|
|
60
|
-
if (v.length !== 11) {
|
|
61
|
-
return err("INVALID_LENGTH", "RUC must be 11 digits");
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (!isdigits(v)) {
|
|
65
|
-
return err(
|
|
66
|
-
"INVALID_FORMAT",
|
|
67
|
-
"RUC must contain only digits",
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const prefix = v.slice(0, 2);
|
|
72
|
-
if (!VALID_PREFIXES.has(prefix)) {
|
|
73
|
-
return err(
|
|
74
|
-
"INVALID_COMPONENT",
|
|
75
|
-
"RUC has an invalid type prefix",
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const expected = calcCheckDigit(v.slice(0, 10));
|
|
80
|
-
if (Number(v[10]) !== expected) {
|
|
81
|
-
return err(
|
|
82
|
-
"INVALID_CHECKSUM",
|
|
83
|
-
"RUC check digit does not match",
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return { valid: true, compact: v };
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
const format = (value: string): string => compact(value);
|
|
91
|
-
|
|
92
|
-
/** Generate a random valid Peruvian RUC. */
|
|
93
|
-
const generate = (): string => {
|
|
94
|
-
const prefix = randomPick(GENERATE_PREFIXES);
|
|
95
|
-
const body = prefix + randomDigits(8);
|
|
96
|
-
return body + String(calcCheckDigit(body));
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Peruvian RUC (tax identification number).
|
|
101
|
-
*
|
|
102
|
-
* Examples sourced from python-stdnum test suite
|
|
103
|
-
* (pe.ruc module).
|
|
104
|
-
*/
|
|
105
|
-
const ruc: CountryValidator<"PE"> = {
|
|
106
|
-
name: "Peruvian Tax ID",
|
|
107
|
-
localName: "Registro Único de Contribuyentes",
|
|
108
|
-
abbreviation: "RUC",
|
|
109
|
-
aliases: ["RUC"] as const,
|
|
110
|
-
candidatePattern: "\\d{11}",
|
|
111
|
-
scope: "country",
|
|
112
|
-
country: "PE",
|
|
113
|
-
entityType: "any",
|
|
114
|
-
compact,
|
|
115
|
-
format,
|
|
116
|
-
validate,
|
|
117
|
-
sourceUrl: "https://www.sunat.gob.pe/",
|
|
118
|
-
lengths: [11] as const,
|
|
119
|
-
examples: ["20131312955", "20100047218"] as const,
|
|
120
|
-
generate,
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
export default ruc;
|
|
124
|
-
export { compact, format, validate, generate };
|
package/src/ph/mod.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as philid } from "./philid";
|
package/src/ph/philid.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/** Generate a random valid PhilID. */
|
|
2
|
-
const generate = (): string => randomDigits(12);
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* PhilID (Philippine Identification System Number,
|
|
6
|
-
* PhilSys Card Number, PCN).
|
|
7
|
-
*
|
|
8
|
-
* 12-digit personal identifier issued under the
|
|
9
|
-
* Philippine Identification System (PhilSys).
|
|
10
|
-
* Formatted as XXXX-XXXXXXX-X. No check digit
|
|
11
|
-
* algorithm is publicly documented.
|
|
12
|
-
*
|
|
13
|
-
* @see https://en.wikipedia.org/wiki/Philippine_national_identity_card
|
|
14
|
-
* @see https://philsys.gov.ph/
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import type {
|
|
18
|
-
ValidateResult,
|
|
19
|
-
CountryValidator,
|
|
20
|
-
} from "../types";
|
|
21
|
-
|
|
22
|
-
import { clean } from "#util/clean";
|
|
23
|
-
import { randomDigits } from "#util/generate";
|
|
24
|
-
import { err } from "#util/result";
|
|
25
|
-
import { isdigits } from "#util/strings";
|
|
26
|
-
|
|
27
|
-
const compact = (value: string): string =>
|
|
28
|
-
clean(value, " -");
|
|
29
|
-
|
|
30
|
-
const validate = (value: string): ValidateResult => {
|
|
31
|
-
const v = compact(value);
|
|
32
|
-
if (v.length !== 12) {
|
|
33
|
-
return err(
|
|
34
|
-
"INVALID_LENGTH",
|
|
35
|
-
"PhilID must be exactly 12 digits",
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
if (!isdigits(v)) {
|
|
39
|
-
return err(
|
|
40
|
-
"INVALID_FORMAT",
|
|
41
|
-
"PhilID must contain only digits",
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
return { valid: true, compact: v };
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const format = (value: string): string => {
|
|
48
|
-
const v = compact(value);
|
|
49
|
-
if (v.length === 12) {
|
|
50
|
-
return `${v.slice(0, 4)}-${v.slice(4, 11)}-${v.slice(11)}`;
|
|
51
|
-
}
|
|
52
|
-
return v;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
/** Philippine Identification System Number. */
|
|
56
|
-
const philid: CountryValidator<"PH"> = {
|
|
57
|
-
name: "Philippine Identification System Number",
|
|
58
|
-
localName: "PhilSys Card Number",
|
|
59
|
-
abbreviation: "PhilID",
|
|
60
|
-
aliases: ["PhilID", "PhilSys", "Philippine ID"] as const,
|
|
61
|
-
candidatePattern: "\\d{4}-\\d{4}-\\d{4}-\\d{4}",
|
|
62
|
-
scope: "country",
|
|
63
|
-
country: "PH",
|
|
64
|
-
entityType: "person",
|
|
65
|
-
description:
|
|
66
|
-
"12-digit personal identifier issued under" +
|
|
67
|
-
" the Philippine Identification System",
|
|
68
|
-
sourceUrl:
|
|
69
|
-
"https://en.wikipedia.org/wiki/" +
|
|
70
|
-
"Philippine_national_identity_card",
|
|
71
|
-
lengths: [12] as const,
|
|
72
|
-
examples: ["123456789012", "000011112222"] as const,
|
|
73
|
-
compact,
|
|
74
|
-
format,
|
|
75
|
-
validate,
|
|
76
|
-
generate,
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
export default philid;
|
|
80
|
-
export { compact, format, validate, generate };
|
package/src/pk/cnic.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/** Generate a random valid Pakistan CNIC. */
|
|
2
|
-
const generate = (): string => {
|
|
3
|
-
const province = String(randomInt(1, 7));
|
|
4
|
-
const district = randomDigits(4);
|
|
5
|
-
const serial = randomDigits(7);
|
|
6
|
-
const gender = String(randomInt(1, 9));
|
|
7
|
-
return `${province}${district}${serial}${gender}`;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* CNIC (Computerized National Identity Card, Pakistan).
|
|
12
|
-
*
|
|
13
|
-
* 13 digits: PPPPP-DDDDDDD-G where P is a province/
|
|
14
|
-
* district code (5 digits), D is a sequential number
|
|
15
|
-
* (7 digits), and G is a gender digit (odd = male,
|
|
16
|
-
* even = female, including 0). No checksum; structural
|
|
17
|
-
* validation.
|
|
18
|
-
*
|
|
19
|
-
* @see https://www.geo.tv/latest/157233-secret-behind-every-digit-of-the-cnic-number
|
|
20
|
-
* @see https://en.wikipedia.org/wiki/CNIC_(Pakistan)
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
import type {
|
|
24
|
-
ValidateResult,
|
|
25
|
-
CountryValidator,
|
|
26
|
-
} from "../types";
|
|
27
|
-
|
|
28
|
-
import { clean } from "#util/clean";
|
|
29
|
-
import { randomDigits, randomInt } from "#util/generate";
|
|
30
|
-
import { err } from "#util/result";
|
|
31
|
-
import { isdigits } from "#util/strings";
|
|
32
|
-
|
|
33
|
-
const compact = (value: string): string =>
|
|
34
|
-
clean(value, " -");
|
|
35
|
-
|
|
36
|
-
/** Valid province IDs (first digit). */
|
|
37
|
-
const VALID_PROVINCES = new Set([
|
|
38
|
-
"1",
|
|
39
|
-
"2",
|
|
40
|
-
"3",
|
|
41
|
-
"4",
|
|
42
|
-
"5",
|
|
43
|
-
"6",
|
|
44
|
-
"7",
|
|
45
|
-
]);
|
|
46
|
-
|
|
47
|
-
const validate = (value: string): ValidateResult => {
|
|
48
|
-
const v = compact(value);
|
|
49
|
-
if (v.length !== 13) {
|
|
50
|
-
return err("INVALID_LENGTH", "CNIC must be 13 digits");
|
|
51
|
-
}
|
|
52
|
-
if (!isdigits(v)) {
|
|
53
|
-
return err(
|
|
54
|
-
"INVALID_FORMAT",
|
|
55
|
-
"CNIC must contain only digits",
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
// First digit must be a valid province code
|
|
59
|
-
// SAFETY: v.length === 13 above guarantees v[0] exists.
|
|
60
|
-
// eslint-disable-next-line no-non-null-assertion
|
|
61
|
-
if (!VALID_PROVINCES.has(v[0]!)) {
|
|
62
|
-
return err(
|
|
63
|
-
"INVALID_COMPONENT",
|
|
64
|
-
"CNIC province code is invalid",
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
// Last digit indicates gender: odd = male,
|
|
68
|
-
// even = female. Digit 0 is rejected per
|
|
69
|
-
// python-stdnum convention; NADRA does not
|
|
70
|
-
// publish whether 0 is a valid gender code.
|
|
71
|
-
// @see https://www.geo.tv/latest/157233
|
|
72
|
-
if (v[12] === "0") {
|
|
73
|
-
return err(
|
|
74
|
-
"INVALID_COMPONENT",
|
|
75
|
-
"CNIC gender digit must not be 0",
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
return { valid: true, compact: v };
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
const format = (value: string): string => {
|
|
82
|
-
const v = compact(value);
|
|
83
|
-
return `${v.slice(0, 5)}-${v.slice(5, 12)}-${v.slice(12)}`;
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
/** Pakistan Computerized National Identity Card. */
|
|
87
|
-
const cnic: CountryValidator<"PK"> = {
|
|
88
|
-
name: "Computerized National Identity Card",
|
|
89
|
-
localName: "Computerized National Identity Card",
|
|
90
|
-
abbreviation: "CNIC",
|
|
91
|
-
aliases: ["CNIC", "شناختی کارڈ"] as const,
|
|
92
|
-
candidatePattern: "\\d{5}-?\\d{7}-?\\d",
|
|
93
|
-
scope: "country",
|
|
94
|
-
country: "PK",
|
|
95
|
-
entityType: "person",
|
|
96
|
-
lengths: [13],
|
|
97
|
-
examples: ["3520112345671", "4210112345672"],
|
|
98
|
-
description:
|
|
99
|
-
"13-digit identity card number issued by NADRA",
|
|
100
|
-
sourceUrl:
|
|
101
|
-
"https://en.wikipedia.org/wiki/CNIC_(Pakistan)",
|
|
102
|
-
compact,
|
|
103
|
-
format,
|
|
104
|
-
validate,
|
|
105
|
-
generate,
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
export default cnic;
|
|
109
|
-
export { compact, format, validate, generate };
|
package/src/pk/mod.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as cnic } from "./cnic";
|