rehydra 0.3.3 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -873
- package/dist/core/anonymizer.d.ts +9 -1
- package/dist/core/anonymizer.d.ts.map +1 -1
- package/dist/core/anonymizer.js +29 -7
- package/dist/core/anonymizer.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/proxy/index.d.ts +12 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +11 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/providers/anthropic.d.ts +17 -0
- package/dist/proxy/providers/anthropic.d.ts.map +1 -0
- package/dist/proxy/providers/anthropic.js +117 -0
- package/dist/proxy/providers/anthropic.js.map +1 -0
- package/dist/proxy/providers/index.d.ts +19 -0
- package/dist/proxy/providers/index.d.ts.map +1 -0
- package/dist/proxy/providers/index.js +40 -0
- package/dist/proxy/providers/index.js.map +1 -0
- package/dist/proxy/providers/openai.d.ts +17 -0
- package/dist/proxy/providers/openai.d.ts.map +1 -0
- package/dist/proxy/providers/openai.js +92 -0
- package/dist/proxy/providers/openai.js.map +1 -0
- package/dist/proxy/providers/types.d.ts +29 -0
- package/dist/proxy/providers/types.d.ts.map +1 -0
- package/dist/proxy/providers/types.js +6 -0
- package/dist/proxy/providers/types.js.map +1 -0
- package/dist/proxy/proxy-server.d.ts +53 -0
- package/dist/proxy/proxy-server.d.ts.map +1 -0
- package/dist/proxy/proxy-server.js +146 -0
- package/dist/proxy/proxy-server.js.map +1 -0
- package/dist/proxy/rehydra-fetch.d.ts +35 -0
- package/dist/proxy/rehydra-fetch.d.ts.map +1 -0
- package/dist/proxy/rehydra-fetch.js +217 -0
- package/dist/proxy/rehydra-fetch.js.map +1 -0
- package/dist/proxy/rehydra-proxy.d.ts +40 -0
- package/dist/proxy/rehydra-proxy.d.ts.map +1 -0
- package/dist/proxy/rehydra-proxy.js +82 -0
- package/dist/proxy/rehydra-proxy.js.map +1 -0
- package/dist/proxy/sse-parser.d.ts +59 -0
- package/dist/proxy/sse-parser.d.ts.map +1 -0
- package/dist/proxy/sse-parser.js +112 -0
- package/dist/proxy/sse-parser.js.map +1 -0
- package/dist/proxy/types.d.ts +49 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js +5 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/proxy/wrap-client.d.ts +47 -0
- package/dist/proxy/wrap-client.d.ts.map +1 -0
- package/dist/proxy/wrap-client.js +70 -0
- package/dist/proxy/wrap-client.js.map +1 -0
- package/dist/storage/session.d.ts +3 -0
- package/dist/storage/session.d.ts.map +1 -1
- package/dist/storage/session.js +24 -1
- package/dist/storage/session.js.map +1 -1
- package/dist/storage/types.d.ts +16 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/streaming/anonymizer-stream.d.ts +63 -0
- package/dist/streaming/anonymizer-stream.d.ts.map +1 -0
- package/dist/streaming/anonymizer-stream.js +184 -0
- package/dist/streaming/anonymizer-stream.js.map +1 -0
- package/dist/streaming/index.d.ts +9 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/streaming/index.js +8 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/streaming/sentence-buffer.d.ts +78 -0
- package/dist/streaming/sentence-buffer.d.ts.map +1 -0
- package/dist/streaming/sentence-buffer.js +238 -0
- package/dist/streaming/sentence-buffer.js.map +1 -0
- package/dist/streaming/stream-factory.d.ts +38 -0
- package/dist/streaming/stream-factory.d.ts.map +1 -0
- package/dist/streaming/stream-factory.js +69 -0
- package/dist/streaming/stream-factory.js.map +1 -0
- package/dist/streaming/types.d.ts +121 -0
- package/dist/streaming/types.d.ts.map +1 -0
- package/dist/streaming/types.js +5 -0
- package/dist/streaming/types.js.map +1 -0
- package/dist/types/index.d.ts +8 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +19 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-factory.js","sourceRoot":"","sources":["../../src/streaming/stream-factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAuB,EAAE;IAEzB,8DAA8D;IAC9D,IAAI,gBAAgB,GAAiC,MAAM,CAAC,UAAU,CAAC;IACvE,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;QACvC,gBAAgB,GAAG;YACjB,GAAG,gBAAgB;YACnB,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;SAC1B,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,+EAA+E;IAC/E,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,gBAAgB,GAAG;YACjB,GAAG,gBAAgB;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,MAAM,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;IAE9B,0DAA0D;IAC1D,IAAI,aAAoC,CAAC;IACzC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC7I,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC9C,aAAa,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming Anonymization Types
|
|
3
|
+
*/
|
|
4
|
+
import type { TransformOptions } from "node:stream";
|
|
5
|
+
import type { AnonymizerConfig } from "../core/anonymizer.js";
|
|
6
|
+
import type { AnonymizationPolicy, DetectedEntity, EncryptedPIIMap } from "../types/index.js";
|
|
7
|
+
import type { KeyProvider } from "../crypto/index.js";
|
|
8
|
+
import type { PIIStorageProvider } from "../storage/types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for the streaming anonymizer
|
|
11
|
+
*/
|
|
12
|
+
export interface StreamConfig {
|
|
13
|
+
/** Base anonymizer config */
|
|
14
|
+
anonymizer?: AnonymizerConfig;
|
|
15
|
+
/** Policy override for all chunks */
|
|
16
|
+
policy?: Partial<AnonymizationPolicy>;
|
|
17
|
+
/** Locale hint (e.g., 'de-DE', 'en-US') */
|
|
18
|
+
locale?: string;
|
|
19
|
+
/** Sentence buffer configuration */
|
|
20
|
+
buffer?: SentenceBufferConfig;
|
|
21
|
+
/** Session ID for cross-chunk ID persistence and storage */
|
|
22
|
+
sessionId?: string;
|
|
23
|
+
/** Storage provider (required if sessionId is set) */
|
|
24
|
+
piiStorageProvider?: PIIStorageProvider;
|
|
25
|
+
/** Key provider (required if sessionId is set) */
|
|
26
|
+
keyProvider?: KeyProvider;
|
|
27
|
+
/**
|
|
28
|
+
* Interval in milliseconds for saving the PII map to storage during streaming.
|
|
29
|
+
* When set, saves at most once per interval (in addition to the final save on flush).
|
|
30
|
+
* Useful for crash recovery on long streams.
|
|
31
|
+
* @default undefined (only save on stream end)
|
|
32
|
+
*/
|
|
33
|
+
saveIntervalMs?: number;
|
|
34
|
+
/** Node.js Transform stream options (highWaterMark, etc.) */
|
|
35
|
+
streamOptions?: TransformOptions;
|
|
36
|
+
/** Callback fired after each chunk is anonymized */
|
|
37
|
+
onChunk?: (event: StreamChunkEvent) => void;
|
|
38
|
+
/** Callback fired when the stream finishes */
|
|
39
|
+
onFinish?: (event: StreamFinishEvent) => void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Sentence buffer configuration
|
|
43
|
+
*/
|
|
44
|
+
export interface SentenceBufferConfig {
|
|
45
|
+
/**
|
|
46
|
+
* Overlap size in characters for NER context window.
|
|
47
|
+
* The overlap region from the previous chunk is re-processed
|
|
48
|
+
* to catch entities that span boundaries.
|
|
49
|
+
* @default 100
|
|
50
|
+
*/
|
|
51
|
+
overlapChars?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Maximum buffer size before forcing a flush.
|
|
54
|
+
* Prevents unbounded memory growth if no sentence boundary is found.
|
|
55
|
+
* @default 8192
|
|
56
|
+
*/
|
|
57
|
+
maxBufferSize?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Minimum characters to buffer before attempting sentence detection.
|
|
60
|
+
* In low-latency mode this is automatically reduced.
|
|
61
|
+
* @default 50
|
|
62
|
+
*/
|
|
63
|
+
minBufferSize?: number;
|
|
64
|
+
/**
|
|
65
|
+
* Low-latency mode for LLM token streams.
|
|
66
|
+
* - Reduces buffer sizes
|
|
67
|
+
* - Disables NER (regex-only)
|
|
68
|
+
* - Flushes more aggressively
|
|
69
|
+
* @default false
|
|
70
|
+
*/
|
|
71
|
+
lowLatency?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Custom sentence boundary regex.
|
|
74
|
+
* @default /[.!?]\s+|[\n]{2,}/
|
|
75
|
+
*/
|
|
76
|
+
sentenceBoundary?: RegExp;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Event emitted after each chunk is processed
|
|
80
|
+
*/
|
|
81
|
+
export interface StreamChunkEvent {
|
|
82
|
+
/** Anonymized text for this chunk */
|
|
83
|
+
anonymizedText: string;
|
|
84
|
+
/** Entities detected in this chunk */
|
|
85
|
+
entities: Omit<DetectedEntity, "original">[];
|
|
86
|
+
/** Cumulative entity count */
|
|
87
|
+
totalEntities: number;
|
|
88
|
+
/** Processing time for this chunk in ms */
|
|
89
|
+
processingTimeMs: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Event emitted when the stream finishes
|
|
93
|
+
*/
|
|
94
|
+
export interface StreamFinishEvent {
|
|
95
|
+
/** Total entities across all chunks */
|
|
96
|
+
totalEntities: number;
|
|
97
|
+
/** Final encrypted PII map (if pseudonymize mode) */
|
|
98
|
+
piiMap?: EncryptedPIIMap;
|
|
99
|
+
/** Total processing time in ms */
|
|
100
|
+
totalProcessingTimeMs: number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Result of a single buffer flush
|
|
104
|
+
*/
|
|
105
|
+
export interface FlushResult {
|
|
106
|
+
/** Anonymized text for the new (non-overlap) portion */
|
|
107
|
+
anonymizedText: string;
|
|
108
|
+
/** Entities detected in this flush */
|
|
109
|
+
entities: Omit<DetectedEntity, "original">[];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Resolved buffer configuration with defaults applied
|
|
113
|
+
*/
|
|
114
|
+
export interface ResolvedBufferConfig {
|
|
115
|
+
overlapChars: number;
|
|
116
|
+
maxBufferSize: number;
|
|
117
|
+
minBufferSize: number;
|
|
118
|
+
lowLatency: boolean;
|
|
119
|
+
sentenceBoundary: RegExp;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oCAAoC;IACpC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAE9B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC,kDAAkD;IAClD,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAEjC,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE5C,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC;IAC7C,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,kCAAkC;IAClC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -8,6 +8,12 @@ export declare enum DetectionSource {
|
|
|
8
8
|
NER = "NER",
|
|
9
9
|
HYBRID = "HYBRID"
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Anonymization mode
|
|
13
|
+
* - 'pseudonymize': Reversible anonymization with encrypted PII map (default)
|
|
14
|
+
* - 'anonymize': Irreversible anonymization without PII map
|
|
15
|
+
*/
|
|
16
|
+
export type AnonymizationMode = "pseudonymize" | "anonymize";
|
|
11
17
|
/**
|
|
12
18
|
* Gender attribute for PERSON entities
|
|
13
19
|
* Used to preserve grammatical agreement during machine translation
|
|
@@ -181,8 +187,8 @@ export interface AnonymizationResult {
|
|
|
181
187
|
anonymizedText: string;
|
|
182
188
|
/** List of detected entities (without original text for safety) */
|
|
183
189
|
entities: Omit<DetectedEntity, "original">[];
|
|
184
|
-
/** Encrypted mapping of (type, id) -> original string */
|
|
185
|
-
piiMap
|
|
190
|
+
/** Encrypted mapping of (type, id) -> original string (undefined in 'anonymize' mode) */
|
|
191
|
+
piiMap?: EncryptedPIIMap;
|
|
186
192
|
/** Statistics about the anonymization */
|
|
187
193
|
stats: AnonymizationStats;
|
|
188
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,gBAAgB,CAAC;AAEhE,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AACH,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,gBAAgB,CAAC;AAEhE,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AACH,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,WAAW,CAAC;AAM7D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,QAAQ,EAAE;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,KAAK,IAAI,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,kBAAkB,CAAC,EAAE,gCAAgC,CAAC;IAEtD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mBAAmB;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,EAAE,eAAe,CAAC;IACxB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,IAAI,EAAE,OAAO,CAAC;IACd,mCAAmC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,2CAA2C;IAC3C,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,yCAAyC;IACzC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,yFAAyF;IACzF,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,4DAA4D;IAC5D,oBAAoB,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,yDAAyD;IACzD,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,iEAAiE;IACjE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,sBAAsB,EAAE,OAAO,CAAC;IAChC,oDAAoD;IACpD,cAAc,EAAE,OAAO,CAAC;IACxB,yFAAyF;IACzF,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtC,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC;IAC7C,yFAAyF;IACzF,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,yCAAyC;IACzC,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,CAyCzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACpC,mBAAmB,CA+BrB"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AACH,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,8BAAW,CAAA;IACX,oCAAiB,CAAA;AACnB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rehydra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "On-device PII anonymization module for high-privacy AI workflows",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -47,6 +47,18 @@
|
|
|
47
47
|
"types": "./dist/storage/sqlite.d.ts",
|
|
48
48
|
"default": "./dist/storage/sqlite.js"
|
|
49
49
|
}
|
|
50
|
+
},
|
|
51
|
+
"./streaming": {
|
|
52
|
+
"node": {
|
|
53
|
+
"types": "./dist/streaming/index.d.ts",
|
|
54
|
+
"default": "./dist/streaming/index.js"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"./proxy": {
|
|
58
|
+
"node": {
|
|
59
|
+
"types": "./dist/proxy/index.d.ts",
|
|
60
|
+
"default": "./dist/proxy/index.js"
|
|
61
|
+
}
|
|
50
62
|
}
|
|
51
63
|
},
|
|
52
64
|
"files": [
|
|
@@ -62,6 +74,11 @@
|
|
|
62
74
|
"benchmark": "vitest bench",
|
|
63
75
|
"benchmark:compare": "vitest bench --run test/benchmark/anonymizer-comparison.bench.ts",
|
|
64
76
|
"benchmark:save": "mkdir -p benchmarks/history && vitest bench --run --outputJson=\"./benchmarks/history/$(date +%Y-%m-%d-%H%M%S).json\"",
|
|
77
|
+
"benchmark:memory": "npx tsx scripts/bench-memory.ts",
|
|
78
|
+
"benchmark:latency": "npx tsx scripts/bench-latency.ts",
|
|
79
|
+
"test:streaming": "npx tsx scripts/test-streaming.ts",
|
|
80
|
+
"test:proxy:openai": "npx tsx scripts/test-proxy-openai.ts",
|
|
81
|
+
"test:proxy:anthropic": "npx tsx scripts/test-proxy-anthropic.ts",
|
|
65
82
|
"lint": "eslint src --ext .ts",
|
|
66
83
|
"clean": "rm -rf dist",
|
|
67
84
|
"setup:ner": "bash scripts/setup-ner-model.sh --quantize",
|
|
@@ -116,4 +133,4 @@
|
|
|
116
133
|
"engines": {
|
|
117
134
|
"node": ">=18.0.0"
|
|
118
135
|
}
|
|
119
|
-
}
|
|
136
|
+
}
|