@elanlanguages/bridge-anonymization 0.1.2 → 0.2.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/README.md +304 -71
- package/dist/crypto/pii-map-crypto.d.ts +50 -36
- package/dist/crypto/pii-map-crypto.d.ts.map +1 -1
- package/dist/crypto/pii-map-crypto.js +137 -72
- package/dist/crypto/pii-map-crypto.js.map +1 -1
- package/dist/index.d.ts +27 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +145 -55
- package/dist/index.js.map +1 -1
- package/dist/ner/model-manager.d.ts +20 -11
- package/dist/ner/model-manager.d.ts.map +1 -1
- package/dist/ner/model-manager.js +154 -81
- package/dist/ner/model-manager.js.map +1 -1
- package/dist/ner/ner-model.d.ts +1 -1
- package/dist/ner/ner-model.d.ts.map +1 -1
- package/dist/ner/ner-model.js +49 -36
- package/dist/ner/ner-model.js.map +1 -1
- package/dist/ner/onnx-runtime.d.ts +8 -7
- package/dist/ner/onnx-runtime.d.ts.map +1 -1
- package/dist/ner/onnx-runtime.js +56 -25
- package/dist/ner/onnx-runtime.js.map +1 -1
- package/dist/ner/tokenizer.d.ts +5 -0
- package/dist/ner/tokenizer.d.ts.map +1 -1
- package/dist/ner/tokenizer.js +18 -5
- package/dist/ner/tokenizer.js.map +1 -1
- package/dist/pipeline/index.d.ts +7 -4
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +7 -4
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/resolver.d.ts.map +1 -1
- package/dist/pipeline/resolver.js +3 -2
- package/dist/pipeline/resolver.js.map +1 -1
- package/dist/pipeline/semantic-data-loader.d.ts +165 -0
- package/dist/pipeline/semantic-data-loader.d.ts.map +1 -0
- package/dist/pipeline/semantic-data-loader.js +655 -0
- package/dist/pipeline/semantic-data-loader.js.map +1 -0
- package/dist/pipeline/semantic-enricher.d.ts +112 -0
- package/dist/pipeline/semantic-enricher.d.ts.map +1 -0
- package/dist/pipeline/semantic-enricher.js +318 -0
- package/dist/pipeline/semantic-enricher.js.map +1 -0
- package/dist/pipeline/tagger.d.ts +52 -12
- package/dist/pipeline/tagger.d.ts.map +1 -1
- package/dist/pipeline/tagger.js +226 -21
- package/dist/pipeline/tagger.js.map +1 -1
- package/dist/pipeline/title-extractor.d.ts +79 -0
- package/dist/pipeline/title-extractor.d.ts.map +1 -0
- package/dist/pipeline/title-extractor.js +801 -0
- package/dist/pipeline/title-extractor.js.map +1 -0
- package/dist/types/index.d.ts +66 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +14 -3
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +5 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/path.d.ts +34 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +96 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/storage-browser.d.ts +51 -0
- package/dist/utils/storage-browser.d.ts.map +1 -0
- package/dist/utils/storage-browser.js +381 -0
- package/dist/utils/storage-browser.js.map +1 -0
- package/dist/utils/storage-node.d.ts +43 -0
- package/dist/utils/storage-node.d.ts.map +1 -0
- package/dist/utils/storage-node.js +93 -0
- package/dist/utils/storage-node.js.map +1 -0
- package/dist/utils/storage.d.ts +70 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/storage.js +69 -0
- package/dist/utils/storage.js.map +1 -0
- package/package.json +8 -5
package/dist/index.js
CHANGED
|
@@ -3,26 +3,64 @@
|
|
|
3
3
|
* Main entry point for on-device PII anonymization
|
|
4
4
|
*/
|
|
5
5
|
// Re-export types
|
|
6
|
-
export * from
|
|
6
|
+
export * from "./types/index.js";
|
|
7
7
|
// Re-export recognizers
|
|
8
|
-
export { RegexRecognizer, RecognizerRegistry, createDefaultRegistry, createRegistry, getGlobalRegistry, emailRecognizer, phoneRecognizer, ibanRecognizer, bicSwiftRecognizer, creditCardRecognizer, ipAddressRecognizer, urlRecognizer, createCustomIdRecognizer, createCaseIdRecognizer, createCustomerIdRecognizer, } from
|
|
8
|
+
export { RegexRecognizer, RecognizerRegistry, createDefaultRegistry, createRegistry, getGlobalRegistry, emailRecognizer, phoneRecognizer, ibanRecognizer, bicSwiftRecognizer, creditCardRecognizer, ipAddressRecognizer, urlRecognizer, createCustomIdRecognizer, createCaseIdRecognizer, createCustomerIdRecognizer, } from "./recognizers/index.js";
|
|
9
9
|
// Re-export NER components
|
|
10
|
-
export { NERModel, NERModelStub, createNERModel, createNERModelStub, WordPieceTokenizer, loadVocabFromFile, parseVocab, loadRuntime, detectRuntime, getRuntimeType, MODEL_REGISTRY, getModelCacheDir, isModelDownloaded, downloadModel, ensureModel, clearModelCache, listDownloadedModels, } from
|
|
10
|
+
export { NERModel, NERModelStub, createNERModel, createNERModelStub, WordPieceTokenizer, loadVocabFromFile, parseVocab, loadRuntime, detectRuntime, getRuntimeType, MODEL_REGISTRY, getModelCacheDir, isModelDownloaded, downloadModel, ensureModel, clearModelCache, listDownloadedModels, } from "./ner/index.js";
|
|
11
11
|
// Re-export pipeline components
|
|
12
|
-
export { prenormalize, resolveEntities, tagEntities, validateOutput, generateTag, parseTag, rehydrate,
|
|
12
|
+
export { prenormalize, resolveEntities, tagEntities, validateOutput, generateTag, parseTag, rehydrate, enrichSemantics, inferGender, classifyLocation, getDatabaseStats, hasName, hasLocation,
|
|
13
|
+
// Semantic data loader exports
|
|
14
|
+
isSemanticDataAvailable, isSemanticDataDownloaded, getSemanticDataCacheDir, getDataDirectory, downloadSemanticData, ensureSemanticData, initializeSemanticData, loadSemanticData, clearSemanticData, clearSemanticDataCache, getSemanticDataInfo, SEMANTIC_DATA_FILES,
|
|
15
|
+
// Title extractor exports
|
|
16
|
+
extractTitle, extractTitlesFromSpans, mergeAdjacentTitleSpans, getTitlesForLanguage, getAllTitles, startsWithTitle, isOnlyTitle, } from "./pipeline/index.js";
|
|
13
17
|
// Re-export crypto
|
|
14
|
-
export { encryptPIIMap, decryptPIIMap, generateKey, deriveKey, generateSalt, InMemoryKeyProvider,
|
|
18
|
+
export { encryptPIIMap, decryptPIIMap, generateKey, deriveKey, generateSalt, InMemoryKeyProvider, ConfigKeyProvider, validateKey, secureCompare, uint8ArrayToBase64, base64ToUint8Array, } from "./crypto/index.js";
|
|
19
|
+
// Re-export storage utilities
|
|
20
|
+
export { getStorageProvider, isNode, isBrowser, resetStorageProvider, setStorageProvider, } from "./utils/storage.js";
|
|
21
|
+
// Re-export path utilities
|
|
22
|
+
export { join as pathJoin, dirname as pathDirname, basename as pathBasename, normalize as pathNormalize, extname as pathExtname, isAbsolute as pathIsAbsolute, } from "./utils/path.js";
|
|
15
23
|
// Main anonymization imports
|
|
16
|
-
import { createDefaultPolicy,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
import { createDefaultPolicy, } from "./types/index.js";
|
|
25
|
+
/**
|
|
26
|
+
* Merges a partial policy with a base policy (deep merge for Maps/Sets)
|
|
27
|
+
* Unlike the exported mergePolicy, this uses a custom base instead of global defaults
|
|
28
|
+
*/
|
|
29
|
+
function mergePolicyWithBase(base, partial) {
|
|
30
|
+
// Deep merge confidenceThresholds Map
|
|
31
|
+
let confidenceThresholds = base.confidenceThresholds;
|
|
32
|
+
if (partial.confidenceThresholds !== undefined) {
|
|
33
|
+
confidenceThresholds = new Map(base.confidenceThresholds);
|
|
34
|
+
for (const [type, threshold] of partial.confidenceThresholds) {
|
|
35
|
+
confidenceThresholds.set(type, threshold);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
enabledTypes: partial.enabledTypes ?? base.enabledTypes,
|
|
40
|
+
regexEnabledTypes: partial.regexEnabledTypes ?? base.regexEnabledTypes,
|
|
41
|
+
nerEnabledTypes: partial.nerEnabledTypes ?? base.nerEnabledTypes,
|
|
42
|
+
typePriority: partial.typePriority ?? base.typePriority,
|
|
43
|
+
confidenceThresholds,
|
|
44
|
+
customIdPatterns: partial.customIdPatterns ?? base.customIdPatterns,
|
|
45
|
+
allowlistTerms: partial.allowlistTerms ?? base.allowlistTerms,
|
|
46
|
+
denylistPatterns: partial.denylistPatterns ?? base.denylistPatterns,
|
|
47
|
+
reuseIdsForRepeatedPII: partial.reuseIdsForRepeatedPII ?? base.reuseIdsForRepeatedPII,
|
|
48
|
+
enableLeakScan: partial.enableLeakScan ?? base.enableLeakScan,
|
|
49
|
+
enableSemanticMasking: partial.enableSemanticMasking ?? base.enableSemanticMasking,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
import { createDefaultRegistry, } from "./recognizers/index.js";
|
|
53
|
+
import { NERModelStub, createNERModel, DEFAULT_LABEL_MAP, } from "./ner/index.js";
|
|
54
|
+
import { ensureModel, } from "./ner/model-manager.js";
|
|
55
|
+
import { prenormalize } from "./pipeline/prenormalize.js";
|
|
56
|
+
import { resolveEntities } from "./pipeline/resolver.js";
|
|
57
|
+
import { tagEntities, countEntitiesByType } from "./pipeline/tagger.js";
|
|
58
|
+
import { validateOutput } from "./pipeline/validator.js";
|
|
59
|
+
import { enrichSemantics } from "./pipeline/semantic-enricher.js";
|
|
60
|
+
import { ensureSemanticData, isSemanticDataAvailable, loadSemanticData, } from "./pipeline/semantic-data-loader.js";
|
|
61
|
+
import { extractTitlesFromSpans, mergeAdjacentTitleSpans, } from "./pipeline/title-extractor.js";
|
|
62
|
+
import { encryptPIIMap, generateKey, } from "./crypto/index.js";
|
|
63
|
+
import { getStorageProvider } from "./utils/storage.js";
|
|
26
64
|
/**
|
|
27
65
|
* Anonymizer instance
|
|
28
66
|
* Main class for performing PII anonymization
|
|
@@ -31,41 +69,60 @@ export class Anonymizer {
|
|
|
31
69
|
registry;
|
|
32
70
|
nerModel = null;
|
|
33
71
|
nerConfig;
|
|
72
|
+
semanticConfig;
|
|
34
73
|
keyProvider;
|
|
35
74
|
defaultPolicy;
|
|
36
75
|
modelVersion;
|
|
37
76
|
policyVersion;
|
|
38
77
|
initialized = false;
|
|
78
|
+
semanticDataReady = false;
|
|
39
79
|
constructor(config = {}) {
|
|
40
80
|
this.registry = config.registry ?? createDefaultRegistry();
|
|
41
81
|
this.keyProvider = config.keyProvider ?? null;
|
|
42
82
|
this.defaultPolicy = config.defaultPolicy ?? createDefaultPolicy();
|
|
43
|
-
this.policyVersion = config.policyVersion ??
|
|
83
|
+
this.policyVersion = config.policyVersion ?? "1.0.0";
|
|
44
84
|
// Handle NER configuration
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
85
|
+
this.nerConfig = config.ner ?? { mode: "disabled" };
|
|
86
|
+
this.modelVersion = config.modelVersion ?? "1.0.0";
|
|
87
|
+
// Merge NER thresholds into default policy if provided
|
|
88
|
+
if (this.nerConfig.thresholds !== undefined) {
|
|
89
|
+
const thresholdsMap = new Map(this.defaultPolicy.confidenceThresholds);
|
|
90
|
+
for (const [type, threshold] of Object.entries(this.nerConfig.thresholds)) {
|
|
91
|
+
if (threshold !== undefined) {
|
|
92
|
+
thresholdsMap.set(type, threshold);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
this.defaultPolicy = {
|
|
96
|
+
...this.defaultPolicy,
|
|
97
|
+
confidenceThresholds: thresholdsMap,
|
|
98
|
+
};
|
|
50
99
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
100
|
+
// Handle semantic configuration
|
|
101
|
+
this.semanticConfig = config.semantic ?? { enabled: false };
|
|
102
|
+
// If semantic is enabled, also enable it in the default policy
|
|
103
|
+
if (this.semanticConfig.enabled) {
|
|
104
|
+
this.defaultPolicy = {
|
|
105
|
+
...this.defaultPolicy,
|
|
106
|
+
enableSemanticMasking: true,
|
|
107
|
+
};
|
|
54
108
|
}
|
|
55
109
|
}
|
|
56
110
|
/**
|
|
57
111
|
* Initializes the anonymizer
|
|
58
|
-
* Downloads NER model if needed and loads
|
|
112
|
+
* Downloads NER model and semantic data if needed and loads them
|
|
59
113
|
*/
|
|
60
114
|
async initialize() {
|
|
61
115
|
if (this.initialized)
|
|
62
116
|
return;
|
|
63
117
|
// Handle NER model setup based on mode
|
|
64
|
-
if (this.nerConfig.mode ===
|
|
118
|
+
if (this.nerConfig.mode === "disabled") {
|
|
65
119
|
this.nerModel = new NERModelStub();
|
|
66
120
|
}
|
|
67
|
-
else if (this.nerConfig.mode ===
|
|
68
|
-
if (
|
|
121
|
+
else if (this.nerConfig.mode === "custom") {
|
|
122
|
+
if (this.nerConfig.modelPath === undefined ||
|
|
123
|
+
this.nerConfig.modelPath === "" ||
|
|
124
|
+
this.nerConfig.vocabPath === undefined ||
|
|
125
|
+
this.nerConfig.vocabPath === "") {
|
|
69
126
|
throw new Error("NER mode 'custom' requires modelPath and vocabPath");
|
|
70
127
|
}
|
|
71
128
|
this.nerModel = createNERModel({
|
|
@@ -84,7 +141,8 @@ export class Anonymizer {
|
|
|
84
141
|
// Load label map
|
|
85
142
|
let labelMap = DEFAULT_LABEL_MAP;
|
|
86
143
|
try {
|
|
87
|
-
const
|
|
144
|
+
const storage = await getStorageProvider();
|
|
145
|
+
const labelMapContent = await storage.readTextFile(labelMapPath);
|
|
88
146
|
labelMap = JSON.parse(labelMapContent);
|
|
89
147
|
}
|
|
90
148
|
catch {
|
|
@@ -97,11 +155,38 @@ export class Anonymizer {
|
|
|
97
155
|
modelVersion: this.modelVersion,
|
|
98
156
|
});
|
|
99
157
|
}
|
|
100
|
-
// Load the model
|
|
158
|
+
// Load the NER model
|
|
101
159
|
if (!this.nerModel.loaded) {
|
|
102
|
-
this.nerConfig.onStatus?.(
|
|
160
|
+
this.nerConfig.onStatus?.("Loading NER model...");
|
|
103
161
|
await this.nerModel.load();
|
|
104
|
-
this.nerConfig.onStatus?.(
|
|
162
|
+
this.nerConfig.onStatus?.("NER model loaded!");
|
|
163
|
+
}
|
|
164
|
+
// Handle semantic data setup if enabled
|
|
165
|
+
if (this.semanticConfig.enabled) {
|
|
166
|
+
const autoDownload = this.semanticConfig.autoDownload ?? true;
|
|
167
|
+
// Check if data is already available
|
|
168
|
+
const dataAvailable = await isSemanticDataAvailable();
|
|
169
|
+
if (!dataAvailable) {
|
|
170
|
+
if (!autoDownload) {
|
|
171
|
+
throw new Error("Semantic masking is enabled but data files are not available.\n\n" +
|
|
172
|
+
"To download automatically, use:\n" +
|
|
173
|
+
" createAnonymizer({ semantic: { enabled: true, autoDownload: true } })\n\n" +
|
|
174
|
+
"Or disable semantic masking:\n" +
|
|
175
|
+
" createAnonymizer({ semantic: { enabled: false } })");
|
|
176
|
+
}
|
|
177
|
+
// Download semantic data
|
|
178
|
+
await ensureSemanticData({
|
|
179
|
+
autoDownload: true,
|
|
180
|
+
onProgress: this.semanticConfig.onDownloadProgress,
|
|
181
|
+
onStatus: this.semanticConfig.onStatus,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
this.semanticConfig.onStatus?.("Semantic data already cached");
|
|
186
|
+
}
|
|
187
|
+
// Load data into memory for synchronous access during enrichment
|
|
188
|
+
await loadSemanticData();
|
|
189
|
+
this.semanticDataReady = true;
|
|
105
190
|
}
|
|
106
191
|
this.modelVersion = this.nerModel.version;
|
|
107
192
|
this.initialized = true;
|
|
@@ -118,8 +203,12 @@ export class Anonymizer {
|
|
|
118
203
|
await this.initialize();
|
|
119
204
|
}
|
|
120
205
|
const startTime = performance.now();
|
|
121
|
-
// Merge policy with defaults
|
|
122
|
-
|
|
206
|
+
// Merge policy with instance defaults (not global defaults)
|
|
207
|
+
// This ensures semantic config from constructor is preserved
|
|
208
|
+
// Uses deep merge for Maps (confidenceThresholds) and Sets
|
|
209
|
+
const effectivePolicy = policy !== undefined
|
|
210
|
+
? mergePolicyWithBase(this.defaultPolicy, policy)
|
|
211
|
+
: this.defaultPolicy;
|
|
123
212
|
// Step 1: Pre-normalize text
|
|
124
213
|
const normalizedText = prenormalize(text);
|
|
125
214
|
// Step 2: Run regex recognizers
|
|
@@ -129,8 +218,25 @@ export class Anonymizer {
|
|
|
129
218
|
const nerMatches = nerResult.spans;
|
|
130
219
|
// Step 4: Resolve and merge entities
|
|
131
220
|
const resolvedMatches = resolveEntities(regexMatches, nerMatches, effectivePolicy, normalizedText);
|
|
221
|
+
// Step 4.5: Merge adjacent title+name PERSON spans (if semantic masking enabled)
|
|
222
|
+
// This fixes NER models that split "Mrs. Smith" into two entities
|
|
223
|
+
const mergedMatches = effectivePolicy.enableSemanticMasking === true
|
|
224
|
+
? mergeAdjacentTitleSpans(resolvedMatches, normalizedText)
|
|
225
|
+
: resolvedMatches;
|
|
226
|
+
// Step 4.6: Extract titles from PERSON entities (if semantic masking enabled)
|
|
227
|
+
// This strips honorific titles (Dr., Mrs., etc.) so they remain visible for translation
|
|
228
|
+
const titleExtractedMatches = effectivePolicy.enableSemanticMasking
|
|
229
|
+
? extractTitlesFromSpans(mergedMatches, normalizedText)
|
|
230
|
+
: mergedMatches;
|
|
231
|
+
// Step 4.6: Enrich with semantic attributes (if enabled)
|
|
232
|
+
// This adds gender for PERSON and scope for LOCATION entities
|
|
233
|
+
const enrichedMatches = effectivePolicy.enableSemanticMasking
|
|
234
|
+
? enrichSemantics(titleExtractedMatches, {
|
|
235
|
+
locale: locale !== undefined ? locale.split("-")[0] : undefined, // Extract language code
|
|
236
|
+
})
|
|
237
|
+
: titleExtractedMatches;
|
|
132
238
|
// Step 5: Tag entities and build PII map
|
|
133
|
-
const { anonymizedText, entities, piiMap } = tagEntities(normalizedText,
|
|
239
|
+
const { anonymizedText, entities, piiMap } = tagEntities(normalizedText, enrichedMatches, effectivePolicy);
|
|
134
240
|
// Step 6: Validate output
|
|
135
241
|
const validation = validateOutput(anonymizedText, entities, Array.from(piiMap.keys()), effectivePolicy);
|
|
136
242
|
if (!validation.valid) {
|
|
@@ -140,13 +246,13 @@ export class Anonymizer {
|
|
|
140
246
|
message: e.message,
|
|
141
247
|
}));
|
|
142
248
|
// eslint-disable-next-line no-console
|
|
143
|
-
console.warn(
|
|
249
|
+
console.warn("Validation warnings:", safeErrors);
|
|
144
250
|
}
|
|
145
251
|
// Step 7: Encrypt PII map
|
|
146
252
|
const encryptionKey = this.keyProvider !== null
|
|
147
253
|
? await this.keyProvider.getKey()
|
|
148
254
|
: generateKey();
|
|
149
|
-
const encryptedPiiMap = encryptPIIMap(piiMap, encryptionKey);
|
|
255
|
+
const encryptedPiiMap = await encryptPIIMap(piiMap, encryptionKey);
|
|
150
256
|
// Step 8: Build stats
|
|
151
257
|
const endTime = performance.now();
|
|
152
258
|
const stats = {
|
|
@@ -158,7 +264,7 @@ export class Anonymizer {
|
|
|
158
264
|
leakScanPassed: validation.leakScanPassed,
|
|
159
265
|
};
|
|
160
266
|
// Step 9: Build result (without original text in entities)
|
|
161
|
-
const safeEntities = entities.map(({ original, ...rest }) => rest);
|
|
267
|
+
const safeEntities = entities.map(({ original: _original, ...rest }) => rest);
|
|
162
268
|
return {
|
|
163
269
|
anonymizedText,
|
|
164
270
|
entities: safeEntities,
|
|
@@ -220,22 +326,6 @@ export class Anonymizer {
|
|
|
220
326
|
export function createAnonymizer(config) {
|
|
221
327
|
return new Anonymizer(config);
|
|
222
328
|
}
|
|
223
|
-
/**
|
|
224
|
-
* Creates an anonymizer with a custom NER model
|
|
225
|
-
* @deprecated Use createAnonymizer with ner: { mode: 'custom', modelPath, vocabPath } instead
|
|
226
|
-
*/
|
|
227
|
-
export async function createAnonymizerWithNER(modelPath, vocabPath, config) {
|
|
228
|
-
const anonymizer = new Anonymizer({
|
|
229
|
-
...config,
|
|
230
|
-
ner: {
|
|
231
|
-
mode: 'custom',
|
|
232
|
-
modelPath,
|
|
233
|
-
vocabPath,
|
|
234
|
-
},
|
|
235
|
-
});
|
|
236
|
-
await anonymizer.initialize();
|
|
237
|
-
return anonymizer;
|
|
238
|
-
}
|
|
239
329
|
/**
|
|
240
330
|
* Convenience function for one-off anonymization
|
|
241
331
|
* Creates a temporary anonymizer with default settings (regex-only)
|
|
@@ -279,7 +369,7 @@ export async function anonymizeRegexOnly(text, policy) {
|
|
|
279
369
|
export async function anonymizeWithNER(text, nerConfig, policy) {
|
|
280
370
|
const anonymizer = createAnonymizer({
|
|
281
371
|
ner: {
|
|
282
|
-
mode: nerConfig.mode ??
|
|
372
|
+
mode: nerConfig.mode ?? "quantized",
|
|
283
373
|
...nerConfig,
|
|
284
374
|
},
|
|
285
375
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NER Model Manager
|
|
3
3
|
* Handles automatic downloading and caching of NER models from Hugging Face Hub
|
|
4
|
+
* Browser-compatible using storage abstraction layer
|
|
4
5
|
*/
|
|
5
6
|
/**
|
|
6
7
|
* Available NER model variants
|
|
7
8
|
*/
|
|
8
|
-
export type NERModelMode =
|
|
9
|
+
export type NERModelMode = "standard" | "quantized" | "disabled" | "custom";
|
|
9
10
|
/**
|
|
10
11
|
* Model file info
|
|
11
12
|
*/
|
|
@@ -44,20 +45,20 @@ export interface ModelInfo {
|
|
|
44
45
|
* Using ELAN's ONNX exports which are optimized for JS/ONNX runtime
|
|
45
46
|
* https://huggingface.co/tjruesch/xlm-roberta-base-ner-hrl-onnx
|
|
46
47
|
*/
|
|
47
|
-
export declare const MODEL_REGISTRY: Record<
|
|
48
|
+
export declare const MODEL_REGISTRY: Record<"standard" | "quantized", ModelInfo>;
|
|
48
49
|
/**
|
|
49
50
|
* Gets the cache directory for models
|
|
50
|
-
* Uses platform-specific cache location
|
|
51
|
+
* Uses platform-specific cache location (or virtual path in browser)
|
|
51
52
|
*/
|
|
52
|
-
export declare function getModelCacheDir(): string
|
|
53
|
+
export declare function getModelCacheDir(): Promise<string>;
|
|
53
54
|
/**
|
|
54
55
|
* Gets the path to a specific model variant
|
|
55
56
|
*/
|
|
56
|
-
export declare function getModelPath(mode:
|
|
57
|
+
export declare function getModelPath(mode: "standard" | "quantized"): Promise<string>;
|
|
57
58
|
/**
|
|
58
59
|
* Checks if a model is already downloaded
|
|
59
60
|
*/
|
|
60
|
-
export declare function isModelDownloaded(mode:
|
|
61
|
+
export declare function isModelDownloaded(mode: "standard" | "quantized"): Promise<boolean>;
|
|
61
62
|
/**
|
|
62
63
|
* Progress callback for downloads
|
|
63
64
|
*/
|
|
@@ -70,11 +71,11 @@ export type DownloadProgressCallback = (progress: {
|
|
|
70
71
|
/**
|
|
71
72
|
* Downloads a model variant from Hugging Face Hub
|
|
72
73
|
*/
|
|
73
|
-
export declare function downloadModel(mode:
|
|
74
|
+
export declare function downloadModel(mode: "standard" | "quantized", onProgress?: DownloadProgressCallback, onStatus?: (status: string) => void): Promise<string>;
|
|
74
75
|
/**
|
|
75
76
|
* Gets model paths if available, or downloads if needed
|
|
76
77
|
*/
|
|
77
|
-
export declare function ensureModel(mode:
|
|
78
|
+
export declare function ensureModel(mode: "standard" | "quantized", options?: {
|
|
78
79
|
autoDownload?: boolean;
|
|
79
80
|
onProgress?: DownloadProgressCallback;
|
|
80
81
|
onStatus?: (status: string) => void;
|
|
@@ -86,17 +87,25 @@ export declare function ensureModel(mode: 'standard' | 'quantized', options?: {
|
|
|
86
87
|
/**
|
|
87
88
|
* Clears cached models
|
|
88
89
|
*/
|
|
89
|
-
export declare function clearModelCache(mode?:
|
|
90
|
+
export declare function clearModelCache(mode?: "standard" | "quantized"): Promise<void>;
|
|
90
91
|
/**
|
|
91
92
|
* Lists downloaded models
|
|
92
93
|
*/
|
|
93
94
|
export declare function listDownloadedModels(): Promise<Array<{
|
|
94
|
-
mode:
|
|
95
|
+
mode: "standard" | "quantized";
|
|
95
96
|
path: string;
|
|
96
97
|
size: string;
|
|
97
98
|
}>>;
|
|
98
99
|
/**
|
|
99
100
|
* Gets info about available models
|
|
100
101
|
*/
|
|
101
|
-
export declare function getModelInfo(mode:
|
|
102
|
+
export declare function getModelInfo(mode: "standard" | "quantized"): ModelInfo;
|
|
103
|
+
/**
|
|
104
|
+
* Reads a model file as ArrayBuffer (for onnxruntime)
|
|
105
|
+
*/
|
|
106
|
+
export declare function readModelFile(path: string): Promise<ArrayBuffer>;
|
|
107
|
+
/**
|
|
108
|
+
* Reads a text file from storage
|
|
109
|
+
*/
|
|
110
|
+
export declare function readTextFile(path: string): Promise<string>;
|
|
102
111
|
//# sourceMappingURL=model-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-manager.d.ts","sourceRoot":"","sources":["../../src/ner/model-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"model-manager.d.ts","sourceRoot":"","sources":["../../src/ner/model-manager.ts"],"names":[],"mappings":"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"}
|