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.
- package/LICENSE +189 -0
- package/README.md +86 -10
- package/dist/cjs/cache.js +56 -0
- package/dist/cjs/index.js +30 -0
- package/dist/cjs/normalizer.js +45 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/rules/countries/index.js +578 -0
- package/dist/cjs/rules/engine.js +88 -0
- package/dist/cjs/rules/matchers.js +51 -0
- package/dist/cjs/rules/structural.js +104 -0
- package/dist/cjs/rules/suppressors.js +211 -0
- package/dist/cjs/rules/validators.js +669 -0
- package/dist/cjs/sdk.js +76 -0
- package/dist/cjs/types.js +41 -0
- package/dist/esm/cache.d.ts +11 -0
- package/dist/esm/cache.js +52 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.js +20 -0
- package/dist/esm/normalizer.d.ts +2 -0
- package/dist/esm/normalizer.js +41 -0
- package/dist/esm/rules/countries/index.d.ts +2 -0
- package/dist/esm/rules/countries/index.js +575 -0
- package/dist/esm/rules/engine.d.ts +9 -0
- package/dist/esm/rules/engine.js +84 -0
- package/dist/esm/rules/matchers.d.ts +11 -0
- package/dist/esm/rules/matchers.js +47 -0
- package/dist/esm/rules/structural.d.ts +2 -0
- package/dist/esm/rules/structural.js +101 -0
- package/dist/esm/rules/suppressors.d.ts +9 -0
- package/dist/esm/rules/suppressors.js +208 -0
- package/dist/esm/rules/validators.d.ts +43 -0
- package/dist/esm/rules/validators.js +624 -0
- package/dist/esm/sdk.d.ts +15 -0
- package/dist/esm/sdk.js +72 -0
- package/dist/esm/types.d.ts +64 -0
- package/dist/esm/types.js +38 -0
- package/package.json +55 -9
- package/index.js +0 -3
|
@@ -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
|
+
};
|