@stll/anonymize 2.2.0 → 2.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.
- package/ATTRIBUTION.md +43 -2
- package/README.md +56 -0
- package/dist/capabilities.d.mts +171 -4
- package/dist/capabilities.mjs +109 -3
- package/dist/capabilities.mjs.map +1 -1
- package/dist/constants.mjs +6 -1
- package/dist/constants.mjs.map +1 -1
- package/dist/constants2.d.mts +5 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/dist/native-node.d.mts +3 -2
- package/dist/native-node.mjs +3 -3
- package/dist/native-node2.d.mts +3 -3
- package/dist/native-node2.mjs +7 -2
- package/dist/native-node2.mjs.map +1 -1
- package/dist/native.d.mts +69 -1
- package/dist/native.mjs +18 -1
- package/dist/native.mjs.map +1 -1
- package/dist/native2.d.mts +2 -2
- package/native-pipeline.cs.stlanonpkg +0 -0
- package/native-pipeline.de.stlanonpkg +0 -0
- package/native-pipeline.en.stlanonpkg +0 -0
- package/native-pipeline.stlanonpkg +0 -0
- package/package.json +7 -7
package/ATTRIBUTION.md
CHANGED
|
@@ -5,12 +5,31 @@ projects and academic research.
|
|
|
5
5
|
|
|
6
6
|
## Prior Art
|
|
7
7
|
|
|
8
|
-
###
|
|
8
|
+
### lopdf (MIT)
|
|
9
|
+
|
|
10
|
+
- Bounded structural parsing for the PDF inspection contract
|
|
11
|
+
- Copyright (c) 2016 Junfeng Liu
|
|
12
|
+
- https://github.com/J-F-Liu/lopdf
|
|
13
|
+
|
|
14
|
+
### Microsoft Presidio (MIT)
|
|
9
15
|
|
|
10
16
|
- Context-word boosting architecture
|
|
11
17
|
- Structured PII pattern design (IBAN, phone, email)
|
|
18
|
+
- Unicode/IDN domain-label handling and validation-first phone matching,
|
|
19
|
+
adapted from pinned commit `efc775903f55c3e50e12b5902ec2699c2e52fdf7`
|
|
20
|
+
- Internationalized domains use bounded RFC-like label shapes and accept
|
|
21
|
+
decomposed Unicode combining marks. Punycode receives shape validation only,
|
|
22
|
+
not complete IDNA validation.
|
|
12
23
|
- Operator concept (replace vs redact)
|
|
13
|
-
- https://github.com/microsoft/presidio
|
|
24
|
+
- https://github.com/microsoft/presidio/tree/efc775903f55c3e50e12b5902ec2699c2e52fdf7
|
|
25
|
+
|
|
26
|
+
### Scrubadub (Apache 2.0)
|
|
27
|
+
|
|
28
|
+
- RFC-style email local-part symbol coverage and conservative written
|
|
29
|
+
`at`/`dot` email grammar
|
|
30
|
+
- Validation-first phone matching principles
|
|
31
|
+
- Adapted from pinned commit `53772cbef417da290d25c95373031f786ab3b5c6`
|
|
32
|
+
- https://github.com/LeapBeyond/scrubadub/tree/53772cbef417da290d25c95373031f786ab3b5c6
|
|
14
33
|
|
|
15
34
|
### GLiNER / GLiNER.js (MIT)
|
|
16
35
|
|
|
@@ -68,3 +87,25 @@ projects and academic research.
|
|
|
68
87
|
`dictionaries/international/`
|
|
69
88
|
- https://www.wikidata.org
|
|
70
89
|
- License: Creative Commons CC0 1.0 Universal
|
|
90
|
+
|
|
91
|
+
## lopdf MIT License
|
|
92
|
+
|
|
93
|
+
Copyright (c) 2016 Junfeng Liu
|
|
94
|
+
|
|
95
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
96
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
97
|
+
in the Software without restriction, including without limitation the rights
|
|
98
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
99
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
100
|
+
furnished to do so, subject to the following conditions:
|
|
101
|
+
|
|
102
|
+
The above copyright notice and this permission notice shall be included in all
|
|
103
|
+
copies or substantial portions of the Software.
|
|
104
|
+
|
|
105
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
106
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
107
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
108
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
109
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
110
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
111
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -192,6 +192,62 @@ in them. Retained result entities preserve both IDs. Use
|
|
|
192
192
|
retained counts. Diagnostic events include provenance, labels, offsets, and
|
|
193
193
|
scores, but never matched text.
|
|
194
194
|
|
|
195
|
+
For model and service integrations, use the portable
|
|
196
|
+
`ExternalDetectionBatch` v1 exchange contract. It is provider-neutral and does
|
|
197
|
+
not install or require GLiNER (or any other model runtime). The batch is bound
|
|
198
|
+
to the exact UTF-8 document bytes by SHA-256, declares one closed offset unit,
|
|
199
|
+
maps provider labels explicitly, and is converted by the Rust contract before
|
|
200
|
+
entering the existing caller-detection pipeline:
|
|
201
|
+
|
|
202
|
+
```ts
|
|
203
|
+
import { createHash } from "node:crypto";
|
|
204
|
+
import {
|
|
205
|
+
EXTERNAL_DETECTION_BATCH_VERSION,
|
|
206
|
+
convert_external_detection_batch,
|
|
207
|
+
} from "@stll/anonymize";
|
|
208
|
+
|
|
209
|
+
const document = new TextEncoder().encode("😀Alice signed.");
|
|
210
|
+
const providerOutput = {
|
|
211
|
+
version: EXTERNAL_DETECTION_BATCH_VERSION,
|
|
212
|
+
document: { sha256: createHash("sha256").update(document).digest("hex") },
|
|
213
|
+
offsetUnit: "unicode-code-point",
|
|
214
|
+
provider: { id: "example.local", name: "Example detector", version: "1" },
|
|
215
|
+
labelMap: [{ providerLabel: "PER", entityLabel: "person" }],
|
|
216
|
+
detections: [{ id: "person-1", start: 1, end: 6, label: "PER", score: 0.99 }],
|
|
217
|
+
} as const;
|
|
218
|
+
const detections = convert_external_detection_batch(document, providerOutput);
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
The same converter is available from `@stll/anonymize-wasm`; its browser and
|
|
222
|
+
Node-WASI entry returns a promise because the WASM binding loads lazily. Node,
|
|
223
|
+
Python, Node-WASI, and browser WASM execute the same Rust validation and offset
|
|
224
|
+
conversion contract.
|
|
225
|
+
|
|
226
|
+
The example provider output is deliberately synthetic. Real providers may run
|
|
227
|
+
in-process, as a local sidecar, or behind an application-owned service.
|
|
228
|
+
`provider.id` is the immutable audit identity copied into every retained
|
|
229
|
+
detection; version it when a materially different detector must remain
|
|
230
|
+
distinguishable (for example, `example.local:1`). `provider.name` and
|
|
231
|
+
`provider.version` are validated descriptive batch metadata, but are not copied
|
|
232
|
+
into caller detections. Retain the original batch if those fields are needed in
|
|
233
|
+
an audit record. The converter rejects unknown fields and versions, digest
|
|
234
|
+
mismatch, invalid Unicode boundaries, unmapped labels, duplicate provenance,
|
|
235
|
+
and bounded-size violations; it never guesses an offset unit or label mapping.
|
|
236
|
+
Keep IDs free of personal data. Pass the returned detections to
|
|
237
|
+
`redactTextWithCallerDetections()` using the UTF-8-decoded document text.
|
|
238
|
+
|
|
239
|
+
TypeScript (including the WASM entry) and Python export the same exact v1 limit
|
|
240
|
+
constants:
|
|
241
|
+
|
|
242
|
+
| v1 limit | Public constant | Exact value |
|
|
243
|
+
| -------------------------- | ------------------------------------------ | ------------------------: |
|
|
244
|
+
| Serialized batch | `EXTERNAL_DETECTION_BATCH_MAX_BYTES` | 16,777,216 bytes (16 MiB) |
|
|
245
|
+
| UTF-8 document | `EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES` | 67,108,864 bytes (64 MiB) |
|
|
246
|
+
| Detections | `EXTERNAL_DETECTION_MAX_DETECTIONS` | 100,000 |
|
|
247
|
+
| Label mappings | `EXTERNAL_DETECTION_MAX_LABEL_MAPPINGS` | 4,096 |
|
|
248
|
+
| Descriptive metadata field | `EXTERNAL_DETECTION_MAX_METADATA_BYTES` | 256 bytes |
|
|
249
|
+
| Provider ID | `EXTERNAL_DETECTION_PROVIDER_ID_MAX_BYTES` | 128 bytes |
|
|
250
|
+
|
|
195
251
|
The config module may export a `PipelineConfig` directly or `{ config, gazetteerEntries }`. Include `@stll/anonymize-data` dictionaries there if your runtime config uses the deny-list or name-corpus layers; keep the corresponding layers enabled for caller-owned `customDenyList`, `customRegexes`, and gazetteers. Those inputs are part of the prepared package and should be regenerated when they change.
|
|
196
252
|
|
|
197
253
|
## Python SDK
|
package/dist/capabilities.d.mts
CHANGED
|
@@ -1,11 +1,95 @@
|
|
|
1
1
|
import { o as ENTITY_CAPABILITIES } from "./constants2.mjs";
|
|
2
2
|
//#region src/capabilities.d.ts
|
|
3
|
-
declare const CAPABILITY_MANIFEST_SCHEMA_VERSION:
|
|
3
|
+
declare const CAPABILITY_MANIFEST_SCHEMA_VERSION: 2;
|
|
4
4
|
declare const CAPABILITY_RUNTIMES: readonly ["node", "python", "wasm"];
|
|
5
5
|
type CapabilityRuntime = (typeof CAPABILITY_RUNTIMES)[number];
|
|
6
|
+
declare const CAPABILITY_PARITY_PROFILES: {
|
|
7
|
+
readonly core: readonly ["node", "python", "wasm"];
|
|
8
|
+
readonly local: readonly ["node", "python"];
|
|
9
|
+
readonly nodeLocal: readonly ["node"];
|
|
10
|
+
readonly document: readonly ["node", "python"];
|
|
11
|
+
};
|
|
12
|
+
type CapabilityParityProfile = keyof typeof CAPABILITY_PARITY_PROFILES;
|
|
13
|
+
declare const CAPABILITY_SURFACES: readonly [{
|
|
14
|
+
readonly id: "package.prepare";
|
|
15
|
+
readonly profile: "core";
|
|
16
|
+
}, {
|
|
17
|
+
readonly id: "package.load";
|
|
18
|
+
readonly profile: "core";
|
|
19
|
+
}, {
|
|
20
|
+
readonly id: "package.load-file";
|
|
21
|
+
readonly profile: "local";
|
|
22
|
+
}, {
|
|
23
|
+
readonly id: "text.normalize";
|
|
24
|
+
readonly profile: "core";
|
|
25
|
+
}, {
|
|
26
|
+
readonly id: "text.redact";
|
|
27
|
+
readonly profile: "core";
|
|
28
|
+
}, {
|
|
29
|
+
readonly id: "text.redact-stream";
|
|
30
|
+
readonly profile: "core";
|
|
31
|
+
}, {
|
|
32
|
+
readonly id: "text.diagnostics";
|
|
33
|
+
readonly profile: "core";
|
|
34
|
+
}, {
|
|
35
|
+
readonly id: "text.summary-diagnostics";
|
|
36
|
+
readonly profile: "core";
|
|
37
|
+
}, {
|
|
38
|
+
readonly id: "text.caller-detections";
|
|
39
|
+
readonly profile: "core";
|
|
40
|
+
}, {
|
|
41
|
+
readonly id: "text.external-detection-batch";
|
|
42
|
+
readonly profile: "core";
|
|
43
|
+
}, {
|
|
44
|
+
readonly id: "text.operators";
|
|
45
|
+
readonly profile: "core";
|
|
46
|
+
}, {
|
|
47
|
+
readonly id: "package.default";
|
|
48
|
+
readonly profile: "core";
|
|
49
|
+
}, {
|
|
50
|
+
readonly id: "session.cross-document";
|
|
51
|
+
readonly profile: "core";
|
|
52
|
+
}, {
|
|
53
|
+
readonly id: "session.lifecycle";
|
|
54
|
+
readonly profile: "core";
|
|
55
|
+
}, {
|
|
56
|
+
readonly id: "session.plaintext-transfer";
|
|
57
|
+
readonly profile: "core";
|
|
58
|
+
}, {
|
|
59
|
+
readonly id: "session.encrypted-archive";
|
|
60
|
+
readonly profile: "core";
|
|
61
|
+
}, {
|
|
62
|
+
readonly id: "document.docx.extract";
|
|
63
|
+
readonly profile: "document";
|
|
64
|
+
}, {
|
|
65
|
+
readonly id: "document.docx.rewrite";
|
|
66
|
+
readonly profile: "document";
|
|
67
|
+
}, {
|
|
68
|
+
readonly id: "document.docx.anonymize";
|
|
69
|
+
readonly profile: "document";
|
|
70
|
+
}, {
|
|
71
|
+
readonly id: "document.docx.restore";
|
|
72
|
+
readonly profile: "document";
|
|
73
|
+
}, {
|
|
74
|
+
readonly id: "document.pdf.inspect";
|
|
75
|
+
readonly profile: "core";
|
|
76
|
+
}, {
|
|
77
|
+
readonly id: "document.pdf.anonymize-raster";
|
|
78
|
+
readonly profile: "document";
|
|
79
|
+
}, {
|
|
80
|
+
readonly id: "document.pdf.rewrite-raster";
|
|
81
|
+
readonly profile: "document";
|
|
82
|
+
}, {
|
|
83
|
+
readonly id: "document.pdf.observe-raster-local";
|
|
84
|
+
readonly profile: "nodeLocal";
|
|
85
|
+
}];
|
|
86
|
+
type CapabilitySurface = (typeof CAPABILITY_SURFACES)[number];
|
|
87
|
+
type CapabilitySurfaceId = CapabilitySurface["id"];
|
|
6
88
|
type CapabilityManifest = {
|
|
7
89
|
schemaVersion: typeof CAPABILITY_MANIFEST_SCHEMA_VERSION;
|
|
8
90
|
runtimes: readonly CapabilityRuntime[];
|
|
91
|
+
parityProfiles: typeof CAPABILITY_PARITY_PROFILES;
|
|
92
|
+
surfaces: typeof CAPABILITY_SURFACES;
|
|
9
93
|
entities: typeof ENTITY_CAPABILITIES;
|
|
10
94
|
};
|
|
11
95
|
/**
|
|
@@ -14,8 +98,87 @@ type CapabilityManifest = {
|
|
|
14
98
|
* activation, provenance sources, and runtime parity only.
|
|
15
99
|
*/
|
|
16
100
|
declare const CAPABILITY_MANIFEST: {
|
|
17
|
-
readonly schemaVersion:
|
|
101
|
+
readonly schemaVersion: 2;
|
|
18
102
|
readonly runtimes: readonly ["node", "python", "wasm"];
|
|
103
|
+
readonly parityProfiles: {
|
|
104
|
+
readonly core: readonly ["node", "python", "wasm"];
|
|
105
|
+
readonly local: readonly ["node", "python"];
|
|
106
|
+
readonly nodeLocal: readonly ["node"];
|
|
107
|
+
readonly document: readonly ["node", "python"];
|
|
108
|
+
};
|
|
109
|
+
readonly surfaces: readonly [{
|
|
110
|
+
readonly id: "package.prepare";
|
|
111
|
+
readonly profile: "core";
|
|
112
|
+
}, {
|
|
113
|
+
readonly id: "package.load";
|
|
114
|
+
readonly profile: "core";
|
|
115
|
+
}, {
|
|
116
|
+
readonly id: "package.load-file";
|
|
117
|
+
readonly profile: "local";
|
|
118
|
+
}, {
|
|
119
|
+
readonly id: "text.normalize";
|
|
120
|
+
readonly profile: "core";
|
|
121
|
+
}, {
|
|
122
|
+
readonly id: "text.redact";
|
|
123
|
+
readonly profile: "core";
|
|
124
|
+
}, {
|
|
125
|
+
readonly id: "text.redact-stream";
|
|
126
|
+
readonly profile: "core";
|
|
127
|
+
}, {
|
|
128
|
+
readonly id: "text.diagnostics";
|
|
129
|
+
readonly profile: "core";
|
|
130
|
+
}, {
|
|
131
|
+
readonly id: "text.summary-diagnostics";
|
|
132
|
+
readonly profile: "core";
|
|
133
|
+
}, {
|
|
134
|
+
readonly id: "text.caller-detections";
|
|
135
|
+
readonly profile: "core";
|
|
136
|
+
}, {
|
|
137
|
+
readonly id: "text.external-detection-batch";
|
|
138
|
+
readonly profile: "core";
|
|
139
|
+
}, {
|
|
140
|
+
readonly id: "text.operators";
|
|
141
|
+
readonly profile: "core";
|
|
142
|
+
}, {
|
|
143
|
+
readonly id: "package.default";
|
|
144
|
+
readonly profile: "core";
|
|
145
|
+
}, {
|
|
146
|
+
readonly id: "session.cross-document";
|
|
147
|
+
readonly profile: "core";
|
|
148
|
+
}, {
|
|
149
|
+
readonly id: "session.lifecycle";
|
|
150
|
+
readonly profile: "core";
|
|
151
|
+
}, {
|
|
152
|
+
readonly id: "session.plaintext-transfer";
|
|
153
|
+
readonly profile: "core";
|
|
154
|
+
}, {
|
|
155
|
+
readonly id: "session.encrypted-archive";
|
|
156
|
+
readonly profile: "core";
|
|
157
|
+
}, {
|
|
158
|
+
readonly id: "document.docx.extract";
|
|
159
|
+
readonly profile: "document";
|
|
160
|
+
}, {
|
|
161
|
+
readonly id: "document.docx.rewrite";
|
|
162
|
+
readonly profile: "document";
|
|
163
|
+
}, {
|
|
164
|
+
readonly id: "document.docx.anonymize";
|
|
165
|
+
readonly profile: "document";
|
|
166
|
+
}, {
|
|
167
|
+
readonly id: "document.docx.restore";
|
|
168
|
+
readonly profile: "document";
|
|
169
|
+
}, {
|
|
170
|
+
readonly id: "document.pdf.inspect";
|
|
171
|
+
readonly profile: "core";
|
|
172
|
+
}, {
|
|
173
|
+
readonly id: "document.pdf.anonymize-raster";
|
|
174
|
+
readonly profile: "document";
|
|
175
|
+
}, {
|
|
176
|
+
readonly id: "document.pdf.rewrite-raster";
|
|
177
|
+
readonly profile: "document";
|
|
178
|
+
}, {
|
|
179
|
+
readonly id: "document.pdf.observe-raster-local";
|
|
180
|
+
readonly profile: "nodeLocal";
|
|
181
|
+
}];
|
|
19
182
|
readonly entities: readonly [{
|
|
20
183
|
readonly label: "person";
|
|
21
184
|
readonly selection: "default";
|
|
@@ -80,6 +243,10 @@ declare const CAPABILITY_MANIFEST: {
|
|
|
80
243
|
readonly label: "registration number";
|
|
81
244
|
readonly selection: "default";
|
|
82
245
|
readonly detectionSources: readonly ["regex", "trigger"];
|
|
246
|
+
}, {
|
|
247
|
+
readonly label: "case number";
|
|
248
|
+
readonly selection: "default";
|
|
249
|
+
readonly detectionSources: readonly ["regex", "trigger"];
|
|
83
250
|
}, {
|
|
84
251
|
readonly label: "credit card number";
|
|
85
252
|
readonly selection: "default";
|
|
@@ -87,7 +254,7 @@ declare const CAPABILITY_MANIFEST: {
|
|
|
87
254
|
}, {
|
|
88
255
|
readonly label: "passport number";
|
|
89
256
|
readonly selection: "default";
|
|
90
|
-
readonly detectionSources: readonly ["regex"];
|
|
257
|
+
readonly detectionSources: readonly ["regex", "trigger"];
|
|
91
258
|
}, {
|
|
92
259
|
readonly label: "crypto";
|
|
93
260
|
readonly selection: "default";
|
|
@@ -119,5 +286,5 @@ declare const CAPABILITY_MANIFEST: {
|
|
|
119
286
|
}];
|
|
120
287
|
};
|
|
121
288
|
//#endregion
|
|
122
|
-
export { CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_RUNTIMES, CapabilityManifest, CapabilityRuntime };
|
|
289
|
+
export { CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_PARITY_PROFILES, CAPABILITY_RUNTIMES, CAPABILITY_SURFACES, CapabilityManifest, CapabilityParityProfile, CapabilityRuntime, CapabilitySurface, CapabilitySurfaceId };
|
|
123
290
|
//# sourceMappingURL=capabilities.d.mts.map
|
package/dist/capabilities.mjs
CHANGED
|
@@ -1,22 +1,128 @@
|
|
|
1
1
|
import { ENTITY_CAPABILITIES } from "./constants.mjs";
|
|
2
2
|
//#region src/capabilities.ts
|
|
3
|
-
const CAPABILITY_MANIFEST_SCHEMA_VERSION =
|
|
3
|
+
const CAPABILITY_MANIFEST_SCHEMA_VERSION = 2;
|
|
4
4
|
const CAPABILITY_RUNTIMES = [
|
|
5
5
|
"node",
|
|
6
6
|
"python",
|
|
7
7
|
"wasm"
|
|
8
8
|
];
|
|
9
|
+
const CAPABILITY_PARITY_PROFILES = {
|
|
10
|
+
core: CAPABILITY_RUNTIMES,
|
|
11
|
+
local: ["node", "python"],
|
|
12
|
+
nodeLocal: ["node"],
|
|
13
|
+
document: ["node", "python"]
|
|
14
|
+
};
|
|
15
|
+
const CAPABILITY_SURFACES = [
|
|
16
|
+
{
|
|
17
|
+
id: "package.prepare",
|
|
18
|
+
profile: "core"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: "package.load",
|
|
22
|
+
profile: "core"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: "package.load-file",
|
|
26
|
+
profile: "local"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: "text.normalize",
|
|
30
|
+
profile: "core"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: "text.redact",
|
|
34
|
+
profile: "core"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "text.redact-stream",
|
|
38
|
+
profile: "core"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "text.diagnostics",
|
|
42
|
+
profile: "core"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: "text.summary-diagnostics",
|
|
46
|
+
profile: "core"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "text.caller-detections",
|
|
50
|
+
profile: "core"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: "text.external-detection-batch",
|
|
54
|
+
profile: "core"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: "text.operators",
|
|
58
|
+
profile: "core"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: "package.default",
|
|
62
|
+
profile: "core"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "session.cross-document",
|
|
66
|
+
profile: "core"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: "session.lifecycle",
|
|
70
|
+
profile: "core"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: "session.plaintext-transfer",
|
|
74
|
+
profile: "core"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: "session.encrypted-archive",
|
|
78
|
+
profile: "core"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: "document.docx.extract",
|
|
82
|
+
profile: "document"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: "document.docx.rewrite",
|
|
86
|
+
profile: "document"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: "document.docx.anonymize",
|
|
90
|
+
profile: "document"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
id: "document.docx.restore",
|
|
94
|
+
profile: "document"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: "document.pdf.inspect",
|
|
98
|
+
profile: "core"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: "document.pdf.anonymize-raster",
|
|
102
|
+
profile: "document"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: "document.pdf.rewrite-raster",
|
|
106
|
+
profile: "document"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
id: "document.pdf.observe-raster-local",
|
|
110
|
+
profile: "nodeLocal"
|
|
111
|
+
}
|
|
112
|
+
];
|
|
9
113
|
/**
|
|
10
114
|
* Versioned, runtime-free discovery contract for the deterministic pipeline.
|
|
11
115
|
* The manifest contains no accuracy claims; it describes available labels,
|
|
12
116
|
* activation, provenance sources, and runtime parity only.
|
|
13
117
|
*/
|
|
14
118
|
const CAPABILITY_MANIFEST = {
|
|
15
|
-
schemaVersion:
|
|
119
|
+
schemaVersion: 2,
|
|
16
120
|
runtimes: CAPABILITY_RUNTIMES,
|
|
121
|
+
parityProfiles: CAPABILITY_PARITY_PROFILES,
|
|
122
|
+
surfaces: CAPABILITY_SURFACES,
|
|
17
123
|
entities: ENTITY_CAPABILITIES
|
|
18
124
|
};
|
|
19
125
|
//#endregion
|
|
20
|
-
export { CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_RUNTIMES };
|
|
126
|
+
export { CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_PARITY_PROFILES, CAPABILITY_RUNTIMES, CAPABILITY_SURFACES };
|
|
21
127
|
|
|
22
128
|
//# sourceMappingURL=capabilities.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.mjs","names":[],"sources":["../src/capabilities.ts"],"sourcesContent":["import { ENTITY_CAPABILITIES } from \"./constants\";\n\nexport const CAPABILITY_MANIFEST_SCHEMA_VERSION =
|
|
1
|
+
{"version":3,"file":"capabilities.mjs","names":[],"sources":["../src/capabilities.ts"],"sourcesContent":["import { ENTITY_CAPABILITIES } from \"./constants\";\n\nexport const CAPABILITY_MANIFEST_SCHEMA_VERSION = 2 as const;\n\nexport const CAPABILITY_RUNTIMES = [\"node\", \"python\", \"wasm\"] as const;\n\nexport type CapabilityRuntime = (typeof CAPABILITY_RUNTIMES)[number];\n\nexport const CAPABILITY_PARITY_PROFILES = {\n core: CAPABILITY_RUNTIMES,\n local: [\"node\", \"python\"],\n nodeLocal: [\"node\"],\n document: [\"node\", \"python\"],\n} as const satisfies Record<string, readonly CapabilityRuntime[]>;\n\nexport type CapabilityParityProfile = keyof typeof CAPABILITY_PARITY_PROFILES;\n\nexport const CAPABILITY_SURFACES = [\n { id: \"package.prepare\", profile: \"core\" },\n { id: \"package.load\", profile: \"core\" },\n { id: \"package.load-file\", profile: \"local\" },\n { id: \"text.normalize\", profile: \"core\" },\n { id: \"text.redact\", profile: \"core\" },\n { id: \"text.redact-stream\", profile: \"core\" },\n { id: \"text.diagnostics\", profile: \"core\" },\n { id: \"text.summary-diagnostics\", profile: \"core\" },\n { id: \"text.caller-detections\", profile: \"core\" },\n { id: \"text.external-detection-batch\", profile: \"core\" },\n { id: \"text.operators\", profile: \"core\" },\n { id: \"package.default\", profile: \"core\" },\n { id: \"session.cross-document\", profile: \"core\" },\n { id: \"session.lifecycle\", profile: \"core\" },\n { id: \"session.plaintext-transfer\", profile: \"core\" },\n { id: \"session.encrypted-archive\", profile: \"core\" },\n { id: \"document.docx.extract\", profile: \"document\" },\n { id: \"document.docx.rewrite\", profile: \"document\" },\n { id: \"document.docx.anonymize\", profile: \"document\" },\n { id: \"document.docx.restore\", profile: \"document\" },\n { id: \"document.pdf.inspect\", profile: \"core\" },\n { id: \"document.pdf.anonymize-raster\", profile: \"document\" },\n { id: \"document.pdf.rewrite-raster\", profile: \"document\" },\n { id: \"document.pdf.observe-raster-local\", profile: \"nodeLocal\" },\n] as const satisfies readonly {\n id: string;\n profile: CapabilityParityProfile;\n}[];\n\nexport type CapabilitySurface = (typeof CAPABILITY_SURFACES)[number];\nexport type CapabilitySurfaceId = CapabilitySurface[\"id\"];\n\nexport type CapabilityManifest = {\n schemaVersion: typeof CAPABILITY_MANIFEST_SCHEMA_VERSION;\n runtimes: readonly CapabilityRuntime[];\n parityProfiles: typeof CAPABILITY_PARITY_PROFILES;\n surfaces: typeof CAPABILITY_SURFACES;\n entities: typeof ENTITY_CAPABILITIES;\n};\n\n/**\n * Versioned, runtime-free discovery contract for the deterministic pipeline.\n * The manifest contains no accuracy claims; it describes available labels,\n * activation, provenance sources, and runtime parity only.\n */\nexport const CAPABILITY_MANIFEST = {\n schemaVersion: CAPABILITY_MANIFEST_SCHEMA_VERSION,\n runtimes: CAPABILITY_RUNTIMES,\n parityProfiles: CAPABILITY_PARITY_PROFILES,\n surfaces: CAPABILITY_SURFACES,\n entities: ENTITY_CAPABILITIES,\n} as const satisfies CapabilityManifest;\n"],"mappings":";;AAEA,MAAa,qCAAqC;AAElD,MAAa,sBAAsB;CAAC;CAAQ;CAAU;AAAM;AAI5D,MAAa,6BAA6B;CACxC,MAAM;CACN,OAAO,CAAC,QAAQ,QAAQ;CACxB,WAAW,CAAC,MAAM;CAClB,UAAU,CAAC,QAAQ,QAAQ;AAC7B;AAIA,MAAa,sBAAsB;CACjC;EAAE,IAAI;EAAmB,SAAS;CAAO;CACzC;EAAE,IAAI;EAAgB,SAAS;CAAO;CACtC;EAAE,IAAI;EAAqB,SAAS;CAAQ;CAC5C;EAAE,IAAI;EAAkB,SAAS;CAAO;CACxC;EAAE,IAAI;EAAe,SAAS;CAAO;CACrC;EAAE,IAAI;EAAsB,SAAS;CAAO;CAC5C;EAAE,IAAI;EAAoB,SAAS;CAAO;CAC1C;EAAE,IAAI;EAA4B,SAAS;CAAO;CAClD;EAAE,IAAI;EAA0B,SAAS;CAAO;CAChD;EAAE,IAAI;EAAiC,SAAS;CAAO;CACvD;EAAE,IAAI;EAAkB,SAAS;CAAO;CACxC;EAAE,IAAI;EAAmB,SAAS;CAAO;CACzC;EAAE,IAAI;EAA0B,SAAS;CAAO;CAChD;EAAE,IAAI;EAAqB,SAAS;CAAO;CAC3C;EAAE,IAAI;EAA8B,SAAS;CAAO;CACpD;EAAE,IAAI;EAA6B,SAAS;CAAO;CACnD;EAAE,IAAI;EAAyB,SAAS;CAAW;CACnD;EAAE,IAAI;EAAyB,SAAS;CAAW;CACnD;EAAE,IAAI;EAA2B,SAAS;CAAW;CACrD;EAAE,IAAI;EAAyB,SAAS;CAAW;CACnD;EAAE,IAAI;EAAwB,SAAS;CAAO;CAC9C;EAAE,IAAI;EAAiC,SAAS;CAAW;CAC3D;EAAE,IAAI;EAA+B,SAAS;CAAW;CACzD;EAAE,IAAI;EAAqC,SAAS;CAAY;AAClE;;;;;;AAqBA,MAAa,sBAAsB;CACjC,eAAA;CACA,UAAU;CACV,gBAAgB;CAChB,UAAU;CACV,UAAU;AACZ"}
|
package/dist/constants.mjs
CHANGED
|
@@ -164,6 +164,11 @@ const ENTITY_CAPABILITIES = [
|
|
|
164
164
|
selection: ENTITY_SELECTIONS.DEFAULT,
|
|
165
165
|
detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER]
|
|
166
166
|
},
|
|
167
|
+
{
|
|
168
|
+
label: "case number",
|
|
169
|
+
selection: ENTITY_SELECTIONS.DEFAULT,
|
|
170
|
+
detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER]
|
|
171
|
+
},
|
|
167
172
|
{
|
|
168
173
|
label: "credit card number",
|
|
169
174
|
selection: ENTITY_SELECTIONS.DEFAULT,
|
|
@@ -172,7 +177,7 @@ const ENTITY_CAPABILITIES = [
|
|
|
172
177
|
{
|
|
173
178
|
label: "passport number",
|
|
174
179
|
selection: ENTITY_SELECTIONS.DEFAULT,
|
|
175
|
-
detectionSources: [DETECTION_SOURCES.REGEX]
|
|
180
|
+
detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER]
|
|
176
181
|
},
|
|
177
182
|
{
|
|
178
183
|
label: "crypto",
|
package/dist/constants.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["/**\n * Runtime-free constants for the anonymization pipeline.\n *\n * This module is the SSR-safe / browser-safe entrypoint:\n * importing it must not pull in `@stll/anonymize-wasm`\n * or any other runtime-bearing module.\n * Consumers that only need the static label list,\n * detection-source identifiers, or operator names import\n * from `@stll/anonymize/constants` (or\n * `@stll/anonymize-wasm/constants`) without paying the\n * wasm / regex-set startup cost.\n *\n * `types.ts` re-exports these for back-compat, so existing\n * `import { DEFAULT_ENTITY_LABELS } from \"@stll/anonymize\"`\n * call sites keep working.\n */\n\n/**\n * Source of a detected entity span.\n * Ordered by detection layer in the pipeline.\n */\nexport const DETECTION_SOURCES = {\n TRIGGER: \"trigger\",\n REGEX: \"regex\",\n DENY_LIST: \"deny-list\",\n LEGAL_FORM: \"legal-form\",\n GAZETTEER: \"gazetteer\",\n COUNTRY: \"country\",\n NER: \"ner\",\n COREFERENCE: \"coreference\",\n} as const;\n\nexport type DetectionSource =\n (typeof DETECTION_SOURCES)[keyof typeof DETECTION_SOURCES];\n\n/**\n * Priority levels for detection sources.\n * Higher = more structurally reliable. Used during\n * overlap resolution so deterministic detectors beat\n * probabilistic ones regardless of raw score.\n */\nexport const DETECTOR_PRIORITY = {\n [DETECTION_SOURCES.GAZETTEER]: 5,\n [DETECTION_SOURCES.TRIGGER]: 4,\n [DETECTION_SOURCES.LEGAL_FORM]: 3,\n [DETECTION_SOURCES.REGEX]: 3,\n [DETECTION_SOURCES.COUNTRY]: 3,\n [DETECTION_SOURCES.DENY_LIST]: 2,\n [DETECTION_SOURCES.COREFERENCE]: 2,\n [DETECTION_SOURCES.NER]: 1,\n} as const satisfies Record<DetectionSource, number>;\n\n/**\n * Anonymization operator types. Each operator defines\n * how a confirmed entity is replaced in the output.\n */\nexport const OPERATOR_TYPES = [\"replace\", \"redact\", \"keep\", \"mask\"] as const;\n\nexport type OperatorType = (typeof OPERATOR_TYPES)[number];\n\nexport const ENTITY_SELECTIONS = {\n DEFAULT: \"default\",\n OPT_IN: \"opt-in\",\n} as const;\n\nexport type EntitySelection =\n (typeof ENTITY_SELECTIONS)[keyof typeof ENTITY_SELECTIONS];\n\nexport type EntityCapability = {\n label: string;\n selection: EntitySelection;\n detectionSources: readonly DetectionSource[];\n};\n\n/**\n * Canonical entity capabilities exposed by the deterministic native pipeline.\n * `selection` describes whether the default package requests the label; opt-in\n * labels have built-in detection rules but must be requested explicitly.\n *\n * These labels are ephemeral: entities are regenerated on\n * every pipeline run and never persisted to the database.\n * Renaming a label here requires no migration.\n */\nexport const ENTITY_CAPABILITIES = [\n {\n label: \"person\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [\n DETECTION_SOURCES.TRIGGER,\n DETECTION_SOURCES.REGEX,\n DETECTION_SOURCES.DENY_LIST,\n DETECTION_SOURCES.COREFERENCE,\n ],\n },\n {\n label: \"organization\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [\n DETECTION_SOURCES.TRIGGER,\n DETECTION_SOURCES.DENY_LIST,\n DETECTION_SOURCES.LEGAL_FORM,\n DETECTION_SOURCES.GAZETTEER,\n DETECTION_SOURCES.COREFERENCE,\n ],\n },\n {\n label: \"phone number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"address\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [\n DETECTION_SOURCES.REGEX,\n DETECTION_SOURCES.TRIGGER,\n DETECTION_SOURCES.DENY_LIST,\n ],\n },\n {\n label: \"country\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.COUNTRY],\n },\n {\n label: \"email address\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"date\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"date of birth\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"bank account number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"iban\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"tax identification number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"identity card number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"birth number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"national identification number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"social security number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"registration number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"credit card number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"passport number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"crypto\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"monetary amount\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"land parcel\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"misc\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.DENY_LIST],\n },\n {\n label: \"ip address\",\n selection: ENTITY_SELECTIONS.OPT_IN,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"mac address\",\n selection: ENTITY_SELECTIONS.OPT_IN,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"url\",\n selection: ENTITY_SELECTIONS.OPT_IN,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n] as const satisfies readonly EntityCapability[];\n\ntype KnownEntityCapability = (typeof ENTITY_CAPABILITIES)[number];\n\nexport type EntityLabel = KnownEntityCapability[\"label\"];\n\nexport const ENTITY_LABELS: readonly EntityLabel[] = ENTITY_CAPABILITIES.map(\n ({ label }) => label,\n);\n\nconst isDefaultEntityCapability = (\n capability: KnownEntityCapability,\n): capability is Extract<\n KnownEntityCapability,\n { selection: typeof ENTITY_SELECTIONS.DEFAULT }\n> => capability.selection === ENTITY_SELECTIONS.DEFAULT;\n\nexport type DefaultEntityLabel = Extract<\n KnownEntityCapability,\n { selection: typeof ENTITY_SELECTIONS.DEFAULT }\n>[\"label\"];\n\nexport const DEFAULT_ENTITY_LABELS: readonly DefaultEntityLabel[] =\n ENTITY_CAPABILITIES.filter(isDefaultEntityCapability).map(\n ({ label }) => label,\n );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["/**\n * Runtime-free constants for the anonymization pipeline.\n *\n * This module is the SSR-safe / browser-safe entrypoint:\n * importing it must not pull in `@stll/anonymize-wasm`\n * or any other runtime-bearing module.\n * Consumers that only need the static label list,\n * detection-source identifiers, or operator names import\n * from `@stll/anonymize/constants` (or\n * `@stll/anonymize-wasm/constants`) without paying the\n * wasm / regex-set startup cost.\n *\n * `types.ts` re-exports these for back-compat, so existing\n * `import { DEFAULT_ENTITY_LABELS } from \"@stll/anonymize\"`\n * call sites keep working.\n */\n\n/**\n * Source of a detected entity span.\n * Ordered by detection layer in the pipeline.\n */\nexport const DETECTION_SOURCES = {\n TRIGGER: \"trigger\",\n REGEX: \"regex\",\n DENY_LIST: \"deny-list\",\n LEGAL_FORM: \"legal-form\",\n GAZETTEER: \"gazetteer\",\n COUNTRY: \"country\",\n NER: \"ner\",\n COREFERENCE: \"coreference\",\n} as const;\n\nexport type DetectionSource =\n (typeof DETECTION_SOURCES)[keyof typeof DETECTION_SOURCES];\n\n/**\n * Priority levels for detection sources.\n * Higher = more structurally reliable. Used during\n * overlap resolution so deterministic detectors beat\n * probabilistic ones regardless of raw score.\n */\nexport const DETECTOR_PRIORITY = {\n [DETECTION_SOURCES.GAZETTEER]: 5,\n [DETECTION_SOURCES.TRIGGER]: 4,\n [DETECTION_SOURCES.LEGAL_FORM]: 3,\n [DETECTION_SOURCES.REGEX]: 3,\n [DETECTION_SOURCES.COUNTRY]: 3,\n [DETECTION_SOURCES.DENY_LIST]: 2,\n [DETECTION_SOURCES.COREFERENCE]: 2,\n [DETECTION_SOURCES.NER]: 1,\n} as const satisfies Record<DetectionSource, number>;\n\n/**\n * Anonymization operator types. Each operator defines\n * how a confirmed entity is replaced in the output.\n */\nexport const OPERATOR_TYPES = [\"replace\", \"redact\", \"keep\", \"mask\"] as const;\n\nexport type OperatorType = (typeof OPERATOR_TYPES)[number];\n\nexport const ENTITY_SELECTIONS = {\n DEFAULT: \"default\",\n OPT_IN: \"opt-in\",\n} as const;\n\nexport type EntitySelection =\n (typeof ENTITY_SELECTIONS)[keyof typeof ENTITY_SELECTIONS];\n\nexport type EntityCapability = {\n label: string;\n selection: EntitySelection;\n detectionSources: readonly DetectionSource[];\n};\n\n/**\n * Canonical entity capabilities exposed by the deterministic native pipeline.\n * `selection` describes whether the default package requests the label; opt-in\n * labels have built-in detection rules but must be requested explicitly.\n *\n * These labels are ephemeral: entities are regenerated on\n * every pipeline run and never persisted to the database.\n * Renaming a label here requires no migration.\n */\nexport const ENTITY_CAPABILITIES = [\n {\n label: \"person\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [\n DETECTION_SOURCES.TRIGGER,\n DETECTION_SOURCES.REGEX,\n DETECTION_SOURCES.DENY_LIST,\n DETECTION_SOURCES.COREFERENCE,\n ],\n },\n {\n label: \"organization\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [\n DETECTION_SOURCES.TRIGGER,\n DETECTION_SOURCES.DENY_LIST,\n DETECTION_SOURCES.LEGAL_FORM,\n DETECTION_SOURCES.GAZETTEER,\n DETECTION_SOURCES.COREFERENCE,\n ],\n },\n {\n label: \"phone number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"address\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [\n DETECTION_SOURCES.REGEX,\n DETECTION_SOURCES.TRIGGER,\n DETECTION_SOURCES.DENY_LIST,\n ],\n },\n {\n label: \"country\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.COUNTRY],\n },\n {\n label: \"email address\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"date\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"date of birth\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"bank account number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"iban\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"tax identification number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"identity card number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"birth number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"national identification number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"social security number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"registration number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"case number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"credit card number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"passport number\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"crypto\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"monetary amount\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"land parcel\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.TRIGGER],\n },\n {\n label: \"misc\",\n selection: ENTITY_SELECTIONS.DEFAULT,\n detectionSources: [DETECTION_SOURCES.REGEX, DETECTION_SOURCES.DENY_LIST],\n },\n {\n label: \"ip address\",\n selection: ENTITY_SELECTIONS.OPT_IN,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"mac address\",\n selection: ENTITY_SELECTIONS.OPT_IN,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n {\n label: \"url\",\n selection: ENTITY_SELECTIONS.OPT_IN,\n detectionSources: [DETECTION_SOURCES.REGEX],\n },\n] as const satisfies readonly EntityCapability[];\n\ntype KnownEntityCapability = (typeof ENTITY_CAPABILITIES)[number];\n\nexport type EntityLabel = KnownEntityCapability[\"label\"];\n\nexport const ENTITY_LABELS: readonly EntityLabel[] = ENTITY_CAPABILITIES.map(\n ({ label }) => label,\n);\n\nconst isDefaultEntityCapability = (\n capability: KnownEntityCapability,\n): capability is Extract<\n KnownEntityCapability,\n { selection: typeof ENTITY_SELECTIONS.DEFAULT }\n> => capability.selection === ENTITY_SELECTIONS.DEFAULT;\n\nexport type DefaultEntityLabel = Extract<\n KnownEntityCapability,\n { selection: typeof ENTITY_SELECTIONS.DEFAULT }\n>[\"label\"];\n\nexport const DEFAULT_ENTITY_LABELS: readonly DefaultEntityLabel[] =\n ENTITY_CAPABILITIES.filter(isDefaultEntityCapability).map(\n ({ label }) => label,\n );\n"],"mappings":"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"}
|
package/dist/constants2.d.mts
CHANGED
|
@@ -135,6 +135,10 @@ declare const ENTITY_CAPABILITIES: readonly [{
|
|
|
135
135
|
readonly label: "registration number";
|
|
136
136
|
readonly selection: "default";
|
|
137
137
|
readonly detectionSources: readonly ["regex", "trigger"];
|
|
138
|
+
}, {
|
|
139
|
+
readonly label: "case number";
|
|
140
|
+
readonly selection: "default";
|
|
141
|
+
readonly detectionSources: readonly ["regex", "trigger"];
|
|
138
142
|
}, {
|
|
139
143
|
readonly label: "credit card number";
|
|
140
144
|
readonly selection: "default";
|
|
@@ -142,7 +146,7 @@ declare const ENTITY_CAPABILITIES: readonly [{
|
|
|
142
146
|
}, {
|
|
143
147
|
readonly label: "passport number";
|
|
144
148
|
readonly selection: "default";
|
|
145
|
-
readonly detectionSources: readonly ["regex"];
|
|
149
|
+
readonly detectionSources: readonly ["regex", "trigger"];
|
|
146
150
|
}, {
|
|
147
151
|
readonly label: "crypto";
|
|
148
152
|
readonly selection: "default";
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as DetectionSource, c as ENTITY_SELECTIONS, d as EntitySelection, f as OPERATOR_TYPES, i as DefaultEntityLabel, l as EntityCapability, n as DETECTION_SOURCES, o as ENTITY_CAPABILITIES, p as OperatorType, r as DETECTOR_PRIORITY, s as ENTITY_LABELS, t as DEFAULT_ENTITY_LABELS, u as EntityLabel } from "./constants2.mjs";
|
|
2
|
-
import { CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_RUNTIMES, CapabilityManifest, CapabilityRuntime } from "./capabilities.mjs";
|
|
3
|
-
import { $ as
|
|
4
|
-
import { A as
|
|
2
|
+
import { CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_PARITY_PROFILES, CAPABILITY_RUNTIMES, CAPABILITY_SURFACES, CapabilityManifest, CapabilityParityProfile, CapabilityRuntime, CapabilitySurface, CapabilitySurfaceId } from "./capabilities.mjs";
|
|
3
|
+
import { $ as SharedNativeRedactTextOptions, A as NativeResultEventCallback, At as PipelineConfig, B as NativeSessionStatus, C as NativeOperatorConfig, Ct as CustomRegexPattern, D as NativePreparedSearchBinding, Dt as Entity, E as NativePreparedRedactionSessionBinding, Et as DictionaryMeta, F as NativeSessionCallerRedactionPlanOptions, Ft as TriggerGroupConfig, G as PreparedNativePipeline, H as NativeTextReplacement, I as NativeSessionDeletionSummary, It as TriggerRule, J as PreparedSearch, K as PreparedNativeRedactionSession, L as NativeSessionLifecycle, Lt as TriggerStrategy, M as NativeSearchPackageOptions, Mt as ReviewDecision, N as NativeSessionBlockRedactionPlan, Nt as ReviewedEntity, O as NativePreparedSessionRedactionPlanBinding, Ot as GazetteerEntry, P as NativeSessionCallerRedactionInput, Pt as TriggerExtension, Q as SharedNativeRedactTextJsonOptions, R as NativeSessionMetadata, Rt as TriggerValidation, S as NativeOpenSessionArchiveOptions, St as CustomDenyListEntry, T as NativePipelineFromPackageOptions, Tt as Dictionaries, U as PreparedAnonymizer, V as NativeStaticRedactionResult, W as PreparedNativeAnonymizer, X as SharedNativeDiagnosticsStreamJsonOptions, Y as SharedNativeDiagnosticsJsonOptions, Z as SharedNativePreparedPackageOptions, _ as NativeCallerDetection, a as EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES, at as createNativeAnonymizerFromPackage, b as NativeDiagnosticsBatchCallback, c as EXTERNAL_DETECTION_MAX_METADATA_BYTES, d as ExternalDetectionBatch, dt as getNativeBindingVersion, et as SharedNativeRedactTextStreamJsonOptions, f as ExternalDetectionOffsetUnit, g as NativeBindingVersionOptions, h as NativeAnonymizerFromPackageOptions, ht as prepareNativeSearchPackage, i as EXTERNAL_DETECTION_BATCH_VERSION, it as createNativeAnonymizerFromConfig, j as NativeSearchPackageInput, jt as RedactionResult, k as NativeRedactionResult, kt as OperatorConfig, l as EXTERNAL_DETECTION_OFFSET_UNITS, lt as encodeNativeSearchConfig, m as NativeAnonymizerFromConfigOptions, n as ConvertExternalDetectionBatchOptions, nt as assertNativeBindingVersion, o as EXTERNAL_DETECTION_MAX_DETECTIONS, ot as createNativePipelineFromPackage, p as NativeAnonymizeBinding, q as PreparedNativeSessionRedactionPlan, r as EXTERNAL_DETECTION_BATCH_MAX_BYTES, s as EXTERNAL_DETECTION_MAX_LABEL_MAPPINGS, t as CALLER_DETECTION_CONTRACT_VERSION, tt as SharedNativeSearchPackageOptions, u as EXTERNAL_DETECTION_PROVIDER_ID_MAX_BYTES, ut as encodeNativeSearchConfigInput, v as NativeCallerRedactionOptions, w as NativePipelineEntity, wt as DenyListCategory, x as NativeNormalizeOptions, xt as AnonymisationOperator, y as NativeCreateSessionWithLifecycleOptions, z as NativeSessionRedactionAtOptions, zt as NativePreparedSearchConfig } from "./native.mjs";
|
|
4
|
+
import { A as readDefaultNativePipelinePackageFile, B as redact_text_json, C as load_prepared_package_file, D as preloadDefaultNativePipelineAsync, E as preloadDefaultNativePipeline, F as redactDefaultText, G as NativePipelineCompatibility, H as summary_diagnostics_json, I as redactDefaultTextJson, J as assertNativePipelineSupported, K as NativePipelinePackageOptions, L as redact_default_text, M as readNativePipelinePackageFile, N as readNativePipelinePackageFileAsync, O as preload_default_native_pipeline, P as read_default_native_pipeline_package_file, Q as prepareNativePipelinePackage, R as redact_default_text_json, S as load_prepared_package, T as normalize_for_search, U as DEFAULT_NATIVE_PIPELINE_CONFIG, V as redact_text_stream_json, W as NativePipelineBuildOptions, X as getNativePipelineCompatibility, Y as createNativePipelineFromConfig, Z as prepareNativePipelineConfig, _ as diagnostics_json, a as LoadNativeBindingOptions, b as get_default_native_pipeline, c as NativeRequire, d as availableDefaultNativePipelineLanguages, f as available_default_native_pipeline_languages, g as create_native_pipeline_from_default_package, h as createNativePipelineFromPackageFile, i as DefaultNativePipelineWarmup, j as readDefaultNativePipelinePackageFileAsync, k as prepare_search_package, l as NativeSdkOptions, m as createNativePipelineFromDefaultPackage, n as DefaultNativePipelinePackageFileOptions, o as NativeLibc, p as convert_external_detection_batch, q as NativePipelineUnsupportedFeature, r as DefaultNativePipelinePackageOptions, s as NativePipelinePackageFileOptions, t as DEFAULT_NATIVE_PIPELINE_WARMUPS, u as NativeSdkPackageOptions, v as diagnostics_stream_json, w as native_package_version, x as loadNativeAnonymizeBinding, y as getDefaultNativePipeline, z as redact_text } from "./native-node.mjs";
|
|
5
5
|
//#region src/redact.d.ts
|
|
6
6
|
/**
|
|
7
7
|
* Serialize the redaction key to JSON for export.
|
|
@@ -15,5 +15,5 @@ declare const exportRedactionKey: (redactionMap: Map<string, string>, operatorMa
|
|
|
15
15
|
*/
|
|
16
16
|
declare const deanonymise: (redactedText: string, redactionMap: Map<string, string>) => string;
|
|
17
17
|
//#endregion
|
|
18
|
-
export { type AnonymisationOperator, CALLER_DETECTION_CONTRACT_VERSION, CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_RUNTIMES, type CapabilityManifest, type CapabilityRuntime, type CustomDenyListEntry, type CustomRegexPattern, DEFAULT_ENTITY_LABELS, DEFAULT_NATIVE_PIPELINE_CONFIG, DEFAULT_NATIVE_PIPELINE_WARMUPS, DETECTION_SOURCES, DETECTOR_PRIORITY, type DefaultEntityLabel, DefaultNativePipelinePackageFileOptions, DefaultNativePipelinePackageOptions, DefaultNativePipelineWarmup, type DenyListCategory, type DetectionSource, type Dictionaries, type DictionaryMeta, ENTITY_CAPABILITIES, ENTITY_LABELS, ENTITY_SELECTIONS, type Entity, type EntityCapability, type EntityLabel, type EntitySelection, type GazetteerEntry, LoadNativeBindingOptions, NativeAnonymizeBinding, NativeAnonymizerFromConfigOptions, NativeAnonymizerFromPackageOptions, NativeBindingVersionOptions, NativeCallerDetection, NativeCallerRedactionOptions, NativeCreateSessionWithLifecycleOptions, NativeDiagnosticsBatchCallback, NativeLibc, NativeNormalizeOptions, NativeOpenSessionArchiveOptions, NativeOperatorConfig, type NativePipelineBuildOptions, type NativePipelineCompatibility, NativePipelineEntity, NativePipelineFromPackageOptions, NativePipelinePackageFileOptions, type NativePipelinePackageOptions, type NativePipelineUnsupportedFeature, NativePreparedRedactionSessionBinding, NativePreparedSearchBinding, type NativePreparedSearchConfig, NativePreparedSessionRedactionPlanBinding, NativeRedactionResult, NativeRequire, NativeResultEventCallback, NativeSdkOptions, NativeSdkPackageOptions, NativeSearchPackageInput, NativeSearchPackageOptions, NativeSessionBlockRedactionPlan, NativeSessionCallerRedactionInput, NativeSessionCallerRedactionPlanOptions, NativeSessionDeletionSummary, NativeSessionLifecycle, NativeSessionMetadata, NativeSessionRedactionAtOptions, NativeSessionStatus, NativeStaticRedactionResult, NativeTextReplacement, OPERATOR_TYPES, type OperatorConfig, type OperatorType, type PipelineConfig, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, type RedactionResult, type ReviewDecision, type ReviewedEntity, SharedNativeDiagnosticsJsonOptions, SharedNativeDiagnosticsStreamJsonOptions, SharedNativePreparedPackageOptions, SharedNativeRedactTextJsonOptions, SharedNativeRedactTextOptions, SharedNativeRedactTextStreamJsonOptions, SharedNativeSearchPackageOptions, type TriggerExtension, type TriggerGroupConfig, type TriggerRule, type TriggerStrategy, type TriggerValidation, assertNativeBindingVersion, assertNativePipelineSupported, availableDefaultNativePipelineLanguages, available_default_native_pipeline_languages, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromConfig, createNativePipelineFromDefaultPackage, createNativePipelineFromPackage, createNativePipelineFromPackageFile, create_native_pipeline_from_default_package, deanonymise, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, exportRedactionKey, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, loadNativeAnonymizeBinding, load_prepared_package, load_prepared_package_file, native_package_version, normalize_for_search, preloadDefaultNativePipeline, preloadDefaultNativePipelineAsync, preload_default_native_pipeline, prepareNativePipelineConfig, prepareNativePipelinePackage, prepareNativeSearchPackage, prepare_search_package, readDefaultNativePipelinePackageFile, readDefaultNativePipelinePackageFileAsync, readNativePipelinePackageFile, readNativePipelinePackageFileAsync, read_default_native_pipeline_package_file, redactDefaultText, redactDefaultTextJson, redact_default_text, redact_default_text_json, redact_text, redact_text_json, redact_text_stream_json, summary_diagnostics_json };
|
|
18
|
+
export { type AnonymisationOperator, CALLER_DETECTION_CONTRACT_VERSION, CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_PARITY_PROFILES, CAPABILITY_RUNTIMES, CAPABILITY_SURFACES, type CapabilityManifest, type CapabilityParityProfile, type CapabilityRuntime, type CapabilitySurface, type CapabilitySurfaceId, ConvertExternalDetectionBatchOptions, type CustomDenyListEntry, type CustomRegexPattern, DEFAULT_ENTITY_LABELS, DEFAULT_NATIVE_PIPELINE_CONFIG, DEFAULT_NATIVE_PIPELINE_WARMUPS, DETECTION_SOURCES, DETECTOR_PRIORITY, type DefaultEntityLabel, DefaultNativePipelinePackageFileOptions, DefaultNativePipelinePackageOptions, DefaultNativePipelineWarmup, type DenyListCategory, type DetectionSource, type Dictionaries, type DictionaryMeta, ENTITY_CAPABILITIES, ENTITY_LABELS, ENTITY_SELECTIONS, EXTERNAL_DETECTION_BATCH_MAX_BYTES, EXTERNAL_DETECTION_BATCH_VERSION, EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES, EXTERNAL_DETECTION_MAX_DETECTIONS, EXTERNAL_DETECTION_MAX_LABEL_MAPPINGS, EXTERNAL_DETECTION_MAX_METADATA_BYTES, EXTERNAL_DETECTION_OFFSET_UNITS, EXTERNAL_DETECTION_PROVIDER_ID_MAX_BYTES, type Entity, type EntityCapability, type EntityLabel, type EntitySelection, ExternalDetectionBatch, ExternalDetectionOffsetUnit, type GazetteerEntry, LoadNativeBindingOptions, NativeAnonymizeBinding, NativeAnonymizerFromConfigOptions, NativeAnonymizerFromPackageOptions, NativeBindingVersionOptions, NativeCallerDetection, NativeCallerRedactionOptions, NativeCreateSessionWithLifecycleOptions, NativeDiagnosticsBatchCallback, NativeLibc, NativeNormalizeOptions, NativeOpenSessionArchiveOptions, NativeOperatorConfig, type NativePipelineBuildOptions, type NativePipelineCompatibility, NativePipelineEntity, NativePipelineFromPackageOptions, NativePipelinePackageFileOptions, type NativePipelinePackageOptions, type NativePipelineUnsupportedFeature, NativePreparedRedactionSessionBinding, NativePreparedSearchBinding, type NativePreparedSearchConfig, NativePreparedSessionRedactionPlanBinding, NativeRedactionResult, NativeRequire, NativeResultEventCallback, NativeSdkOptions, NativeSdkPackageOptions, NativeSearchPackageInput, NativeSearchPackageOptions, NativeSessionBlockRedactionPlan, NativeSessionCallerRedactionInput, NativeSessionCallerRedactionPlanOptions, NativeSessionDeletionSummary, NativeSessionLifecycle, NativeSessionMetadata, NativeSessionRedactionAtOptions, NativeSessionStatus, NativeStaticRedactionResult, NativeTextReplacement, OPERATOR_TYPES, type OperatorConfig, type OperatorType, type PipelineConfig, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, type RedactionResult, type ReviewDecision, type ReviewedEntity, SharedNativeDiagnosticsJsonOptions, SharedNativeDiagnosticsStreamJsonOptions, SharedNativePreparedPackageOptions, SharedNativeRedactTextJsonOptions, SharedNativeRedactTextOptions, SharedNativeRedactTextStreamJsonOptions, SharedNativeSearchPackageOptions, type TriggerExtension, type TriggerGroupConfig, type TriggerRule, type TriggerStrategy, type TriggerValidation, assertNativeBindingVersion, assertNativePipelineSupported, availableDefaultNativePipelineLanguages, available_default_native_pipeline_languages, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromConfig, createNativePipelineFromDefaultPackage, createNativePipelineFromPackage, createNativePipelineFromPackageFile, create_native_pipeline_from_default_package, deanonymise, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, exportRedactionKey, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, loadNativeAnonymizeBinding, load_prepared_package, load_prepared_package_file, native_package_version, normalize_for_search, preloadDefaultNativePipeline, preloadDefaultNativePipelineAsync, preload_default_native_pipeline, prepareNativePipelineConfig, prepareNativePipelinePackage, prepareNativeSearchPackage, prepare_search_package, readDefaultNativePipelinePackageFile, readDefaultNativePipelinePackageFileAsync, readNativePipelinePackageFile, readNativePipelinePackageFileAsync, read_default_native_pipeline_package_file, redactDefaultText, redactDefaultTextJson, redact_default_text, redact_default_text_json, redact_text, redact_text_json, redact_text_stream_json, summary_diagnostics_json };
|
|
19
19
|
//# sourceMappingURL=index.d.mts.map
|