@stll/anonymize-wasm 1.2.0 → 1.4.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.
Files changed (64) hide show
  1. package/dist/address-boundaries.mjs +113 -5
  2. package/dist/address-stop-keywords.mjs +137 -0
  3. package/dist/address-stop-keywords.mjs.map +1 -0
  4. package/dist/address-stopwords.mjs +81 -0
  5. package/dist/address-stopwords.mjs.map +1 -0
  6. package/dist/address-street-types.mjs +67 -4
  7. package/dist/clause-noun-heads.mjs +75 -0
  8. package/dist/clause-noun-heads.mjs.map +1 -0
  9. package/dist/constants.d.mts +2 -0
  10. package/dist/constants.mjs +85 -0
  11. package/dist/constants.mjs.map +1 -0
  12. package/dist/constants2.d.mts +65 -0
  13. package/dist/coreference.es.mjs +22 -0
  14. package/dist/coreference.es.mjs.map +1 -0
  15. package/dist/coreference.fr.mjs +32 -0
  16. package/dist/coreference.fr.mjs.map +1 -0
  17. package/dist/coreference.it.mjs +27 -0
  18. package/dist/coreference.it.mjs.map +1 -0
  19. package/dist/coreference.pl.mjs +27 -0
  20. package/dist/coreference.pl.mjs.map +1 -0
  21. package/dist/coreference.pt-br.mjs +14 -0
  22. package/dist/coreference.pt-br.mjs.map +1 -0
  23. package/dist/coreference.sk.mjs +22 -5
  24. package/dist/generic-roles.mjs +179 -1
  25. package/dist/hotword-rules.mjs +7 -3
  26. package/dist/legal-forms.mjs +3 -0
  27. package/dist/legal-role-heads.cs.mjs +42 -0
  28. package/dist/legal-role-heads.cs.mjs.map +1 -0
  29. package/dist/legal-role-heads.de.mjs +33 -0
  30. package/dist/legal-role-heads.de.mjs.map +1 -0
  31. package/dist/legal-role-heads.en.mjs +37 -0
  32. package/dist/legal-role-heads.en.mjs.map +1 -0
  33. package/dist/legal-role-heads.es.mjs +54 -0
  34. package/dist/legal-role-heads.es.mjs.map +1 -0
  35. package/dist/legal-role-heads.fr.mjs +72 -0
  36. package/dist/legal-role-heads.fr.mjs.map +1 -0
  37. package/dist/legal-role-heads.it.mjs +68 -0
  38. package/dist/legal-role-heads.it.mjs.map +1 -0
  39. package/dist/legal-role-heads.pl.mjs +84 -0
  40. package/dist/legal-role-heads.pl.mjs.map +1 -0
  41. package/dist/legal-role-heads.pt-br.mjs +63 -0
  42. package/dist/legal-role-heads.pt-br.mjs.map +1 -0
  43. package/dist/legal-role-heads.sk.mjs +80 -0
  44. package/dist/legal-role-heads.sk.mjs.map +1 -0
  45. package/dist/manifest.mjs +21 -8
  46. package/dist/names-exclusions.mjs +21 -1
  47. package/dist/person-stopwords.mjs +121 -1
  48. package/dist/section-headings.mjs +15 -3
  49. package/dist/sentence-verb-indicators.mjs +223 -0
  50. package/dist/sentence-verb-indicators.mjs.map +1 -0
  51. package/dist/triggers.cs.mjs +107 -3
  52. package/dist/triggers.en.mjs +32 -0
  53. package/dist/triggers.es.mjs +43 -4
  54. package/dist/triggers.fr.mjs +206 -7
  55. package/dist/triggers.it.mjs +26 -4
  56. package/dist/triggers.pl.mjs +191 -4
  57. package/dist/triggers.pt-br.mjs +193 -0
  58. package/dist/triggers.pt-br.mjs.map +1 -0
  59. package/dist/triggers.sk.mjs +493 -0
  60. package/dist/vite.mjs.map +1 -1
  61. package/dist/wasm.d.mts +56 -39
  62. package/dist/wasm.mjs +2382 -1408
  63. package/dist/wasm.mjs.map +1 -1
  64. package/package.json +7 -2
