rehydra 0.14.0 → 0.16.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.
@@ -10,46 +10,7 @@
10
10
  * - tool.execute.before — rehydrate PII tags in tool args
11
11
  * - experimental.text.complete — rehydrate PII tags in LLM response
12
12
  */
13
- import { createAnonymizer } from "../core/anonymizer.js";
14
- import { AnonymizerSessionImpl } from "../storage/session-base.js";
15
- import { InMemoryPIIStorageProvider } from "../storage/in-memory.js";
16
- import { InMemoryKeyProvider } from "../crypto/index.js";
17
- import { PIIType, createDefaultPolicy, SECRET_PII_TYPES, DEFAULT_TAG_FORMAT } from "../types/index.js";
18
- import { buildPIISystemInstruction } from "../proxy/system-instruction.js";
19
- import { buildTagPrefix } from "../utils/regex.js";
20
- import { githubUsernameRecognizer } from "./github-username.js";
21
- import { protectIdentityTags } from "./identity-recognizer.js";
22
- import { vcsCommandTypes } from "./vcs-command.js";
23
- import { gitIdentityRecognizer } from "./git-identity.js";
24
- /**
25
- * Recursively rehydrate all string values containing PII tags.
26
- * Returns a new value (for strings/arrays) or the same object mutated in-place
27
- * (for plain objects). The in-place mutation is required because OpenCode's
28
- * tool.execute.before hook uses the original args reference for execution —
29
- * replacing the object wholesale has no effect.
30
- */
31
- async function deepRehydrate(value, session, tagPrefix) {
32
- if (typeof value === "string") {
33
- if (value.includes(tagPrefix)) {
34
- return session.rehydrate(value);
35
- }
36
- return value;
37
- }
38
- if (Array.isArray(value)) {
39
- for (let i = 0; i < value.length; i++) {
40
- value[i] = await deepRehydrate(value[i], session, tagPrefix);
41
- }
42
- return value;
43
- }
44
- if (value !== null && typeof value === "object") {
45
- const obj = value;
46
- for (const key of Object.keys(obj)) {
47
- obj[key] = await deepRehydrate(obj[key], session, tagPrefix);
48
- }
49
- return obj;
50
- }
51
- return value;
52
- }
13
+ import { createRehydraCore, mergeOptions } from "./core.js";
53
14
  /**
54
15
  * Creates a Rehydra plugin for OpenCode.
55
16
  *
@@ -65,254 +26,71 @@ async function deepRehydrate(value, session, tagPrefix) {
65
26
  * @example
66
27
  * ```json
67
28
  * // opencode.json — when published as npm package
68
- * { "plugin": ["@rehydra/opencode-plugin"] }
29
+ * { "plugin": [["@rehydra/opencode", { "disableTypes": ["DATE"] }]] }
69
30
  * ```
70
31
  */
