@stll/anonymize 1.5.0 → 2.0.0-alpha.1

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 (41) hide show
  1. package/ATTRIBUTION.md +70 -0
  2. package/README.md +86 -48
  3. package/dist/address-boundaries.mjs +2 -0
  4. package/dist/address-jurisdiction-prefixes.mjs +16 -0
  5. package/dist/address-jurisdiction-prefixes.mjs.map +1 -0
  6. package/dist/address-stop-keywords.mjs +12 -1
  7. package/dist/address-unit-abbreviations.mjs +15 -0
  8. package/dist/address-unit-abbreviations.mjs.map +1 -0
  9. package/dist/clause-noun-heads.mjs +5 -1
  10. package/dist/coreference-org-determiners.mjs +19 -0
  11. package/dist/coreference-org-determiners.mjs.map +1 -0
  12. package/dist/defined-term-heads.mjs +15 -0
  13. package/dist/defined-term-heads.mjs.map +1 -0
  14. package/dist/false-positive-shapes.mjs +36 -0
  15. package/dist/false-positive-shapes.mjs.map +1 -0
  16. package/dist/index.d.mts +3 -1201
  17. package/dist/index.mjs +3 -16267
  18. package/dist/index.mjs.map +1 -1
  19. package/dist/legal-role-heads.cs.mjs +6 -0
  20. package/dist/native-node.d.mts +124 -0
  21. package/dist/native-node.mjs +3 -0
  22. package/dist/native-node2.d.mts +3 -0
  23. package/dist/native-node2.mjs +13353 -0
  24. package/dist/native-node2.mjs.map +1 -0
  25. package/dist/native.d.mts +1158 -0
  26. package/dist/native.mjs +230 -0
  27. package/dist/native.mjs.map +1 -0
  28. package/dist/native2.d.mts +2 -0
  29. package/dist/organization-unit-heads.mjs +20 -0
  30. package/dist/organization-unit-heads.mjs.map +1 -0
  31. package/dist/person-stopwords.mjs +205 -199
  32. package/dist/signing-clauses.mjs +33 -9
  33. package/index.cjs +3 -0
  34. package/native-pipeline.cs.stlanonpkg +0 -0
  35. package/native-pipeline.de.stlanonpkg +0 -0
  36. package/native-pipeline.en.stlanonpkg +0 -0
  37. package/native-pipeline.stlanonpkg +0 -0
  38. package/package.json +40 -6
  39. package/scripts/build-native-pipeline-package.mjs +225 -0
  40. package/dist/address-prepositions.mjs +0 -182
  41. package/dist/address-prepositions.mjs.map +0 -1
@@ -1,205 +1,211 @@
1
1
  //#region src/data/person-stopwords.json