@@ -26,16 +26,60 @@ var address_boundaries_default = {
26
26
  "attn",
27
27
  "c/o",
28
28
  "care of",
29
+ "concerning",
29
30
  "contact person",
31
+ "for any",
30
32
  "incorporated",
33
+ "postmarked",
31
34
  "registered",
32
- "represented"
35
+ "represented",
36
+ "shall govern",
37
+ "shall be governed",
38
+ "to be enforced",
39
+ "with the intention",
40
+ "without reference",
41
+ "without regard"
42
+ ],
43
+ es: [
44
+ "con CIF",
45
+ "con C.I.F.",
46
+ "con NIF",
47
+ "con N.I.F.",
48
+ "con DNI",
49
+ "con D.N.I.",
50
+ "con NIE",
51
+ "con N.I.E.",
52
+ "inscrita",
53
+ "inscrito",
54
+ "registro mercantil",
55
+ "registro",
56
+ "representada por",
57
+ "representado por",
58
+ "actuando en nombre",
59
+ "número de identificación fiscal",
60
+ "código postal"
33
61
  ],
34
62
  fr: [
63
+ "agissant",
64
+ "ayant pour",
65
+ "ayant son",
66
+ "ci-après",
67
+ "ci-dessous",
68
+ "ci-dessus",
69
+ "désigné",
70
+ "désignée",
71
+ "dénommé",
72
+ "dénommée",
73
+ "immatriculé",
35
74
  "immatriculée",
75
+ "inscrit",
36
76
  "inscrite",
77
+ "RCS",
37
78
  "représenté",
38
- "représentée"
79
+ "représentée",
80
+ "SIREN",
81
+ "SIRET",
82
+ "TVA"
39
83
  ],