71
- export function createRehydraPlugin(options) {
72
- return async (ctx) => {
32
+ export function createRehydraPlugin(factoryOptions) {
33
+ return async (ctx, configOptions) => {
73
34
  const { client } = ctx;
74
35
  const SERVICE = "rehydra";
75
36
  function log(level, message, extra) {
76
37
  void client.app.log({ body: { service: SERVICE, level, message, extra } });
77
38
  }
78
- const keyProvider = new InMemoryKeyProvider();
79
- const piiStorage = new InMemoryPIIStorageProvider();
80
- // Build anonymizer config from options, sharing key and storage providers
81
- const baseConfig = options?.anonymizer ?? {
82
- secrets: {
83
- enabled: true,
84
- envFiles: options?.envFiles ?? ["**/.env*"],
85
- redactValues: options?.redactValues,
86
- minValueLength: options?.minValueLength,
87
- },
88
- };
89
- const anonymizerConfig = {
90
- ...baseConfig,
91
- secrets: baseConfig.secrets === undefined ? undefined : {
92
- ...baseConfig.secrets,
93
- envBaseDirectory: baseConfig.secrets.envBaseDirectory ?? ctx.directory,
94
- },
95
- };
96
- const tagFormat = anonymizerConfig.tagFormat ?? options?.tagFormat ?? DEFAULT_TAG_FORMAT;
97
- const tagPrefix = buildTagPrefix(tagFormat);
98
- const rehydraInstruction = `<rehydra>\n${buildPIISystemInstruction(tagFormat)}\n</rehydra>`;
99
- const anonymizer = createAnonymizer({
100
- ...anonymizerConfig,
101
- tagFormat,
102
- keyProvider,
103
- piiStorageProvider: piiStorage,
104
- });
105
- if (options?.vcsIdentities === true) {
106
- anonymizer.getRegistry().register(protectIdentityTags(githubUsernameRecognizer, tagFormat));
107
- anonymizer.getRegistry().register(protectIdentityTags(gitIdentityRecognizer, tagFormat));
108
- }
109
- await anonymizer.initialize();
110
- // Build policy with disabled types (URL and IP_ADDRESS disabled by default)
111
- const disableTypes = options?.disableTypes ?? ["URL", "IP_ADDRESS"];
112
- let policy = options?.policy;
113
- if (disableTypes.length > 0) {
114
- const base = createDefaultPolicy();
115
- const disableSet = new Set(disableTypes);
116
- const regexEnabledTypes = new Set(base.regexEnabledTypes);
117
- const nerEnabledTypes = new Set(base.nerEnabledTypes);
118
- // createDefaultPolicy() excludes secret types (they're opt-in via
119
- // AnonymizerConfig.secrets). Add them back so that passing this
120
- // partial policy to mergePolicyWithBase doesn't accidentally drop
121
- // the secret types the anonymizer added to its internal default.
122
- for (const secretType of SECRET_PII_TYPES) {
123
- regexEnabledTypes.add(secretType);
124
- }
125
- for (const t of disableSet) {
126
- const piiType = t;
127
- regexEnabledTypes.delete(piiType);
128
- nerEnabledTypes.delete(piiType);
129
- }
130
- policy = {
131
- ...policy,
132
- regexEnabledTypes,
133
- nerEnabledTypes,
134
- };
135
- }
136
- log("info", "plugin initialized", {
137
- envFiles: anonymizerConfig.secrets?.envFiles,
138
- redactValueCount: options?.redactValues?.length ?? 0,
139
- disableTypes,
39
+ // OpenCode passes options from opencode.json as the second argument.
40
+ const core = await createRehydraCore(mergeOptions(configOptions, factoryOptions), {
41
+ directory: ctx.directory,
42
+ log,
140
43
  });
141
- const locale = options?.locale;
142
- const identityPolicy = (types) => {
143
- const defaults = createDefaultPolicy();
144
- const configPolicy = anonymizerConfig.defaultPolicy;
145
- const enabledTypes = new Set(policy?.enabledTypes ?? configPolicy?.enabledTypes ?? defaults.enabledTypes);
146
- const regexEnabledTypes = new Set(policy?.regexEnabledTypes ?? configPolicy?.regexEnabledTypes ?? defaults.regexEnabledTypes);
147
- if (anonymizerConfig.secrets?.enabled === true) {
148
- for (const type of SECRET_PII_TYPES) {
149
- if (!disableTypes.includes(type)) {
150
- enabledTypes.add(type);
151
- regexEnabledTypes.add(type);
152
- }
153
- }
154
- }
155
- for (const type of types) {
156
- if (!disableTypes.includes(type)) {
157
- enabledTypes.add(type);
158
- regexEnabledTypes.add(type);
159
- }
160
- }
161
- return { ...policy, enabledTypes, regexEnabledTypes, reuseIdsForRepeatedPII: true };
162
- };
163
- // One session per OpenCode session, keyed by sessionID
164
- const sessions = new Map();
165
- function getSession(sessionID) {
166
- let session = sessions.get(sessionID);
167
- if (session === undefined) {
168
- session = new AnonymizerSessionImpl(anonymizer, sessionID, piiStorage, keyProvider);
169
- sessions.set(sessionID, session);
170
- }
171
- return session;
172
- }
173
- // Track whether any anonymization occurred (to conditionally inject instruction)
174
- let hasAnonymized = false;
175
44
  return {
176
45
  "experimental.chat.messages.transform": async (_input, output) => {
177
- let totalScrubbed = 0;
178
- const scrubbedByType = {};
46
+ await core.refreshSecrets();
47
+ const request = core.startRequest();
179
48
  for (const msg of output.messages) {
180
- const session = getSession(msg.info.sessionID);
181
- // OpenCode retains the rehydrated arguments after tool execution and
182
- // serializes them into later model requests. Copy and scrub values so
183
- // the execution arguments and JSON property names stay intact.
184
- const scrubToolInput = async (value) => {
185
- if (typeof value === "string") {
186
- const result = await session.anonymize(value, locale, policy);
187
- if (result.stats.totalEntities > 0) {
188
- hasAnonymized = true;
189
- totalScrubbed += result.stats.totalEntities;
190
- for (const [type, count] of Object.entries(result.stats.countsByType)) {
191
- scrubbedByType[type] = (scrubbedByType[type] ?? 0) + count;
192
- }
193
- }
194
- return result.anonymizedText;
195
- }
196
- if (Array.isArray(value)) {
197
- const result = [];
198
- for (const item of value)
199
- result.push(await scrubToolInput(item));
200
- return result;
201
- }
202
- if (value !== null && typeof value === "object") {
203
- const entries = [];
204
- for (const [key, item] of Object.entries(value)) {
205
- entries.push([key, await scrubToolInput(item)]);
206
- }
207
- return Object.fromEntries(entries);
208
- }
209
- return value;
210
- };
49
+ const sessionID = msg.info.sessionID;
211
50
  for (const part of msg.parts) {
51
+ // Read the command before scrubbing so VCS detection sees it intact
52
+ const command = part.state?.input?.command;
212
53
  if (part.type === "tool" && part.state !== undefined) {
213
54
  const state = part.state;
214
55
  if (state.input !== undefined)
215
- state.input = await scrubToolInput(state.input);
56
+ state.input = await request.copy(sessionID, state.input);
216
57
  if (typeof state.error === "string") {
217
- state.error = await scrubToolInput(state.error);
58
+ state.error = await request.text(sessionID, state.error);
218
59
  }
219
60
  }
220
61
  // Anonymize .text on any part type (text, reasoning, file, patch, etc.)
221
62
  if (typeof part.text === "string") {
222
- const result = await session.anonymize(part.text, locale, policy);
223
- if (result.stats.totalEntities > 0) {
224
- hasAnonymized = true;
225
- totalScrubbed += result.stats.totalEntities;
226
- for (const [type, count] of Object.entries(result.stats.countsByType)) {
227
- scrubbedByType[type] = (scrubbedByType[type] ?? 0) + count;
228
- }
229
- }
230
- part.text = result.anonymizedText;
63
+ part.text = await request.text(sessionID, part.text);
231
64
  }
232
65
  // Anonymize tool output
233
66
  if (part.state !== undefined &&
234
67
  part.state.status === "completed" &&
235
68
  typeof part.state.output === "string") {
236
- const command = part.state.input?.command;
237
- let outputPolicy = policy;
238
- if (options?.vcsIdentities === true &&
239
- typeof command === "string") {
240
- const commands = vcsCommandTypes(command);
241
- const types = [];
242
- if (commands.has('github'))
243
- types.push(PIIType.GITHUB_USERNAME);
244
- if (commands.has('git'))
245
- types.push(PIIType.PERSON);
246
- if (types.length > 0)
247
- outputPolicy = identityPolicy(types);
248
- }
249
- const result = await session.anonymize(part.state.output, locale, outputPolicy);
250
- if (result.stats.totalEntities > 0) {
251
- hasAnonymized = true;
252
- totalScrubbed += result.stats.totalEntities;
253
- for (const [type, count] of Object.entries(result.stats.countsByType)) {
254
- scrubbedByType[type] = (scrubbedByType[type] ?? 0) + count;
255
- }
256
- }
257
- part.state.output = result.anonymizedText;
69
+ part.state.output = await request.text(sessionID, part.state.output, core.outputPolicy(command));
258
70
  }
259
71
  }
260
72
  }
261
- if (totalScrubbed > 0) {
262
- // Only include types that actually had hits
263
- const nonZero = {};
264
- for (const [type, count] of Object.entries(scrubbedByType)) {
265
- if (count > 0)
266
- nonZero[type] = count;
267
- }
268
- log("info", `scrubbed ${totalScrubbed} secret(s) from messages`, {
269
- scrubbed: nonZero,
270
- messageCount: output.messages.length,
271
- });
272
- }
273
- else {
274
- log("debug", "no secrets found in messages", {
275
- messageCount: output.messages.length,
276
- });
277
- }
73
+ request.finish(output.messages.length);
278
74
  },
279
75
  "experimental.chat.system.transform": (_input, output) => {
280
- if (hasAnonymized) {
76
+ if (core.hasAnonymized) {
281
77
  log("debug", "injected rehydra instruction into system prompt");
282
- output.system.push(rehydraInstruction);
78
+ output.system.push(core.rehydraInstruction);
283
79
  }
284
80
  },
285
81
  "tool.execute.before": async (input, output) => {
286
- const session = getSession(input.sessionID);
287
- const before = JSON.stringify(output.args);
288
- output.args = await deepRehydrate(output.args, session, tagPrefix);
289
- const after = JSON.stringify(output.args);
290
- if (before !== after) {
291
- log("info", `rehydrated PII tags in tool args`, {
292
- tool: input.tool,
293
- callID: input.callID,
294
- });
295
- }
82
+ output.args = await core.beforeTool(input.tool, input.sessionID, input.callID, output.args);
296
83
  },
297
84
  // Output shape varies by tool type: native tools pass
298
85
  // { title, output, metadata } while MCP tools pass the raw
299
- // CallToolResult ({ content: [{type,text}], … }). Use deepRehydrate
300
- // so we handle any shape without hard-coding field names.
86
+ // CallToolResult ({ content: [{type,text}], … }). Rehydrate every
87
+ // string so we handle any shape without hard-coding field names.
301
88
  "tool.execute.after": async (input, output) => {
302
- const session = getSession(input.sessionID);
303
- const before = JSON.stringify(output);
304
- await deepRehydrate(output, session, tagPrefix);
305
- if (JSON.stringify(output) !== before) {
306
- log("info", "rehydrated PII tags in tool result", {
307
- tool: input.tool,
308
- callID: input.callID,
309
- });
310
- }
89
+ await core.afterTool(input.tool, input.sessionID, input.callID, output);
311
90
  },
312
91
  "experimental.text.complete": async (input, output) => {
313
- if (output.text.includes(tagPrefix)) {
314
- const session = getSession(input.sessionID);
315
- output.text = await session.rehydrate(output.text);
92
+ if (output.text.includes(core.tagPrefix)) {
93
+ output.text = await core.rehydrateText(input.sessionID, output.text);
316
94
  log("debug", "rehydrated PII tags in LLM response text", {
317
95
  messageID: input.messageID,
318
96
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/opencode-plugin/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/opencode-plugin/plugin.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,13 @@ export interface RehydraPluginOptions {
13
13
  /** Paths/globs relative to the OpenCode project directory. Defaults to recursive .env discovery.
14
14
  * Skips node_modules, .git, and symlinks. Pass [] to disable file loading. */
15
15
  envFiles?: string[];
16
+ /** Minimum milliseconds between checks of envFiles for new or changed secrets (default: 2000).
17
+ * Pass false to load them only when the plugin starts. */
18
+ envRefreshInterval?: number | false;
19
+ /** Tools whose arguments keep their placeholders: real values are not restored before they run,
20
+ * and detected values are redacted. `*` matches any characters, e.g. "exa_*".
21
+ * Default: ["webfetch", "websearch"]. Pass [] to restore real values for every tool. */
22
+ redactTools?: string[];
16
23
  /** Explicit values to always redact */
17
24
  redactValues?: string[];
18
25
  /** Minimum value length to consider as a secret (default: 4) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/opencode-plugin/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,GAAG,OAAO,EAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;kFAC8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAE7B,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,uBAAuB;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtC,wFAAwF;IACxF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,qFAAqF;IACrF,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/opencode-plugin/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,GAAG,OAAO,EAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;kFAC8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;8DAC0D;IAC1D,kBAAkB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEpC;;4FAEwF;IACxF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAE7B,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,uBAAuB;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtC,wFAAwF;IACxF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,qFAAqF;IACrF,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom-id.d.ts","sourceRoot":"","sources":["../../src/recognizers/custom-id.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,UAAU,CA8ChF;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsBrD,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAanD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,UAAU,CAQvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAcpD"}
1
+ {"version":3,"file":"custom-id.d.ts","sourceRoot":"","sources":["../../src/recognizers/custom-id.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,UAAU,CA8ChF;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyBrD,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAanD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,UAAU,CAQvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAcpD"}
@@ -53,8 +53,10 @@ export function createCustomIdRecognizer(patterns) {
53
53
  export const COMMON_ID_PATTERNS = {
54
54
  // German case/file reference patterns
55
55
  germanCaseId: /\b[A-Z]{2,3}[\s-]?[0-9]{4,10}[\s-]?[A-Z0-9]{0,4}\b/g,
56
- // Generic case number (e.g., CASE-12345)
57
- genericCaseNumber: /\b(?:CASE|FILE|REF|TICKET)[\s-]?[A-Z0-9]{4,12}\b/gi,
56
+ // Generic case number (e.g., CASE-12345, CASE-2024-001, REF-2024/00123).
57
+ // Every segment must contain a digit so words such as "reference",
58
+ // "filesystem" or "case-study" stay untouched.
59
+ genericCaseNumber: /\b(?:CASE|FILE|REF|TICKET)[\s-]?(?=[A-Z]*\d)[A-Z0-9]{4,12}(?:[-/](?=[A-Z]*\d)[A-Z0-9]{1,12}){0,4}\b/gi,
58
60
  // Customer number patterns
59
61
  customerNumber: /\b(?:CUST|CUSTOMER|KD|KUNDEN)[\s-]?(?:NR|NO|NUM|NUMBER)?[\s-]?[0-9]{4,12}\b/gi,
60
62
  // Account reference (non-IBAN)
@@ -1 +1 @@
1
- {"version":3,"file":"custom-id.js","sourceRoot":"","sources":["../../src/recognizers/custom-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-id.js","sourceRoot":"","sources":["../../src/recognizers/custom-id.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,10 @@ export declare class RecognizerRegistry {
37
37
  * Removes all recognizers for a type
38
38
  */
39
39
  unregister(type: PIIType): void;
40
+ /**
41
+ * Removes one recognizer, keeping the others registered for its type
42
+ */
43
+ remove(recognizer: Recognizer): void;
40
44
  /**
41
45
  * Clears all recognizers
42
46
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/recognizers/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAyC;IAE5D;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAMtC;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAM5C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE;IAI3C;;OAEG;IACH,iBAAiB,IAAI,UAAU,EAAE;IAQjC;;OAEG;IACH,kBAAkB,IAAI,OAAO,EAAE;IAI/B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAKrC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAI/B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,SAAS,EAAE;CA0BhE;AAOD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,kBAAkB,CAKtD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,kBAAkB,CAEnD"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/recognizers/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAyC;IAE5D;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAMtC;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAM5C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE;IAI3C;;OAEG;IACH,iBAAiB,IAAI,UAAU,EAAE;IAQjC;;OAEG;IACH,kBAAkB,IAAI,OAAO,EAAE;IAI/B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAKrC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAI/B;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAWpC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,SAAS,EAAE;CA0BhE;AAOD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,kBAAkB,CAKtD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,kBAAkB,CAEnD"}
@@ -58,6 +58,18 @@ export class RecognizerRegistry {
58
58
  unregister(type) {
59
59
  this.recognizers.delete(type);
60
60
  }
61
+ /**
62
+ * Removes one recognizer, keeping the others registered for its type
63
+ */
64
+ remove(recognizer) {
65
+ const remaining = (this.recognizers.get(recognizer.type) ?? []).filter((item) => item !== recognizer);
66
+ if (remaining.length > 0) {
67
+ this.recognizers.set(recognizer.type, remaining);
68
+ }
69
+ else {
70
+ this.recognizers.delete(recognizer.type);
71
+ }
72
+ }
61
73
  /**
62
74
  * Clears all recognizers
63
75
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/recognizers/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACrB,WAAW,GAA+B,IAAI,GAAG,EAAE,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,UAAsB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,WAAyB;QACnC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAa;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAa;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAa;QACtB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAY,EAAE,MAA2B;QAC/C,MAAM,OAAO,GAAgB,EAAE,CAAC;QAEhC,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnD,mCAAmC;YACnC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1E,SAAS;YACX,CAAC;YAED,yCAAyC;YACzC,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YAE/D,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE1C,iCAAiC;gBACjC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;oBAChC,IAAI,KAAK,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC;wBAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED;;GAEG;AACH,IAAI,cAAc,GAA8B,IAAI,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,kBAAkB,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/recognizers/registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rehydra",
3
- "version": "0.14.0",
3
+ "version": "0.16.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",