2
+ var _comment = "Words that are valid in other labels (address, org) but should never be classified as person. Checked only in person chain scoring.";
3
+ var cs = ["cena"];
4
+ var en = ["dodd-frank"];
5
+ var words = [
6
+ "addendum",
7
+ "agent",
8
+ "agreement",
9
+ "alameda",
10
+ "amendment",
11
+ "annex",
12
+ "april",
13
+ "article",
14
+ "august",
15
+ "austria",
16
+ "austrian",
17
+ "avenida",
18
+ "basic",
19
+ "belgian",
20
+ "borrower",
21
+ "branch",
22
+ "british",
23
+ "bulgarian",
24
+ "buyer",
25
+ "california",
26
+ "center",
27
+ "consent",
28
+ "consultant",
29
+ "contract",
30
+ "contractor",
31
+ "croatian",
32
+ "customer",
33
+ "cypriot",
34
+ "czech",
35
+ "danish",
36
+ "december",
37
+ "default",
38
+ "delaware",
39
+ "delivery",
40
+ "department",
41
+ "division",
42
+ "dry",
43
+ "dutch",
44
+ "english",
45
+ "estonian",
46
+ "estrada",
47
+ "european",
48
+ "event",
49
+ "exhibit",
50
+ "february",
51
+ "finnish",
52
+ "french",
53
+ "german",
54
+ "germany",
55
+ "greek",
56
+ "guarantor",
57
+ "headquarters",
58
+ "hungarian",
59
+ "indiana",
60
+ "interest",
61
+ "irish",
62
+ "israel",
63
+ "italian",
64
+ "january",
65
+ "july",
66
+ "june",
67
+ "landlord",
68
+ "largo",
69
+ "latvian",
70
+ "lender",
71
+ "lessee",
72
+ "lessor",
73
+ "license",
74
+ "licensee",
75
+ "licensor",
76
+ "lithuanian",
77
+ "louisiana",
78
+ "luxembourgish",
79
+ "maltese",
80
+ "march",
81
+ "maryland",
82
+ "memorandum",
83
+ "missouri",
84
+ "nevada",
85
+ "notice",
86
+ "november",
87
+ "october",
88
+ "office",
89
+ "ohio",
90
+ "opportunity",
91
+ "owner",
92
+ "page",
93
+ "party",
94
+ "payment",
95
+ "polish",
96
+ "portuguese",
97
+ "praca",
98
+ "praça",
99
+ "price",
100
+ "principal",
101
+ "purchaser",
102
+ "rate",
103
+ "rodovia",
104
+ "romanian",
105
+ "rua",
106
+ "sale",
107
+ "schedule",
108
+ "section",
109
+ "seller",
110
+ "september",
111
+ "subsidiary",
112
+ "slovak",
113
+ "slovenian",
114
+ "spanish",
115
+ "swedish",
116
+ "tenant",
117
+ "term",
118
+ "termination",
119
+ "time",
120
+ "travessa",
121
+ "union",
122
+ "university",
123
+ "vendor",
124
+ "waiver",
125
+ "borgo",
126
+ "contrada",
127
+ "corso",
128
+ "indirizzo",
129
+ "lungarno",
130
+ "lungomare",
131
+ "lungotevere",
132
+ "piazza",
133
+ "piazzale",
134
+ "salita",
135
+ "sede",
136
+ "sezione",
137
+ "strada",
138
+ "stradone",
139
+ "traversa",
140
+ "via",
141
+ "viale",
142
+ "vico",
143
+ "vicolo",
144
+ "tato",
145
+ "tento",
146
+ "tito",
147
+ "tomto",
148
+ "tomuto",
149
+ "toto",
150
+ "touto",
151
+ "tuto",
152
+ "tyto",
153
+ "této",
154
+ "acheteur",
155
+ "acheteuse",
156
+ "acquéreur",
157
+ "acquéreuse",
158
+ "allée",
159
+ "annexe",
160
+ "avenue",
161
+ "bailleresse",
162
+ "bailleur",
163
+ "boulevard",
164
+ "cédant",
165
+ "cédante",
166
+ "cessionnaire",
167
+ "chapitre",
168
+ "chemin",
169
+ "domicilié",
170
+ "domiciliée",
171
+ "employé",
172
+ "employée",
173
+ "employeur",
174
+ "employeuse",
175
+ "fournisseur",
176
+ "fournisseuse",
177
+ "impasse",
178
+ "locataire",
179
+ "maître",
180
+ "mandant",
181
+ "mandante",
182
+ "mandataire",
183
+ "passage",
184
+ "préambule",
185
+ "preneur",
186
+ "preneuse",
187
+ "prestataire",
188
+ "prêteur",
189
+ "prêteuse",
190
+ "promesse",
191
+ "quai",
192
+ "résidence",
193
+ "ruelle",
194
+ "salarié",
195
+ "salariée",
196
+ "société",
197
+ "titre",
198
+ "vendeur",
199
+ "vendeuse",
200
+ "voie"
201
+ ];
2
202
  var person_stopwords_default = {
3
- _comment: "Words that are valid in other labels (address, org) but should never be classified as person. Checked only in person chain scoring.",
4
- words: [
5
- "addendum",
6
- "agent",
7
- "agreement",
8
- "alameda",
9
- "amendment",
10
- "annex",
11
- "april",
12
- "article",
13
- "august",
14
- "austria",
15
- "austrian",
16
- "avenida",
17
- "basic",
18
- "belgian",
19
- "borrower",
20
- "branch",
21
- "british",
22
- "bulgarian",
23
- "buyer",
24
- "california",
25
- "center",
26
- "consent",
27
- "consultant",
28
- "contract",
29
- "contractor",
30
- "croatian",
31
- "customer",
32
- "cypriot",
33
- "czech",
34
- "danish",
35
- "december",
36
- "default",
37
- "delaware",
38
- "delivery",
39
- "department",
40
- "division",
41
- "dry",
42
- "dutch",
43
- "english",
44
- "estonian",
45
- "estrada",
46
- "european",
47
- "event",
48
- "exhibit",
49
- "february",
50
- "finnish",
51
- "french",
52
- "german",
53
- "germany",
54
- "greek",
55
- "guarantor",
56
- "headquarters",
57
- "hungarian",
58
- "indiana",
59
- "interest",
60
- "irish",
61
- "israel",
62
- "italian",
63
- "january",
64
- "july",
65
- "june",
66
- "landlord",
67
- "largo",
68
- "latvian",
69
- "lender",
70
- "lessee",
71
- "lessor",
72
- "license",
73
- "licensee",
74
- "licensor",
75
- "lithuanian",
76
- "louisiana",
77
- "luxembourgish",
78
- "maltese",
79
- "march",
80
- "maryland",
81
- "memorandum",
82
- "missouri",
83
- "nevada",
84
- "notice",
85
- "november",
86
- "october",
87
- "office",
88
- "ohio",
89
- "opportunity",
90
- "owner",
91
- "page",
92
- "party",
93
- "payment",
94
- "polish",
95
- "portuguese",
96
- "praca",
97
- "praça",
98
- "price",
99
- "principal",
100
- "purchaser",
101
- "rate",
102
- "rodovia",
103
- "romanian",
104
- "rua",
105
- "sale",
106
- "schedule",
107
- "section",
108
- "seller",
109
- "september",
110
- "subsidiary",
111
- "slovak",
112
- "slovenian",
113
- "spanish",
114
- "swedish",
115
- "tenant",
116
- "term",
117
- "termination",
118
- "time",
119
- "travessa",
120
- "union",
121
- "university",
122
- "vendor",
123
- "waiver",
124
- "borgo",
125
- "contrada",
126
- "corso",
127
- "indirizzo",
128
- "lungarno",
129
- "lungomare",
130
- "lungotevere",
131
- "piazza",
132
- "piazzale",
133
- "salita",
134
- "sede",
135
- "sezione",
136
- "strada",
137
- "stradone",
138
- "traversa",
139
- "via",
140
- "viale",
141
- "vico",
142
- "vicolo",
143
- "tato",
144
- "tento",
145
- "tito",
146
- "tomto",
147
- "tomuto",
148
- "toto",
149
- "touto",
150
- "tuto",
151
- "tyto",
152
- "této",
153
- "acheteur",
154
- "acheteuse",
155
- "acquéreur",
156
- "acquéreuse",
157
- "allée",
158
- "annexe",
159
- "avenue",
160
- "bailleresse",
161
- "bailleur",
162
- "boulevard",
163
- "cédant",
164
- "cédante",
165
- "cessionnaire",
166
- "chapitre",
167
- "chemin",
168
- "domicilié",
169
- "domiciliée",
170
- "employé",
171
- "employée",
172
- "employeur",
173
- "employeuse",
174
- "fournisseur",
175
- "fournisseuse",
176
- "impasse",
177
- "locataire",
178
- "maître",
179
- "mandant",
180
- "mandante",
181
- "mandataire",
182
- "passage",
183
- "préambule",
184
- "preneur",
185
- "preneuse",
186
- "prestataire",
187
- "prêteur",
188
- "prêteuse",
189
- "promesse",
190
- "quai",
191
- "résidence",
192
- "ruelle",
193
- "salarié",
194
- "salariée",
195
- "société",
196
- "titre",
197
- "vendeur",
198
- "vendeuse",
199
- "voie"
200
- ]
203
+ _comment,
204
+ cs,
205
+ en,
206
+ words
201
207
  };