40
84
  hu: [
41
85
  "bejegyzett",
@@ -43,19 +87,65 @@ var address_boundaries_default = {
43
87
  "képviseli"
44
88
  ],
45
89
  it: [
90
+ "C.F.",
91
+ "P. IVA",
92
+ "P.IVA",
93
+ "codice fiscale",
46
94
  "iscritta",
95
+ "iscritto",
96
+ "partita IVA",
97
+ "punti di contatto",
47
98
  "rappresentata",
48
99
  "rappresentato",
49
- "registro imprese"
100
+ "registro imprese",
101
+ "responsabile del procedimento"
50
102
  ],
51
103
  pl: [
104
+ "kapitał zakładowy",
105
+ "kapitale zakładowym",
106
+ "KRS",
107
+ "NIP",
108
+ "REGON",
109
+ "PESEL",
52
110
  "reprezentowana",
53
111
  "reprezentowany",
112
+ "reprezentowaną",
113
+ "reprezentowanego",
114
+ "reprezentowanym",
115
+ "reprezentowanej",
54
116
  "wpisana",
55
117
  "wpisane",
56
118
  "wpisano",
57
119
  "wpisany",
58
- "zarejestrowana"
120
+ "wpisaną",
121
+ "wpisanego",
122
+ "wpisanej",
123
+ "zarejestrowana",
124
+ "zarejestrowany",
125
+ "zarejestrowaną",
126
+ "zarejestrowanego",
127
+ "zwana dalej",
128
+ "zwany dalej",
129
+ "zwaną dalej",
130
+ "zwanego dalej"
131
+ ],
132
+ "pt-br": [
133
+ "CNPJ",
134
+ "CPF",
135
+ "RG",
136
+ "OAB",
137
+ "inscrita",
138
+ "inscrito",
139
+ "Inscrição Estadual",
140
+ "Inscrição Municipal",
141
+ "neste ato representada",
142
+ "neste ato representado",
143
+ "doravante denominada",
144
+ "doravante denominado",
145
+ "registrada",
146
+ "registrado",
147
+ "portador",
148
+ "portadora"
59
149
  ],
60
150
  ro: [
61
151
  "înregistrată",
@@ -63,11 +153,29 @@ var address_boundaries_default = {
63
153
  "reprezentată"
64
154
  ],
65
155
  sk: [
156
+ "IČO",
157
+ "DIČ",
158
+ "IČ DPH",
159
+ "bankové spojenie",
160
+ "číslo účtu",
66
161
  "konajúci",
162
+ "konajúca",
163
+ "kontaktná osoba",
164
+ "registrovaný",
165
+ "registrovaná",
166
+ "splnomocnený zástupca",
167
+ "splnomocnená zástupkyňa",
168
+ "štatutárny orgán",
169
+ "štatutárny zástupca",
170
+ "v zastúpení",
67
171
  "zapísaná",
68
172
  "zapísaný",
173
+ "zapísané",
174
+ "zaregistrovaná",
175
+ "zaregistrovaný",
69
176
  "zastúpená",
70
- "zastúpený"
177
+ "zastúpený",
178
+ "zastúpené"
71
179
  ],
72
180
  universal: [
73
181
  "e-mail",
@@ -0,0 +1,137 @@
1
+ //#region src/data/address-stop-keywords.json
2
+ var _comment = "Field-label keywords that terminate address-strategy scanning. When the address strategy hits a comma followed by one of these labels, the address span stops before the keyword so 'IČO:', 'Bankové spojenie:', 'IBAN:' don't get absorbed into the address. Lowercased; matched case-insensitively. Organised per-language because the labels are language-specific; at runtime the trigger detector unions every language's list into a single stop set because address spans don't carry a language tag.";
3
+ var cs = [
4
+ "číslo účtu",
5
+ "registrační",
6
+ "zastoupen",
7
+ "bankovní",
8
+ "datová",
9
+ "vložka",
10
+ "sp.zn.",
11
+ "jednatel",
12
+ "ředitel",
13
+ "oddíl",
14
+ "telefon",
15
+ "č.ú.",
16
+ "dič",
17
+ "ičo",
18
+ "ič"
19
+ ];
20
+ var en = [
21
+ "e-mail",
22
+ "email",
23
+ "tel",
24
+ "swift",
25
+ "iban",
26
+ "bic"
27
+ ];
28
+ var pl = [
29
+ "nip",
30
+ "krs",
31
+ "regon",
32
+ "pesel",
33
+ "numer konta",
34
+ "konto bankowe",
35
+ "rachunek bankowy",
36
+ "tel.",
37
+ "telefon",
38
+ "e-mail",
39
+ "email"
40
+ ];
41
+ var fr = [
42
+ "e-mail",
43
+ "email",
44
+ "courriel",
45
+ "téléphone",
46
+ "tél.",
47
+ "tél",
48
+ "portable",
49
+ "fax",
50
+ "siren",
51
+ "siret",
52
+ "tva",
53
+ "rcs",
54
+ "naf",
55
+ "ape",
56
+ "iban",
57
+ "bic",
58
+ "swift",
59
+ "code postal",
60
+ "cp",
61
+ "nir"
62
+ ];
63
+ var sk = [
64
+ "číslo účtu",
65
+ "bankové spojenie",
66
+ "ičo",
67
+ "ič dph",
68
+ "ičdph",
69
+ "dič",
70
+ "konateľ",
71
+ "konateľka",
72
+ "konateľom",
73
+ "konateľkou",
74
+ "riaditeľ",
75
+ "riaditeľka",
76
+ "vložka",
77
+ "oddiel",
78
+ "sp.zn.",
79
+ "sp. zn.",
80
+ "spisovej značky",
81
+ "č.ú.",
82
+ "č. účtu"
83
+ ];
84
+ var pt_br = [
85
+ "bic",
86
+ "cnpj",
87
+ "cnpj/mf",
88
+ "conta",
89
+ "cpf",
90
+ "cpf/mf",
91
+ "doravante",
92
+ "e-mail",
93
+ "email",
94
+ "fax",
95
+ "iban",
96
+ "inscrição estadual",
97
+ "inscrição municipal",
98
+ "neste ato",
99
+ "nire",
100
+ "oab",
101
+ "portador",
102
+ "portadora",
103
+ "representada",
104
+ "representado",
105
+ "rg",
106
+ "swift",
107
+ "tel",
108
+ "telefone"
109
+ ];
110
+ var es = [];
111
+ var it = [
112
+ "c.f.",
113
+ "c.f. e p.iva",
114
+ "codice fiscale",
115
+ "p. iva",
116
+ "p.iva",
117
+ "partita iva",
118
+ "pec",
119
+ "registro imprese",
120
+ "rappresentata",
121
+ "rappresentato"
122
+ ];
123
+ var address_stop_keywords_default = {
124
+ _comment,
125
+ cs,
126
+ en,
127
+ pl,
128
+ fr,
129
+ sk,
130
+ "pt-br": pt_br,
131
+ es,
132
+ it
133
+ };
134
+ //#endregion
135
+ export { _comment, cs, address_stop_keywords_default as default, en, es, fr, it, pl, pt_br as "pt-br", sk };
136
+
137
+ //# sourceMappingURL=address-stop-keywords.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-stop-keywords.mjs","names":[],"sources":["../../src/data/address-stop-keywords.json"],"sourcesContent":[""],"mappings":""}
@@ -0,0 +1,81 @@
1
+ //#region src/data/address-stopwords.json
2
+ var address_stopwords_default = {
3
+ _comment: "Single-token English/legal words that collide with tiny entries in city dictionaries (GeoNames-based). When the deny-list pass would emit one of these as a standalone `address` hit, it is dropped — almost certainly a Purchase Price / European Union / Effective Time false positive, not a real place. Multi-token matches (e.g. 'Lake Union, WA') are unaffected because the filter only fires on single-token spans.",
4
+ _it_comment: "Italian additions are conservative: only common-noun Italian words that collide with city dictionary entries. Real Italian cities are NOT listed; multi-token spans (`Via Trieste`, `41012 Modena`) are unaffected.",
5
+ words: [
6
+ "agenda",
7
+ "agent",
8
+ "amount",
9
+ "brent",
10
+ "central",
11
+ "centro",
12
+ "client",
13
+ "code",
14
+ "company",
15
+ "consent",
16
+ "contract",
17
+ "customer",
18
+ "default",
19
+ "delivery",
20
+ "event",
21
+ "exhibit",
22
+ "general",
23
+ "gordon",
24
+ "interest",
25
+ "license",
26
+ "memorandum",
27
+ "notice",
28
+ "owner",
29
+ "party",
30
+ "payment",
31
+ "price",
32
+ "principal",
33
+ "rate",
34
+ "registro",
35
+ "schedule",
36
+ "se",
37
+ "section",
38
+ "server",
39
+ "tenant",
40
+ "term",
41
+ "termination",
42
+ "time",
43
+ "union",
44
+ "urbana",
45
+ "ventosa",
46
+ "vendor",
47
+ "waiver",
48
+ "amministrazione",
49
+ "appaltante",
50
+ "appalto",
51
+ "articolo",
52
+ "cliente",
53
+ "concedente",
54
+ "concessionario",
55
+ "conduttore",
56
+ "denominazione",
57
+ "esecuzione",
58
+ "fornitore",
59
+ "indirizzo",
60
+ "informazioni",
61
+ "lavoratore",
62
+ "lavoro",
63
+ "locatore",
64
+ "luogo",
65
+ "magazzino",
66
+ "mandante",
67
+ "mandatario",
68
+ "oggetto",
69
+ "piano",
70
+ "procedimento",
71
+ "procedura",
72
+ "responsabile",
73
+ "sede",
74
+ "sezione",
75
+ "venditore"
76
+ ]
77
+ };
78
+ //#endregion
79
+ export { address_stopwords_default as default };
80
+
81
+ //# sourceMappingURL=address-stopwords.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-stopwords.mjs","names":[],"sources":["../../src/data/address-stopwords.json"],"sourcesContent":[""],"mappings":""}
@@ -44,26 +44,48 @@ var en = [
44
44
  "Way"
45
45
  ];
46
46
  var es = [
47
+ "Av.",
48
+ "Avda.",
47
49
  "avenida",
48
50
  "bulevar",
51
+ "C/",
49
52
  "calle",
50
53
  "camino",
54
+ "carrera",
51
55
  "carretera",
56
+ "Cra.",
57
+ "Ctra.",
52
58
  "glorieta",
53
59
  "paseo",
54
60
  "plaza",
61
+ "Pza.",
55
62
  "ronda",
56
63
  "travesía"
57
64
  ];
58
65
  var fr = [
59
66
  "allée",
67
+ "av",
68
+ "av.",
60
69
  "avenue",
70
+ "bd",
71
+ "bd.",
61
72
  "boulevard",
62
73
  "chemin",
74
+ "cours",
63
75
  "impasse",
76
+ "passage",
77
+ "pl",
78
+ "pl.",
64
79
  "place",
65
80
  "quai",
66
- "rue"
81
+ "résidence",
82
+ "route",
83
+ "rte",
84
+ "rte.",
85
+ "rue",
86
+ "ruelle",
87
+ "square",
88
+ "voie"
67
89
  ];
68
90
  var hu = [
69
91
  "fasor",
@@ -79,15 +101,27 @@ var hu = [
79
101
  "utca"
80
102
  ];
81
103
  var it = [
104
+ "borgo",
105
+ "calle",
106
+ "contrada",
82
107
  "corso",
83
108
  "largo",
84
109
  "lungarno",
110
+ "lungomare",
85
111
  "lungotevere",
112
+ "passeggiata",
86
113
  "piazza",
87
114
  "piazzale",
115
+ "salita",
116
+ "strada",
117
+ "stradone",
118
+ "traversa",
88
119
  "via",
89
120
  "viale",
90
- "vicolo"
121
+ "vico",
122
+ "vicolo",
123
+ "v.le",
124
+ "v.lo"
91
125
  ];
92
126
  var nl = [
93
127
  "gracht",
@@ -100,13 +134,21 @@ var nl = [
100
134
  var pl = [
101
135
  "al.",
102
136
  "aleja",
137
+ "aleje",
138
+ "aleją",
139
+ "alei",
103
140
  "bulwar",
141
+ "os.",
142
+ "osiedle",
104
143
  "pl.",
105
144
  "plac",
145
+ "placu",
106
146
  "rondo",
147
+ "rynek",
107
148
  "skwer",
108
149
  "ul.",
109
- "ulica"
150
+ "ulica",
151
+ "ulicy"
110
152
  ];
111
153
  var pt = [
112
154
  "avenida",
@@ -115,6 +157,18 @@ var pt = [
115
157
  "rua",
116
158
  "travessa"
117
159
  ];
160
+ var pt_br = [
161
+ "alameda",
162
+ "av.",
163
+ "avenida",
164
+ "estrada",
165
+ "largo",
166
+ "praça",
167
+ "praca",
168
+ "rodovia",
169
+ "rua",
170
+ "travessa"
171
+ ];
118
172
  var ro = [
119
173
  "aleea",
120
174
  "bd.",
@@ -129,8 +183,16 @@ var ro = [
129
183
  "strada"
130
184
  ];
131
185
  var sk = [
186
+ "alej",
187
+ "nábr.",
188
+ "nábrežie",
189
+ "nám.",
132
190
  "námest.",
133
191
  "námestie",
192
+ "sady",
193
+ "tr.",
194
+ "trieda",
195
+ "ul.",
134
196
  "ulica"
135
197
  ];
136
198
  var sv = [
@@ -152,11 +214,12 @@ var address_street_types_default = {
152
214
  nl,
153
215
  pl,
154
216
  pt,
217
+ "pt-br": pt_br,
155
218
  ro,
156
219
  sk,
157
220
  sv
158
221
  };
159
222
  //#endregion
160
- export { _comment, cs, de, address_street_types_default as default, en, es, fr, hu, it, nl, pl, pt, ro, sk, sv };
223
+ export { _comment, cs, de, address_street_types_default as default, en, es, fr, hu, it, nl, pl, pt, pt_br as "pt-br", ro, sk, sv };
161
224
 
162
225
  //# sourceMappingURL=address-street-types.mjs.map
@@ -0,0 +1,75 @@
1
+ //#region src/data/clause-noun-heads.json
2
+ var _comment = "Common contract/clause nouns that appear in legal prose between a sentence-verb and the company name (e.g. 'Vendor signed Agreement with Acme Inc.'). The legal-form trim skips these when scanning forward for the org's first Cap word, so the anchor lands on the real company name rather than the contract noun. Lowercased; matched case-insensitively. Organised per-language; at runtime the legal-form detector unions every language's list into a single set because match spans don't carry a language tag.";
3
+ var en = [
4
+ "agreement",
5
+ "agreements",
6
+ "contract",
7
+ "contracts",
8
+ "license",
9
+ "licence",
10
+ "lease",
11
+ "memorandum",
12
+ "notice",
13
+ "exhibit",
14
+ "schedule",
15
+ "addendum",
16
+ "amendment",
17
+ "appendix",
18
+ "attachment"
19
+ ];
20
+ var cs = [
21
+ "smlouva",
22
+ "smlouvy",
23
+ "smlouvu",
24
+ "smlouvou",
25
+ "dohoda",
26
+ "dohody",
27
+ "dohodu",
28
+ "dohodou",
29
+ "licence",
30
+ "licenci",
31
+ "příloha",
32
+ "přílohy",
33
+ "přílohu",
34
+ "dodatek",
35
+ "dodatku",
36
+ "oznámení"
37
+ ];
38
+ var de = [
39
+ "vertrag",
40
+ "vertrages",
41
+ "vereinbarung",
42
+ "vereinbarungen",
43
+ "lizenz",
44
+ "anlage",
45
+ "anhang"
46
+ ];
47
+ var es = [
48
+ "acuerdo",
49
+ "acuerdos",
50
+ "contrato",
51
+ "contratos",
52
+ "convenio",
53
+ "convenios",
54
+ "licencia",
55
+ "licencias",
56
+ "memorándum",
57
+ "notificación",
58
+ "anexo",
59
+ "anexos",
60
+ "adenda",
61
+ "apéndice",
62
+ "cláusula",
63
+ "cláusulas"
64
+ ];
65
+ var clause_noun_heads_default = {
66
+ _comment,
67
+ en,
68
+ cs,
69
+ de,
70
+ es
71
+ };
72
+ //#endregion
73
+ export { _comment, cs, de, clause_noun_heads_default as default, en, es };
74
+
75
+ //# sourceMappingURL=clause-noun-heads.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clause-noun-heads.mjs","names":[],"sources":["../../src/data/clause-noun-heads.json"],"sourcesContent":[""],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { a as OPERATOR_TYPES, i as DetectionSource, n as DETECTION_SOURCES, o as OperatorType, r as DETECTOR_PRIORITY, t as DEFAULT_ENTITY_LABELS } from "./constants2.mjs";
2
+ export { DEFAULT_ENTITY_LABELS, DETECTION_SOURCES, DETECTOR_PRIORITY, DetectionSource, OPERATOR_TYPES, OperatorType };
@@ -0,0 +1,85 @@
1
+ //#region src/constants.ts
2
+ /**
3
+ * Runtime-free constants for the anonymization pipeline.
4
+ *
5
+ * This module is the SSR-safe / browser-safe entrypoint:
6
+ * importing it must not pull in `@stll/text-search`,
7
+ * `@stll/anonymize-wasm`, or any other runtime-bearing
8
+ * module. Consumers that only need the static label list,
9
+ * detection-source identifiers, or operator names import
10
+ * from `@stll/anonymize/constants` (or
11
+ * `@stll/anonymize-wasm/constants`) without paying the
12
+ * wasm / regex-set startup cost.
13
+ *
14
+ * `types.ts` re-exports these for back-compat, so existing
15
+ * `import { DEFAULT_ENTITY_LABELS } from "@stll/anonymize"`
16
+ * call sites keep working.
17
+ */
18
+ /**
19
+ * Source of a detected entity span.
20
+ * Ordered by detection layer in the pipeline.
21
+ */
22
+ const DETECTION_SOURCES = {
23
+ TRIGGER: "trigger",
24
+ REGEX: "regex",
25
+ DENY_LIST: "deny-list",
26
+ LEGAL_FORM: "legal-form",
27
+ GAZETTEER: "gazetteer",
28
+ NER: "ner",
29
+ COREFERENCE: "coreference"
30
+ };
31
+ /**
32
+ * Priority levels for detection sources.
33
+ * Higher = more structurally reliable. Used during
34
+ * overlap resolution so deterministic detectors beat
35
+ * probabilistic ones regardless of raw score.
36
+ */
37
+ const DETECTOR_PRIORITY = {
38
+ [DETECTION_SOURCES.GAZETTEER]: 5,
39
+ [DETECTION_SOURCES.TRIGGER]: 4,
40
+ [DETECTION_SOURCES.LEGAL_FORM]: 3,
41
+ [DETECTION_SOURCES.REGEX]: 3,
42
+ [DETECTION_SOURCES.DENY_LIST]: 2,
43
+ [DETECTION_SOURCES.COREFERENCE]: 2,
44
+ [DETECTION_SOURCES.NER]: 1
45
+ };
46
+ /**
47
+ * Anonymization operator types. Each operator defines
48
+ * how a confirmed entity is replaced in the output.
49
+ */
50
+ const OPERATOR_TYPES = ["replace", "redact"];
51
+ /**
52
+ * Canonical entity labels used across the pipeline.
53
+ * NER models may use different native labels; the bench
54
+ * NER wrapper maps model output to these canonical names.
55
+ *
56
+ * These labels are ephemeral: entities are regenerated on
57
+ * every pipeline run and never persisted to the database.
58
+ * Renaming a label here requires no migration.
59
+ */
60
+ const DEFAULT_ENTITY_LABELS = [
61
+ "person",
62
+ "organization",
63
+ "phone number",
64
+ "address",
65
+ "email address",
66
+ "date",
67
+ "date of birth",
68
+ "bank account number",
69
+ "iban",
70
+ "tax identification number",
71
+ "identity card number",
72
+ "birth number",
73
+ "national identification number",
74
+ "social security number",
75
+ "registration number",
76
+ "credit card number",
77
+ "passport number",
78
+ "monetary amount",
79
+ "land parcel",
80
+ "misc"
81
+ ];
82
+ //#endregion
83
+ export { DEFAULT_ENTITY_LABELS, DETECTION_SOURCES, DETECTOR_PRIORITY, OPERATOR_TYPES };
84
+
85
+ //# sourceMappingURL=constants.mjs.map