@stll/anonymize 2.8.1 → 2.8.3
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 +7 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/native-node.d.mts +1 -1
- package/dist/native-node.mjs +2 -2
- package/dist/native-node2.d.mts +2 -2
- package/dist/native-runtime.d.mts +1 -1
- package/dist/native.d.mts +6 -1
- package/dist/native.mjs +187 -18
- 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 +8 -8
package/README.md
CHANGED
|
@@ -8,6 +8,13 @@ Runtime package for multi-layer PII detection and anonymization.
|
|
|
8
8
|
|
|
9
9
|
It combines regex detectors, trigger phrases, deny-list matching, and coreference handling in a single deterministic pipeline that works in native Node.js and in browser builds through the WASM entrypoint.
|
|
10
10
|
|
|
11
|
+
The default pipeline detects personal identifiers; it is not a general-purpose
|
|
12
|
+
secret scanner. Passwords, authentication tokens, API keys, and private
|
|
13
|
+
cryptographic material are outside its claimed scope. IP addresses, MAC
|
|
14
|
+
addresses, and URLs are explicit opt-in capabilities. Query
|
|
15
|
+
`CAPABILITY_MANIFEST` or `anonymize --capabilities` instead of assuming a label
|
|
16
|
+
is enabled.
|
|
17
|
+
|
|
11
18
|
## Install
|
|
12
19
|
|
|
13
20
|
```bash
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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
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
|
|
3
|
+
import { $ as SESSION_CALLER_INPUTS_JSON_MAX_BYTES, A as NativePreparedRedactionSessionBinding, At as CustomRegexPattern, B as NativeSessionDeletionSummary, Bt as ReviewedEntity, C as NativeCreateSessionWithLifecycleOptions, D as NativeOperatorConfig, E as NativeOpenSessionArchiveOptions, F as NativeSearchPackageInput, Ft as GazetteerEntry, G as NativeStaticRedactionResult, Gt as TriggerValidation, H as NativeSessionMetadata, Ht as TriggerGroupConfig, I as NativeSearchPackageOptions, It as OperatorConfig, J as PreparedNativeAnonymizer, K as NativeTextReplacement, Kt as NativePreparedSearchConfig, L as NativeSessionBlockRedactionPlan, Lt as PipelineConfig, M as NativePreparedSessionRedactionPlanBinding, Mt as Dictionaries, N as NativeRedactionResult, Nt as DictionaryMeta, O as NativePipelineEntity, Ot as AnonymisationOperator, P as NativeResultEventCallback, Pt as Entity, Q as PreparedSearch, R as NativeSessionCallerRedactionInput, Rt as RedactionResult, S as NativeCallerRedactionOptions, St as prepareNativeSearchPackage, T as NativeNormalizeOptions, U as NativeSessionRedactionAtOptions, Ut as TriggerRule, V as NativeSessionLifecycle, Vt as TriggerExtension, W as NativeSessionStatus, Wt as TriggerStrategy, X as PreparedNativeRedactionSession, Y as PreparedNativePipeline, Z as PreparedNativeSessionRedactionPlan, _ as NativeAnonymizeBinding, _t as getNativeBindingVersion, a as ConvertExternalDetectionBatchOptions, at as SharedNativeRedactTextOptions, b as NativeBindingVersionOptions, c as EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES, ct as assertNativeBindingVersion, d as EXTERNAL_DETECTION_MAX_METADATA_BYTES, dt as createNativeAnonymizerFromPackage, et as SESSION_CALLER_MAX_INPUTS, f as EXTERNAL_DETECTION_OFFSET_UNITS, ft as createNativePipelineFromPackage, g as NATIVE_BINDING_PARITY_MEMBERS, gt as encodeNativeSearchConfigInput, h as ExternalDetectionOffsetUnit, ht as encodeNativeSearchConfig, i as CALLER_DETECTION_TEXT_MAX_BYTES, it as SharedNativeRedactTextJsonOptions, j as NativePreparedSearchBinding, jt as DenyListCategory, k as NativePipelineFromPackageOptions, kt as CustomDenyListEntry, l as EXTERNAL_DETECTION_MAX_DETECTIONS, m as ExternalDetectionBatch, n as CALLER_DETECTION_MAX_COUNT, nt as SharedNativeDiagnosticsStreamJsonOptions, o as EXTERNAL_DETECTION_BATCH_MAX_BYTES, ot as SharedNativeRedactTextStreamJsonOptions, p as EXTERNAL_DETECTION_PROVIDER_ID_MAX_BYTES, q as PreparedAnonymizer, r as CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, rt as SharedNativePreparedPackageOptions, s as EXTERNAL_DETECTION_BATCH_VERSION, st as SharedNativeSearchPackageOptions, t as CALLER_DETECTION_CONTRACT_VERSION, tt as SharedNativeDiagnosticsJsonOptions, u as EXTERNAL_DETECTION_MAX_LABEL_MAPPINGS, ut as createNativeAnonymizerFromConfig, v as NativeAnonymizerFromConfigOptions, vt as isNativeAnonymizeBinding, w as NativeDiagnosticsBatchCallback, x as NativeCallerDetection, y as NativeAnonymizerFromPackageOptions, z as NativeSessionCallerRedactionPlanOptions, zt as ReviewDecision } from "./native.mjs";
|
|
4
4
|
import { $ as prepareNativePipelinePackage, 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 NativePipelineBuildOptions, H as setNativeBindingOverride, I as redactDefaultTextJson, J as NativePipelineUnsupportedFeature, K as NativePipelineCompatibility, 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 prepareNativePipelineConfig, R as redact_default_text_json, S as load_prepared_package, T as normalize_for_search, U as summary_diagnostics_json, V as redact_text_stream_json, W as DEFAULT_NATIVE_PIPELINE_CONFIG, X as createNativePipelineFromConfig, Y as assertNativePipelineSupported, Z as getNativePipelineCompatibility, _ as diagnostics_json, a as LoadNativeBindingOptions, b as get_default_native_pipeline, c as NativeRequire, d as availableDefaultNativePipelineLanguages, et as PipelineContext, 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 NativePipelinePackageOptions, r as DefaultNativePipelinePackageOptions, s as NativePipelinePackageFileOptions, t as DEFAULT_NATIVE_PIPELINE_WARMUPS, tt as createPipelineContext, 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
|
/**
|
|
@@ -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_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, NATIVE_BINDING_PARITY_MEMBERS, 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, type PipelineContext, 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, createPipelineContext, create_native_pipeline_from_default_package, deanonymise, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, exportRedactionKey, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, isNativeAnonymizeBinding, 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, setNativeBindingOverride, summary_diagnostics_json };
|
|
18
|
+
export { type AnonymisationOperator, CALLER_DETECTION_CONTRACT_VERSION, CALLER_DETECTION_MAX_COUNT, CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, CALLER_DETECTION_TEXT_MAX_BYTES, 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, NATIVE_BINDING_PARITY_MEMBERS, 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, type PipelineContext, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, type RedactionResult, type ReviewDecision, type ReviewedEntity, SESSION_CALLER_INPUTS_JSON_MAX_BYTES, SESSION_CALLER_MAX_INPUTS, 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, createPipelineContext, create_native_pipeline_from_default_package, deanonymise, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, exportRedactionKey, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, isNativeAnonymizeBinding, 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, setNativeBindingOverride, summary_diagnostics_json };
|
|
19
19
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CALLER_DETECTION_CONTRACT_VERSION, 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, NATIVE_BINDING_PARITY_MEMBERS, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, assertNativeBindingVersion, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromPackage, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getNativeBindingVersion, isNativeAnonymizeBinding, prepareNativeSearchPackage } from "./native.mjs";
|
|
1
|
+
import { CALLER_DETECTION_CONTRACT_VERSION, CALLER_DETECTION_MAX_COUNT, CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, CALLER_DETECTION_TEXT_MAX_BYTES, 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, NATIVE_BINDING_PARITY_MEMBERS, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, SESSION_CALLER_INPUTS_JSON_MAX_BYTES, SESSION_CALLER_MAX_INPUTS, assertNativeBindingVersion, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromPackage, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getNativeBindingVersion, isNativeAnonymizeBinding, prepareNativeSearchPackage } from "./native.mjs";
|
|
2
2
|
import { A as redact_text, B as prepareNativePipelinePackage, C as readNativePipelinePackageFile, D as redactDefaultTextJson, E as redactDefaultText, F as DEFAULT_NATIVE_PIPELINE_CONFIG, I as assertNativePipelineSupported, L as createNativePipelineFromConfig, M as redact_text_stream_json, N as setNativeBindingOverride, O as redact_default_text, P as summary_diagnostics_json, R as getNativePipelineCompatibility, S as readDefaultNativePipelinePackageFileAsync, T as read_default_native_pipeline_package_file, V as createPipelineContext, _ as preloadDefaultNativePipeline, a as createNativePipelineFromDefaultPackage, b as prepare_search_package, c as diagnostics_json, d as get_default_native_pipeline, f as loadNativeAnonymizeBinding, g as normalize_for_search, h as native_package_version, i as convert_external_detection_batch, j as redact_text_json, k as redact_default_text_json, l as diagnostics_stream_json, m as load_prepared_package_file, n as availableDefaultNativePipelineLanguages, o as createNativePipelineFromPackageFile, p as load_prepared_package, r as available_default_native_pipeline_languages, s as create_native_pipeline_from_default_package, t as DEFAULT_NATIVE_PIPELINE_WARMUPS, u as getDefaultNativePipeline, v as preloadDefaultNativePipelineAsync, w as readNativePipelinePackageFileAsync, x as readDefaultNativePipelinePackageFile, y as preload_default_native_pipeline, z as prepareNativePipelineConfig } from "./native-node2.mjs";
|
|
3
3
|
import { DEFAULT_ENTITY_LABELS, DETECTION_SOURCES, DETECTOR_PRIORITY, ENTITY_CAPABILITIES, ENTITY_LABELS, ENTITY_SELECTIONS, OPERATOR_TYPES } from "./constants.mjs";
|
|
4
4
|
import { CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_PARITY_PROFILES, CAPABILITY_RUNTIMES, CAPABILITY_SURFACES } from "./capabilities.mjs";
|
|
@@ -26,6 +26,6 @@ const deanonymise = (redactedText, redactionMap) => {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
//#endregion
|
|
29
|
-
export { CALLER_DETECTION_CONTRACT_VERSION, CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_PARITY_PROFILES, CAPABILITY_RUNTIMES, CAPABILITY_SURFACES, DEFAULT_ENTITY_LABELS, DEFAULT_NATIVE_PIPELINE_CONFIG, DEFAULT_NATIVE_PIPELINE_WARMUPS, DETECTION_SOURCES, DETECTOR_PRIORITY, 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, NATIVE_BINDING_PARITY_MEMBERS, OPERATOR_TYPES, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, assertNativeBindingVersion, assertNativePipelineSupported, availableDefaultNativePipelineLanguages, available_default_native_pipeline_languages, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromConfig, createNativePipelineFromDefaultPackage, createNativePipelineFromPackage, createNativePipelineFromPackageFile, createPipelineContext, create_native_pipeline_from_default_package, deanonymise, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, exportRedactionKey, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, isNativeAnonymizeBinding, 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, setNativeBindingOverride, summary_diagnostics_json };
|
|
29
|
+
export { CALLER_DETECTION_CONTRACT_VERSION, CALLER_DETECTION_MAX_COUNT, CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, CALLER_DETECTION_TEXT_MAX_BYTES, CAPABILITY_MANIFEST, CAPABILITY_MANIFEST_SCHEMA_VERSION, CAPABILITY_PARITY_PROFILES, CAPABILITY_RUNTIMES, CAPABILITY_SURFACES, DEFAULT_ENTITY_LABELS, DEFAULT_NATIVE_PIPELINE_CONFIG, DEFAULT_NATIVE_PIPELINE_WARMUPS, DETECTION_SOURCES, DETECTOR_PRIORITY, 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, NATIVE_BINDING_PARITY_MEMBERS, OPERATOR_TYPES, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, SESSION_CALLER_INPUTS_JSON_MAX_BYTES, SESSION_CALLER_MAX_INPUTS, assertNativeBindingVersion, assertNativePipelineSupported, availableDefaultNativePipelineLanguages, available_default_native_pipeline_languages, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromConfig, createNativePipelineFromDefaultPackage, createNativePipelineFromPackage, createNativePipelineFromPackageFile, createPipelineContext, create_native_pipeline_from_default_package, deanonymise, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, exportRedactionKey, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, isNativeAnonymizeBinding, 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, setNativeBindingOverride, summary_diagnostics_json };
|
|
30
30
|
|
|
31
31
|
//# sourceMappingURL=index.mjs.map
|
package/dist/native-node.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { D as NativeOperatorConfig, F as NativeSearchPackageInput, Ft as GazetteerEntry, G as NativeStaticRedactionResult, J as PreparedNativeAnonymizer, Kt as NativePreparedSearchConfig, Lt as PipelineConfig, Y as PreparedNativePipeline, _ as NativeAnonymizeBinding, m as ExternalDetectionBatch, x as NativeCallerDetection } from "./native.mjs";
|
|
2
2
|
//#region src/context.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Cached state for a single pipeline run (or a sequence of runs sharing the
|
package/dist/native-node.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CALLER_DETECTION_CONTRACT_VERSION, 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, NATIVE_BINDING_PARITY_MEMBERS, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, assertNativeBindingVersion, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromPackage, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getNativeBindingVersion, isNativeAnonymizeBinding, prepareNativeSearchPackage } from "./native.mjs";
|
|
1
|
+
import { CALLER_DETECTION_CONTRACT_VERSION, CALLER_DETECTION_MAX_COUNT, CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, CALLER_DETECTION_TEXT_MAX_BYTES, 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, NATIVE_BINDING_PARITY_MEMBERS, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, SESSION_CALLER_INPUTS_JSON_MAX_BYTES, SESSION_CALLER_MAX_INPUTS, assertNativeBindingVersion, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromPackage, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getNativeBindingVersion, isNativeAnonymizeBinding, prepareNativeSearchPackage } from "./native.mjs";
|
|
2
2
|
import { A as redact_text, B as prepareNativePipelinePackage, C as readNativePipelinePackageFile, D as redactDefaultTextJson, E as redactDefaultText, F as DEFAULT_NATIVE_PIPELINE_CONFIG, I as assertNativePipelineSupported, L as createNativePipelineFromConfig, M as redact_text_stream_json, N as setNativeBindingOverride, O as redact_default_text, P as summary_diagnostics_json, R as getNativePipelineCompatibility, S as readDefaultNativePipelinePackageFileAsync, T as read_default_native_pipeline_package_file, _ as preloadDefaultNativePipeline, a as createNativePipelineFromDefaultPackage, b as prepare_search_package, c as diagnostics_json, d as get_default_native_pipeline, f as loadNativeAnonymizeBinding, g as normalize_for_search, h as native_package_version, i as convert_external_detection_batch, j as redact_text_json, k as redact_default_text_json, l as diagnostics_stream_json, m as load_prepared_package_file, n as availableDefaultNativePipelineLanguages, o as createNativePipelineFromPackageFile, p as load_prepared_package, r as available_default_native_pipeline_languages, s as create_native_pipeline_from_default_package, t as DEFAULT_NATIVE_PIPELINE_WARMUPS, u as getDefaultNativePipeline, v as preloadDefaultNativePipelineAsync, w as readNativePipelinePackageFileAsync, x as readDefaultNativePipelinePackageFile, y as preload_default_native_pipeline, z as prepareNativePipelineConfig } from "./native-node2.mjs";
|
|
3
|
-
export { CALLER_DETECTION_CONTRACT_VERSION, DEFAULT_NATIVE_PIPELINE_CONFIG, DEFAULT_NATIVE_PIPELINE_WARMUPS, 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, NATIVE_BINDING_PARITY_MEMBERS, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, assertNativeBindingVersion, assertNativePipelineSupported, availableDefaultNativePipelineLanguages, available_default_native_pipeline_languages, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromConfig, createNativePipelineFromDefaultPackage, createNativePipelineFromPackage, createNativePipelineFromPackageFile, create_native_pipeline_from_default_package, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, isNativeAnonymizeBinding, 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, setNativeBindingOverride, summary_diagnostics_json };
|
|
3
|
+
export { CALLER_DETECTION_CONTRACT_VERSION, CALLER_DETECTION_MAX_COUNT, CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, CALLER_DETECTION_TEXT_MAX_BYTES, DEFAULT_NATIVE_PIPELINE_CONFIG, DEFAULT_NATIVE_PIPELINE_WARMUPS, 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, NATIVE_BINDING_PARITY_MEMBERS, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, SESSION_CALLER_INPUTS_JSON_MAX_BYTES, SESSION_CALLER_MAX_INPUTS, assertNativeBindingVersion, assertNativePipelineSupported, availableDefaultNativePipelineLanguages, available_default_native_pipeline_languages, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromConfig, createNativePipelineFromDefaultPackage, createNativePipelineFromPackage, createNativePipelineFromPackageFile, create_native_pipeline_from_default_package, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, isNativeAnonymizeBinding, 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, setNativeBindingOverride, summary_diagnostics_json };
|
package/dist/native-node2.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as SESSION_CALLER_INPUTS_JSON_MAX_BYTES, A as NativePreparedRedactionSessionBinding, B as NativeSessionDeletionSummary, C as NativeCreateSessionWithLifecycleOptions, D as NativeOperatorConfig, E as NativeOpenSessionArchiveOptions, F as NativeSearchPackageInput, G as NativeStaticRedactionResult, H as NativeSessionMetadata, I as NativeSearchPackageOptions, J as PreparedNativeAnonymizer, K as NativeTextReplacement, Kt as NativePreparedSearchConfig, L as NativeSessionBlockRedactionPlan, M as NativePreparedSessionRedactionPlanBinding, N as NativeRedactionResult, O as NativePipelineEntity, P as NativeResultEventCallback, Q as PreparedSearch, R as NativeSessionCallerRedactionInput, S as NativeCallerRedactionOptions, St as prepareNativeSearchPackage, T as NativeNormalizeOptions, U as NativeSessionRedactionAtOptions, V as NativeSessionLifecycle, W as NativeSessionStatus, X as PreparedNativeRedactionSession, Y as PreparedNativePipeline, Z as PreparedNativeSessionRedactionPlan, _ as NativeAnonymizeBinding, _t as getNativeBindingVersion, a as ConvertExternalDetectionBatchOptions, at as SharedNativeRedactTextOptions, b as NativeBindingVersionOptions, c as EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES, ct as assertNativeBindingVersion, d as EXTERNAL_DETECTION_MAX_METADATA_BYTES, dt as createNativeAnonymizerFromPackage, et as SESSION_CALLER_MAX_INPUTS, f as EXTERNAL_DETECTION_OFFSET_UNITS, ft as createNativePipelineFromPackage, g as NATIVE_BINDING_PARITY_MEMBERS, gt as encodeNativeSearchConfigInput, h as ExternalDetectionOffsetUnit, ht as encodeNativeSearchConfig, i as CALLER_DETECTION_TEXT_MAX_BYTES, it as SharedNativeRedactTextJsonOptions, j as NativePreparedSearchBinding, k as NativePipelineFromPackageOptions, l as EXTERNAL_DETECTION_MAX_DETECTIONS, m as ExternalDetectionBatch, n as CALLER_DETECTION_MAX_COUNT, nt as SharedNativeDiagnosticsStreamJsonOptions, o as EXTERNAL_DETECTION_BATCH_MAX_BYTES, ot as SharedNativeRedactTextStreamJsonOptions, p as EXTERNAL_DETECTION_PROVIDER_ID_MAX_BYTES, q as PreparedAnonymizer, r as CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, rt as SharedNativePreparedPackageOptions, s as EXTERNAL_DETECTION_BATCH_VERSION, st as SharedNativeSearchPackageOptions, t as CALLER_DETECTION_CONTRACT_VERSION, tt as SharedNativeDiagnosticsJsonOptions, u as EXTERNAL_DETECTION_MAX_LABEL_MAPPINGS, ut as createNativeAnonymizerFromConfig, v as NativeAnonymizerFromConfigOptions, vt as isNativeAnonymizeBinding, w as NativeDiagnosticsBatchCallback, x as NativeCallerDetection, y as NativeAnonymizerFromPackageOptions, z as NativeSessionCallerRedactionPlanOptions } from "./native.mjs";
|
|
2
2
|
import { $ as prepareNativePipelinePackage, 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 NativePipelineBuildOptions, H as setNativeBindingOverride, I as redactDefaultTextJson, J as NativePipelineUnsupportedFeature, K as NativePipelineCompatibility, 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 prepareNativePipelineConfig, R as redact_default_text_json, S as load_prepared_package, T as normalize_for_search, U as summary_diagnostics_json, V as redact_text_stream_json, W as DEFAULT_NATIVE_PIPELINE_CONFIG, X as createNativePipelineFromConfig, Y as assertNativePipelineSupported, Z as getNativePipelineCompatibility, _ 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 NativePipelinePackageOptions, 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";
|
|
3
|
-
export { CALLER_DETECTION_CONTRACT_VERSION, ConvertExternalDetectionBatchOptions, DEFAULT_NATIVE_PIPELINE_CONFIG, DEFAULT_NATIVE_PIPELINE_WARMUPS, DefaultNativePipelinePackageFileOptions, DefaultNativePipelinePackageOptions, DefaultNativePipelineWarmup, 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, ExternalDetectionBatch, ExternalDetectionOffsetUnit, LoadNativeBindingOptions, NATIVE_BINDING_PARITY_MEMBERS, 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, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, SharedNativeDiagnosticsJsonOptions, SharedNativeDiagnosticsStreamJsonOptions, SharedNativePreparedPackageOptions, SharedNativeRedactTextJsonOptions, SharedNativeRedactTextOptions, SharedNativeRedactTextStreamJsonOptions, SharedNativeSearchPackageOptions, assertNativeBindingVersion, assertNativePipelineSupported, availableDefaultNativePipelineLanguages, available_default_native_pipeline_languages, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromConfig, createNativePipelineFromDefaultPackage, createNativePipelineFromPackage, createNativePipelineFromPackageFile, create_native_pipeline_from_default_package, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, isNativeAnonymizeBinding, 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, setNativeBindingOverride, summary_diagnostics_json };
|
|
3
|
+
export { CALLER_DETECTION_CONTRACT_VERSION, CALLER_DETECTION_MAX_COUNT, CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, CALLER_DETECTION_TEXT_MAX_BYTES, ConvertExternalDetectionBatchOptions, DEFAULT_NATIVE_PIPELINE_CONFIG, DEFAULT_NATIVE_PIPELINE_WARMUPS, DefaultNativePipelinePackageFileOptions, DefaultNativePipelinePackageOptions, DefaultNativePipelineWarmup, 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, ExternalDetectionBatch, ExternalDetectionOffsetUnit, LoadNativeBindingOptions, NATIVE_BINDING_PARITY_MEMBERS, 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, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, SESSION_CALLER_INPUTS_JSON_MAX_BYTES, SESSION_CALLER_MAX_INPUTS, SharedNativeDiagnosticsJsonOptions, SharedNativeDiagnosticsStreamJsonOptions, SharedNativePreparedPackageOptions, SharedNativeRedactTextJsonOptions, SharedNativeRedactTextOptions, SharedNativeRedactTextStreamJsonOptions, SharedNativeSearchPackageOptions, assertNativeBindingVersion, assertNativePipelineSupported, availableDefaultNativePipelineLanguages, available_default_native_pipeline_languages, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromConfig, createNativePipelineFromDefaultPackage, createNativePipelineFromPackage, createNativePipelineFromPackageFile, create_native_pipeline_from_default_package, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getDefaultNativePipeline, getNativeBindingVersion, getNativePipelineCompatibility, get_default_native_pipeline, isNativeAnonymizeBinding, 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, setNativeBindingOverride, summary_diagnostics_json };
|
package/dist/native.d.mts
CHANGED
|
@@ -940,6 +940,11 @@ type NativeOperatorConfig = {
|
|
|
940
940
|
redactString?: string;
|
|
941
941
|
};
|
|
942
942
|
declare const CALLER_DETECTION_CONTRACT_VERSION = 2;
|
|
943
|
+
declare const CALLER_DETECTION_MAX_COUNT = 1000000;
|
|
944
|
+
declare const CALLER_DETECTION_TEXT_MAX_BYTES: number;
|
|
945
|
+
declare const CALLER_DETECTION_REQUEST_JSON_MAX_BYTES: number;
|
|
946
|
+
declare const SESSION_CALLER_MAX_INPUTS = 100000;
|
|
947
|
+
declare const SESSION_CALLER_INPUTS_JSON_MAX_BYTES: number;
|
|
943
948
|
declare const EXTERNAL_DETECTION_BATCH_VERSION: 1;
|
|
944
949
|
declare const EXTERNAL_DETECTION_BATCH_MAX_BYTES: number;
|
|
945
950
|
declare const EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES: number;
|
|
@@ -1209,5 +1214,5 @@ type PreparedSearch = PreparedNativeAnonymizer;
|
|
|
1209
1214
|
declare const PreparedAnonymizer: typeof PreparedNativeAnonymizer;
|
|
1210
1215
|
type PreparedAnonymizer = PreparedNativeAnonymizer;
|
|
1211
1216
|
//#endregion
|
|
1212
|
-
export {
|
|
1217
|
+
export { SESSION_CALLER_INPUTS_JSON_MAX_BYTES as $, NativePreparedRedactionSessionBinding as A, CustomRegexPattern as At, NativeSessionDeletionSummary as B, ReviewedEntity as Bt, NativeCreateSessionWithLifecycleOptions as C, prepare_search_package as Ct, NativeOperatorConfig as D, summary_diagnostics_json as Dt, NativeOpenSessionArchiveOptions as E, redact_text_stream_json as Et, NativeSearchPackageInput as F, GazetteerEntry as Ft, NativeStaticRedactionResult as G, TriggerValidation as Gt, NativeSessionMetadata as H, TriggerGroupConfig as Ht, NativeSearchPackageOptions as I, OperatorConfig as It, PreparedNativeAnonymizer as J, NativeTextReplacement as K, NativePreparedSearchConfig as Kt, NativeSessionBlockRedactionPlan as L, PipelineConfig as Lt, NativePreparedSessionRedactionPlanBinding as M, Dictionaries as Mt, NativeRedactionResult as N, DictionaryMeta as Nt, NativePipelineEntity as O, AnonymisationOperator as Ot, NativeResultEventCallback as P, Entity as Pt, PreparedSearch as Q, NativeSessionCallerRedactionInput as R, RedactionResult as Rt, NativeCallerRedactionOptions as S, prepareNativeSearchPackage as St, NativeNormalizeOptions as T, redact_text_json as Tt, NativeSessionRedactionAtOptions as U, TriggerRule as Ut, NativeSessionLifecycle as V, TriggerExtension as Vt, NativeSessionStatus as W, TriggerStrategy as Wt, PreparedNativeRedactionSession as X, PreparedNativePipeline as Y, PreparedNativeSessionRedactionPlan as Z, NativeAnonymizeBinding as _, getNativeBindingVersion as _t, ConvertExternalDetectionBatchOptions as a, SharedNativeRedactTextOptions as at, NativeBindingVersionOptions as b, native_package_version as bt, EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES as c, assertNativeBindingVersion as ct, EXTERNAL_DETECTION_MAX_METADATA_BYTES as d, createNativeAnonymizerFromPackage as dt, SESSION_CALLER_MAX_INPUTS as et, EXTERNAL_DETECTION_OFFSET_UNITS as f, createNativePipelineFromPackage as ft, NATIVE_BINDING_PARITY_MEMBERS as g, encodeNativeSearchConfigInput as gt, ExternalDetectionOffsetUnit as h, encodeNativeSearchConfig as ht, CALLER_DETECTION_TEXT_MAX_BYTES as i, SharedNativeRedactTextJsonOptions as it, NativePreparedSearchBinding as j, DenyListCategory as jt, NativePipelineFromPackageOptions as k, CustomDenyListEntry as kt, EXTERNAL_DETECTION_MAX_DETECTIONS as l, convert_external_detection_batch as lt, ExternalDetectionBatch as m, diagnostics_stream_json as mt, CALLER_DETECTION_MAX_COUNT as n, SharedNativeDiagnosticsStreamJsonOptions as nt, EXTERNAL_DETECTION_BATCH_MAX_BYTES as o, SharedNativeRedactTextStreamJsonOptions as ot, EXTERNAL_DETECTION_PROVIDER_ID_MAX_BYTES as p, diagnostics_json as pt, PreparedAnonymizer as q, CALLER_DETECTION_REQUEST_JSON_MAX_BYTES as r, SharedNativePreparedPackageOptions as rt, EXTERNAL_DETECTION_BATCH_VERSION as s, SharedNativeSearchPackageOptions as st, CALLER_DETECTION_CONTRACT_VERSION as t, SharedNativeDiagnosticsJsonOptions as tt, EXTERNAL_DETECTION_MAX_LABEL_MAPPINGS as u, createNativeAnonymizerFromConfig as ut, NativeAnonymizerFromConfigOptions as v, isNativeAnonymizeBinding as vt, NativeDiagnosticsBatchCallback as w, redact_text as wt, NativeCallerDetection as x, normalize_for_search as xt, NativeAnonymizerFromPackageOptions as y, load_prepared_package as yt, NativeSessionCallerRedactionPlanOptions as z, ReviewDecision as zt };
|
|
1213
1218
|
//# sourceMappingURL=native.d.mts.map
|
package/dist/native.mjs
CHANGED
|
@@ -67,6 +67,11 @@ const isNativeAnonymizeBinding = (candidate) => {
|
|
|
67
67
|
return isBindingPropertyBag(preparedSearch) && NATIVE_BINDING_PARITY_MEMBERS.factories.every((name) => typeof preparedSearch[name] === "function");
|
|
68
68
|
};
|
|
69
69
|
const CALLER_DETECTION_CONTRACT_VERSION = 2;
|
|
70
|
+
const CALLER_DETECTION_MAX_COUNT = 1e6;
|
|
71
|
+
const CALLER_DETECTION_TEXT_MAX_BYTES = 64 * 1024 * 1024;
|
|
72
|
+
const CALLER_DETECTION_REQUEST_JSON_MAX_BYTES = 16 * 1024 * 1024;
|
|
73
|
+
const SESSION_CALLER_MAX_INPUTS = 1e5;
|
|
74
|
+
const SESSION_CALLER_INPUTS_JSON_MAX_BYTES = 64 * 1024 * 1024;
|
|
70
75
|
const EXTERNAL_DETECTION_BATCH_VERSION = 1;
|
|
71
76
|
const EXTERNAL_DETECTION_BATCH_MAX_BYTES = 16 * 1024 * 1024;
|
|
72
77
|
const EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES = 64 * 1024 * 1024;
|
|
@@ -82,17 +87,184 @@ const EXTERNAL_DETECTION_OFFSET_UNITS = {
|
|
|
82
87
|
const convert_external_detection_batch = ({ binding, document, batch }) => {
|
|
83
88
|
return binding.convertExternalDetectionBatch(document, typeof batch === "string" ? batch : JSON.stringify(batch));
|
|
84
89
|
};
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
const utf8ByteLengthWithin = (text, maximum) => {
|
|
91
|
+
let bytes = 0;
|
|
92
|
+
for (let index = 0; index < text.length; index += 1) {
|
|
93
|
+
const unit = text.charCodeAt(index);
|
|
94
|
+
if (unit <= 127) bytes += 1;
|
|
95
|
+
else if (unit <= 2047) bytes += 2;
|
|
96
|
+
else if (unit >= 55296 && unit <= 56319 && index + 1 < text.length && text.charCodeAt(index + 1) >= 56320 && text.charCodeAt(index + 1) <= 57343) {
|
|
97
|
+
bytes += 4;
|
|
98
|
+
index += 1;
|
|
99
|
+
} else bytes += 3;
|
|
100
|
+
if (bytes > maximum) return;
|
|
101
|
+
}
|
|
102
|
+
return bytes;
|
|
103
|
+
};
|
|
104
|
+
const validateCallerDetectionInput = (fullText, detections) => {
|
|
105
|
+
if (!Array.isArray(detections)) throw new TypeError("Caller detections must be an array");
|
|
106
|
+
if (detections.length > 1e6) throw new RangeError(`Caller detections contains ${detections.length} items; the maximum is ${CALLER_DETECTION_MAX_COUNT}`);
|
|
107
|
+
const textBytes = utf8ByteLengthWithin(fullText, CALLER_DETECTION_TEXT_MAX_BYTES);
|
|
108
|
+
if (textBytes === void 0) throw new RangeError(`Caller detection text exceeds the ${CALLER_DETECTION_TEXT_MAX_BYTES}-byte maximum`);
|
|
109
|
+
return textBytes;
|
|
110
|
+
};
|
|
111
|
+
var BoundedJsonSink = class {
|
|
112
|
+
#maximumBytes;
|
|
113
|
+
#label;
|
|
114
|
+
#reportedMaximumBytes;
|
|
115
|
+
#bytes = 0;
|
|
116
|
+
constructor(maximumBytes, label, suffix) {
|
|
117
|
+
this.#maximumBytes = maximumBytes - suffix.length;
|
|
118
|
+
this.#label = label;
|
|
119
|
+
this.#reportedMaximumBytes = maximumBytes;
|
|
120
|
+
}
|
|
121
|
+
appendAscii(value) {
|
|
122
|
+
this.#reserve(value.length);
|
|
123
|
+
this.capture(value);
|
|
124
|
+
}
|
|
125
|
+
appendOffset(value, field) {
|
|
126
|
+
this.#requireNumber(value, field);
|
|
127
|
+
if (!Number.isInteger(value) || value < 0 || value > 4294967295) throw new RangeError(`${field} must be an integer between 0 and 4294967295`);
|
|
128
|
+
this.#appendNumber(value);
|
|
129
|
+
}
|
|
130
|
+
appendScore(value, field) {
|
|
131
|
+
this.#requireNumber(value, field);
|
|
132
|
+
if (!Number.isFinite(value) || value < 0 || value > 1) throw new RangeError(`${field} must be finite and between 0 and 1`);
|
|
133
|
+
this.#appendNumber(value);
|
|
134
|
+
}
|
|
135
|
+
appendString(value, field) {
|
|
136
|
+
if (typeof value !== "string") throw new TypeError(`${field} must be a string`);
|
|
137
|
+
this.appendAscii("\"");
|
|
138
|
+
let runStart = 0;
|
|
139
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
140
|
+
const unit = value.charCodeAt(index);
|
|
141
|
+
const escape = jsonEscape(unit);
|
|
142
|
+
if (escape !== void 0) {
|
|
143
|
+
this.#appendReservedRun(value, runStart, index);
|
|
144
|
+
this.appendAscii(escape);
|
|
145
|
+
runStart = index + 1;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
if (unit >= 55296 && unit <= 56319 && index + 1 < value.length && value.charCodeAt(index + 1) >= 56320 && value.charCodeAt(index + 1) <= 57343) {
|
|
149
|
+
this.#reserve(4);
|
|
150
|
+
index += 1;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
if (unit >= 55296 && unit <= 57343) {
|
|
154
|
+
this.#appendReservedRun(value, runStart, index);
|
|
155
|
+
this.appendAscii(`\\u${unit.toString(16).padStart(4, "0")}`);
|
|
156
|
+
runStart = index + 1;
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
let unitBytes = 3;
|
|
160
|
+
if (unit <= 127) unitBytes = 1;
|
|
161
|
+
else if (unit <= 2047) unitBytes = 2;
|
|
162
|
+
this.#reserve(unitBytes);
|
|
163
|
+
}
|
|
164
|
+
this.#appendReservedRun(value, runStart, value.length);
|
|
165
|
+
this.appendAscii("\"");
|
|
166
|
+
}
|
|
167
|
+
#appendReservedRun(value, start, end) {
|
|
168
|
+
if (end > start) this.capture(value.slice(start, end));
|
|
169
|
+
}
|
|
170
|
+
#appendNumber(value) {
|
|
171
|
+
this.appendAscii(JSON.stringify(value));
|
|
172
|
+
}
|
|
173
|
+
#requireNumber(value, field) {
|
|
174
|
+
if (typeof value !== "number") throw new TypeError(`${field} must be a number`);
|
|
175
|
+
}
|
|
176
|
+
#reserve(bytes) {
|
|
177
|
+
if (bytes > this.#maximumBytes - this.#bytes) throw new RangeError(`${this.#label} exceeds the ${this.#reportedMaximumBytes}-byte maximum`);
|
|
178
|
+
this.#bytes += bytes;
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
var CountingJsonBudget = class extends BoundedJsonSink {
|
|
182
|
+
capture(value) {}
|
|
183
|
+
};
|
|
184
|
+
var BoundedJsonWriter = class extends BoundedJsonSink {
|
|
185
|
+
#chunks = [];
|
|
186
|
+
#suffix;
|
|
187
|
+
constructor(maximumBytes, label, suffix) {
|
|
188
|
+
super(maximumBytes, label, suffix);
|
|
189
|
+
this.#suffix = suffix;
|
|
190
|
+
}
|
|
191
|
+
finish() {
|
|
192
|
+
return this.#chunks.join("") + this.#suffix;
|
|
193
|
+
}
|
|
194
|
+
capture(value) {
|
|
195
|
+
this.#chunks.push(value);
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
const jsonEscape = (unit) => {
|
|
199
|
+
switch (unit) {
|
|
200
|
+
case 8: return "\\b";
|
|
201
|
+
case 9: return "\\t";
|
|
202
|
+
case 10: return "\\n";
|
|
203
|
+
case 12: return "\\f";
|
|
204
|
+
case 13: return "\\r";
|
|
205
|
+
case 34: return "\\\"";
|
|
206
|
+
case 92: return "\\\\";
|
|
207
|
+
default: return unit < 32 ? `\\u${unit.toString(16).padStart(4, "0")}` : void 0;
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
const callerDetectionRequestJson = (fullText, detections) => {
|
|
211
|
+
validateCallerDetectionInput(fullText, detections);
|
|
212
|
+
return serializeCallerDetectionRequest(detections);
|
|
213
|
+
};
|
|
214
|
+
const serializeCallerDetectionRequest = (detections) => {
|
|
215
|
+
const writer = new BoundedJsonWriter(CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, "Caller detection request JSON", "]}");
|
|
216
|
+
writer.appendAscii(`{"version":2,"detections":[`);
|
|
217
|
+
for (let index = 0; index < detections.length; index += 1) {
|
|
218
|
+
const detection = detections[index];
|
|
219
|
+
if (detection === void 0) throw new TypeError("Caller detections must not be sparse");
|
|
220
|
+
if (index > 0) writer.appendAscii(",");
|
|
221
|
+
writer.appendAscii("{\"start\":");
|
|
222
|
+
writer.appendOffset(detection.start, "Caller detection start");
|
|
223
|
+
writer.appendAscii(",\"end\":");
|
|
224
|
+
writer.appendOffset(detection.end, "Caller detection end");
|
|
225
|
+
writer.appendAscii(",\"label\":");
|
|
226
|
+
writer.appendString(detection.label, "Caller detection label");
|
|
227
|
+
writer.appendAscii(",\"score\":");
|
|
228
|
+
writer.appendScore(detection.score, "Caller detection score");
|
|
229
|
+
writer.appendAscii(",\"provider_id\":");
|
|
230
|
+
writer.appendString(detection.providerId, "Caller detection providerId");
|
|
231
|
+
writer.appendAscii(",\"detection_id\":");
|
|
232
|
+
writer.appendString(detection.detectionId, "Caller detection detectionId");
|
|
233
|
+
writer.appendAscii("}");
|
|
234
|
+
}
|
|
235
|
+
return writer.finish();
|
|
236
|
+
};
|
|
237
|
+
const toBindingSessionCallerInputs = (inputs) => {
|
|
238
|
+
if (!Array.isArray(inputs)) throw new TypeError("Session caller inputs must be an array");
|
|
239
|
+
if (inputs.length > 1e5) throw new RangeError(`Session caller inputs contains ${inputs.length} items; the maximum is ${SESSION_CALLER_MAX_INPUTS}`);
|
|
240
|
+
let detectionCount = 0;
|
|
241
|
+
let textBytes = 0;
|
|
242
|
+
const bindingInputs = [];
|
|
243
|
+
const budget = new CountingJsonBudget(SESSION_CALLER_INPUTS_JSON_MAX_BYTES, "Session caller inputs JSON", "]");
|
|
244
|
+
budget.appendAscii("[");
|
|
245
|
+
for (let index = 0; index < inputs.length; index += 1) {
|
|
246
|
+
const input = inputs[index];
|
|
247
|
+
if (input === void 0) throw new TypeError("Session caller inputs must not be sparse");
|
|
248
|
+
const { detections, fullText } = input;
|
|
249
|
+
const inputTextBytes = validateCallerDetectionInput(fullText, detections);
|
|
250
|
+
detectionCount += detections.length;
|
|
251
|
+
if (detectionCount > 1e6) throw new RangeError(`Session caller detections contains ${detectionCount} items; the maximum is ${CALLER_DETECTION_MAX_COUNT}`);
|
|
252
|
+
textBytes += inputTextBytes;
|
|
253
|
+
if (textBytes > 67108864) throw new RangeError(`Session caller text contains ${textBytes} bytes; the maximum is ${CALLER_DETECTION_TEXT_MAX_BYTES}`);
|
|
254
|
+
const requestJson = serializeCallerDetectionRequest(detections);
|
|
255
|
+
if (index > 0) budget.appendAscii(",");
|
|
256
|
+
budget.appendAscii("{\"full_text\":");
|
|
257
|
+
budget.appendString(fullText, "Session caller fullText");
|
|
258
|
+
budget.appendAscii(",\"request_json\":");
|
|
259
|
+
budget.appendString(requestJson, "Session caller requestJson");
|
|
260
|
+
budget.appendAscii("}");
|
|
261
|
+
bindingInputs.push({
|
|
262
|
+
fullText,
|
|
263
|
+
requestJson
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
return bindingInputs;
|
|
267
|
+
};
|
|
96
268
|
var PreparedNativeRedactionSession = class {
|
|
97
269
|
#session;
|
|
98
270
|
constructor(session) {
|
|
@@ -196,10 +368,7 @@ var PreparedNativeRedactionSession = class {
|
|
|
196
368
|
planTextBatchWithCallerDetections({ inputs, operators, observedAtEpochSeconds }) {
|
|
197
369
|
const bindingOperators = toBindingOperatorConfig(operators);
|
|
198
370
|
return new PreparedNativeSessionRedactionPlan(this.#session.planStaticEntitiesWithCallerDetections({
|
|
199
|
-
inputs: inputs
|
|
200
|
-
fullText,
|
|
201
|
-
requestJson: callerDetectionRequestJson(detections)
|
|
202
|
-
})),
|
|
371
|
+
inputs: toBindingSessionCallerInputs(inputs),
|
|
203
372
|
...bindingOperators === void 0 ? {} : { operators: bindingOperators },
|
|
204
373
|
...observedAtEpochSeconds === void 0 ? {} : { observedAtEpochSeconds }
|
|
205
374
|
}));
|
|
@@ -284,7 +453,7 @@ var PreparedNativeAnonymizer = class {
|
|
|
284
453
|
return this.#prepared.redactStaticEntitiesJson(fullText, bindingOperators);
|
|
285
454
|
}
|
|
286
455
|
redactStaticEntitiesWithCallerDetections(fullText, options) {
|
|
287
|
-
const requestJson = callerDetectionRequestJson(options.detections);
|
|
456
|
+
const requestJson = callerDetectionRequestJson(fullText, options.detections);
|
|
288
457
|
const operators = toBindingOperatorConfig(options.operators);
|
|
289
458
|
const result = JSON.parse(this.#prepared.redactStaticEntitiesWithCallerDetectionsJson(fullText, {
|
|
290
459
|
requestJson,
|
|
@@ -296,7 +465,7 @@ var PreparedNativeAnonymizer = class {
|
|
|
296
465
|
return this.redactStaticEntitiesWithCallerDetections(fullText, options);
|
|
297
466
|
}
|
|
298
467
|
redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(fullText, options) {
|
|
299
|
-
const requestJson = callerDetectionRequestJson(options.detections);
|
|
468
|
+
const requestJson = callerDetectionRequestJson(fullText, options.detections);
|
|
300
469
|
const operators = toBindingOperatorConfig(options.operators);
|
|
301
470
|
return this.#prepared.redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(fullText, {
|
|
302
471
|
requestJson,
|
|
@@ -522,6 +691,6 @@ const toOperatorMap = (entries) => {
|
|
|
522
691
|
return map;
|
|
523
692
|
};
|
|
524
693
|
//#endregion
|
|
525
|
-
export { CALLER_DETECTION_CONTRACT_VERSION, 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, NATIVE_BINDING_PARITY_MEMBERS, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, assertNativeBindingVersion, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromPackage, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getNativeBindingVersion, isNativeAnonymizeBinding, load_prepared_package, native_package_version, normalize_for_search, prepareNativeSearchPackage, prepare_search_package, redact_text, redact_text_json, redact_text_stream_json, summary_diagnostics_json };
|
|
694
|
+
export { CALLER_DETECTION_CONTRACT_VERSION, CALLER_DETECTION_MAX_COUNT, CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, CALLER_DETECTION_TEXT_MAX_BYTES, 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, NATIVE_BINDING_PARITY_MEMBERS, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, SESSION_CALLER_INPUTS_JSON_MAX_BYTES, SESSION_CALLER_MAX_INPUTS, assertNativeBindingVersion, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromPackage, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getNativeBindingVersion, isNativeAnonymizeBinding, load_prepared_package, native_package_version, normalize_for_search, prepareNativeSearchPackage, prepare_search_package, redact_text, redact_text_json, redact_text_stream_json, summary_diagnostics_json };
|
|
526
695
|
|
|
527
696
|
//# sourceMappingURL=native.mjs.map
|
package/dist/native.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.mjs","names":["#session","#plan","#prepared","#anonymizer"],"sources":["../src/native.ts"],"sourcesContent":["import type { NativePreparedSearchConfig } from \"./native-search-config\";\nimport type { OperatorSelection, OperatorType } from \"./types\";\n\nexport type { NativePreparedSearchConfig } from \"./native-search-config\";\n\ntype NativeBindingOperatorConfig = {\n operators?: Record<string, OperatorSelection>;\n redactString?: string;\n};\n\ntype NativeBindingCallerRedactionOptions = {\n requestJson: string;\n operators?: NativeBindingOperatorConfig;\n};\n\ntype NativeBindingSessionCallerRedactionInput = {\n fullText: string;\n requestJson: string;\n};\n\ntype NativeBindingSessionCallerRedactionPlanOptions = {\n inputs: NativeBindingSessionCallerRedactionInput[];\n operators?: NativeBindingOperatorConfig;\n observedAtEpochSeconds?: number;\n};\n\ntype NativeBindingOpenSessionArchiveOptions = {\n archive: Uint8Array;\n key: Uint8Array;\n expectedSessionId: string;\n observedAtEpochSeconds?: number;\n};\n\nexport type NativeDiagnosticsBatchCallback = (diagnosticsJson: string) => void;\nexport type NativeResultEventCallback = (eventJson: string) => void;\n\ntype NativeBindingRedactionEntry = {\n placeholder: string;\n original: string;\n};\n\ntype NativeBindingOperatorEntry = {\n placeholder: string;\n operator: OperatorType;\n};\n\ntype NativeBindingPipelineEntity = {\n start: number;\n end: number;\n label: string;\n text: string;\n score: number;\n source: string;\n sourceDetail?: string | null;\n providerId?: string | null;\n detectionId?: string | null;\n};\n\ntype NativeBindingRedactionResult = {\n redactedText: string;\n redactionMap: NativeBindingRedactionEntry[];\n operatorMap: NativeBindingOperatorEntry[];\n entityCount: number;\n};\n\ntype NativeBindingStaticRedactionResult = {\n resolvedEntities: NativeBindingPipelineEntity[];\n redaction: NativeBindingRedactionResult;\n};\n\ntype CanonicalPipelineEntity = {\n start: number;\n end: number;\n label: string;\n text: string;\n score: number;\n source: string;\n source_detail?: string | null;\n provider_id?: string | null;\n detection_id?: string | null;\n};\n\ntype CanonicalStaticRedactionResult = {\n resolved_entities: CanonicalPipelineEntity[];\n redaction: {\n redacted_text: string;\n redaction_map: NativeBindingRedactionEntry[];\n operator_map: NativeBindingOperatorEntry[];\n entity_count: number;\n };\n};\n\ntype CanonicalSessionMetadata = {\n session_id: string;\n created_at_epoch_seconds: number | null;\n expires_at_epoch_seconds: number | null;\n mapping_count: number;\n status: NativeSessionStatus;\n};\n\ntype CanonicalSessionDeletionSummary = {\n session_id: string;\n deleted_mapping_count: number;\n};\n\ntype CanonicalSessionRedactionPlanResult = {\n replacements: Array<{\n start: number;\n end: number;\n replacement: string;\n }>;\n entity_count: number;\n caller_entity_count: number;\n};\n\nexport type NativeSessionStatus =\n | \"active\"\n | \"not_yet_active\"\n | \"expired\"\n | \"deleted\";\n\nexport type NativeSessionLifecycle = {\n createdAtEpochSeconds: number;\n expiresAtEpochSeconds?: number;\n};\n\nexport type NativeSessionMetadata = {\n sessionId: string;\n createdAtEpochSeconds: number | null;\n expiresAtEpochSeconds: number | null;\n mappingCount: number;\n status: NativeSessionStatus;\n};\n\nexport type NativeSessionDeletionSummary = {\n sessionId: string;\n deletedMappingCount: number;\n};\n\nexport type NativeSessionRedactionAtOptions = {\n fullText: string;\n observedAtEpochSeconds: number;\n operators?: NativeOperatorConfig;\n};\n\nexport type NativeCreateSessionWithLifecycleOptions = NativeSessionLifecycle & {\n sessionId: string;\n};\n\nexport type NativeOpenSessionArchiveOptions = {\n archive: Uint8Array;\n key: Uint8Array;\n expectedSessionId: string;\n observedAtEpochSeconds?: number;\n};\n\nexport type NativePreparedRedactionSessionBinding = {\n sessionId: () => string;\n mappingCount: () => number;\n restoreText: (fullText: string) => string;\n restoreTextAt: (fullText: string, observedAtEpochSeconds: number) => string;\n toPlaintextJson: () => string;\n toPlaintextJsonAt: (observedAtEpochSeconds: number) => string;\n toEncryptedArchive: (key: Uint8Array) => Uint8Array;\n toEncryptedArchiveAt: (\n key: Uint8Array,\n observedAtEpochSeconds: number,\n ) => Uint8Array;\n inspectJson: (observedAtEpochSeconds?: number) => string;\n deleteJson: () => string;\n redactStaticEntitiesJson: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n redactStaticEntitiesJsonAt: (\n fullText: string,\n observedAtEpochSeconds: number,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n planStaticEntitiesWithCallerDetections: (\n options: NativeBindingSessionCallerRedactionPlanOptions,\n ) => NativePreparedSessionRedactionPlanBinding;\n};\n\nexport type NativePreparedSessionRedactionPlanBinding = {\n resultJson: () => string;\n commit: () => void;\n};\n\nexport type NativePreparedSearchBinding = {\n prepareDiagnosticsJson: () => string;\n warmLazyRegex: () => void;\n warmLazyRegexDiagnosticsJson: () => string;\n createRedactionSession: (\n sessionId: string,\n ) => NativePreparedRedactionSessionBinding;\n createRedactionSessionWithLifecycle: (\n sessionId: string,\n createdAtEpochSeconds: number,\n expiresAtEpochSeconds?: number,\n ) => NativePreparedRedactionSessionBinding;\n restoreRedactionSession: (\n plaintextJson: string,\n ) => NativePreparedRedactionSessionBinding;\n restoreEncryptedRedactionSession: (\n options: NativeBindingOpenSessionArchiveOptions,\n ) => NativePreparedRedactionSessionBinding;\n redactStaticEntities: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => NativeBindingStaticRedactionResult;\n redactStaticEntitiesJson: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n redactStaticEntitiesWithCallerDetectionsJson: (\n fullText: string,\n options: NativeBindingCallerRedactionOptions,\n ) => string;\n redactStaticEntitiesWithCallerDetectionsDiagnosticsJson: (\n fullText: string,\n options: NativeBindingCallerRedactionOptions,\n ) => string;\n redactStaticEntitiesResultStreamJson: (\n fullText: string,\n operators: NativeBindingOperatorConfig | undefined,\n onEvent: NativeResultEventCallback,\n ) => string;\n redactStaticEntitiesDiagnosticsJson: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n redactStaticEntitiesDiagnosticsStreamJson: (\n fullText: string,\n operators: NativeBindingOperatorConfig | undefined,\n onBatch: NativeDiagnosticsBatchCallback,\n ) => string;\n redactStaticEntitiesSummaryDiagnosticsJson: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n};\n\nexport type NativeAnonymizeBinding = {\n convertExternalDetectionBatch: (\n document: Uint8Array,\n batchJson: string,\n ) => NativeCallerDetection[];\n externalDetectionLimitsJson: () => string;\n extractDocxTextJson: (document: Uint8Array) => string;\n inspectPdfJson: (document: Uint8Array, observationsJson?: string) => string;\n rewritePdfRasterFromDetectionsJson: (\n document: Uint8Array,\n requestJson: string,\n pagePixels: readonly Uint8Array[],\n ) => { document: Uint8Array; certificateJson: string };\n rewriteDocxTextNative: (\n document: Uint8Array,\n rewritesJson: string,\n ) => {\n document: Uint8Array;\n rewrittenBlockCount: number;\n appliedReplacementCount: number;\n };\n planDocxRestorationJson: (document: Uint8Array, sessionId: string) => string;\n normalizeForSearch: (text: string) => string;\n nativePackageVersion: () => string;\n NativePreparedSearch: {\n fromConfigJsonBytes: (\n configJson: Uint8Array,\n ) => NativePreparedSearchBinding;\n fromPreparedPackageBytes: (\n packageBytes: Uint8Array,\n ) => NativePreparedSearchBinding;\n fromPreparedPackageBytesWithoutCache: (\n packageBytes: Uint8Array,\n ) => NativePreparedSearchBinding;\n fromTrustedPreparedPackageBytes: (\n packageBytes: Uint8Array,\n ) => NativePreparedSearchBinding;\n fromTrustedPreparedPackageBytesWithoutCache: (\n packageBytes: Uint8Array,\n ) => NativePreparedSearchBinding;\n };\n prepareStaticSearchPackageBytes: (configJson: Uint8Array) => Uint8Array;\n prepareStaticSearchCompressedPackageBytes: (\n configJson: Uint8Array,\n ) => Uint8Array;\n // Rust config assembler (replaces the retired TypeScript config-assembly\n // layer). Takes the pipeline config plus out-of-band dictionaries and\n // gazetteer JSON and returns either the assembled config JSON or ready\n // package bytes. Every parity runtime must expose these required members.\n assembleStaticSearchConfigJson: (\n pipelineConfigJson: Uint8Array,\n dictionariesJson?: Uint8Array,\n gazetteerJson?: Uint8Array,\n ) => Uint8Array;\n assembleStaticSearchPackageBytes: (\n pipelineConfigJson: Uint8Array,\n dictionariesJson?: Uint8Array,\n gazetteerJson?: Uint8Array,\n ) => Uint8Array;\n assembleStaticSearchCompressedPackageBytes: (\n pipelineConfigJson: Uint8Array,\n dictionariesJson?: Uint8Array,\n gazetteerJson?: Uint8Array,\n ) => Uint8Array;\n};\n\ntype FunctionMemberNames<T> = {\n [Key in keyof T]-?: T[Key] extends (...args: never[]) => unknown\n ? Key\n : never;\n}[keyof T];\n\n/** Exhaustive runtime-member contract shared by loaders and parity gates. */\nexport const NATIVE_BINDING_PARITY_MEMBERS = {\n root: [\n \"convertExternalDetectionBatch\",\n \"externalDetectionLimitsJson\",\n \"extractDocxTextJson\",\n \"inspectPdfJson\",\n \"rewritePdfRasterFromDetectionsJson\",\n \"rewriteDocxTextNative\",\n \"planDocxRestorationJson\",\n \"normalizeForSearch\",\n \"nativePackageVersion\",\n \"prepareStaticSearchPackageBytes\",\n \"prepareStaticSearchCompressedPackageBytes\",\n \"assembleStaticSearchConfigJson\",\n \"assembleStaticSearchPackageBytes\",\n \"assembleStaticSearchCompressedPackageBytes\",\n ],\n factories: [\n \"fromConfigJsonBytes\",\n \"fromPreparedPackageBytes\",\n \"fromPreparedPackageBytesWithoutCache\",\n \"fromTrustedPreparedPackageBytes\",\n \"fromTrustedPreparedPackageBytesWithoutCache\",\n ],\n prepared: [\n \"prepareDiagnosticsJson\",\n \"warmLazyRegex\",\n \"warmLazyRegexDiagnosticsJson\",\n \"createRedactionSession\",\n \"createRedactionSessionWithLifecycle\",\n \"restoreRedactionSession\",\n \"restoreEncryptedRedactionSession\",\n \"redactStaticEntities\",\n \"redactStaticEntitiesJson\",\n \"redactStaticEntitiesWithCallerDetectionsJson\",\n \"redactStaticEntitiesWithCallerDetectionsDiagnosticsJson\",\n \"redactStaticEntitiesResultStreamJson\",\n \"redactStaticEntitiesDiagnosticsJson\",\n \"redactStaticEntitiesDiagnosticsStreamJson\",\n \"redactStaticEntitiesSummaryDiagnosticsJson\",\n ],\n session: [\n \"sessionId\",\n \"mappingCount\",\n \"restoreText\",\n \"restoreTextAt\",\n \"toPlaintextJson\",\n \"toPlaintextJsonAt\",\n \"toEncryptedArchive\",\n \"toEncryptedArchiveAt\",\n \"inspectJson\",\n \"deleteJson\",\n \"redactStaticEntitiesJson\",\n \"redactStaticEntitiesJsonAt\",\n \"planStaticEntitiesWithCallerDetections\",\n ],\n plan: [\"resultJson\", \"commit\"],\n} as const satisfies {\n root: readonly FunctionMemberNames<NativeAnonymizeBinding>[];\n factories: readonly FunctionMemberNames<\n NativeAnonymizeBinding[\"NativePreparedSearch\"]\n >[];\n prepared: readonly FunctionMemberNames<NativePreparedSearchBinding>[];\n session: readonly FunctionMemberNames<NativePreparedRedactionSessionBinding>[];\n plan: readonly FunctionMemberNames<NativePreparedSessionRedactionPlanBinding>[];\n};\n\nconst ROOT_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativeAnonymizeBinding>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.root)[number]\n> extends never\n ? true\n : never = true;\nconst FACTORY_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativeAnonymizeBinding[\"NativePreparedSearch\"]>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.factories)[number]\n> extends never\n ? true\n : never = true;\nconst PREPARED_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativePreparedSearchBinding>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.prepared)[number]\n> extends never\n ? true\n : never = true;\nconst SESSION_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativePreparedRedactionSessionBinding>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.session)[number]\n> extends never\n ? true\n : never = true;\nconst PLAN_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativePreparedSessionRedactionPlanBinding>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.plan)[number]\n> extends never\n ? true\n : never = true;\nvoid [\n ROOT_PARITY_IS_EXHAUSTIVE,\n FACTORY_PARITY_IS_EXHAUSTIVE,\n PREPARED_PARITY_IS_EXHAUSTIVE,\n SESSION_PARITY_IS_EXHAUSTIVE,\n PLAN_PARITY_IS_EXHAUSTIVE,\n];\n\nconst isBindingPropertyBag = (\n value: unknown,\n): value is Record<string, unknown> =>\n (typeof value === \"object\" && value !== null) || typeof value === \"function\";\n\n/** Validate the complete runtime-neutral root and factory binding shape. */\nexport const isNativeAnonymizeBinding = (\n candidate: unknown,\n): candidate is NativeAnonymizeBinding => {\n if (!isBindingPropertyBag(candidate)) {\n return false;\n }\n if (\n !NATIVE_BINDING_PARITY_MEMBERS.root.every(\n (name) => typeof candidate[name] === \"function\",\n )\n ) {\n return false;\n }\n const preparedSearch = candidate[\"NativePreparedSearch\"];\n return (\n isBindingPropertyBag(preparedSearch) &&\n NATIVE_BINDING_PARITY_MEMBERS.factories.every(\n (name) => typeof preparedSearch[name] === \"function\",\n )\n );\n};\n\nexport type NativeOperatorConfig = {\n operators?: Record<string, OperatorSelection>;\n redactString?: string;\n};\n\nexport const CALLER_DETECTION_CONTRACT_VERSION = 2;\n\nexport const EXTERNAL_DETECTION_BATCH_VERSION = 1 as const;\nexport const EXTERNAL_DETECTION_BATCH_MAX_BYTES = 16 * 1024 * 1024;\nexport const EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES = 64 * 1024 * 1024;\nexport const EXTERNAL_DETECTION_MAX_DETECTIONS = 100_000;\nexport const EXTERNAL_DETECTION_MAX_LABEL_MAPPINGS = 4_096;\nexport const EXTERNAL_DETECTION_MAX_METADATA_BYTES = 256;\nexport const EXTERNAL_DETECTION_PROVIDER_ID_MAX_BYTES = 128;\n\nexport const EXTERNAL_DETECTION_OFFSET_UNITS = {\n unicodeCodePoint: \"unicode-code-point\",\n utf16CodeUnit: \"utf16-code-unit\",\n utf8Byte: \"utf8-byte\",\n} as const;\n\nexport type ExternalDetectionOffsetUnit =\n (typeof EXTERNAL_DETECTION_OFFSET_UNITS)[keyof typeof EXTERNAL_DETECTION_OFFSET_UNITS];\n\nexport type ExternalDetectionBatch = {\n version: typeof EXTERNAL_DETECTION_BATCH_VERSION;\n document: { sha256: string };\n offsetUnit: ExternalDetectionOffsetUnit;\n provider: { id: string; name: string; version: string };\n labelMap: readonly {\n providerLabel: string;\n entityLabel: string;\n }[];\n detections: readonly {\n id: string;\n start: number;\n end: number;\n label: string;\n score: number;\n }[];\n};\n\nexport type NativeCallerDetection = {\n start: number;\n end: number;\n label: string;\n score: number;\n providerId: string;\n detectionId: string;\n};\n\nexport type ConvertExternalDetectionBatchOptions = {\n binding: NativeAnonymizeBinding;\n document: Uint8Array;\n batch: ExternalDetectionBatch | string;\n};\n\nexport const convert_external_detection_batch = ({\n binding,\n document,\n batch,\n}: ConvertExternalDetectionBatchOptions): NativeCallerDetection[] => {\n return binding.convertExternalDetectionBatch(\n document,\n typeof batch === \"string\" ? batch : JSON.stringify(batch),\n );\n};\n\nexport type NativeCallerRedactionOptions = {\n detections: readonly NativeCallerDetection[];\n operators?: NativeOperatorConfig;\n};\n\nexport type NativeSessionCallerRedactionInput = {\n fullText: string;\n detections: readonly NativeCallerDetection[];\n};\n\nexport type NativeSessionCallerRedactionPlanOptions = {\n inputs: readonly NativeSessionCallerRedactionInput[];\n operators?: NativeOperatorConfig;\n observedAtEpochSeconds?: number;\n};\n\nexport type NativeTextReplacement = {\n start: number;\n end: number;\n replacement: string;\n};\n\nexport type NativeSessionBlockRedactionPlan = {\n replacements: readonly NativeTextReplacement[];\n entityCount: number;\n callerEntityCount: number;\n};\n\nconst callerDetectionRequestJson = (\n detections: readonly NativeCallerDetection[],\n): string =>\n JSON.stringify({\n version: CALLER_DETECTION_CONTRACT_VERSION,\n detections: detections.map((detection) => ({\n start: detection.start,\n end: detection.end,\n label: detection.label,\n score: detection.score,\n provider_id: detection.providerId,\n detection_id: detection.detectionId,\n })),\n });\n\nexport type NativePipelineEntity = {\n start: number;\n end: number;\n label: string;\n text: string;\n score: number;\n source: string;\n sourceDetail?: string;\n providerId?: string;\n detectionId?: string;\n};\n\nexport type NativeRedactionResult = {\n redactedText: string;\n redactionMap: Map<string, string>;\n operatorMap: Map<string, OperatorType>;\n entityCount: number;\n};\n\nexport type NativeStaticRedactionResult = {\n resolvedEntities: NativePipelineEntity[];\n redaction: NativeRedactionResult;\n};\n\nexport type NativeSearchPackageOptions = {\n binding: NativeAnonymizeBinding;\n config: NativePreparedSearchConfig;\n compressed?: boolean;\n};\n\nexport type NativeSearchPackageInput =\n | NativePreparedSearchConfig\n | string\n | Uint8Array;\n\nexport type SharedNativeSearchPackageOptions = {\n binding: NativeAnonymizeBinding;\n config: NativeSearchPackageInput;\n compressed?: boolean;\n};\n\nexport type SharedNativePreparedPackageOptions = {\n binding: NativeAnonymizeBinding;\n packageBytes: Uint8Array;\n};\n\nexport type SharedNativeRedactTextJsonOptions = {\n binding: NativeAnonymizeBinding;\n config: NativeSearchPackageInput;\n fullText: string;\n operators?: NativeOperatorConfig;\n};\n\nexport type SharedNativeRedactTextOptions = SharedNativeRedactTextJsonOptions;\n\nexport type SharedNativeDiagnosticsJsonOptions =\n SharedNativeRedactTextJsonOptions;\n\nexport type SharedNativeDiagnosticsStreamJsonOptions =\n SharedNativeRedactTextJsonOptions & {\n onBatch: NativeDiagnosticsBatchCallback;\n };\n\nexport type SharedNativeRedactTextStreamJsonOptions =\n SharedNativeRedactTextJsonOptions & {\n onEvent: NativeResultEventCallback;\n };\n\nexport type NativeNormalizeOptions = {\n binding: NativeAnonymizeBinding;\n text: string;\n};\n\nexport type NativeAnonymizerFromConfigOptions = {\n binding: NativeAnonymizeBinding;\n config: NativePreparedSearchConfig;\n};\n\nexport type NativeAnonymizerFromPackageOptions = {\n binding: NativeAnonymizeBinding;\n packageBytes: Uint8Array;\n};\n\nexport type NativePipelineFromPackageOptions =\n NativeAnonymizerFromPackageOptions;\n\nexport type NativeBindingVersionOptions = {\n binding: NativeAnonymizeBinding;\n expectedVersion: string;\n};\n\nexport class PreparedNativeRedactionSession {\n readonly #session: NativePreparedRedactionSessionBinding;\n\n constructor(session: NativePreparedRedactionSessionBinding) {\n this.#session = session;\n }\n\n sessionId(): string {\n return this.#session.sessionId();\n }\n\n session_id(): string {\n return this.sessionId();\n }\n\n mappingCount(): number {\n return this.#session.mappingCount();\n }\n\n mapping_count(): number {\n return this.mappingCount();\n }\n\n restoreText(fullText: string, observedAtEpochSeconds?: number): string {\n if (observedAtEpochSeconds === undefined) {\n return this.#session.restoreText(fullText);\n }\n return this.#session.restoreTextAt(fullText, observedAtEpochSeconds);\n }\n\n restore_text(fullText: string, observedAtEpochSeconds?: number): string {\n return this.restoreText(fullText, observedAtEpochSeconds);\n }\n\n toPlaintextJson(): string {\n return this.#session.toPlaintextJson();\n }\n\n to_plaintext_json(): string {\n return this.toPlaintextJson();\n }\n\n toPlaintextJsonAt(observedAtEpochSeconds: number): string {\n return this.#session.toPlaintextJsonAt(observedAtEpochSeconds);\n }\n\n to_plaintext_json_at(observedAtEpochSeconds: number): string {\n return this.toPlaintextJsonAt(observedAtEpochSeconds);\n }\n\n toEncryptedArchive(key: Uint8Array): Uint8Array {\n return this.#session.toEncryptedArchive(key);\n }\n\n to_encrypted_archive(key: Uint8Array): Uint8Array {\n return this.toEncryptedArchive(key);\n }\n\n toEncryptedArchiveAt(\n key: Uint8Array,\n observedAtEpochSeconds: number,\n ): Uint8Array {\n return this.#session.toEncryptedArchiveAt(key, observedAtEpochSeconds);\n }\n\n to_encrypted_archive_at(\n key: Uint8Array,\n observedAtEpochSeconds: number,\n ): Uint8Array {\n return this.toEncryptedArchiveAt(key, observedAtEpochSeconds);\n }\n\n inspect(observedAtEpochSeconds?: number): NativeSessionMetadata {\n const metadata: CanonicalSessionMetadata = JSON.parse(\n this.#session.inspectJson(observedAtEpochSeconds),\n );\n return {\n sessionId: metadata.session_id,\n createdAtEpochSeconds: metadata.created_at_epoch_seconds,\n expiresAtEpochSeconds: metadata.expires_at_epoch_seconds,\n mappingCount: metadata.mapping_count,\n status: metadata.status,\n };\n }\n\n delete(): NativeSessionDeletionSummary {\n const summary: CanonicalSessionDeletionSummary = JSON.parse(\n this.#session.deleteJson(),\n );\n return {\n sessionId: summary.session_id,\n deletedMappingCount: summary.deleted_mapping_count,\n };\n }\n\n redactStaticEntities(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n const result: CanonicalStaticRedactionResult = JSON.parse(\n this.redact_text_json(fullText, operators),\n );\n return fromCanonicalStaticRedactionResult(result);\n }\n\n redactText(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntities(fullText, operators);\n }\n\n redact_text(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.redactText(fullText, operators);\n }\n\n redactTextJson(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redact_text_json(fullText, operators);\n }\n\n redact_text_json(fullText: string, operators?: NativeOperatorConfig): string {\n return this.#session.redactStaticEntitiesJson(\n fullText,\n toBindingOperatorConfig(operators),\n );\n }\n\n redactStaticEntitiesAt(\n options: NativeSessionRedactionAtOptions,\n ): NativeStaticRedactionResult {\n const result: CanonicalStaticRedactionResult = JSON.parse(\n this.redactTextJsonAt(options),\n );\n return fromCanonicalStaticRedactionResult(result);\n }\n\n redactTextAt(\n options: NativeSessionRedactionAtOptions,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntitiesAt(options);\n }\n\n redact_text_at(\n options: NativeSessionRedactionAtOptions,\n ): NativeStaticRedactionResult {\n return this.redactTextAt(options);\n }\n\n redact_static_entities_at(\n options: NativeSessionRedactionAtOptions,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntitiesAt(options);\n }\n\n redactTextJsonAt({\n fullText,\n observedAtEpochSeconds,\n operators,\n }: NativeSessionRedactionAtOptions): string {\n return this.#session.redactStaticEntitiesJsonAt(\n fullText,\n observedAtEpochSeconds,\n toBindingOperatorConfig(operators),\n );\n }\n\n redact_text_json_at(options: NativeSessionRedactionAtOptions): string {\n return this.redactTextJsonAt(options);\n }\n\n planTextBatchWithCallerDetections({\n inputs,\n operators,\n observedAtEpochSeconds,\n }: NativeSessionCallerRedactionPlanOptions): PreparedNativeSessionRedactionPlan {\n const bindingOperators = toBindingOperatorConfig(operators);\n const bindingPlan = this.#session.planStaticEntitiesWithCallerDetections({\n inputs: inputs.map(({ detections, fullText }) => ({\n fullText,\n requestJson: callerDetectionRequestJson(detections),\n })),\n ...(bindingOperators === undefined\n ? {}\n : { operators: bindingOperators }),\n ...(observedAtEpochSeconds === undefined\n ? {}\n : { observedAtEpochSeconds }),\n });\n return new PreparedNativeSessionRedactionPlan(bindingPlan);\n }\n}\n\nexport class PreparedNativeSessionRedactionPlan {\n readonly blocks: readonly NativeSessionBlockRedactionPlan[];\n readonly #plan: NativePreparedSessionRedactionPlanBinding;\n\n constructor(plan: NativePreparedSessionRedactionPlanBinding) {\n this.#plan = plan;\n const blocks: CanonicalSessionRedactionPlanResult[] = JSON.parse(\n plan.resultJson(),\n );\n this.blocks = blocks.map(\n ({ caller_entity_count, entity_count, replacements }) => ({\n replacements,\n entityCount: entity_count,\n callerEntityCount: caller_entity_count,\n }),\n );\n }\n\n commit(): void {\n this.#plan.commit();\n }\n}\n\nexport class PreparedNativeAnonymizer {\n readonly #prepared: NativePreparedSearchBinding;\n\n constructor(prepared: NativePreparedSearchBinding) {\n this.#prepared = prepared;\n }\n\n prepareDiagnosticsJson(): string {\n return this.#prepared.prepareDiagnosticsJson();\n }\n\n prepare_diagnostics_json(): string {\n return this.prepareDiagnosticsJson();\n }\n\n warmLazyRegex(): void {\n this.#prepared.warmLazyRegex();\n }\n\n warm_lazy_regex(): void {\n this.warmLazyRegex();\n }\n\n warmLazyRegexDiagnosticsJson(): string {\n return this.#prepared.warmLazyRegexDiagnosticsJson();\n }\n\n warm_lazy_regex_diagnostics_json(): string {\n return this.warmLazyRegexDiagnosticsJson();\n }\n\n createRedactionSession(sessionId: string): PreparedNativeRedactionSession {\n return new PreparedNativeRedactionSession(\n this.#prepared.createRedactionSession(sessionId),\n );\n }\n\n create_redaction_session(sessionId: string): PreparedNativeRedactionSession {\n return this.createRedactionSession(sessionId);\n }\n\n createRedactionSessionWithLifecycle({\n sessionId,\n createdAtEpochSeconds,\n expiresAtEpochSeconds,\n }: NativeCreateSessionWithLifecycleOptions): PreparedNativeRedactionSession {\n return new PreparedNativeRedactionSession(\n this.#prepared.createRedactionSessionWithLifecycle(\n sessionId,\n createdAtEpochSeconds,\n expiresAtEpochSeconds,\n ),\n );\n }\n\n create_redaction_session_with_lifecycle(\n options: NativeCreateSessionWithLifecycleOptions,\n ): PreparedNativeRedactionSession {\n return this.createRedactionSessionWithLifecycle(options);\n }\n\n restoreRedactionSession(\n plaintextJson: string,\n ): PreparedNativeRedactionSession {\n return new PreparedNativeRedactionSession(\n this.#prepared.restoreRedactionSession(plaintextJson),\n );\n }\n\n restore_redaction_session(\n plaintextJson: string,\n ): PreparedNativeRedactionSession {\n return this.restoreRedactionSession(plaintextJson);\n }\n\n restoreEncryptedRedactionSession({\n archive,\n key,\n expectedSessionId,\n observedAtEpochSeconds,\n }: NativeOpenSessionArchiveOptions): PreparedNativeRedactionSession {\n return new PreparedNativeRedactionSession(\n this.#prepared.restoreEncryptedRedactionSession({\n archive,\n key,\n expectedSessionId,\n ...(observedAtEpochSeconds === undefined\n ? {}\n : { observedAtEpochSeconds }),\n }),\n );\n }\n\n restore_encrypted_redaction_session(\n options: NativeOpenSessionArchiveOptions,\n ): PreparedNativeRedactionSession {\n return this.restoreEncryptedRedactionSession(options);\n }\n\n redactStaticEntities(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return toNativeStaticRedactionResult(\n this.#prepared.redactStaticEntities(\n fullText,\n toBindingOperatorConfig(operators),\n ),\n );\n }\n\n redact_text(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntities(fullText, operators);\n }\n\n redact_text_json(fullText: string, operators?: NativeOperatorConfig): string {\n const bindingOperators = toBindingOperatorConfig(operators);\n return this.#prepared.redactStaticEntitiesJson(fullText, bindingOperators);\n }\n\n redactStaticEntitiesWithCallerDetections(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): NativeStaticRedactionResult {\n const requestJson = callerDetectionRequestJson(options.detections);\n const operators = toBindingOperatorConfig(options.operators);\n const result: CanonicalStaticRedactionResult = JSON.parse(\n this.#prepared.redactStaticEntitiesWithCallerDetectionsJson(fullText, {\n requestJson,\n ...(operators ? { operators } : {}),\n }),\n );\n return fromCanonicalStaticRedactionResult(result);\n }\n\n redact_text_with_caller_detections(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntitiesWithCallerDetections(fullText, options);\n }\n\n redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): string {\n const requestJson = callerDetectionRequestJson(options.detections);\n const operators = toBindingOperatorConfig(options.operators);\n return this.#prepared.redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(\n fullText,\n {\n requestJson,\n ...(operators ? { operators } : {}),\n },\n );\n }\n\n redact_static_entities_with_caller_detections_diagnostics_json(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): string {\n return this.redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(\n fullText,\n options,\n );\n }\n\n redactTextJson(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redact_text_json(fullText, operators);\n }\n\n redactTextStreamJson(\n fullText: string,\n onEvent: NativeResultEventCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#prepared.redactStaticEntitiesResultStreamJson(\n fullText,\n toBindingOperatorConfig(operators),\n onEvent,\n );\n }\n\n redact_text_stream_json(\n fullText: string,\n onEvent: NativeResultEventCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.redactTextStreamJson(fullText, onEvent, operators);\n }\n\n redactStaticEntitiesDiagnosticsJson(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#prepared.redactStaticEntitiesDiagnosticsJson(\n fullText,\n toBindingOperatorConfig(operators),\n );\n }\n\n diagnostics_json(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redactStaticEntitiesDiagnosticsJson(fullText, operators);\n }\n\n diagnosticsStreamJson(\n fullText: string,\n onBatch: NativeDiagnosticsBatchCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#prepared.redactStaticEntitiesDiagnosticsStreamJson(\n fullText,\n toBindingOperatorConfig(operators),\n onBatch,\n );\n }\n\n diagnostics_stream_json(\n fullText: string,\n onBatch: NativeDiagnosticsBatchCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.diagnosticsStreamJson(fullText, onBatch, operators);\n }\n\n redactStaticEntitiesSummaryDiagnosticsJson(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#prepared.redactStaticEntitiesSummaryDiagnosticsJson(\n fullText,\n toBindingOperatorConfig(operators),\n );\n }\n\n summary_diagnostics_json(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.redactStaticEntitiesSummaryDiagnosticsJson(fullText, operators);\n }\n}\n\nexport class PreparedNativePipeline {\n readonly #anonymizer: PreparedNativeAnonymizer;\n\n constructor(anonymizer: PreparedNativeAnonymizer) {\n this.#anonymizer = anonymizer;\n }\n\n prepareDiagnosticsJson(): string {\n return this.#anonymizer.prepareDiagnosticsJson();\n }\n\n prepare_diagnostics_json(): string {\n return this.prepareDiagnosticsJson();\n }\n\n warmLazyRegex(): void {\n this.#anonymizer.warmLazyRegex();\n }\n\n warm_lazy_regex(): void {\n this.warmLazyRegex();\n }\n\n warmLazyRegexDiagnosticsJson(): string {\n return this.#anonymizer.warmLazyRegexDiagnosticsJson();\n }\n\n warm_lazy_regex_diagnostics_json(): string {\n return this.warmLazyRegexDiagnosticsJson();\n }\n\n createRedactionSession(sessionId: string): PreparedNativeRedactionSession {\n return this.#anonymizer.createRedactionSession(sessionId);\n }\n\n create_redaction_session(sessionId: string): PreparedNativeRedactionSession {\n return this.createRedactionSession(sessionId);\n }\n\n createRedactionSessionWithLifecycle(\n options: NativeCreateSessionWithLifecycleOptions,\n ): PreparedNativeRedactionSession {\n return this.#anonymizer.createRedactionSessionWithLifecycle(options);\n }\n\n create_redaction_session_with_lifecycle(\n options: NativeCreateSessionWithLifecycleOptions,\n ): PreparedNativeRedactionSession {\n return this.createRedactionSessionWithLifecycle(options);\n }\n\n restoreRedactionSession(\n plaintextJson: string,\n ): PreparedNativeRedactionSession {\n return this.#anonymizer.restoreRedactionSession(plaintextJson);\n }\n\n restore_redaction_session(\n plaintextJson: string,\n ): PreparedNativeRedactionSession {\n return this.restoreRedactionSession(plaintextJson);\n }\n\n restoreEncryptedRedactionSession(\n options: NativeOpenSessionArchiveOptions,\n ): PreparedNativeRedactionSession {\n return this.#anonymizer.restoreEncryptedRedactionSession(options);\n }\n\n restore_encrypted_redaction_session(\n options: NativeOpenSessionArchiveOptions,\n ): PreparedNativeRedactionSession {\n return this.restoreEncryptedRedactionSession(options);\n }\n\n redactText(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.#anonymizer.redactStaticEntities(fullText, operators);\n }\n\n redact_text(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.redactText(fullText, operators);\n }\n\n redact_text_json(fullText: string, operators?: NativeOperatorConfig): string {\n return this.#anonymizer.redact_text_json(fullText, operators);\n }\n\n redactTextWithCallerDetections(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): NativeStaticRedactionResult {\n return this.#anonymizer.redactStaticEntitiesWithCallerDetections(\n fullText,\n options,\n );\n }\n\n redact_text_with_caller_detections(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): NativeStaticRedactionResult {\n return this.redactTextWithCallerDetections(fullText, options);\n }\n\n redactTextWithCallerDetectionsDiagnosticsJson(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): string {\n return this.#anonymizer.redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(\n fullText,\n options,\n );\n }\n\n redact_text_with_caller_detections_diagnostics_json(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): string {\n return this.redactTextWithCallerDetectionsDiagnosticsJson(\n fullText,\n options,\n );\n }\n\n redactTextJson(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redact_text_json(fullText, operators);\n }\n\n redactTextStreamJson(\n fullText: string,\n onEvent: NativeResultEventCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#anonymizer.redactTextStreamJson(fullText, onEvent, operators);\n }\n\n redact_text_stream_json(\n fullText: string,\n onEvent: NativeResultEventCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.redactTextStreamJson(fullText, onEvent, operators);\n }\n\n redactTextDiagnosticsJson(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#anonymizer.redactStaticEntitiesDiagnosticsJson(\n fullText,\n operators,\n );\n }\n\n diagnostics_json(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redactTextDiagnosticsJson(fullText, operators);\n }\n\n diagnosticsStreamJson(\n fullText: string,\n onBatch: NativeDiagnosticsBatchCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#anonymizer.diagnosticsStreamJson(fullText, onBatch, operators);\n }\n\n diagnostics_stream_json(\n fullText: string,\n onBatch: NativeDiagnosticsBatchCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.diagnosticsStreamJson(fullText, onBatch, operators);\n }\n\n redactTextSummaryDiagnosticsJson(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#anonymizer.redactStaticEntitiesSummaryDiagnosticsJson(\n fullText,\n operators,\n );\n }\n\n summary_diagnostics_json(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.redactTextSummaryDiagnosticsJson(fullText, operators);\n }\n}\n\nexport const encodeNativeSearchConfig = (\n config: NativePreparedSearchConfig,\n): Uint8Array => new TextEncoder().encode(JSON.stringify(config));\n\nexport const encodeNativeSearchConfigInput = (\n config: NativeSearchPackageInput,\n): Uint8Array => {\n if (typeof config === \"string\") {\n return new TextEncoder().encode(config);\n }\n if (config instanceof Uint8Array) {\n return config;\n }\n return encodeNativeSearchConfig(config);\n};\n\nexport const getNativeBindingVersion = (\n binding: NativeAnonymizeBinding,\n): string => binding.nativePackageVersion();\n\nexport const native_package_version = getNativeBindingVersion;\n\nexport const normalize_for_search = ({\n binding,\n text,\n}: NativeNormalizeOptions): string => binding.normalizeForSearch(text);\n\nexport const assertNativeBindingVersion = ({\n binding,\n expectedVersion,\n}: NativeBindingVersionOptions): void => {\n const actualVersion = getNativeBindingVersion(binding);\n if (actualVersion !== expectedVersion) {\n throw new Error(\n `Native anonymize binding version ${actualVersion} does not match ${expectedVersion}`,\n );\n }\n};\n\nexport const prepareNativeSearchPackage = ({\n binding,\n config,\n compressed = false,\n}: NativeSearchPackageOptions): Uint8Array => {\n const configBytes = encodeNativeSearchConfig(config);\n return compressed\n ? binding.prepareStaticSearchCompressedPackageBytes(configBytes)\n : binding.prepareStaticSearchPackageBytes(configBytes);\n};\n\nexport const prepare_search_package = ({\n binding,\n config,\n compressed = false,\n}: SharedNativeSearchPackageOptions): Uint8Array => {\n const configBytes = encodeNativeSearchConfigInput(config);\n return compressed\n ? binding.prepareStaticSearchCompressedPackageBytes(configBytes)\n : binding.prepareStaticSearchPackageBytes(configBytes);\n};\n\nexport const createNativeAnonymizerFromConfig = ({\n binding,\n config,\n}: NativeAnonymizerFromConfigOptions): PreparedNativeAnonymizer =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfig(config),\n ),\n );\n\nexport const createNativeAnonymizerFromPackage = ({\n binding,\n packageBytes,\n}: NativeAnonymizerFromPackageOptions): PreparedNativeAnonymizer =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromPreparedPackageBytes(packageBytes),\n );\n\nexport const load_prepared_package = ({\n binding,\n packageBytes,\n}: SharedNativePreparedPackageOptions): PreparedNativeAnonymizer =>\n createNativeAnonymizerFromPackage({ binding, packageBytes });\n\nexport const redact_text_json = ({\n binding,\n config,\n fullText,\n operators,\n}: SharedNativeRedactTextJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).redact_text_json(fullText, operators);\n\nexport const redact_text = ({\n binding,\n config,\n fullText,\n operators,\n}: SharedNativeRedactTextOptions): NativeStaticRedactionResult =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).redact_text(fullText, operators);\n\nexport const redact_text_stream_json = ({\n binding,\n config,\n fullText,\n operators,\n onEvent,\n}: SharedNativeRedactTextStreamJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).redact_text_stream_json(fullText, onEvent, operators);\n\nexport const diagnostics_json = ({\n binding,\n config,\n fullText,\n operators,\n}: SharedNativeDiagnosticsJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).diagnostics_json(fullText, operators);\n\nexport const diagnostics_stream_json = ({\n binding,\n config,\n fullText,\n operators,\n onBatch,\n}: SharedNativeDiagnosticsStreamJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).diagnostics_stream_json(fullText, onBatch, operators);\n\nexport const summary_diagnostics_json = ({\n binding,\n config,\n fullText,\n operators,\n}: SharedNativeDiagnosticsJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).summary_diagnostics_json(fullText, operators);\n\nexport const createNativePipelineFromPackage = ({\n binding,\n packageBytes,\n}: NativePipelineFromPackageOptions): PreparedNativePipeline =>\n new PreparedNativePipeline(\n createNativeAnonymizerFromPackage({ binding, packageBytes }),\n );\n\nexport const PreparedSearch = PreparedNativeAnonymizer;\nexport type PreparedSearch = PreparedNativeAnonymizer;\nexport const PreparedAnonymizer = PreparedNativeAnonymizer;\nexport type PreparedAnonymizer = PreparedNativeAnonymizer;\n\nconst toBindingOperatorConfig = (\n config: NativeOperatorConfig | undefined,\n): NativeBindingOperatorConfig | undefined => {\n if (!config) {\n return undefined;\n }\n const bindingConfig: NativeBindingOperatorConfig = {};\n if (config.operators !== undefined) {\n bindingConfig.operators = config.operators;\n }\n if (config.redactString !== undefined) {\n bindingConfig.redactString = config.redactString;\n }\n return bindingConfig;\n};\n\nconst toNativeStaticRedactionResult = (\n result: NativeBindingStaticRedactionResult,\n): NativeStaticRedactionResult => ({\n resolvedEntities: result.resolvedEntities.map(toNativePipelineEntity),\n redaction: toNativeRedactionResult(result.redaction),\n});\n\nconst fromCanonicalStaticRedactionResult = (\n result: CanonicalStaticRedactionResult,\n): NativeStaticRedactionResult => ({\n resolvedEntities: result.resolved_entities.map(\n ({ source_detail, provider_id, detection_id, ...entity }) => ({\n ...entity,\n ...(source_detail ? { sourceDetail: source_detail } : {}),\n ...(provider_id ? { providerId: provider_id } : {}),\n ...(detection_id ? { detectionId: detection_id } : {}),\n }),\n ),\n redaction: {\n redactedText: result.redaction.redacted_text,\n redactionMap: toRedactionMap(result.redaction.redaction_map),\n operatorMap: toOperatorMap(result.redaction.operator_map),\n entityCount: result.redaction.entity_count,\n },\n});\n\nconst toNativePipelineEntity = (\n entity: NativeBindingPipelineEntity,\n): NativePipelineEntity => ({\n start: entity.start,\n end: entity.end,\n label: entity.label,\n text: entity.text,\n score: entity.score,\n source: entity.source,\n ...(entity.sourceDetail ? { sourceDetail: entity.sourceDetail } : {}),\n ...(entity.providerId ? { providerId: entity.providerId } : {}),\n ...(entity.detectionId ? { detectionId: entity.detectionId } : {}),\n});\n\nconst toNativeRedactionResult = (\n result: NativeBindingRedactionResult,\n): NativeRedactionResult => ({\n redactedText: result.redactedText,\n redactionMap: toRedactionMap(result.redactionMap),\n operatorMap: toOperatorMap(result.operatorMap),\n entityCount: result.entityCount,\n});\n\nconst toRedactionMap = (\n entries: readonly NativeBindingRedactionEntry[],\n): Map<string, string> => {\n const map = new Map<string, string>();\n for (const entry of entries) {\n map.set(entry.placeholder, entry.original);\n }\n return map;\n};\n\nconst toOperatorMap = (\n entries: readonly NativeBindingOperatorEntry[],\n): Map<string, OperatorType> => {\n const map = new Map<string, OperatorType>();\n for (const entry of entries) {\n map.set(entry.placeholder, entry.operator);\n }\n return map;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"native.mjs","names":["#maximumBytes","#label","#reportedMaximumBytes","#reserve","#requireNumber","#appendNumber","#appendReservedRun","#bytes","#chunks","#suffix","#session","#plan","#prepared","#anonymizer"],"sources":["../src/native.ts"],"sourcesContent":["import type { NativePreparedSearchConfig } from \"./native-search-config\";\nimport type { OperatorSelection, OperatorType } from \"./types\";\n\nexport type { NativePreparedSearchConfig } from \"./native-search-config\";\n\ntype NativeBindingOperatorConfig = {\n operators?: Record<string, OperatorSelection>;\n redactString?: string;\n};\n\ntype NativeBindingCallerRedactionOptions = {\n requestJson: string;\n operators?: NativeBindingOperatorConfig;\n};\n\ntype NativeBindingSessionCallerRedactionInput = {\n fullText: string;\n requestJson: string;\n};\n\ntype NativeBindingSessionCallerRedactionPlanOptions = {\n inputs: NativeBindingSessionCallerRedactionInput[];\n operators?: NativeBindingOperatorConfig;\n observedAtEpochSeconds?: number;\n};\n\ntype NativeBindingOpenSessionArchiveOptions = {\n archive: Uint8Array;\n key: Uint8Array;\n expectedSessionId: string;\n observedAtEpochSeconds?: number;\n};\n\nexport type NativeDiagnosticsBatchCallback = (diagnosticsJson: string) => void;\nexport type NativeResultEventCallback = (eventJson: string) => void;\n\ntype NativeBindingRedactionEntry = {\n placeholder: string;\n original: string;\n};\n\ntype NativeBindingOperatorEntry = {\n placeholder: string;\n operator: OperatorType;\n};\n\ntype NativeBindingPipelineEntity = {\n start: number;\n end: number;\n label: string;\n text: string;\n score: number;\n source: string;\n sourceDetail?: string | null;\n providerId?: string | null;\n detectionId?: string | null;\n};\n\ntype NativeBindingRedactionResult = {\n redactedText: string;\n redactionMap: NativeBindingRedactionEntry[];\n operatorMap: NativeBindingOperatorEntry[];\n entityCount: number;\n};\n\ntype NativeBindingStaticRedactionResult = {\n resolvedEntities: NativeBindingPipelineEntity[];\n redaction: NativeBindingRedactionResult;\n};\n\ntype CanonicalPipelineEntity = {\n start: number;\n end: number;\n label: string;\n text: string;\n score: number;\n source: string;\n source_detail?: string | null;\n provider_id?: string | null;\n detection_id?: string | null;\n};\n\ntype CanonicalStaticRedactionResult = {\n resolved_entities: CanonicalPipelineEntity[];\n redaction: {\n redacted_text: string;\n redaction_map: NativeBindingRedactionEntry[];\n operator_map: NativeBindingOperatorEntry[];\n entity_count: number;\n };\n};\n\ntype CanonicalSessionMetadata = {\n session_id: string;\n created_at_epoch_seconds: number | null;\n expires_at_epoch_seconds: number | null;\n mapping_count: number;\n status: NativeSessionStatus;\n};\n\ntype CanonicalSessionDeletionSummary = {\n session_id: string;\n deleted_mapping_count: number;\n};\n\ntype CanonicalSessionRedactionPlanResult = {\n replacements: Array<{ start: number; end: number; replacement: string }>;\n entity_count: number;\n caller_entity_count: number;\n};\n\nexport type NativeSessionStatus =\n | \"active\"\n | \"not_yet_active\"\n | \"expired\"\n | \"deleted\";\n\nexport type NativeSessionLifecycle = {\n createdAtEpochSeconds: number;\n expiresAtEpochSeconds?: number;\n};\n\nexport type NativeSessionMetadata = {\n sessionId: string;\n createdAtEpochSeconds: number | null;\n expiresAtEpochSeconds: number | null;\n mappingCount: number;\n status: NativeSessionStatus;\n};\n\nexport type NativeSessionDeletionSummary = {\n sessionId: string;\n deletedMappingCount: number;\n};\n\nexport type NativeSessionRedactionAtOptions = {\n fullText: string;\n observedAtEpochSeconds: number;\n operators?: NativeOperatorConfig;\n};\n\nexport type NativeCreateSessionWithLifecycleOptions = NativeSessionLifecycle & {\n sessionId: string;\n};\n\nexport type NativeOpenSessionArchiveOptions = {\n archive: Uint8Array;\n key: Uint8Array;\n expectedSessionId: string;\n observedAtEpochSeconds?: number;\n};\n\nexport type NativePreparedRedactionSessionBinding = {\n sessionId: () => string;\n mappingCount: () => number;\n restoreText: (fullText: string) => string;\n restoreTextAt: (fullText: string, observedAtEpochSeconds: number) => string;\n toPlaintextJson: () => string;\n toPlaintextJsonAt: (observedAtEpochSeconds: number) => string;\n toEncryptedArchive: (key: Uint8Array) => Uint8Array;\n toEncryptedArchiveAt: (\n key: Uint8Array,\n observedAtEpochSeconds: number,\n ) => Uint8Array;\n inspectJson: (observedAtEpochSeconds?: number) => string;\n deleteJson: () => string;\n redactStaticEntitiesJson: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n redactStaticEntitiesJsonAt: (\n fullText: string,\n observedAtEpochSeconds: number,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n planStaticEntitiesWithCallerDetections: (\n options: NativeBindingSessionCallerRedactionPlanOptions,\n ) => NativePreparedSessionRedactionPlanBinding;\n};\n\nexport type NativePreparedSessionRedactionPlanBinding = {\n resultJson: () => string;\n commit: () => void;\n};\n\nexport type NativePreparedSearchBinding = {\n prepareDiagnosticsJson: () => string;\n warmLazyRegex: () => void;\n warmLazyRegexDiagnosticsJson: () => string;\n createRedactionSession: (\n sessionId: string,\n ) => NativePreparedRedactionSessionBinding;\n createRedactionSessionWithLifecycle: (\n sessionId: string,\n createdAtEpochSeconds: number,\n expiresAtEpochSeconds?: number,\n ) => NativePreparedRedactionSessionBinding;\n restoreRedactionSession: (\n plaintextJson: string,\n ) => NativePreparedRedactionSessionBinding;\n restoreEncryptedRedactionSession: (\n options: NativeBindingOpenSessionArchiveOptions,\n ) => NativePreparedRedactionSessionBinding;\n redactStaticEntities: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => NativeBindingStaticRedactionResult;\n redactStaticEntitiesJson: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n redactStaticEntitiesWithCallerDetectionsJson: (\n fullText: string,\n options: NativeBindingCallerRedactionOptions,\n ) => string;\n redactStaticEntitiesWithCallerDetectionsDiagnosticsJson: (\n fullText: string,\n options: NativeBindingCallerRedactionOptions,\n ) => string;\n redactStaticEntitiesResultStreamJson: (\n fullText: string,\n operators: NativeBindingOperatorConfig | undefined,\n onEvent: NativeResultEventCallback,\n ) => string;\n redactStaticEntitiesDiagnosticsJson: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n redactStaticEntitiesDiagnosticsStreamJson: (\n fullText: string,\n operators: NativeBindingOperatorConfig | undefined,\n onBatch: NativeDiagnosticsBatchCallback,\n ) => string;\n redactStaticEntitiesSummaryDiagnosticsJson: (\n fullText: string,\n operators?: NativeBindingOperatorConfig,\n ) => string;\n};\n\nexport type NativeAnonymizeBinding = {\n convertExternalDetectionBatch: (\n document: Uint8Array,\n batchJson: string,\n ) => NativeCallerDetection[];\n externalDetectionLimitsJson: () => string;\n extractDocxTextJson: (document: Uint8Array) => string;\n inspectPdfJson: (document: Uint8Array, observationsJson?: string) => string;\n rewritePdfRasterFromDetectionsJson: (\n document: Uint8Array,\n requestJson: string,\n pagePixels: readonly Uint8Array[],\n ) => { document: Uint8Array; certificateJson: string };\n rewriteDocxTextNative: (\n document: Uint8Array,\n rewritesJson: string,\n ) => {\n document: Uint8Array;\n rewrittenBlockCount: number;\n appliedReplacementCount: number;\n };\n planDocxRestorationJson: (document: Uint8Array, sessionId: string) => string;\n normalizeForSearch: (text: string) => string;\n nativePackageVersion: () => string;\n NativePreparedSearch: {\n fromConfigJsonBytes: (\n configJson: Uint8Array,\n ) => NativePreparedSearchBinding;\n fromPreparedPackageBytes: (\n packageBytes: Uint8Array,\n ) => NativePreparedSearchBinding;\n fromPreparedPackageBytesWithoutCache: (\n packageBytes: Uint8Array,\n ) => NativePreparedSearchBinding;\n fromTrustedPreparedPackageBytes: (\n packageBytes: Uint8Array,\n ) => NativePreparedSearchBinding;\n fromTrustedPreparedPackageBytesWithoutCache: (\n packageBytes: Uint8Array,\n ) => NativePreparedSearchBinding;\n };\n prepareStaticSearchPackageBytes: (configJson: Uint8Array) => Uint8Array;\n prepareStaticSearchCompressedPackageBytes: (\n configJson: Uint8Array,\n ) => Uint8Array;\n // Rust config assembler (replaces the retired TypeScript config-assembly\n // layer). Takes the pipeline config plus out-of-band dictionaries and\n // gazetteer JSON and returns either the assembled config JSON or ready\n // package bytes. Every parity runtime must expose these required members.\n assembleStaticSearchConfigJson: (\n pipelineConfigJson: Uint8Array,\n dictionariesJson?: Uint8Array,\n gazetteerJson?: Uint8Array,\n ) => Uint8Array;\n assembleStaticSearchPackageBytes: (\n pipelineConfigJson: Uint8Array,\n dictionariesJson?: Uint8Array,\n gazetteerJson?: Uint8Array,\n ) => Uint8Array;\n assembleStaticSearchCompressedPackageBytes: (\n pipelineConfigJson: Uint8Array,\n dictionariesJson?: Uint8Array,\n gazetteerJson?: Uint8Array,\n ) => Uint8Array;\n};\n\ntype FunctionMemberNames<T> = {\n [Key in keyof T]-?: T[Key] extends (...args: never[]) => unknown\n ? Key\n : never;\n}[keyof T];\n\n/** Exhaustive runtime-member contract shared by loaders and parity gates. */\nexport const NATIVE_BINDING_PARITY_MEMBERS = {\n root: [\n \"convertExternalDetectionBatch\",\n \"externalDetectionLimitsJson\",\n \"extractDocxTextJson\",\n \"inspectPdfJson\",\n \"rewritePdfRasterFromDetectionsJson\",\n \"rewriteDocxTextNative\",\n \"planDocxRestorationJson\",\n \"normalizeForSearch\",\n \"nativePackageVersion\",\n \"prepareStaticSearchPackageBytes\",\n \"prepareStaticSearchCompressedPackageBytes\",\n \"assembleStaticSearchConfigJson\",\n \"assembleStaticSearchPackageBytes\",\n \"assembleStaticSearchCompressedPackageBytes\",\n ],\n factories: [\n \"fromConfigJsonBytes\",\n \"fromPreparedPackageBytes\",\n \"fromPreparedPackageBytesWithoutCache\",\n \"fromTrustedPreparedPackageBytes\",\n \"fromTrustedPreparedPackageBytesWithoutCache\",\n ],\n prepared: [\n \"prepareDiagnosticsJson\",\n \"warmLazyRegex\",\n \"warmLazyRegexDiagnosticsJson\",\n \"createRedactionSession\",\n \"createRedactionSessionWithLifecycle\",\n \"restoreRedactionSession\",\n \"restoreEncryptedRedactionSession\",\n \"redactStaticEntities\",\n \"redactStaticEntitiesJson\",\n \"redactStaticEntitiesWithCallerDetectionsJson\",\n \"redactStaticEntitiesWithCallerDetectionsDiagnosticsJson\",\n \"redactStaticEntitiesResultStreamJson\",\n \"redactStaticEntitiesDiagnosticsJson\",\n \"redactStaticEntitiesDiagnosticsStreamJson\",\n \"redactStaticEntitiesSummaryDiagnosticsJson\",\n ],\n session: [\n \"sessionId\",\n \"mappingCount\",\n \"restoreText\",\n \"restoreTextAt\",\n \"toPlaintextJson\",\n \"toPlaintextJsonAt\",\n \"toEncryptedArchive\",\n \"toEncryptedArchiveAt\",\n \"inspectJson\",\n \"deleteJson\",\n \"redactStaticEntitiesJson\",\n \"redactStaticEntitiesJsonAt\",\n \"planStaticEntitiesWithCallerDetections\",\n ],\n plan: [\"resultJson\", \"commit\"],\n} as const satisfies {\n root: readonly FunctionMemberNames<NativeAnonymizeBinding>[];\n factories: readonly FunctionMemberNames<\n NativeAnonymizeBinding[\"NativePreparedSearch\"]\n >[];\n prepared: readonly FunctionMemberNames<NativePreparedSearchBinding>[];\n session: readonly FunctionMemberNames<NativePreparedRedactionSessionBinding>[];\n plan: readonly FunctionMemberNames<NativePreparedSessionRedactionPlanBinding>[];\n};\n\nconst ROOT_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativeAnonymizeBinding>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.root)[number]\n> extends never\n ? true\n : never = true;\nconst FACTORY_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativeAnonymizeBinding[\"NativePreparedSearch\"]>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.factories)[number]\n> extends never\n ? true\n : never = true;\nconst PREPARED_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativePreparedSearchBinding>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.prepared)[number]\n> extends never\n ? true\n : never = true;\nconst SESSION_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativePreparedRedactionSessionBinding>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.session)[number]\n> extends never\n ? true\n : never = true;\nconst PLAN_PARITY_IS_EXHAUSTIVE: Exclude<\n FunctionMemberNames<NativePreparedSessionRedactionPlanBinding>,\n (typeof NATIVE_BINDING_PARITY_MEMBERS.plan)[number]\n> extends never\n ? true\n : never = true;\nvoid [\n ROOT_PARITY_IS_EXHAUSTIVE,\n FACTORY_PARITY_IS_EXHAUSTIVE,\n PREPARED_PARITY_IS_EXHAUSTIVE,\n SESSION_PARITY_IS_EXHAUSTIVE,\n PLAN_PARITY_IS_EXHAUSTIVE,\n];\n\nconst isBindingPropertyBag = (\n value: unknown,\n): value is Record<string, unknown> =>\n (typeof value === \"object\" && value !== null) || typeof value === \"function\";\n\n/** Validate the complete runtime-neutral root and factory binding shape. */\nexport const isNativeAnonymizeBinding = (\n candidate: unknown,\n): candidate is NativeAnonymizeBinding => {\n if (!isBindingPropertyBag(candidate)) {\n return false;\n }\n if (\n !NATIVE_BINDING_PARITY_MEMBERS.root.every(\n (name) => typeof candidate[name] === \"function\",\n )\n ) {\n return false;\n }\n const preparedSearch = candidate[\"NativePreparedSearch\"];\n return (\n isBindingPropertyBag(preparedSearch) &&\n NATIVE_BINDING_PARITY_MEMBERS.factories.every(\n (name) => typeof preparedSearch[name] === \"function\",\n )\n );\n};\n\nexport type NativeOperatorConfig = {\n operators?: Record<string, OperatorSelection>;\n redactString?: string;\n};\n\nexport const CALLER_DETECTION_CONTRACT_VERSION = 2;\nexport const CALLER_DETECTION_MAX_COUNT = 1_000_000;\nexport const CALLER_DETECTION_TEXT_MAX_BYTES = 64 * 1024 * 1024;\nexport const CALLER_DETECTION_REQUEST_JSON_MAX_BYTES = 16 * 1024 * 1024;\nexport const SESSION_CALLER_MAX_INPUTS = 100_000;\nexport const SESSION_CALLER_INPUTS_JSON_MAX_BYTES = 64 * 1024 * 1024;\n\nexport const EXTERNAL_DETECTION_BATCH_VERSION = 1 as const;\nexport const EXTERNAL_DETECTION_BATCH_MAX_BYTES = 16 * 1024 * 1024;\nexport const EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES = 64 * 1024 * 1024;\nexport const EXTERNAL_DETECTION_MAX_DETECTIONS = 100_000;\nexport const EXTERNAL_DETECTION_MAX_LABEL_MAPPINGS = 4_096;\nexport const EXTERNAL_DETECTION_MAX_METADATA_BYTES = 256;\nexport const EXTERNAL_DETECTION_PROVIDER_ID_MAX_BYTES = 128;\n\nexport const EXTERNAL_DETECTION_OFFSET_UNITS = {\n unicodeCodePoint: \"unicode-code-point\",\n utf16CodeUnit: \"utf16-code-unit\",\n utf8Byte: \"utf8-byte\",\n} as const;\n\nexport type ExternalDetectionOffsetUnit =\n (typeof EXTERNAL_DETECTION_OFFSET_UNITS)[keyof typeof EXTERNAL_DETECTION_OFFSET_UNITS];\n\nexport type ExternalDetectionBatch = {\n version: typeof EXTERNAL_DETECTION_BATCH_VERSION;\n document: { sha256: string };\n offsetUnit: ExternalDetectionOffsetUnit;\n provider: { id: string; name: string; version: string };\n labelMap: readonly {\n providerLabel: string;\n entityLabel: string;\n }[];\n detections: readonly {\n id: string;\n start: number;\n end: number;\n label: string;\n score: number;\n }[];\n};\n\nexport type NativeCallerDetection = {\n start: number;\n end: number;\n label: string;\n score: number;\n providerId: string;\n detectionId: string;\n};\n\nexport type ConvertExternalDetectionBatchOptions = {\n binding: NativeAnonymizeBinding;\n document: Uint8Array;\n batch: ExternalDetectionBatch | string;\n};\n\nexport const convert_external_detection_batch = ({\n binding,\n document,\n batch,\n}: ConvertExternalDetectionBatchOptions): NativeCallerDetection[] => {\n return binding.convertExternalDetectionBatch(\n document,\n typeof batch === \"string\" ? batch : JSON.stringify(batch),\n );\n};\n\nexport type NativeCallerRedactionOptions = {\n detections: readonly NativeCallerDetection[];\n operators?: NativeOperatorConfig;\n};\n\nexport type NativeSessionCallerRedactionInput = {\n fullText: string;\n detections: readonly NativeCallerDetection[];\n};\n\nexport type NativeSessionCallerRedactionPlanOptions = {\n inputs: readonly NativeSessionCallerRedactionInput[];\n operators?: NativeOperatorConfig;\n observedAtEpochSeconds?: number;\n};\n\nexport type NativeTextReplacement = {\n start: number;\n end: number;\n replacement: string;\n};\n\nexport type NativeSessionBlockRedactionPlan = {\n replacements: readonly NativeTextReplacement[];\n entityCount: number;\n callerEntityCount: number;\n};\n\nconst utf8ByteLengthWithin = (\n text: string,\n maximum: number,\n): number | undefined => {\n let bytes = 0;\n for (let index = 0; index < text.length; index += 1) {\n const unit = text.charCodeAt(index);\n if (unit <= 0x7f) {\n bytes += 1;\n } else if (unit <= 0x7ff) {\n bytes += 2;\n } else if (\n unit >= 0xd800 &&\n unit <= 0xdbff &&\n index + 1 < text.length &&\n text.charCodeAt(index + 1) >= 0xdc00 &&\n text.charCodeAt(index + 1) <= 0xdfff\n ) {\n bytes += 4;\n index += 1;\n } else {\n bytes += 3;\n }\n if (bytes > maximum) {\n return undefined;\n }\n }\n return bytes;\n};\n\nconst validateCallerDetectionInput = (\n fullText: string,\n detections: readonly NativeCallerDetection[],\n): number => {\n if (!Array.isArray(detections)) {\n throw new TypeError(\"Caller detections must be an array\");\n }\n if (detections.length > CALLER_DETECTION_MAX_COUNT) {\n throw new RangeError(\n `Caller detections contains ${detections.length} items; the maximum is ${CALLER_DETECTION_MAX_COUNT}`,\n );\n }\n const textBytes = utf8ByteLengthWithin(\n fullText,\n CALLER_DETECTION_TEXT_MAX_BYTES,\n );\n if (textBytes === undefined) {\n throw new RangeError(\n `Caller detection text exceeds the ${CALLER_DETECTION_TEXT_MAX_BYTES}-byte maximum`,\n );\n }\n return textBytes;\n};\n\nabstract class BoundedJsonSink {\n readonly #maximumBytes: number;\n readonly #label: string;\n readonly #reportedMaximumBytes: number;\n #bytes = 0;\n\n constructor(maximumBytes: number, label: string, suffix: string) {\n this.#maximumBytes = maximumBytes - suffix.length;\n this.#label = label;\n this.#reportedMaximumBytes = maximumBytes;\n }\n\n appendAscii(value: string): void {\n this.#reserve(value.length);\n this.capture(value);\n }\n\n appendOffset(value: number, field: string): void {\n this.#requireNumber(value, field);\n if (!Number.isInteger(value) || value < 0 || value > 0xff_ff_ff_ff) {\n throw new RangeError(\n `${field} must be an integer between 0 and 4294967295`,\n );\n }\n this.#appendNumber(value);\n }\n\n appendScore(value: number, field: string): void {\n this.#requireNumber(value, field);\n if (!Number.isFinite(value) || value < 0 || value > 1) {\n throw new RangeError(`${field} must be finite and between 0 and 1`);\n }\n this.#appendNumber(value);\n }\n\n appendString(value: string, field: string): void {\n if (typeof value !== \"string\") {\n throw new TypeError(`${field} must be a string`);\n }\n this.appendAscii('\"');\n let runStart = 0;\n for (let index = 0; index < value.length; index += 1) {\n const unit = value.charCodeAt(index);\n const escape = jsonEscape(unit);\n if (escape !== undefined) {\n this.#appendReservedRun(value, runStart, index);\n this.appendAscii(escape);\n runStart = index + 1;\n continue;\n }\n if (\n unit >= 0xd800 &&\n unit <= 0xdbff &&\n index + 1 < value.length &&\n value.charCodeAt(index + 1) >= 0xdc00 &&\n value.charCodeAt(index + 1) <= 0xdfff\n ) {\n this.#reserve(4);\n index += 1;\n continue;\n }\n if (unit >= 0xd800 && unit <= 0xdfff) {\n this.#appendReservedRun(value, runStart, index);\n this.appendAscii(`\\\\u${unit.toString(16).padStart(4, \"0\")}`);\n runStart = index + 1;\n continue;\n }\n let unitBytes = 3;\n if (unit <= 0x7f) {\n unitBytes = 1;\n } else if (unit <= 0x7ff) {\n unitBytes = 2;\n }\n this.#reserve(unitBytes);\n }\n this.#appendReservedRun(value, runStart, value.length);\n this.appendAscii('\"');\n }\n\n #appendReservedRun(value: string, start: number, end: number): void {\n if (end > start) {\n this.capture(value.slice(start, end));\n }\n }\n\n #appendNumber(value: number): void {\n this.appendAscii(JSON.stringify(value));\n }\n\n #requireNumber(value: number, field: string): void {\n if (typeof value !== \"number\") {\n throw new TypeError(`${field} must be a number`);\n }\n }\n\n #reserve(bytes: number): void {\n if (bytes > this.#maximumBytes - this.#bytes) {\n throw new RangeError(\n `${this.#label} exceeds the ${this.#reportedMaximumBytes}-byte maximum`,\n );\n }\n this.#bytes += bytes;\n }\n\n protected abstract capture(value: string): void;\n}\n\nclass CountingJsonBudget extends BoundedJsonSink {\n protected capture(value: string): void {\n void value;\n }\n}\n\nclass BoundedJsonWriter extends BoundedJsonSink {\n readonly #chunks: string[] = [];\n readonly #suffix: string;\n\n constructor(maximumBytes: number, label: string, suffix: string) {\n super(maximumBytes, label, suffix);\n this.#suffix = suffix;\n }\n\n finish(): string {\n return this.#chunks.join(\"\") + this.#suffix;\n }\n\n protected capture(value: string): void {\n this.#chunks.push(value);\n }\n}\n\nconst jsonEscape = (unit: number): string | undefined => {\n switch (unit) {\n case 0x08:\n return \"\\\\b\";\n case 0x09:\n return \"\\\\t\";\n case 0x0a:\n return \"\\\\n\";\n case 0x0c:\n return \"\\\\f\";\n case 0x0d:\n return \"\\\\r\";\n case 0x22:\n return '\\\\\"';\n case 0x5c:\n return \"\\\\\\\\\";\n default:\n return unit < 0x20\n ? `\\\\u${unit.toString(16).padStart(4, \"0\")}`\n : undefined;\n }\n};\n\nconst callerDetectionRequestJson = (\n fullText: string,\n detections: readonly NativeCallerDetection[],\n): string => {\n validateCallerDetectionInput(fullText, detections);\n return serializeCallerDetectionRequest(detections);\n};\n\nconst serializeCallerDetectionRequest = (\n detections: readonly NativeCallerDetection[],\n): string => {\n const writer = new BoundedJsonWriter(\n CALLER_DETECTION_REQUEST_JSON_MAX_BYTES,\n \"Caller detection request JSON\",\n \"]}\",\n );\n writer.appendAscii(\n `{\"version\":${CALLER_DETECTION_CONTRACT_VERSION},\"detections\":[`,\n );\n for (let index = 0; index < detections.length; index += 1) {\n const detection = detections[index];\n if (detection === undefined) {\n throw new TypeError(\"Caller detections must not be sparse\");\n }\n if (index > 0) {\n writer.appendAscii(\",\");\n }\n writer.appendAscii('{\"start\":');\n writer.appendOffset(detection.start, \"Caller detection start\");\n writer.appendAscii(',\"end\":');\n writer.appendOffset(detection.end, \"Caller detection end\");\n writer.appendAscii(',\"label\":');\n writer.appendString(detection.label, \"Caller detection label\");\n writer.appendAscii(',\"score\":');\n writer.appendScore(detection.score, \"Caller detection score\");\n writer.appendAscii(',\"provider_id\":');\n writer.appendString(detection.providerId, \"Caller detection providerId\");\n writer.appendAscii(',\"detection_id\":');\n writer.appendString(detection.detectionId, \"Caller detection detectionId\");\n writer.appendAscii(\"}\");\n }\n return writer.finish();\n};\n\nconst toBindingSessionCallerInputs = (\n inputs: readonly NativeSessionCallerRedactionInput[],\n) => {\n if (!Array.isArray(inputs)) {\n throw new TypeError(\"Session caller inputs must be an array\");\n }\n if (inputs.length > SESSION_CALLER_MAX_INPUTS) {\n throw new RangeError(\n `Session caller inputs contains ${inputs.length} items; the maximum is ${SESSION_CALLER_MAX_INPUTS}`,\n );\n }\n let detectionCount = 0;\n let textBytes = 0;\n const bindingInputs: NativeBindingSessionCallerRedactionInput[] = [];\n const budget = new CountingJsonBudget(\n SESSION_CALLER_INPUTS_JSON_MAX_BYTES,\n \"Session caller inputs JSON\",\n \"]\",\n );\n budget.appendAscii(\"[\");\n for (let index = 0; index < inputs.length; index += 1) {\n const input = inputs[index];\n if (input === undefined) {\n throw new TypeError(\"Session caller inputs must not be sparse\");\n }\n const { detections, fullText } = input;\n const inputTextBytes = validateCallerDetectionInput(fullText, detections);\n detectionCount += detections.length;\n if (detectionCount > CALLER_DETECTION_MAX_COUNT) {\n throw new RangeError(\n `Session caller detections contains ${detectionCount} items; the maximum is ${CALLER_DETECTION_MAX_COUNT}`,\n );\n }\n textBytes += inputTextBytes;\n if (textBytes > CALLER_DETECTION_TEXT_MAX_BYTES) {\n throw new RangeError(\n `Session caller text contains ${textBytes} bytes; the maximum is ${CALLER_DETECTION_TEXT_MAX_BYTES}`,\n );\n }\n const requestJson = serializeCallerDetectionRequest(detections);\n if (index > 0) {\n budget.appendAscii(\",\");\n }\n budget.appendAscii('{\"full_text\":');\n budget.appendString(fullText, \"Session caller fullText\");\n budget.appendAscii(',\"request_json\":');\n budget.appendString(requestJson, \"Session caller requestJson\");\n budget.appendAscii(\"}\");\n bindingInputs.push({ fullText, requestJson });\n }\n return bindingInputs;\n};\n\nexport type NativePipelineEntity = {\n start: number;\n end: number;\n label: string;\n text: string;\n score: number;\n source: string;\n sourceDetail?: string;\n providerId?: string;\n detectionId?: string;\n};\n\nexport type NativeRedactionResult = {\n redactedText: string;\n redactionMap: Map<string, string>;\n operatorMap: Map<string, OperatorType>;\n entityCount: number;\n};\n\nexport type NativeStaticRedactionResult = {\n resolvedEntities: NativePipelineEntity[];\n redaction: NativeRedactionResult;\n};\n\nexport type NativeSearchPackageOptions = {\n binding: NativeAnonymizeBinding;\n config: NativePreparedSearchConfig;\n compressed?: boolean;\n};\n\nexport type NativeSearchPackageInput =\n | NativePreparedSearchConfig\n | string\n | Uint8Array;\n\nexport type SharedNativeSearchPackageOptions = {\n binding: NativeAnonymizeBinding;\n config: NativeSearchPackageInput;\n compressed?: boolean;\n};\n\nexport type SharedNativePreparedPackageOptions = {\n binding: NativeAnonymizeBinding;\n packageBytes: Uint8Array;\n};\n\nexport type SharedNativeRedactTextJsonOptions = {\n binding: NativeAnonymizeBinding;\n config: NativeSearchPackageInput;\n fullText: string;\n operators?: NativeOperatorConfig;\n};\n\nexport type SharedNativeRedactTextOptions = SharedNativeRedactTextJsonOptions;\n\nexport type SharedNativeDiagnosticsJsonOptions =\n SharedNativeRedactTextJsonOptions;\n\nexport type SharedNativeDiagnosticsStreamJsonOptions =\n SharedNativeRedactTextJsonOptions & {\n onBatch: NativeDiagnosticsBatchCallback;\n };\n\nexport type SharedNativeRedactTextStreamJsonOptions =\n SharedNativeRedactTextJsonOptions & {\n onEvent: NativeResultEventCallback;\n };\n\nexport type NativeNormalizeOptions = {\n binding: NativeAnonymizeBinding;\n text: string;\n};\n\nexport type NativeAnonymizerFromConfigOptions = {\n binding: NativeAnonymizeBinding;\n config: NativePreparedSearchConfig;\n};\n\nexport type NativeAnonymizerFromPackageOptions = {\n binding: NativeAnonymizeBinding;\n packageBytes: Uint8Array;\n};\n\nexport type NativePipelineFromPackageOptions =\n NativeAnonymizerFromPackageOptions;\n\nexport type NativeBindingVersionOptions = {\n binding: NativeAnonymizeBinding;\n expectedVersion: string;\n};\n\nexport class PreparedNativeRedactionSession {\n readonly #session: NativePreparedRedactionSessionBinding;\n\n constructor(session: NativePreparedRedactionSessionBinding) {\n this.#session = session;\n }\n\n sessionId(): string {\n return this.#session.sessionId();\n }\n\n session_id(): string {\n return this.sessionId();\n }\n\n mappingCount(): number {\n return this.#session.mappingCount();\n }\n\n mapping_count(): number {\n return this.mappingCount();\n }\n\n restoreText(fullText: string, observedAtEpochSeconds?: number): string {\n if (observedAtEpochSeconds === undefined) {\n return this.#session.restoreText(fullText);\n }\n return this.#session.restoreTextAt(fullText, observedAtEpochSeconds);\n }\n\n restore_text(fullText: string, observedAtEpochSeconds?: number): string {\n return this.restoreText(fullText, observedAtEpochSeconds);\n }\n\n toPlaintextJson(): string {\n return this.#session.toPlaintextJson();\n }\n\n to_plaintext_json(): string {\n return this.toPlaintextJson();\n }\n\n toPlaintextJsonAt(observedAtEpochSeconds: number): string {\n return this.#session.toPlaintextJsonAt(observedAtEpochSeconds);\n }\n\n to_plaintext_json_at(observedAtEpochSeconds: number): string {\n return this.toPlaintextJsonAt(observedAtEpochSeconds);\n }\n\n toEncryptedArchive(key: Uint8Array): Uint8Array {\n return this.#session.toEncryptedArchive(key);\n }\n\n to_encrypted_archive(key: Uint8Array): Uint8Array {\n return this.toEncryptedArchive(key);\n }\n\n toEncryptedArchiveAt(\n key: Uint8Array,\n observedAtEpochSeconds: number,\n ): Uint8Array {\n return this.#session.toEncryptedArchiveAt(key, observedAtEpochSeconds);\n }\n\n to_encrypted_archive_at(\n key: Uint8Array,\n observedAtEpochSeconds: number,\n ): Uint8Array {\n return this.toEncryptedArchiveAt(key, observedAtEpochSeconds);\n }\n\n inspect(observedAtEpochSeconds?: number): NativeSessionMetadata {\n const metadata: CanonicalSessionMetadata = JSON.parse(\n this.#session.inspectJson(observedAtEpochSeconds),\n );\n return {\n sessionId: metadata.session_id,\n createdAtEpochSeconds: metadata.created_at_epoch_seconds,\n expiresAtEpochSeconds: metadata.expires_at_epoch_seconds,\n mappingCount: metadata.mapping_count,\n status: metadata.status,\n };\n }\n\n delete(): NativeSessionDeletionSummary {\n const summary: CanonicalSessionDeletionSummary = JSON.parse(\n this.#session.deleteJson(),\n );\n return {\n sessionId: summary.session_id,\n deletedMappingCount: summary.deleted_mapping_count,\n };\n }\n\n redactStaticEntities(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n const result: CanonicalStaticRedactionResult = JSON.parse(\n this.redact_text_json(fullText, operators),\n );\n return fromCanonicalStaticRedactionResult(result);\n }\n\n redactText(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntities(fullText, operators);\n }\n\n redact_text(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.redactText(fullText, operators);\n }\n\n redactTextJson(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redact_text_json(fullText, operators);\n }\n\n redact_text_json(fullText: string, operators?: NativeOperatorConfig): string {\n return this.#session.redactStaticEntitiesJson(\n fullText,\n toBindingOperatorConfig(operators),\n );\n }\n\n redactStaticEntitiesAt(\n options: NativeSessionRedactionAtOptions,\n ): NativeStaticRedactionResult {\n const result: CanonicalStaticRedactionResult = JSON.parse(\n this.redactTextJsonAt(options),\n );\n return fromCanonicalStaticRedactionResult(result);\n }\n\n redactTextAt(\n options: NativeSessionRedactionAtOptions,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntitiesAt(options);\n }\n\n redact_text_at(\n options: NativeSessionRedactionAtOptions,\n ): NativeStaticRedactionResult {\n return this.redactTextAt(options);\n }\n\n redact_static_entities_at(\n options: NativeSessionRedactionAtOptions,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntitiesAt(options);\n }\n\n redactTextJsonAt({\n fullText,\n observedAtEpochSeconds,\n operators,\n }: NativeSessionRedactionAtOptions): string {\n return this.#session.redactStaticEntitiesJsonAt(\n fullText,\n observedAtEpochSeconds,\n toBindingOperatorConfig(operators),\n );\n }\n\n redact_text_json_at(options: NativeSessionRedactionAtOptions): string {\n return this.redactTextJsonAt(options);\n }\n\n planTextBatchWithCallerDetections({\n inputs,\n operators,\n observedAtEpochSeconds,\n }: NativeSessionCallerRedactionPlanOptions): PreparedNativeSessionRedactionPlan {\n const bindingOperators = toBindingOperatorConfig(operators);\n const bindingPlan = this.#session.planStaticEntitiesWithCallerDetections({\n inputs: toBindingSessionCallerInputs(inputs),\n ...(bindingOperators === undefined\n ? {}\n : { operators: bindingOperators }),\n ...(observedAtEpochSeconds === undefined\n ? {}\n : { observedAtEpochSeconds }),\n });\n return new PreparedNativeSessionRedactionPlan(bindingPlan);\n }\n}\n\nexport class PreparedNativeSessionRedactionPlan {\n readonly blocks: readonly NativeSessionBlockRedactionPlan[];\n readonly #plan: NativePreparedSessionRedactionPlanBinding;\n\n constructor(plan: NativePreparedSessionRedactionPlanBinding) {\n this.#plan = plan;\n const blocks: CanonicalSessionRedactionPlanResult[] = JSON.parse(\n plan.resultJson(),\n );\n this.blocks = blocks.map(\n ({ caller_entity_count, entity_count, replacements }) => ({\n replacements,\n entityCount: entity_count,\n callerEntityCount: caller_entity_count,\n }),\n );\n }\n\n commit(): void {\n this.#plan.commit();\n }\n}\n\nexport class PreparedNativeAnonymizer {\n readonly #prepared: NativePreparedSearchBinding;\n\n constructor(prepared: NativePreparedSearchBinding) {\n this.#prepared = prepared;\n }\n\n prepareDiagnosticsJson(): string {\n return this.#prepared.prepareDiagnosticsJson();\n }\n\n prepare_diagnostics_json(): string {\n return this.prepareDiagnosticsJson();\n }\n\n warmLazyRegex(): void {\n this.#prepared.warmLazyRegex();\n }\n\n warm_lazy_regex(): void {\n this.warmLazyRegex();\n }\n\n warmLazyRegexDiagnosticsJson(): string {\n return this.#prepared.warmLazyRegexDiagnosticsJson();\n }\n\n warm_lazy_regex_diagnostics_json(): string {\n return this.warmLazyRegexDiagnosticsJson();\n }\n\n createRedactionSession(sessionId: string): PreparedNativeRedactionSession {\n return new PreparedNativeRedactionSession(\n this.#prepared.createRedactionSession(sessionId),\n );\n }\n\n create_redaction_session(sessionId: string): PreparedNativeRedactionSession {\n return this.createRedactionSession(sessionId);\n }\n\n createRedactionSessionWithLifecycle({\n sessionId,\n createdAtEpochSeconds,\n expiresAtEpochSeconds,\n }: NativeCreateSessionWithLifecycleOptions): PreparedNativeRedactionSession {\n return new PreparedNativeRedactionSession(\n this.#prepared.createRedactionSessionWithLifecycle(\n sessionId,\n createdAtEpochSeconds,\n expiresAtEpochSeconds,\n ),\n );\n }\n\n create_redaction_session_with_lifecycle(\n options: NativeCreateSessionWithLifecycleOptions,\n ): PreparedNativeRedactionSession {\n return this.createRedactionSessionWithLifecycle(options);\n }\n\n restoreRedactionSession(\n plaintextJson: string,\n ): PreparedNativeRedactionSession {\n return new PreparedNativeRedactionSession(\n this.#prepared.restoreRedactionSession(plaintextJson),\n );\n }\n\n restore_redaction_session(\n plaintextJson: string,\n ): PreparedNativeRedactionSession {\n return this.restoreRedactionSession(plaintextJson);\n }\n\n restoreEncryptedRedactionSession({\n archive,\n key,\n expectedSessionId,\n observedAtEpochSeconds,\n }: NativeOpenSessionArchiveOptions): PreparedNativeRedactionSession {\n return new PreparedNativeRedactionSession(\n this.#prepared.restoreEncryptedRedactionSession({\n archive,\n key,\n expectedSessionId,\n ...(observedAtEpochSeconds === undefined\n ? {}\n : { observedAtEpochSeconds }),\n }),\n );\n }\n\n restore_encrypted_redaction_session(\n options: NativeOpenSessionArchiveOptions,\n ): PreparedNativeRedactionSession {\n return this.restoreEncryptedRedactionSession(options);\n }\n\n redactStaticEntities(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return toNativeStaticRedactionResult(\n this.#prepared.redactStaticEntities(\n fullText,\n toBindingOperatorConfig(operators),\n ),\n );\n }\n\n redact_text(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntities(fullText, operators);\n }\n\n redact_text_json(fullText: string, operators?: NativeOperatorConfig): string {\n const bindingOperators = toBindingOperatorConfig(operators);\n return this.#prepared.redactStaticEntitiesJson(fullText, bindingOperators);\n }\n\n redactStaticEntitiesWithCallerDetections(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): NativeStaticRedactionResult {\n const requestJson = callerDetectionRequestJson(\n fullText,\n options.detections,\n );\n const operators = toBindingOperatorConfig(options.operators);\n const result: CanonicalStaticRedactionResult = JSON.parse(\n this.#prepared.redactStaticEntitiesWithCallerDetectionsJson(fullText, {\n requestJson,\n ...(operators ? { operators } : {}),\n }),\n );\n return fromCanonicalStaticRedactionResult(result);\n }\n\n redact_text_with_caller_detections(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): NativeStaticRedactionResult {\n return this.redactStaticEntitiesWithCallerDetections(fullText, options);\n }\n\n redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): string {\n const requestJson = callerDetectionRequestJson(\n fullText,\n options.detections,\n );\n const operators = toBindingOperatorConfig(options.operators);\n return this.#prepared.redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(\n fullText,\n {\n requestJson,\n ...(operators ? { operators } : {}),\n },\n );\n }\n\n redact_static_entities_with_caller_detections_diagnostics_json(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): string {\n return this.redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(\n fullText,\n options,\n );\n }\n\n redactTextJson(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redact_text_json(fullText, operators);\n }\n\n redactTextStreamJson(\n fullText: string,\n onEvent: NativeResultEventCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#prepared.redactStaticEntitiesResultStreamJson(\n fullText,\n toBindingOperatorConfig(operators),\n onEvent,\n );\n }\n\n redact_text_stream_json(\n fullText: string,\n onEvent: NativeResultEventCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.redactTextStreamJson(fullText, onEvent, operators);\n }\n\n redactStaticEntitiesDiagnosticsJson(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#prepared.redactStaticEntitiesDiagnosticsJson(\n fullText,\n toBindingOperatorConfig(operators),\n );\n }\n\n diagnostics_json(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redactStaticEntitiesDiagnosticsJson(fullText, operators);\n }\n\n diagnosticsStreamJson(\n fullText: string,\n onBatch: NativeDiagnosticsBatchCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#prepared.redactStaticEntitiesDiagnosticsStreamJson(\n fullText,\n toBindingOperatorConfig(operators),\n onBatch,\n );\n }\n\n diagnostics_stream_json(\n fullText: string,\n onBatch: NativeDiagnosticsBatchCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.diagnosticsStreamJson(fullText, onBatch, operators);\n }\n\n redactStaticEntitiesSummaryDiagnosticsJson(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#prepared.redactStaticEntitiesSummaryDiagnosticsJson(\n fullText,\n toBindingOperatorConfig(operators),\n );\n }\n\n summary_diagnostics_json(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.redactStaticEntitiesSummaryDiagnosticsJson(fullText, operators);\n }\n}\n\nexport class PreparedNativePipeline {\n readonly #anonymizer: PreparedNativeAnonymizer;\n\n constructor(anonymizer: PreparedNativeAnonymizer) {\n this.#anonymizer = anonymizer;\n }\n\n prepareDiagnosticsJson(): string {\n return this.#anonymizer.prepareDiagnosticsJson();\n }\n\n prepare_diagnostics_json(): string {\n return this.prepareDiagnosticsJson();\n }\n\n warmLazyRegex(): void {\n this.#anonymizer.warmLazyRegex();\n }\n\n warm_lazy_regex(): void {\n this.warmLazyRegex();\n }\n\n warmLazyRegexDiagnosticsJson(): string {\n return this.#anonymizer.warmLazyRegexDiagnosticsJson();\n }\n\n warm_lazy_regex_diagnostics_json(): string {\n return this.warmLazyRegexDiagnosticsJson();\n }\n\n createRedactionSession(sessionId: string): PreparedNativeRedactionSession {\n return this.#anonymizer.createRedactionSession(sessionId);\n }\n\n create_redaction_session(sessionId: string): PreparedNativeRedactionSession {\n return this.createRedactionSession(sessionId);\n }\n\n createRedactionSessionWithLifecycle(\n options: NativeCreateSessionWithLifecycleOptions,\n ): PreparedNativeRedactionSession {\n return this.#anonymizer.createRedactionSessionWithLifecycle(options);\n }\n\n create_redaction_session_with_lifecycle(\n options: NativeCreateSessionWithLifecycleOptions,\n ): PreparedNativeRedactionSession {\n return this.createRedactionSessionWithLifecycle(options);\n }\n\n restoreRedactionSession(\n plaintextJson: string,\n ): PreparedNativeRedactionSession {\n return this.#anonymizer.restoreRedactionSession(plaintextJson);\n }\n\n restore_redaction_session(\n plaintextJson: string,\n ): PreparedNativeRedactionSession {\n return this.restoreRedactionSession(plaintextJson);\n }\n\n restoreEncryptedRedactionSession(\n options: NativeOpenSessionArchiveOptions,\n ): PreparedNativeRedactionSession {\n return this.#anonymizer.restoreEncryptedRedactionSession(options);\n }\n\n restore_encrypted_redaction_session(\n options: NativeOpenSessionArchiveOptions,\n ): PreparedNativeRedactionSession {\n return this.restoreEncryptedRedactionSession(options);\n }\n\n redactText(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.#anonymizer.redactStaticEntities(fullText, operators);\n }\n\n redact_text(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): NativeStaticRedactionResult {\n return this.redactText(fullText, operators);\n }\n\n redact_text_json(fullText: string, operators?: NativeOperatorConfig): string {\n return this.#anonymizer.redact_text_json(fullText, operators);\n }\n\n redactTextWithCallerDetections(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): NativeStaticRedactionResult {\n return this.#anonymizer.redactStaticEntitiesWithCallerDetections(\n fullText,\n options,\n );\n }\n\n redact_text_with_caller_detections(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): NativeStaticRedactionResult {\n return this.redactTextWithCallerDetections(fullText, options);\n }\n\n redactTextWithCallerDetectionsDiagnosticsJson(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): string {\n return this.#anonymizer.redactStaticEntitiesWithCallerDetectionsDiagnosticsJson(\n fullText,\n options,\n );\n }\n\n redact_text_with_caller_detections_diagnostics_json(\n fullText: string,\n options: NativeCallerRedactionOptions,\n ): string {\n return this.redactTextWithCallerDetectionsDiagnosticsJson(\n fullText,\n options,\n );\n }\n\n redactTextJson(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redact_text_json(fullText, operators);\n }\n\n redactTextStreamJson(\n fullText: string,\n onEvent: NativeResultEventCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#anonymizer.redactTextStreamJson(fullText, onEvent, operators);\n }\n\n redact_text_stream_json(\n fullText: string,\n onEvent: NativeResultEventCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.redactTextStreamJson(fullText, onEvent, operators);\n }\n\n redactTextDiagnosticsJson(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#anonymizer.redactStaticEntitiesDiagnosticsJson(\n fullText,\n operators,\n );\n }\n\n diagnostics_json(fullText: string, operators?: NativeOperatorConfig): string {\n return this.redactTextDiagnosticsJson(fullText, operators);\n }\n\n diagnosticsStreamJson(\n fullText: string,\n onBatch: NativeDiagnosticsBatchCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#anonymizer.diagnosticsStreamJson(fullText, onBatch, operators);\n }\n\n diagnostics_stream_json(\n fullText: string,\n onBatch: NativeDiagnosticsBatchCallback,\n operators?: NativeOperatorConfig,\n ): string {\n return this.diagnosticsStreamJson(fullText, onBatch, operators);\n }\n\n redactTextSummaryDiagnosticsJson(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.#anonymizer.redactStaticEntitiesSummaryDiagnosticsJson(\n fullText,\n operators,\n );\n }\n\n summary_diagnostics_json(\n fullText: string,\n operators?: NativeOperatorConfig,\n ): string {\n return this.redactTextSummaryDiagnosticsJson(fullText, operators);\n }\n}\n\nexport const encodeNativeSearchConfig = (\n config: NativePreparedSearchConfig,\n): Uint8Array => new TextEncoder().encode(JSON.stringify(config));\n\nexport const encodeNativeSearchConfigInput = (\n config: NativeSearchPackageInput,\n): Uint8Array => {\n if (typeof config === \"string\") {\n return new TextEncoder().encode(config);\n }\n if (config instanceof Uint8Array) {\n return config;\n }\n return encodeNativeSearchConfig(config);\n};\n\nexport const getNativeBindingVersion = (\n binding: NativeAnonymizeBinding,\n): string => binding.nativePackageVersion();\n\nexport const native_package_version = getNativeBindingVersion;\n\nexport const normalize_for_search = ({\n binding,\n text,\n}: NativeNormalizeOptions): string => binding.normalizeForSearch(text);\n\nexport const assertNativeBindingVersion = ({\n binding,\n expectedVersion,\n}: NativeBindingVersionOptions): void => {\n const actualVersion = getNativeBindingVersion(binding);\n if (actualVersion !== expectedVersion) {\n throw new Error(\n `Native anonymize binding version ${actualVersion} does not match ${expectedVersion}`,\n );\n }\n};\n\nexport const prepareNativeSearchPackage = ({\n binding,\n config,\n compressed = false,\n}: NativeSearchPackageOptions): Uint8Array => {\n const configBytes = encodeNativeSearchConfig(config);\n return compressed\n ? binding.prepareStaticSearchCompressedPackageBytes(configBytes)\n : binding.prepareStaticSearchPackageBytes(configBytes);\n};\n\nexport const prepare_search_package = ({\n binding,\n config,\n compressed = false,\n}: SharedNativeSearchPackageOptions): Uint8Array => {\n const configBytes = encodeNativeSearchConfigInput(config);\n return compressed\n ? binding.prepareStaticSearchCompressedPackageBytes(configBytes)\n : binding.prepareStaticSearchPackageBytes(configBytes);\n};\n\nexport const createNativeAnonymizerFromConfig = ({\n binding,\n config,\n}: NativeAnonymizerFromConfigOptions): PreparedNativeAnonymizer =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfig(config),\n ),\n );\n\nexport const createNativeAnonymizerFromPackage = ({\n binding,\n packageBytes,\n}: NativeAnonymizerFromPackageOptions): PreparedNativeAnonymizer =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromPreparedPackageBytes(packageBytes),\n );\n\nexport const load_prepared_package = ({\n binding,\n packageBytes,\n}: SharedNativePreparedPackageOptions): PreparedNativeAnonymizer =>\n createNativeAnonymizerFromPackage({ binding, packageBytes });\n\nexport const redact_text_json = ({\n binding,\n config,\n fullText,\n operators,\n}: SharedNativeRedactTextJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).redact_text_json(fullText, operators);\n\nexport const redact_text = ({\n binding,\n config,\n fullText,\n operators,\n}: SharedNativeRedactTextOptions): NativeStaticRedactionResult =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).redact_text(fullText, operators);\n\nexport const redact_text_stream_json = ({\n binding,\n config,\n fullText,\n operators,\n onEvent,\n}: SharedNativeRedactTextStreamJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).redact_text_stream_json(fullText, onEvent, operators);\n\nexport const diagnostics_json = ({\n binding,\n config,\n fullText,\n operators,\n}: SharedNativeDiagnosticsJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).diagnostics_json(fullText, operators);\n\nexport const diagnostics_stream_json = ({\n binding,\n config,\n fullText,\n operators,\n onBatch,\n}: SharedNativeDiagnosticsStreamJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).diagnostics_stream_json(fullText, onBatch, operators);\n\nexport const summary_diagnostics_json = ({\n binding,\n config,\n fullText,\n operators,\n}: SharedNativeDiagnosticsJsonOptions): string =>\n new PreparedNativeAnonymizer(\n binding.NativePreparedSearch.fromConfigJsonBytes(\n encodeNativeSearchConfigInput(config),\n ),\n ).summary_diagnostics_json(fullText, operators);\n\nexport const createNativePipelineFromPackage = ({\n binding,\n packageBytes,\n}: NativePipelineFromPackageOptions): PreparedNativePipeline =>\n new PreparedNativePipeline(\n createNativeAnonymizerFromPackage({ binding, packageBytes }),\n );\n\nexport const PreparedSearch = PreparedNativeAnonymizer;\nexport type PreparedSearch = PreparedNativeAnonymizer;\nexport const PreparedAnonymizer = PreparedNativeAnonymizer;\nexport type PreparedAnonymizer = PreparedNativeAnonymizer;\n\nconst toBindingOperatorConfig = (\n config: NativeOperatorConfig | undefined,\n): NativeBindingOperatorConfig | undefined => {\n if (!config) {\n return undefined;\n }\n const bindingConfig: NativeBindingOperatorConfig = {};\n if (config.operators !== undefined) {\n bindingConfig.operators = config.operators;\n }\n if (config.redactString !== undefined) {\n bindingConfig.redactString = config.redactString;\n }\n return bindingConfig;\n};\n\nconst toNativeStaticRedactionResult = (\n result: NativeBindingStaticRedactionResult,\n): NativeStaticRedactionResult => ({\n resolvedEntities: result.resolvedEntities.map(toNativePipelineEntity),\n redaction: toNativeRedactionResult(result.redaction),\n});\n\nconst fromCanonicalStaticRedactionResult = (\n result: CanonicalStaticRedactionResult,\n): NativeStaticRedactionResult => ({\n resolvedEntities: result.resolved_entities.map(\n ({ source_detail, provider_id, detection_id, ...entity }) => ({\n ...entity,\n ...(source_detail ? { sourceDetail: source_detail } : {}),\n ...(provider_id ? { providerId: provider_id } : {}),\n ...(detection_id ? { detectionId: detection_id } : {}),\n }),\n ),\n redaction: {\n redactedText: result.redaction.redacted_text,\n redactionMap: toRedactionMap(result.redaction.redaction_map),\n operatorMap: toOperatorMap(result.redaction.operator_map),\n entityCount: result.redaction.entity_count,\n },\n});\n\nconst toNativePipelineEntity = (\n entity: NativeBindingPipelineEntity,\n): NativePipelineEntity => ({\n start: entity.start,\n end: entity.end,\n label: entity.label,\n text: entity.text,\n score: entity.score,\n source: entity.source,\n ...(entity.sourceDetail ? { sourceDetail: entity.sourceDetail } : {}),\n ...(entity.providerId ? { providerId: entity.providerId } : {}),\n ...(entity.detectionId ? { detectionId: entity.detectionId } : {}),\n});\n\nconst toNativeRedactionResult = (\n result: NativeBindingRedactionResult,\n): NativeRedactionResult => ({\n redactedText: result.redactedText,\n redactionMap: toRedactionMap(result.redactionMap),\n operatorMap: toOperatorMap(result.operatorMap),\n entityCount: result.entityCount,\n});\n\nconst toRedactionMap = (\n entries: readonly NativeBindingRedactionEntry[],\n): Map<string, string> => {\n const map = new Map<string, string>();\n for (const entry of entries) {\n map.set(entry.placeholder, entry.original);\n }\n return map;\n};\n\nconst toOperatorMap = (\n entries: readonly NativeBindingOperatorEntry[],\n): Map<string, OperatorType> => {\n const map = new Map<string, OperatorType>();\n for (const entry of entries) {\n map.set(entry.placeholder, entry.operator);\n }\n return map;\n};\n"],"mappings":"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"}
|
package/dist/native2.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { CALLER_DETECTION_CONTRACT_VERSION, ConvertExternalDetectionBatchOptions, 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, ExternalDetectionBatch, ExternalDetectionOffsetUnit, NATIVE_BINDING_PARITY_MEMBERS, NativeAnonymizeBinding, NativeAnonymizerFromConfigOptions, NativeAnonymizerFromPackageOptions, NativeBindingVersionOptions, NativeCallerDetection, NativeCallerRedactionOptions, NativeCreateSessionWithLifecycleOptions, NativeDiagnosticsBatchCallback, NativeNormalizeOptions, NativeOpenSessionArchiveOptions, NativeOperatorConfig, NativePipelineEntity, NativePipelineFromPackageOptions, NativePreparedRedactionSessionBinding, NativePreparedSearchBinding, type NativePreparedSearchConfig, NativePreparedSessionRedactionPlanBinding, NativeRedactionResult, NativeResultEventCallback, NativeSearchPackageInput, NativeSearchPackageOptions, NativeSessionBlockRedactionPlan, NativeSessionCallerRedactionInput, NativeSessionCallerRedactionPlanOptions, NativeSessionDeletionSummary, NativeSessionLifecycle, NativeSessionMetadata, NativeSessionRedactionAtOptions, NativeSessionStatus, NativeStaticRedactionResult, NativeTextReplacement, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, SharedNativeDiagnosticsJsonOptions, SharedNativeDiagnosticsStreamJsonOptions, SharedNativePreparedPackageOptions, SharedNativeRedactTextJsonOptions, SharedNativeRedactTextOptions, SharedNativeRedactTextStreamJsonOptions, SharedNativeSearchPackageOptions, assertNativeBindingVersion, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromPackage, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getNativeBindingVersion, isNativeAnonymizeBinding, load_prepared_package, native_package_version, normalize_for_search, prepareNativeSearchPackage, prepare_search_package, redact_text, redact_text_json, redact_text_stream_json, summary_diagnostics_json };
|
|
1
|
+
import { $ as SESSION_CALLER_INPUTS_JSON_MAX_BYTES, A as NativePreparedRedactionSessionBinding, B as NativeSessionDeletionSummary, C as NativeCreateSessionWithLifecycleOptions, Ct as prepare_search_package, D as NativeOperatorConfig, Dt as summary_diagnostics_json, E as NativeOpenSessionArchiveOptions, Et as redact_text_stream_json, F as NativeSearchPackageInput, G as NativeStaticRedactionResult, H as NativeSessionMetadata, I as NativeSearchPackageOptions, J as PreparedNativeAnonymizer, K as NativeTextReplacement, Kt as NativePreparedSearchConfig, L as NativeSessionBlockRedactionPlan, M as NativePreparedSessionRedactionPlanBinding, N as NativeRedactionResult, O as NativePipelineEntity, P as NativeResultEventCallback, Q as PreparedSearch, R as NativeSessionCallerRedactionInput, S as NativeCallerRedactionOptions, St as prepareNativeSearchPackage, T as NativeNormalizeOptions, Tt as redact_text_json, U as NativeSessionRedactionAtOptions, V as NativeSessionLifecycle, W as NativeSessionStatus, X as PreparedNativeRedactionSession, Y as PreparedNativePipeline, Z as PreparedNativeSessionRedactionPlan, _ as NativeAnonymizeBinding, _t as getNativeBindingVersion, a as ConvertExternalDetectionBatchOptions, at as SharedNativeRedactTextOptions, b as NativeBindingVersionOptions, bt as native_package_version, c as EXTERNAL_DETECTION_DOCUMENT_MAX_BYTES, ct as assertNativeBindingVersion, d as EXTERNAL_DETECTION_MAX_METADATA_BYTES, dt as createNativeAnonymizerFromPackage, et as SESSION_CALLER_MAX_INPUTS, f as EXTERNAL_DETECTION_OFFSET_UNITS, ft as createNativePipelineFromPackage, g as NATIVE_BINDING_PARITY_MEMBERS, gt as encodeNativeSearchConfigInput, h as ExternalDetectionOffsetUnit, ht as encodeNativeSearchConfig, i as CALLER_DETECTION_TEXT_MAX_BYTES, it as SharedNativeRedactTextJsonOptions, j as NativePreparedSearchBinding, k as NativePipelineFromPackageOptions, l as EXTERNAL_DETECTION_MAX_DETECTIONS, lt as convert_external_detection_batch, m as ExternalDetectionBatch, mt as diagnostics_stream_json, n as CALLER_DETECTION_MAX_COUNT, nt as SharedNativeDiagnosticsStreamJsonOptions, o as EXTERNAL_DETECTION_BATCH_MAX_BYTES, ot as SharedNativeRedactTextStreamJsonOptions, p as EXTERNAL_DETECTION_PROVIDER_ID_MAX_BYTES, pt as diagnostics_json, q as PreparedAnonymizer, r as CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, rt as SharedNativePreparedPackageOptions, s as EXTERNAL_DETECTION_BATCH_VERSION, st as SharedNativeSearchPackageOptions, t as CALLER_DETECTION_CONTRACT_VERSION, tt as SharedNativeDiagnosticsJsonOptions, u as EXTERNAL_DETECTION_MAX_LABEL_MAPPINGS, ut as createNativeAnonymizerFromConfig, v as NativeAnonymizerFromConfigOptions, vt as isNativeAnonymizeBinding, w as NativeDiagnosticsBatchCallback, wt as redact_text, x as NativeCallerDetection, xt as normalize_for_search, y as NativeAnonymizerFromPackageOptions, yt as load_prepared_package, z as NativeSessionCallerRedactionPlanOptions } from "./native.mjs";
|
|
2
|
+
export { CALLER_DETECTION_CONTRACT_VERSION, CALLER_DETECTION_MAX_COUNT, CALLER_DETECTION_REQUEST_JSON_MAX_BYTES, CALLER_DETECTION_TEXT_MAX_BYTES, ConvertExternalDetectionBatchOptions, 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, ExternalDetectionBatch, ExternalDetectionOffsetUnit, NATIVE_BINDING_PARITY_MEMBERS, NativeAnonymizeBinding, NativeAnonymizerFromConfigOptions, NativeAnonymizerFromPackageOptions, NativeBindingVersionOptions, NativeCallerDetection, NativeCallerRedactionOptions, NativeCreateSessionWithLifecycleOptions, NativeDiagnosticsBatchCallback, NativeNormalizeOptions, NativeOpenSessionArchiveOptions, NativeOperatorConfig, NativePipelineEntity, NativePipelineFromPackageOptions, NativePreparedRedactionSessionBinding, NativePreparedSearchBinding, type NativePreparedSearchConfig, NativePreparedSessionRedactionPlanBinding, NativeRedactionResult, NativeResultEventCallback, NativeSearchPackageInput, NativeSearchPackageOptions, NativeSessionBlockRedactionPlan, NativeSessionCallerRedactionInput, NativeSessionCallerRedactionPlanOptions, NativeSessionDeletionSummary, NativeSessionLifecycle, NativeSessionMetadata, NativeSessionRedactionAtOptions, NativeSessionStatus, NativeStaticRedactionResult, NativeTextReplacement, PreparedAnonymizer, PreparedNativeAnonymizer, PreparedNativePipeline, PreparedNativeRedactionSession, PreparedNativeSessionRedactionPlan, PreparedSearch, SESSION_CALLER_INPUTS_JSON_MAX_BYTES, SESSION_CALLER_MAX_INPUTS, SharedNativeDiagnosticsJsonOptions, SharedNativeDiagnosticsStreamJsonOptions, SharedNativePreparedPackageOptions, SharedNativeRedactTextJsonOptions, SharedNativeRedactTextOptions, SharedNativeRedactTextStreamJsonOptions, SharedNativeSearchPackageOptions, assertNativeBindingVersion, convert_external_detection_batch, createNativeAnonymizerFromConfig, createNativeAnonymizerFromPackage, createNativePipelineFromPackage, diagnostics_json, diagnostics_stream_json, encodeNativeSearchConfig, encodeNativeSearchConfigInput, getNativeBindingVersion, isNativeAnonymizeBinding, load_prepared_package, native_package_version, normalize_for_search, prepareNativeSearchPackage, prepare_search_package, redact_text, redact_text_json, redact_text_stream_json, summary_diagnostics_json };
|
|
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": "2.8.
|
|
3
|
+
"version": "2.8.3",
|
|
4
4
|
"description": "Deterministic PII detection and anonymization with regex, deny lists, and coreference resolution",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"anonymization",
|
|
@@ -113,19 +113,19 @@
|
|
|
113
113
|
}
|
|
114
114
|
},
|
|
115
115
|
"optionalDependencies": {
|
|
116
|
-
"@stll/anonymize-darwin-arm64": "2.8.
|
|
117
|
-
"@stll/anonymize-darwin-x64": "2.8.
|
|
118
|
-
"@stll/anonymize-linux-arm64-gnu": "2.8.
|
|
119
|
-
"@stll/anonymize-linux-x64-gnu": "2.8.
|
|
120
|
-
"@stll/anonymize-win32-x64-msvc": "2.8.
|
|
116
|
+
"@stll/anonymize-darwin-arm64": "2.8.3",
|
|
117
|
+
"@stll/anonymize-darwin-x64": "2.8.3",
|
|
118
|
+
"@stll/anonymize-linux-arm64-gnu": "2.8.3",
|
|
119
|
+
"@stll/anonymize-linux-x64-gnu": "2.8.3",
|
|
120
|
+
"@stll/anonymize-win32-x64-msvc": "2.8.3"
|
|
121
121
|
},
|
|
122
122
|
"devDependencies": {
|
|
123
|
-
"@napi-rs/cli": "^3.8.
|
|
123
|
+
"@napi-rs/cli": "^3.8.6",
|
|
124
124
|
"@stll/anonymize-data": "workspace:*",
|
|
125
125
|
"bun-types": "1.4.0",
|
|
126
126
|
"fast-check": "^4.9.0",
|
|
127
127
|
"fflate": "^0.8.3",
|
|
128
|
-
"puppeteer-core": "25.
|
|
128
|
+
"puppeteer-core": "25.7.0",
|
|
129
129
|
"tsdown": "0.22.14",
|
|
130
130
|
"typescript": "7.0.2",
|
|
131
131
|
"vite": "^8.2.1"
|