202
208
  //#endregion
203
- export { person_stopwords_default as default };
209
+ export { _comment, cs, person_stopwords_default as default, en, words };
204
210
 
205
211
  //# sourceMappingURL=person-stopwords.mjs.map
@@ -1,5 +1,5 @@
1
1
  //#region src/data/signing-clauses.json
2
- var _comment = "Signing clause patterns. Captures the place name from contract signing locations. Each entry: prefix (before place), suffix (after place), prepositions (allowed inside multi-word place names).";
2
+ var _comment = "Signing clause patterns. Captures the place name from contract signing locations. Each entry: prefix/suffix build regexes; prefilterPhrases gate native regex scans; guardPrefixPhrases/guardSuffixPhrases suppress deny-list place hits in the same signing context.";
3
3
  var patterns = [
4
4
  {
5
5
  "lang": "cs",
@@ -11,7 +11,10 @@ var patterns = [
11
11
  "u",
12
12
  "ve",
13
13
  "na"
14
- ]
14
+ ],
15
+ "prefilterPhrases": ["dne"],
16
+ "guardPrefixPhrases": ["v", "ve"],
17
+ "guardSuffixPhrases": ["dne"]
15
18
  },
16
19
  {
17
20
  "lang": "sk",
@@ -21,7 +24,10 @@ var patterns = [
21
24
  "nad",
22
25
  "pod",
23
26
  "pri"
24
- ]
27
+ ],
28
+ "prefilterPhrases": ["dňa"],
29
+ "guardPrefixPhrases": ["v", "vo"],
30
+ "guardSuffixPhrases": ["dňa"]
25
31
  },
