euredact 0.0.1 → 0.1.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.
@@ -0,0 +1,578 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COUNTRY_CONFIGS = void 0;
4
+ const types_js_1 = require("../../types.js");
5
+ /**
6
+ * Helper to create a PatternDef with sensible defaults.
7
+ */
8
+ function p(entityType, pattern, validator = null, description = "", contextKeywords = [], requiresContext = false) {
9
+ return { entityType, pattern, validator, description, contextKeywords, requiresContext };
10
+ }
11
+ // ---------------------------------------------------------------------------
12
+ // DOB context keywords (reused across SHARED patterns)
13
+ // ---------------------------------------------------------------------------
14
+ const DOB_CONTEXT = [
15
+ "geboren", "geboortedatum", "date de naissance", "né le", "née le",
16
+ "né(e) le", "nee le", "nee(e) le", "date of birth", "DOB",
17
+ "Geburtsdatum", "geboren am", "geboren op", "nascido", "nacido",
18
+ "data di nascita", "nato il", "nata il", "geb.", "geb.datum", "geb ",
19
+ "birth date", "birthday", "naissance", "geboorte", "geburtstag",
20
+ ];
21
+ const DOB_ISO_CONTEXT = [
22
+ "geboren", "geboortedatum", "date de naissance", "né le", "née le",
23
+ "né(e) le", "nee le", "date of birth", "DOB", "Geburtsdatum",
24
+ "geboren am", "geboren op", "geb.", "birth date", "birthday",
25
+ "naissance", "geboorte",
26
+ ];
27
+ const DATE_OF_DEATH_CONTEXT = [
28
+ "overleden", "overlijdensdatum", "date de décès", "décédé le",
29
+ "date of death", "Sterbedatum", "verstorben am", "gestorven",
30
+ "death date", "died on", "mort le", "décès",
31
+ ];
32
+ // ---------------------------------------------------------------------------
33
+ // Country configurations
34
+ // ---------------------------------------------------------------------------
35
+ const SHARED = {
36
+ code: "SHARED",
37
+ name: "Shared EU Patterns",
38
+ patterns: [
39
+ p(types_js_1.EntityType.EMAIL, String.raw `\b[\w._%+\-]+@[\w.\-]+\.[a-zA-Z]{2,}\b`),
40
+ p(types_js_1.EntityType.BIC, String.raw `\b[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}(?:[A-Z0-9]{3})?\b`, "bic"),
41
+ p(types_js_1.EntityType.CREDIT_CARD, String.raw `\b(?:4[0-9]{3}[\s\-]?[0-9]{4}[\s\-]?[0-9]{4}[\s\-]?[0-9]{4}|5[1-5][0-9]{2}[\s\-]?[0-9]{4}[\s\-]?[0-9]{4}[\s\-]?[0-9]{4}|3[47][0-9]{2}[\s\-]?[0-9]{6}[\s\-]?[0-9]{5})\b`, "luhn"),
42
+ p(types_js_1.EntityType.VIN, String.raw `\b[A-HJ-NPR-Z0-9]{17}\b`, "vin"),
43
+ p(types_js_1.EntityType.IP_ADDRESS, String.raw `\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b`),
44
+ p(types_js_1.EntityType.IPV6_ADDRESS, String.raw `\b(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\b|\b(?:[0-9a-fA-F]{1,4}:){1,7}:\b|\b(?:[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}\b|\b::(?:[0-9a-fA-F]{1,4}:){0,5}[0-9a-fA-F]{1,4}\b`),
45
+ p(types_js_1.EntityType.MAC_ADDRESS, String.raw `\b(?:[0-9a-fA-F]{2}[:\-]){5}[0-9a-fA-F]{2}\b`, null, "colon/dash"),
46
+ p(types_js_1.EntityType.MAC_ADDRESS, String.raw `\b[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\b`, null, "Cisco"),
47
+ p(types_js_1.EntityType.IMEI, String.raw `\b\d{15}\b`, "imei"),
48
+ p(types_js_1.EntityType.IMEI, String.raw `\b\d{2}[\-\s]\d{6}[\-\s]\d{6}[\-\s]\d\b`, "imei", "formatted"),
49
+ p(types_js_1.EntityType.GPS_COORDINATES, String.raw `-?(?:[1-8]?\d(?:\.\d{4,})|90(?:\.0{4,}))\s*[,;/]\s*-?(?:1[0-7]\d(?:\.\d{4,})|180(?:\.0{4,})|\d{1,2}(?:\.\d{4,}))`),
50
+ p(types_js_1.EntityType.UUID, String.raw `\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}\b`),
51
+ p(types_js_1.EntityType.SOCIAL_HANDLE, String.raw `(?<!\w)@[a-zA-Z][a-zA-Z0-9_.]{1,29}\b`),
52
+ p(types_js_1.EntityType.DOB, String.raw `\b(?:0[1-9]|[12][0-9]|3[01])[/.\-](?:0[1-9]|1[0-2])[/.\-](?:19|20)\d{2}\b`, null, "DD/MM/YYYY", DOB_CONTEXT, true),
53
+ p(types_js_1.EntityType.DATE_OF_DEATH, String.raw `\b(?:0[1-9]|[12][0-9]|3[01])[/.\-](?:0[1-9]|1[0-2])[/.\-](?:19|20)\d{2}\b`, null, "", DATE_OF_DEATH_CONTEXT, true),
54
+ p(types_js_1.EntityType.DOB, String.raw `\b(?:19|20)\d{2}[/.\-](?:0[1-9]|1[0-2])[/.\-](?:0[1-9]|[12][0-9]|3[01])\b`, null, "ISO YYYY-MM-DD", DOB_ISO_CONTEXT, true),
55
+ ],
56
+ };
57
+ const NL = {
58
+ code: "NL",
59
+ name: "Netherlands",
60
+ patterns: [
61
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[0-9]{9}\b`, "bsn"),
62
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[0-9]{2,4}\.[0-9]{2,4}\.[0-9]{2,4}\b`, "bsn"),
63
+ p(types_js_1.EntityType.IBAN, String.raw `\bNL\d{2}\s?[A-Z]{4}\s?\d{4}\s?\d{4}\s?\d{2}\b`, "iban"),
64
+ p(types_js_1.EntityType.VAT, String.raw `\bNL\d{9}B\d{2}\b`, "vat_nl"),
65
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\b\d{8}\b`, "kvk", "", ["KvK", "Kamer van Koophandel", "kvk-nummer", "KVK-nummer", "handelsregister", "chamber of commerce"], true),
66
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[1-9]\d[\s\-]?\d{3}[\s\-]?\d{4}\b`),
67
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[1-9]\d{2}[\s\-]?\d{6,7}\b`),
68
+ p(types_js_1.EntityType.PHONE, String.raw `\b06[\s\-]?\d{4}[\s\-]?\d{4}\b`),
69
+ p(types_js_1.EntityType.PHONE, String.raw `\b06\d{8}\b`),
70
+ p(types_js_1.EntityType.PHONE, String.raw `\b06[\s\-]?\d{2}[\s\-]?\d{2}[\s\-]?\d{2}[\s\-]?\d{2}\b`),
71
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[1-9]\d{1,2}[\s\-]?\d{2,3}[\s\-]?\d{2}[\s\-]?\d{2}\b`),
72
+ p(types_js_1.EntityType.PHONE, String.raw `\+31\s?[1-9]\d{0,2}[\s\-]?\d{3,4}[\s\-]?\d{3,4}\b`),
73
+ p(types_js_1.EntityType.PASSPORT, String.raw `\b[A-Z][A-Z0-9]{8}\b`, null, "", ["paspoort", "passport", "reisdocument", "travel document", "paspoortnummer", "identiteitsbewijs"], true),
74
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b(?:[A-Z]{2}[\-\s]?\d{3}[\-\s]?[A-Z]|\d[\-\s]?[A-Z]{3}[\-\s]?\d{2}|\d{2}[\-\s]?[A-Z]{3}[\-\s]?\d|[A-Z]{2}[\-\s]?\d{2}[\-\s]?[A-Z]{2}|\d{2}[\-\s]?[A-Z]{2}[\-\s]?\d{2}|\d[\-\s]?[A-Z]{2}[\-\s]?\d{3})\b`),
75
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{3}\s?[A-Z]{2}\b`),
76
+ ],
77
+ };
78
+ const BE = {
79
+ code: "BE",
80
+ name: "Belgium",
81
+ patterns: [
82
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{2}\.?\d{2}\.?\d{2}[\-.]?\d{3}\.?\d{2}\b`, "belgian_nn"),
83
+ p(types_js_1.EntityType.IBAN, String.raw `\bBE\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
84
+ p(types_js_1.EntityType.VAT, String.raw `\bBE\s?0\d{3}\.?\d{3}\.?\d{3}\b`, "belgian_vat"),
85
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\b0\d{3}\.?\d{3}\.?\d{3}\b`, null, "", ["KBO", "BCE", "ondernemingsnummer", "numéro d'entreprise", "enterprise number", "bedrijfsnummer"], true),
86
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[1-9]\d{0,2}[/\s.\-]?\d{2,3}[.\s\-]?\d{2,3}[.\s\-]?\d{2,3}\b`),
87
+ p(types_js_1.EntityType.PHONE, String.raw `\+32\s?\d{1,3}[\s.\-]?\d{2,3}[\s.\-]?\d{2}[\s.\-]?\d{2}`),
88
+ p(types_js_1.EntityType.PASSPORT, String.raw `\b[A-Z]{2}\d{6}\b`, null, "", ["paspoort", "passport", "passeport", "reisdocument", "travel document", "document de voyage"], true),
89
+ p(types_js_1.EntityType.DRIVERS_LICENSE, String.raw `\b\d{10}\b`, null, "", ["rijbewijs", "permis de conduire", "driving licence", "driving license", "rijbewijsnummer"], true),
90
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[12][\-\s]?[A-Z]{3}[\-\s]?\d{3}\b`),
91
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{3}\b`, null, "", ["postcode", "code postal", "postnummer", "postal code", "zip", "B-", "adres", "adresse", "wonende", "woonplaats", "rue", "straat", "laan", "avenue", "boulevard", "plein", "steenweg", "chaussée", "domicilié", "gedomicilieerd", "Levering:", "siège"], true),
92
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `(?<=, )[1-9]\d{3}(?= [A-Z])`),
93
+ p(types_js_1.EntityType.HEALTHCARE_PROVIDER, String.raw `\b\d{1}[\-.]?\d{5}[\-.]?\d{2}[\-.]?\d{3}\b`, null, "", ["RIZIV", "INAMI", "arts", "médecin", "zorgverlener", "prestataire", "dokter", "doctor"], true),
94
+ ],
95
+ };
96
+ const DE = {
97
+ code: "DE",
98
+ name: "Germany",
99
+ patterns: [
100
+ p(types_js_1.EntityType.TAX_ID, String.raw `\b[1-9]\d{10}\b`, "german_tax_id"),
101
+ p(types_js_1.EntityType.TAX_ID, String.raw `\b[1-9]\d[\s.]?\d{3}[\s.]?\d{3}[\s.]?\d{3}\b`, "german_tax_id"),
102
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[CFGHJKLMNPRTVWXYZ][0-9A-Z]{8,9}\b`, null, "", ["Personalausweis", "Personalausweisnummer", "Ausweis", "Ausweisnummer", "Ausweis-Nr", "identity card", "Identitätskarte", "Perso", "PA-Nummer"], true),
103
+ p(types_js_1.EntityType.IBAN, String.raw `\bDE\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{2}\b`, "iban"),
104
+ p(types_js_1.EntityType.VAT, String.raw `\bDE\s?\d{9}\b`, "vat_de"),
105
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[1-9]\d{1,4}[\s/\-]?\d{3,8}\b`),
106
+ p(types_js_1.EntityType.PHONE, String.raw `\+49\s?\d{2,5}[\s/\-]?\d{3,8}\b`),
107
+ p(types_js_1.EntityType.PASSPORT, String.raw `\b[CFGHJK][0-9A-Z]{8,9}\b`, null, "", ["Reisepass", "passport", "Passnummer", "Reisepassnummer", "Reisepass Nummer", "Reisepass-Nr", "Pass Nr"], true),
108
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-ZÄÖÜ]{1,3}[\s\-]?[A-Z]{1,2}[\s\-]?\d{1,4}[EH]?\b`),
109
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{5}\b`, null, "", ["PLZ", "Postleitzahl", "postal code", "postcode", "Anschrift", "Adresse", "Wohnort", "Ort", "Stadt", "wohnt", "wohnhaft", "Straße", "Str.", "Weg", "Platz", "Allee", "Ring"], true),
110
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\bHR[AB]\s?\d{4,6}\b`),
111
+ p(types_js_1.EntityType.SSN, String.raw `\b\d{2}[\s]?\d{6}[\s]?[A-Z][\s]?\d{3}\b`, null, "", ["Rentenversicherung", "RV-Nummer", "Sozialversicherung", "SV-Nummer", "Versicherungsnummer", "Rentenversicherungsnummer", "Sozialversicherungsnummer"], true),
112
+ p(types_js_1.EntityType.TAX_ID, String.raw `\b\d{2,3}/\d{3,4}/\d{4,5}\b`, null, "", ["Steuernummer", "St.-Nr", "StNr", "Finanzamt", "Steuer"], true),
113
+ p(types_js_1.EntityType.TAX_ID, String.raw `\b\d{13}\b`, null, "", ["Steuernummer", "St.-Nr", "StNr", "Finanzamt", "Steuer"], true),
114
+ p(types_js_1.EntityType.HEALTH_INSURANCE, String.raw `\b[A-Z]\d{9}\b`, null, "", ["Versichertennummer", "Krankenversicherung", "KV-Nummer", "Krankenkasse", "GKV", "Versichertenkarte", "Versicherter", "Versicherte", "KVNR", "Krankenversichertennummer"], true),
115
+ ],
116
+ };
117
+ const AT = {
118
+ code: "AT",
119
+ name: "Austria",
120
+ patterns: [
121
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{4}\s?\d{6}\b`, "austrian_svnr"),
122
+ p(types_js_1.EntityType.IBAN, String.raw `\bAT\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
123
+ p(types_js_1.EntityType.VAT, String.raw `\bATU\d{8}\b`),
124
+ p(types_js_1.EntityType.PHONE, String.raw `\b0\d{3,4}[\s\-]?\d{5,8}\b`),
125
+ p(types_js_1.EntityType.PHONE, String.raw `\+43\s?\d{3,4}[\s\-]?\d{5,8}`),
126
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-ZÄÖÜ]{1,2}\s?\d{1,5}\s?[A-Z]{1,2}\b`, null, "", ["Kennzeichen", "Nummernschild", "Kfz-Kennzeichen"], true),
127
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{3}\b`, null, "", ["PLZ", "Postleitzahl", "Adresse", "Anschrift", "Straße", "Str.", "Gasse", "Weg", "Platz", "Postal:", "Wohnort"], true),
128
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `(?<=, )[1-9]\d{3}(?= [A-Z])`),
129
+ ],
130
+ };
131
+ const CH = {
132
+ code: "CH",
133
+ name: "Switzerland",
134
+ patterns: [
135
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b756\.\d{4}\.\d{4}\.\d{2}\b`, "swiss_ahv"),
136
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b756\d{10}\b`, "swiss_ahv"),
137
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\bCHE[\-\s]?\d{3}\.?\d{3}\.?\d{3}\b`),
138
+ p(types_js_1.EntityType.VAT, String.raw `\bCHE[\-\s]?\d{3}\.?\d{3}\.?\d{3}\s?(?:MWST|TVA|IVA)\b`),
139
+ p(types_js_1.EntityType.IBAN, String.raw `\bCH\d{2}\s?[A-Z0-9]{4}\s?[A-Z0-9]{4}\s?[A-Z0-9]{4}\s?[A-Z0-9]{4}\s?[A-Z0-9]\b`, "iban"),
140
+ p(types_js_1.EntityType.PHONE, String.raw `\b0\d{2}\s?\d{3}\s?\d{2}\s?\d{2}\b`),
141
+ p(types_js_1.EntityType.PHONE, String.raw `\+41\s?\d{2}\s?\d{3}\s?\d{2}\s?\d{2}`),
142
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z]{2}\s?\d{1,6}\b`, null, "", ["Kontrollschild", "Nummernschild", "plaque", "immatriculation", "Kennzeichen"], true),
143
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{3}\b`, null, "", ["PLZ", "Postleitzahl", "code postal", "NPA", "Adresse", "Anschrift", "adresse", "rue", "Straße", "Str.", "Gasse", "chemin", "Postal:", "Wohnort"], true),
144
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `(?<=, )[1-9]\d{3}(?= [A-Z])`),
145
+ ],
146
+ };
147
+ const FR = {
148
+ code: "FR",
149
+ name: "France",
150
+ patterns: [
151
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[12]\s?\d{2}\s?(?:0[1-9]|1[0-2]|[2-9]\d)\s?\d{2}[0-9AB]?\s?\d{3}\s?\d{3}\s?\d{2}\b`, "french_nir"),
152
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{12}\b`, null, "", ["carte d'identité", "CNI", "carte nationale", "identity card", "pièce d'identité"], true),
153
+ p(types_js_1.EntityType.IBAN, String.raw `\bFR\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{3}\b`, "iban"),
154
+ p(types_js_1.EntityType.VAT, String.raw `\bFR\s?[0-9A-HJ-NP-Z]{2}\s?\d{9}\b`, "vat_fr"),
155
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[1-9][\s.\-]?\d{2}[\s.\-]?\d{2}[\s.\-]?\d{2}[\s.\-]?\d{2}\b`),
156
+ p(types_js_1.EntityType.PHONE, String.raw `\+33\s?[1-9][\s.\-]?\d{2}[\s.\-]?\d{2}[\s.\-]?\d{2}[\s.\-]?\d{2}`),
157
+ p(types_js_1.EntityType.PASSPORT, String.raw `\b\d{2}[A-Z]{2}\d{5}\b`, null, "", ["passeport", "passport", "numéro de passeport"], true),
158
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z]{2}[\-\s]?\d{3}[\-\s]?[A-Z]{2}\b`),
159
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b(?:0[1-9]|[1-8]\d|9[0-5]|97[1-6])\d{3}\b`, null, "", ["code postal", "CP", "postal code", "postcode", "adresse", "domicilié", "résidant", "rue", "avenue", "boulevard", "place", "chemin", "allée", "impasse", "ville"], true),
160
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\b\d{3}\s?\d{3}\s?\d{3}\b`, null, "", ["SIREN", "siren", "RCS", "entreprise", "immatricul", "numéro d'entreprise", "registre du commerce"], true),
161
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\b\d{3}\s?\d{3}\s?\d{3}\s?\d{5}\b`, null, "", ["SIRET", "siret", "établissement", "immatricul"], true),
162
+ p(types_js_1.EntityType.TAX_ID, String.raw `\b\d{13}\b`, null, "", ["numéro fiscal", "SPI", "référence fiscale", "avis d'impôt", "impôt sur le revenu", "déclaration fiscale", "fiscal"], true),
163
+ ],
164
+ };
165
+ const DK = {
166
+ code: "DK",
167
+ name: "Denmark",
168
+ patterns: [
169
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b(?:0[1-9]|[12]\d|3[01])(?:0[1-9]|1[0-2])\d{2}-\d{4}\b`),
170
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b(?:0[1-9]|[12]\d|3[01])(?:0[1-9]|1[0-2])\d{6}\b`, "danish_cpr"),
171
+ p(types_js_1.EntityType.IBAN, String.raw `\bDK\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{2}\b`, "iban"),
172
+ p(types_js_1.EntityType.VAT, String.raw `\bDK\s?\d{8}\b`, "danish_vat"),
173
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\b\d{8}\b`, "danish_vat", "", ["CVR", "CVR-nummer", "virksomhedsnummer", "virksomhedsregisteret"], true),
174
+ p(types_js_1.EntityType.PHONE, String.raw `\b[2-9]\d\s?\d{2}\s?\d{2}\s?\d{2}\b`),
175
+ p(types_js_1.EntityType.PHONE, String.raw `\+45\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}`),
176
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z]{2}\s?\d{2}\s?\d{3}\b`, null, "", ["nummerplade", "registreringsnummer", "reg.nr", "køretøj"], true),
177
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{3}\b`, null, "", ["postnummer", "postby", "postnr", "adresse", "bopæl", "bopælsadresse", "gade", "vej", "allé", "plads", "torv", "stræde", "boulevard", "Arbejdssted"], true),
178
+ ],
179
+ };
180
+ const SE = {
181
+ code: "SE",
182
+ name: "Sweden",
183
+ patterns: [
184
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{8}[-+]?\d{4}\b`, "swedish_pnr"),
185
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{6}[-+]\d{4}\b`, "swedish_pnr"),
186
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{10}\b`, "swedish_pnr"),
187
+ p(types_js_1.EntityType.IBAN, String.raw `\bSE\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
188
+ p(types_js_1.EntityType.VAT, String.raw `\bSE\d{12}\b`),
189
+ p(types_js_1.EntityType.PHONE, String.raw `\b0\d{1,3}[\-\s]?\d{2,3}[\s]?\d{2,3}[\s]?\d{2}\b`),
190
+ p(types_js_1.EntityType.PHONE, String.raw `\+46\s?\d{1,3}[\s\-]?\d{2,3}[\s\-]?\d{2,3}[\s\-]?\d{2}`),
191
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z]{3}\s?\d{2}[A-Z0-9]\b`),
192
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{3}\s?\d{2}\b`, null, "", ["postnummer", "postort", "postkod", "adress", "bostadsadress", "gatuadress", "boende", "gatan", "vägen", "gata", "väg", "allé", "plats", "torg", "stigen", "Bostadsadress"], true),
193
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{4}\s\d{2}\b`, null, "", ["postnummer", "postort", "postkod", "adress", "bostadsadress", "gatuadress", "boende", "gatan", "vägen", "gata", "väg", "allé"], true),
194
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{6}\b`, null, "", ["postnummer", "postort", "postkod", "adress", "bostadsadress", "gatuadress", "boende", "gatan", "vägen", "gata", "väg", "allé"], true),
195
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\b\d{6}-?\d{4}\b`, null, "", ["organisationsnummer", "org.nr", "org nr", "Bolagsverket", "registreringsnummer"], true),
196
+ ],
197
+ };
198
+ const NO = {
199
+ code: "NO",
200
+ name: "Norway",
201
+ patterns: [
202
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{11}\b`, "norwegian_fnr"),
203
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{6}\s\d{5}\b`, "norwegian_fnr"),
204
+ p(types_js_1.EntityType.IBAN, String.raw `\bNO\d{2}\s?\d{4}\s?\d{4}\s?\d{3}\b`, "iban"),
205
+ p(types_js_1.EntityType.VAT, String.raw `\bNO\s?\d{9}\s?MVA\b`),
206
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\b[89]\d{8}\b`, "norwegian_org"),
207
+ p(types_js_1.EntityType.PHONE, String.raw `\b[2-9]\d\s?\d{2}\s?\d{2}\s?\d{2}\b`),
208
+ p(types_js_1.EntityType.PHONE, String.raw `\+47\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}`),
209
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z]{2}\s?\d{5}\b`),
210
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{4}\b`, null, "", ["postnummer", "poststed", "postnr", "adresse", "bostedsadresse", "gate", "vei", "veien", "gata", "plass", "stien", "allé"], true),
211
+ ],
212
+ };
213
+ const FI = {
214
+ code: "FI",
215
+ name: "Finland",
216
+ patterns: [
217
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{6}[-+ABCDEFYXWVU]\d{3}[0-9A-FHJK-NPR-Y]\b`, "finnish_hetu"),
218
+ p(types_js_1.EntityType.IBAN, String.raw `\bFI\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{2}\b`, "iban"),
219
+ p(types_js_1.EntityType.VAT, String.raw `\bFI\d{8}\b`),
220
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\b\d{7}-\d\b`, "finnish_business_id"),
221
+ p(types_js_1.EntityType.PHONE, String.raw `\b0\d{1,2}\s?\d{3,4}\s?\d{3,4}\b`),
222
+ p(types_js_1.EntityType.PHONE, String.raw `\+358\s?\d{1,3}[\s\-]?\d{3,4}[\s\-]?\d{3,4}`),
223
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z]{2,3}[\-\s]?\d{3}\b`, null, "", ["rekisteritunnus", "rekisterinumero", "rekisterikilpi", "ajoneuvo"], true),
224
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{5}\b`, null, "", ["postinumero", "postitoimipaikka", "osoite", "kotiosoite", "katuosoite"], true),
225
+ ],
226
+ };
227
+ const IS = {
228
+ code: "IS",
229
+ name: "Iceland",
230
+ patterns: [
231
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{6}-?\d{4}\b`, "icelandic_kt"),
232
+ p(types_js_1.EntityType.IBAN, String.raw `\bIS\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{2}\b`, "iban"),
233
+ p(types_js_1.EntityType.PHONE, String.raw `\b[3-9]\d{2}\s\d{4}\b`),
234
+ p(types_js_1.EntityType.PHONE, String.raw `\b[3-9]\d{6}\b`, null, "", ["sími", "símanúmer", "farsími", "gsm", "phone", "tel", "hringja", "hringdu", "ná í", "nás á", "nás", "SMS", "sent to"], true),
235
+ p(types_js_1.EntityType.PHONE, String.raw `\+354\s?\d{3}\s?\d{4}`),
236
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z]{2}\s?\d{3}\b`, null, "", ["skráningarnúmer", "bílnúmer", "ökutæki", "bifreið", "plata"], true),
237
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{2}\b`, null, "", ["póstnúmer", "póstfang", "staður", "heimilisfang"], true),
238
+ ],
239
+ };
240
+ const IT = {
241
+ code: "IT",
242
+ name: "Italy",
243
+ patterns: [
244
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[A-Z]{6}\d{2}[ABCDEHLMPRST]\d{2}[A-Z]\d{3}[A-Z]\b`, "italian_cf"),
245
+ p(types_js_1.EntityType.IBAN, String.raw `\bIT\d{2}\s?[A-Z]\d{3}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{3}\b`, "iban"),
246
+ p(types_js_1.EntityType.IBAN, String.raw `\bIT\d{2}[A-Z]\d{22}\b`, "iban"),
247
+ p(types_js_1.EntityType.VAT, String.raw `\bIT\d{11}\b`),
248
+ p(types_js_1.EntityType.PHONE, String.raw `\b3\d{2}[\s\-]?\d{3}[\s\-]?\d{4}\b`),
249
+ p(types_js_1.EntityType.PHONE, String.raw `\b0\d{1,3}[\s\-]?\d{6,8}\b`),
250
+ p(types_js_1.EntityType.PHONE, String.raw `\b0\d{1,2}[\s\-]\d{3}[\s\-]\d{4}\b`),
251
+ p(types_js_1.EntityType.PHONE, String.raw `\+39\s?\d{2,3}[\s\-]?\d{3,4}[\s\-]?\d{3,4}`),
252
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z]{2}\s?\d{3}\s?[A-Z]{2}\b`),
253
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{5}\b`, null, "", ["CAP", "codice postale", "codice di avviamento", "indirizzo", "via", "viale", "piazza", "corso", "largo", "vicolo", "Domicilio", "domicilio", "Residenza", "residenza", "Postal:"], true),
254
+ ],
255
+ };
256
+ const ES = {
257
+ code: "ES",
258
+ name: "Spain",
259
+ patterns: [
260
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{8}[A-Z]\b`, "spanish_dni"),
261
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[XYZ]\d{7}[A-Z]\b`, "spanish_nie"),
262
+ p(types_js_1.EntityType.IBAN, String.raw `\bES\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
263
+ p(types_js_1.EntityType.VAT, String.raw `\bES[A-Z0-9]\d{7}[A-Z0-9]\b`),
264
+ p(types_js_1.EntityType.PHONE, String.raw `\b[679]\d{2}[\s\-]?\d{3}[\s\-]?\d{3}\b`),
265
+ p(types_js_1.EntityType.PHONE, String.raw `\b[679]\d{8}\b`),
266
+ p(types_js_1.EntityType.PHONE, String.raw `\b[679]\d[\s\-]?\d{3}[\s\-]?\d{2}[\s\-]?\d{2}\b`),
267
+ p(types_js_1.EntityType.PHONE, String.raw `\+34\s?[679]\d{2}[\s\-]?\d{3}[\s\-]?\d{3}`),
268
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b\d{4}\s?[BCDFGHJKLMNPRSTVWXYZ]{3}\b`),
269
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b(?:0[1-9]|[1-4]\d|5[0-2])\d{3}\b`, null, "", ["código postal", "C.P.", "CP", "dirección", "domicilio", "calle", "avenida", "plaza", "paseo", "camino", "Postal:"], true),
270
+ ],
271
+ };
272
+ const PT = {
273
+ code: "PT",
274
+ name: "Portugal",
275
+ patterns: [
276
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[1-35-9]\d{8}\b`, "portuguese_nif"),
277
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[1-35-9]\d{2}[\s.]\d{3}[\s.]\d{3}\b`, "portuguese_nif"),
278
+ p(types_js_1.EntityType.IBAN, String.raw `\bPT\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{5}\b`, "iban"),
279
+ p(types_js_1.EntityType.VAT, String.raw `\bPT\d{9}\b`),
280
+ p(types_js_1.EntityType.PHONE, String.raw `\b[29]\d{2}[\s\-]?\d{3}[\s\-]?\d{3}\b`),
281
+ p(types_js_1.EntityType.PHONE, String.raw `\b[29]\d{8}\b`),
282
+ p(types_js_1.EntityType.PHONE, String.raw `\+351\s?[29]\d{2}[\s\-]?\d{3}[\s\-]?\d{3}`),
283
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z0-9]{2}-[A-Z0-9]{2}-[A-Z0-9]{2}\b`),
284
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{4}-\d{3}\b`),
285
+ ],
286
+ };
287
+ const LU = {
288
+ code: "LU",
289
+ name: "Luxembourg",
290
+ patterns: [
291
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b(?:19|20)\d{2}\s(?:0[1-9]|1[0-2])\s(?:0[1-9]|[12]\d|3[01])\s\d{3}\s\d{2}\b`),
292
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{5}\b`),
293
+ p(types_js_1.EntityType.IBAN, String.raw `\bLU\d{2}\s?[A-Z0-9]{4}\s?[A-Z0-9]{4}\s?[A-Z0-9]{4}\s?[A-Z0-9]{4}\b`, "iban"),
294
+ p(types_js_1.EntityType.VAT, String.raw `\bLU\s?\d{8}\b`, "vat_lu"),
295
+ p(types_js_1.EntityType.PHONE, String.raw `\b(?:2[0-9]|[4-9]\d)[\s\-]?\d{2}[\s\-]?\d{2}[\s\-]?\d{2}\b`),
296
+ p(types_js_1.EntityType.PHONE, String.raw `\b(?:2[0-9]|[4-9]\d)\d{6}\b`),
297
+ p(types_js_1.EntityType.PHONE, String.raw `\b6[2-9]\d[\s\-]?\d{3}[\s\-]?\d{3}\b`),
298
+ p(types_js_1.EntityType.PHONE, String.raw `\+352\s?\d{2,3}[\s\-]?\d{2,3}[\s\-]?\d{2,4}`),
299
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\bL[\-\s]?\d{4}\b`),
300
+ p(types_js_1.EntityType.LICENSE_PLATE, String.raw `\b[A-Z]{2}[\s\-]?\d{3,5}\b`, null, "", ["plaque", "immatriculation", "Kennzeichen", "nummerplaat", "véhicule", "voiture", "Fahrzeug", "immatriculé"], true),
301
+ p(types_js_1.EntityType.CHAMBER_OF_COMMERCE, String.raw `\b[ABCDEFGJ]\s?\d{4,6}\b`, null, "", ["RCS", "Registre de Commerce", "Handelsregister", "registre", "inscrit"], true),
302
+ ],
303
+ };
304
+ const PL = {
305
+ code: "PL",
306
+ name: "Poland",
307
+ patterns: [
308
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{11}\b`, "polish_pesel"),
309
+ p(types_js_1.EntityType.TAX_ID, String.raw `\b\d{3}-?\d{3}-?\d{2}-?\d{2}\b`, "polish_nip"),
310
+ p(types_js_1.EntityType.IBAN, String.raw `\bPL\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
311
+ p(types_js_1.EntityType.IBAN, String.raw `\bPL\d{26}\b`, "iban"),
312
+ p(types_js_1.EntityType.VAT, String.raw `\bPL\d{10}\b`),
313
+ p(types_js_1.EntityType.PHONE, String.raw `\b[5-8]\d{2}[\s\-]?\d{3}[\s\-]?\d{3}\b`),
314
+ p(types_js_1.EntityType.PHONE, String.raw `\b[5-8]\d{8}\b`),
315
+ p(types_js_1.EntityType.PHONE, String.raw `\+48\s?[5-8]\d{2}[\s\-]?\d{3}[\s\-]?\d{3}`),
316
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{2}-\d{3}\b`, null, "", ["kod pocztowy", "adres", "ulica", "Postal:", "Address:"]),
317
+ ],
318
+ };
319
+ const IE = {
320
+ code: "IE",
321
+ name: "Ireland",
322
+ patterns: [
323
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{7}[A-W][ABWTXZ]?\b`, "irish_pps"),
324
+ p(types_js_1.EntityType.IBAN, String.raw `\bIE\d{2}\s?[A-Z]{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{2}\b`, "iban"),
325
+ p(types_js_1.EntityType.IBAN, String.raw `\bIE\d{2}[A-Z]{4}\d{14}\b`, "iban"),
326
+ p(types_js_1.EntityType.VAT, String.raw `\bIE\d{7}[A-Z]\b`),
327
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[89]\d[\s\-]?\d{3}[\s\-]?\d{4}\b`),
328
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[89]\d{8}\b`),
329
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[1-9]\d{0,2}[\s\-]?\d{5,8}\b`),
330
+ p(types_js_1.EntityType.PHONE, String.raw `\+353\s?\d{1,3}[\s\-]?\d{3,4}[\s\-]?\d{3,4}`),
331
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[A-Z]\d{2}\s?[A-Z0-9]{4}\b`, null, "", ["Eircode", "postcode", "postal code", "address", "Address:", "Postal:"], true),
332
+ ],
333
+ };
334
+ const UK = {
335
+ code: "UK",
336
+ name: "United Kingdom",
337
+ patterns: [
338
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[A-CEGHJ-PR-TW-Z][A-CEGHJ-NPR-TW-Z]\s?\d{2}\s?\d{2}\s?\d{2}\s?[ABCD]\b`),
339
+ p(types_js_1.EntityType.HEALTH_INSURANCE, String.raw `\b\d{3}\s?\d{3}\s?\d{4}\b`, "uk_nhs", "", ["NHS", "NHS number", "health number", "NHS no"], true),
340
+ p(types_js_1.EntityType.IBAN, String.raw `\bGB\d{2}\s?[A-Z]{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{2}\b`, "iban"),
341
+ p(types_js_1.EntityType.IBAN, String.raw `\bGB\d{2}[A-Z]{4}\d{14}\b`, "iban"),
342
+ p(types_js_1.EntityType.VAT, String.raw `\bGB\d{9}\b`),
343
+ p(types_js_1.EntityType.PHONE, String.raw `\b07[4-9]\d{2}[\s\-]?\d{3}[\s\-]?\d{3}\b`),
344
+ p(types_js_1.EntityType.PHONE, String.raw `\b07[4-9]\d{8}\b`),
345
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[12]\d{2}[\s\-]?\d{3}[\s\-]?\d{4}\b`),
346
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[12]\d{2}[\s\-]?\d{4}[\s\-]?\d{4}\b`),
347
+ p(types_js_1.EntityType.PHONE, String.raw `\b0[12]\d{9,10}\b`),
348
+ p(types_js_1.EntityType.PHONE, String.raw `\+44\s?\d{2,4}[\s\-]?\d{3,4}[\s\-]?\d{3,4}`),
349
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[A-Z]{1,2}\d[A-Z\d]?\s?\d[A-Z]{2}\b`),
350
+ ],
351
+ };
352
+ const BG = {
353
+ code: "BG",
354
+ name: "Bulgaria",
355
+ patterns: [
356
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{10}\b`, "bulgarian_egn"),
357
+ p(types_js_1.EntityType.IBAN, String.raw `\bBG\d{2}\s?[A-Z]{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{2}\b`, "iban"),
358
+ p(types_js_1.EntityType.VAT, String.raw `\bBG\d{9,10}\b`),
359
+ p(types_js_1.EntityType.PHONE, String.raw `\b0?[89][789][\s\-]?\d{3}[\s\-]?\d{3,4}\b`),
360
+ p(types_js_1.EntityType.PHONE, String.raw `\b0?[89][789]\d{7,8}\b`),
361
+ p(types_js_1.EntityType.PHONE, String.raw `\+359\s?[89][789][\s\-]?\d{3}[\s\-]?\d{3,4}`),
362
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{3}\b`, null, "", ["пощенски код", "пощенски", "адрес", "ул.", "Postal:", "Address:"], true),
363
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `(?<=, )[1-9]\d{3}(?= [A-Z])`),
364
+ ],
365
+ };
366
+ const CY = {
367
+ code: "CY",
368
+ name: "Cyprus",
369
+ patterns: [
370
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{8}[A-Z]\b`),
371
+ p(types_js_1.EntityType.IBAN, String.raw `\bCY\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
372
+ p(types_js_1.EntityType.IBAN, String.raw `\bCY\d{26}\b`, "iban"),
373
+ p(types_js_1.EntityType.VAT, String.raw `\bCY\d{8}[A-Z]\b`),
374
+ p(types_js_1.EntityType.PHONE, String.raw `\b[29]\d{3}[\s\-]?\d{4}\b`),
375
+ p(types_js_1.EntityType.PHONE, String.raw `\b[29]\d[\s\-]?\d{3}[\s\-]?\d{3}\b`),
376
+ p(types_js_1.EntityType.PHONE, String.raw `\b[29]\d{7}\b`),
377
+ p(types_js_1.EntityType.PHONE, String.raw `\+357\s?[29]\d[\s\-]?\d{3}[\s\-]?\d{3,4}`),
378
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{3}\b`, null, "", ["Τ.Κ.", "ταχυδρομικός", "address", "Address:", "Postal:", "διεύθυνση"], true),
379
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `(?<=, )[1-9]\d{3}(?= [A-Z])`),
380
+ ],
381
+ };
382
+ const CZ = {
383
+ code: "CZ",
384
+ name: "Czech Republic",
385
+ patterns: [
386
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{6}/?\d{3,4}\b`, "czech_birth_number"),
387
+ p(types_js_1.EntityType.IBAN, String.raw `\bCZ\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
388
+ p(types_js_1.EntityType.IBAN, String.raw `\bCZ\d{22}\b`, "iban"),
389
+ p(types_js_1.EntityType.VAT, String.raw `\bCZ\d{8,10}\b`),
390
+ p(types_js_1.EntityType.PHONE, String.raw `\b[67]\d{2}[\s\-]?\d{3}[\s\-]?\d{3}\b`),
391
+ p(types_js_1.EntityType.PHONE, String.raw `\b[67]\d{8}\b`),
392
+ p(types_js_1.EntityType.PHONE, String.raw `\+420\s?[67]\d{2}[\s\-]?\d{3}[\s\-]?\d{3}`),
393
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{3}\s?\d{2}\b`, null, "", ["PSČ", "poštovní", "adresa", "ulice", "Postal:", "Address:"], true),
394
+ ],
395
+ };
396
+ const SK = {
397
+ code: "SK",
398
+ name: "Slovakia",
399
+ patterns: [
400
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{6}/?\d{3,4}\b`, "czech_birth_number"),
401
+ p(types_js_1.EntityType.IBAN, String.raw `\bSK\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
402
+ p(types_js_1.EntityType.IBAN, String.raw `\bSK\d{22}\b`, "iban"),
403
+ p(types_js_1.EntityType.VAT, String.raw `\bSK\d{10}\b`),
404
+ p(types_js_1.EntityType.PHONE, String.raw `\b0?9\d{2}[\s\-]?\d{3}[\s\-]?\d{3}\b`),
405
+ p(types_js_1.EntityType.PHONE, String.raw `\+421\s?9\d{2}[\s\-]?\d{3}[\s\-]?\d{3}`),
406
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{3}\s?\d{2}\b`, null, "", ["PSČ", "poštové", "adresa", "ulica", "Postal:", "Address:"], true),
407
+ ],
408
+ };
409
+ const EE = {
410
+ code: "EE",
411
+ name: "Estonia",
412
+ patterns: [
413
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[1-6]\d{10}\b`, "estonian_id"),
414
+ p(types_js_1.EntityType.IBAN, String.raw `\bEE\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
415
+ p(types_js_1.EntityType.IBAN, String.raw `\bEE\d{18}\b`, "iban"),
416
+ p(types_js_1.EntityType.VAT, String.raw `\bEE\d{9}\b`),
417
+ p(types_js_1.EntityType.PHONE, String.raw `\b5\d{3}[\s\-]?\d{4}\b`),
418
+ p(types_js_1.EntityType.PHONE, String.raw `\b5\d{7}\b`),
419
+ p(types_js_1.EntityType.PHONE, String.raw `\+372\s?5\d{3}[\s\-]?\d{3,4}`),
420
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{5}\b`, null, "", ["postiindeks", "sihtnumber", "aadress", "address", "Address:", "Postal:"], true),
421
+ ],
422
+ };
423
+ const LT = {
424
+ code: "LT",
425
+ name: "Lithuania",
426
+ patterns: [
427
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[1-6]\d{10}\b`, "estonian_id"),
428
+ p(types_js_1.EntityType.IBAN, String.raw `\bLT\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
429
+ p(types_js_1.EntityType.IBAN, String.raw `\bLT\d{18}\b`, "iban"),
430
+ p(types_js_1.EntityType.VAT, String.raw `\bLT\d{9,12}\b`),
431
+ p(types_js_1.EntityType.PHONE, String.raw `\b6\d{2}[\s\-]?\d{2}[\s\-]?\d{3}\b`),
432
+ p(types_js_1.EntityType.PHONE, String.raw `\b6\d{7}\b`),
433
+ p(types_js_1.EntityType.PHONE, String.raw `\b8[\s\-]?6\d{2}[\s\-]?\d{2}[\s\-]?\d{3}\b`),
434
+ p(types_js_1.EntityType.PHONE, String.raw `\+370\s?6\d{2}[\s\-]?\d{2}[\s\-]?\d{3}`),
435
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\bLT-\d{5}\b`),
436
+ ],
437
+ };
438
+ const LV = {
439
+ code: "LV",
440
+ name: "Latvia",
441
+ patterns: [
442
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{6}-\d{5}\b`),
443
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b(?:0[1-9]|[12]\d|3[01])(?:0[1-9]|1[0-2])\d{7}\b`, null, "", ["personas kods", "PK", "identifikācijas"], true),
444
+ p(types_js_1.EntityType.IBAN, String.raw `\bLV\d{2}\s?[A-Z]{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d\b`, "iban"),
445
+ p(types_js_1.EntityType.IBAN, String.raw `\bLV\d{2}[A-Z]{4}\d{13}\b`, "iban"),
446
+ p(types_js_1.EntityType.VAT, String.raw `\bLV\d{11}\b`),
447
+ p(types_js_1.EntityType.PHONE, String.raw `\b[2]\d{3}[\s\-]?\d{4}\b`),
448
+ p(types_js_1.EntityType.PHONE, String.raw `\b[2]\d{7}\b`),
449
+ p(types_js_1.EntityType.PHONE, String.raw `\+371\s?[2]\d{3}[\s\-]?\d{3,4}`),
450
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\bLV-\d{4}\b`),
451
+ ],
452
+ };
453
+ const HR = {
454
+ code: "HR",
455
+ name: "Croatia",
456
+ patterns: [
457
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{11}\b`, "croatian_oib"),
458
+ p(types_js_1.EntityType.IBAN, String.raw `\bHR\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{3}\b`, "iban"),
459
+ p(types_js_1.EntityType.IBAN, String.raw `\bHR\d{2}\s\d{4}\s\d{4}\s\d{4}\s\d{5}\b`, "iban"),
460
+ p(types_js_1.EntityType.IBAN, String.raw `\bHR\d{19}\b`, "iban"),
461
+ p(types_js_1.EntityType.VAT, String.raw `\bHR\d{11}\b`),
462
+ p(types_js_1.EntityType.PHONE, String.raw `\b0?9[12579][\s\-]?\d{3}[\s\-]?\d{3,4}\b`),
463
+ p(types_js_1.EntityType.PHONE, String.raw `\b0?9[12579]\d{7,8}\b`),
464
+ p(types_js_1.EntityType.PHONE, String.raw `\+385\s?9[12579][\s\-]?\d{3}[\s\-]?\d{3,4}`),
465
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-5]\d{4}\b`, null, "", ["poštanski broj", "poštanski", "adresa", "ulica", "Postal:", "Address:"], true),
466
+ ],
467
+ };
468
+ const HU = {
469
+ code: "HU",
470
+ name: "Hungary",
471
+ patterns: [
472
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{9}\b`, "hungarian_taj"),
473
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{3}\s\d{3}\s\d{3}\b`, "hungarian_taj"),
474
+ p(types_js_1.EntityType.TAX_ID, String.raw `\b8\d{9}\b`, null, "", ["adóazonosító", "adószám", "adóazonosító jel"], true),
475
+ p(types_js_1.EntityType.VAT, String.raw `\bHU\d{8,11}\b`, null, "", ["adószám", "ÁFA"]),
476
+ p(types_js_1.EntityType.IBAN, String.raw `\bHU\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\b`, "iban"),
477
+ p(types_js_1.EntityType.IBAN, String.raw `\bHU\d{26}\b`, "iban"),
478
+ p(types_js_1.EntityType.PHONE, String.raw `\b06\s?\d{1,2}[\s\-]?\d{3}[\s\-]?\d{3,4}\b`),
479
+ p(types_js_1.EntityType.PHONE, String.raw `\+36\s?\d{1,2}[\s\-]?\d{3}[\s\-]?\d{3,4}`),
480
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{3}\b`, null, "", ["irányítószám", "postai", "cím", "utca", "Postal:", "Address:"], true),
481
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `(?<=, )[1-9]\d{3}(?= [A-Z])`),
482
+ ],
483
+ };
484
+ const RO = {
485
+ code: "RO",
486
+ name: "Romania",
487
+ patterns: [
488
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b[1-8]\d{12}\b`, "romanian_cnp"),
489
+ p(types_js_1.EntityType.IBAN, String.raw `\bRO\d{2}[A-Z]{4}\d{16}\b`, "iban"),
490
+ p(types_js_1.EntityType.VAT, String.raw `\bRO\d{2,10}\b`),
491
+ p(types_js_1.EntityType.PHONE, String.raw `\b0?7[2-9]\d{1}[\s\-]?\d{3}[\s\-]?\d{3,4}\b`),
492
+ p(types_js_1.EntityType.PHONE, String.raw `\b0?7[2-9]\d{7,8}\b`),
493
+ p(types_js_1.EntityType.PHONE, String.raw `\+40\s?7[2-9]\d{1}[\s\-]?\d{3}[\s\-]?\d{3,4}`),
494
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{6}\b`, null, "", ["cod poștal", "cod postal", "adresă", "strada", "Postal:", "Address:"], true),
495
+ ],
496
+ };
497
+ const EL = {
498
+ code: "EL",
499
+ name: "Greece",
500
+ patterns: [
501
+ p(types_js_1.EntityType.TAX_ID, String.raw `\b\d{9}\b`, "greek_afm"),
502
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{11}\b`, "greek_amka"),
503
+ p(types_js_1.EntityType.IBAN, String.raw `\bGR\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{3}\b`, "iban"),
504
+ p(types_js_1.EntityType.IBAN, String.raw `\bGR\d{25}\b`, "iban"),
505
+ p(types_js_1.EntityType.VAT, String.raw `\bEL\d{9}\b`),
506
+ p(types_js_1.EntityType.PHONE, String.raw `\b69\d[\s\-]?\d{3,4}[\s\-]?\d{4}\b`),
507
+ p(types_js_1.EntityType.PHONE, String.raw `\b69\d{8}\b`),
508
+ p(types_js_1.EntityType.PHONE, String.raw `\b2\d{1,3}[\s\-]?\d{3,4}[\s\-]?\d{3,4}\b`),
509
+ p(types_js_1.EntityType.PHONE, String.raw `\+30\s?\d{2,4}[\s\-]?\d{3,4}[\s\-]?\d{3,4}`),
510
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b\d{3}\s?\d{2}\b`, null, "", ["Τ.Κ.", "ταχυδρομικός", "address", "Address:", "Postal:", "διεύθυνση", "οδός"], true),
511
+ ],
512
+ };
513
+ const SI = {
514
+ code: "SI",
515
+ name: "Slovenia",
516
+ patterns: [
517
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{13}\b`, "slovenian_emso"),
518
+ p(types_js_1.EntityType.IBAN, String.raw `\bSI\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{3}\b`, "iban"),
519
+ p(types_js_1.EntityType.IBAN, String.raw `\bSI\d{17}\b`, "iban"),
520
+ p(types_js_1.EntityType.VAT, String.raw `\bSI\d{8}\b`),
521
+ p(types_js_1.EntityType.PHONE, String.raw `\b0?[34567]\d{1}[\s\-]?\d{3}[\s\-]?\d{3}\b`),
522
+ p(types_js_1.EntityType.PHONE, String.raw `\b0?[34567]\d{7}\b`),
523
+ p(types_js_1.EntityType.PHONE, String.raw `\+386\s?[34567]\d{1}[\s\-]?\d{3}[\s\-]?\d{3}`),
524
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[1-9]\d{3}\b`, null, "", ["poštna številka", "poštna", "naslov", "ulica", "Postal:", "Address:"], true),
525
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `(?<=, )[1-9]\d{3}(?= [A-Z])`),
526
+ ],
527
+ };
528
+ const MT = {
529
+ code: "MT",
530
+ name: "Malta",
531
+ patterns: [
532
+ p(types_js_1.EntityType.NATIONAL_ID, String.raw `\b\d{5,7}[MGAPLHBZ]\b`),
533
+ p(types_js_1.EntityType.IBAN, String.raw `\bMT\d{2}\s?[A-Z]{4}\s?\d{4}\s?\d{4}\s?[A-Z0-9]{4}\s?[A-Z0-9]{4}\s?[A-Z0-9]{4}\s?[A-Z0-9]{3}\b`, "iban"),
534
+ p(types_js_1.EntityType.IBAN, String.raw `\bMT\d{2}[A-Z]{4}\d{5}[A-Z0-9]{18}\b`, "iban"),
535
+ p(types_js_1.EntityType.VAT, String.raw `\bMT\d{8}\b`),
536
+ p(types_js_1.EntityType.PHONE, String.raw `\b[79]\d{3}[\s\-]?\d{4}\b`),
537
+ p(types_js_1.EntityType.PHONE, String.raw `\b[79]\d{7}\b`),
538
+ p(types_js_1.EntityType.PHONE, String.raw `\+356\s?[79]\d{3}[\s\-]?\d{3,4}`),
539
+ p(types_js_1.EntityType.POSTAL_CODE, String.raw `\b[A-Z]{3}\s?\d{4}\b`, null, "", ["kodiċi postali", "postcode", "address", "Address:", "Postal:"], true),
540
+ ],
541
+ };
542
+ // ---------------------------------------------------------------------------
543
+ // Export all configs as a single Record
544
+ // ---------------------------------------------------------------------------
545
+ exports.COUNTRY_CONFIGS = {
546
+ SHARED,
547
+ NL,
548
+ BE,
549
+ DE,
550
+ AT,
551
+ CH,
552
+ FR,
553
+ DK,
554
+ SE,
555
+ NO,
556
+ FI,
557
+ IS,
558
+ IT,
559
+ ES,
560
+ PT,
561
+ LU,
562
+ PL,
563
+ IE,
564
+ UK,
565
+ BG,
566
+ CY,
567
+ CZ,
568
+ SK,
569
+ EE,
570
+ LT,
571
+ LV,
572
+ HR,
573
+ HU,
574
+ RO,
575
+ EL,
576
+ SI,
577
+ MT,
578
+ };