26
32
  {
27
33
  "lang": "de",
@@ -31,19 +37,28 @@ var patterns = [
31
37
  "am",
32
38
  "an",
33
39
  "im"
34
- ]
40
+ ],
41
+ "prefilterPhrases": ["den"],
42
+ "guardPrefixPhrases": [""],
43
+ "guardSuffixPhrases": ["den"]
35
44
  },
36
45
  {
37
46
  "lang": "fr",
38
47
  "prefix": "(?:Fait\\s+)?[Àà]\\s+",
39
48
  "suffix": "\\s*,?\\s*le",
40
- "prepositions": []
49
+ "prepositions": [],
50
+ "prefilterPhrases": ["À ", "à "],
51
+ "guardPrefixPhrases": ["à", "fait à"],
52
+ "guardSuffixPhrases": ["le"]
41
53
  },
42
54
  {
43
55
  "lang": "en",
44
56
  "prefix": "(?:Signed|Executed)\\s+in\\s+",
45
57
  "suffix": "",
46
- "prepositions": []
58
+ "prepositions": [],
59
+ "prefilterPhrases": ["Signed in", "Executed in"],
60
+ "guardPrefixPhrases": ["signed in", "executed in"],
61
+ "guardSuffixPhrases": [""]
47
62
  },
48
63
  {
49
64
  "lang": "pl",
@@ -53,19 +68,28 @@ var patterns = [
53
68
  "nad",
54
69
  "pod",
55
70
  "przy"
56
- ]
71
+ ],
72
+ "prefilterPhrases": ["dnia"],
73
+ "guardPrefixPhrases": ["w", "we"],
74
+ "guardSuffixPhrases": ["dnia"]
57
75
  },
58
76
  {
59
77
  "lang": "it",
60
78
  "prefix": "(?:Fatto\\s+)?[Aa]\\s+",
61
79
  "suffix": "\\s*,?\\s*(?:il|lì)",
62
- "prepositions": []
80
+ "prepositions": [],
81
+ "prefilterPhrases": ["A ", "a "],
82
+ "guardPrefixPhrases": ["a", "fatto a"],
83
+ "guardSuffixPhrases": ["il", "lì"]
63
84
  },
64
85
  {
65
86
  "lang": "es",
66
87
  "prefix": "(?:Firmado\\s+)?[Ee]n\\s+",
67
88
  "suffix": "\\s*,?\\s*(?:a|el)",
68
- "prepositions": ["de", "del"]
89
+ "prepositions": ["de", "del"],
90
+ "prefilterPhrases": ["En ", "en "],
91
+ "guardPrefixPhrases": ["en", "firmado en"],
92
+ "guardSuffixPhrases": ["a", "el"]
69
93
  }
70
94
  ];
71
95
  var signing_clauses_default = {
package/index.cjs ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ module.exports = require("./stella_anonymize_napi.node");
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stll/anonymize",
3
- "version": "1.5.0",
3
+ "version": "2.0.0-alpha.1",
4
4
  "description": "Multi-layer PII detection and anonymization pipeline with regex, NER, deny lists, and coreference resolution",
5
5
  "type": "module",
6
6
  "exports": {
@@ -13,11 +13,29 @@
13
13
  "types": "./dist/constants.d.mts",
14
14
  "import": "./dist/constants.mjs",
15
15
  "default": "./dist/constants.mjs"
16
+ },
17
+ "./native": {
18
+ "types": "./dist/native.d.mts",
19
+ "import": "./dist/native.mjs",
20
+ "default": "./dist/native.mjs"
21
+ },
22
+ "./native-node": {
23
+ "types": "./dist/native-node.d.mts",
24
+ "import": "./dist/native-node.mjs",
25
+ "default": "./dist/native-node.mjs"
16
26
  }
17
27
  },
18
28
  "types": "dist/index.d.mts",
29
+ "bin": {
30
+ "stella-anonymize-build-native-package": "./scripts/build-native-pipeline-package.mjs"
31
+ },
19
32
  "files": [
20
- "dist"
33
+ "ATTRIBUTION.md",
34
+ "dist",
35
+ "index.cjs",
36
+ "native-pipeline.stlanonpkg",
37
+ "native-pipeline.*.stlanonpkg",
38
+ "scripts/build-native-pipeline-package.mjs"
21
39
  ],
22
40
  "publishConfig": {
23
41
  "access": "public"
@@ -28,19 +46,27 @@
28
46
  },
29
47
  "license": "MIT",
30
48
  "scripts": {
31
- "build": "tsdown",
49
+ "build": "tsdown && bun scripts/build-native-node.mjs",
32
50
  "prepublishOnly": "bun run build",
33
51
  "typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.test.json && tsc --noEmit -p tsconfig.wasm.json",
34
52
  "test": "bun test --preload ./src/__test__/setup.ts --timeout 15000",
35
53
  "test:fast": "bun run test src/__test__/*.test.ts",
54
+ "test:native-fixtures": "ANONYMIZE_TEST_SLOW_NATIVE_FIXTURE_PARITY=1 bun test --preload ./src/__test__/setup.ts --timeout 600000 src/__test__/native-adapter-parity.test.ts",
36
55
  "perf:contracts": "bun scripts/contract-perf.mjs",
56
+ "perf:migration-fixtures": "bun scripts/migration-fixture-perf.mjs",
57
+ "perf:native-adapters": "bun scripts/native-adapter-perf.mjs",
58
+ "perf:native-default": "bun scripts/native-default-sdk-perf.mjs",
59
+ "perf:native-default:summary": "ANONYMIZE_NATIVE_DEFAULT_SDK_PERF_OUTPUT=summary bun scripts/native-default-sdk-perf.mjs",
60
+ "perf:native-package": "bun scripts/native-package-ux-perf.mjs",
61
+ "check:v1-native": "bun scripts/native-v1-readiness.mjs",
62
+ "check:v1-native:full": "ANONYMIZE_V1_READINESS_MODE=full bun scripts/native-v1-readiness.mjs",
37
63
  "smoke:dist": "bun scripts/dist-smoke.mjs",
38
64
  "format": "oxfmt ."
39
65
  },
40
66
  "dependencies": {
41
67
  "@huggingface/tokenizers": "^0.1.3",
42
68
  "@stll/stdnum": "^2.1.1",
43
- "@stll/text-search": "^1.0.6"
69
+ "@stll/text-search": "^1.0.7"
44
70
  },
45
71
  "peerDependencies": {
46
72
  "@stll/anonymize-data": "^0.0.6"
@@ -50,11 +76,19 @@
50
76
  "optional": true
51
77
  }
52
78
  },
79
+ "optionalDependencies": {
80
+ "@stll/anonymize-darwin-arm64": "2.0.0-alpha.1",
81
+ "@stll/anonymize-darwin-x64": "2.0.0-alpha.1",
82
+ "@stll/anonymize-linux-arm64-gnu": "2.0.0-alpha.1",
83
+ "@stll/anonymize-linux-x64-gnu": "2.0.0-alpha.1",
84
+ "@stll/anonymize-win32-x64-msvc": "2.0.0-alpha.1"
85
+ },
53
86
  "devDependencies": {
54
87
  "@stll/anonymize-data": "workspace:*",
55
- "@stll/text-search-wasm": "^1.0.6",
88
+ "@stll/text-search-wasm": "^1.0.7",
56
89
  "bun-types": "^1.3.14",
57
- "tsdown": "^0.22.2",
90
+ "fast-check": "^4.8.0",
91
+ "tsdown": "^0.22.3",
58
92
  "typescript": "^6.0.3",
59
93
  "vite": "^8.0.16"
60
94
  }