rehydra 0.1.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.
Files changed (155) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +615 -0
  3. package/dist/crypto/index.d.ts +6 -0
  4. package/dist/crypto/index.d.ts.map +1 -0
  5. package/dist/crypto/index.js +6 -0
  6. package/dist/crypto/index.js.map +1 -0
  7. package/dist/crypto/pii-map-crypto.d.ts +114 -0
  8. package/dist/crypto/pii-map-crypto.d.ts.map +1 -0
  9. package/dist/crypto/pii-map-crypto.js +228 -0
  10. package/dist/crypto/pii-map-crypto.js.map +1 -0
  11. package/dist/index.d.ts +180 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +384 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/ner/bio-decoder.d.ts +64 -0
  16. package/dist/ner/bio-decoder.d.ts.map +1 -0
  17. package/dist/ner/bio-decoder.js +216 -0
  18. package/dist/ner/bio-decoder.js.map +1 -0
  19. package/dist/ner/index.d.ts +10 -0
  20. package/dist/ner/index.d.ts.map +1 -0
  21. package/dist/ner/index.js +10 -0
  22. package/dist/ner/index.js.map +1 -0
  23. package/dist/ner/model-manager.d.ts +111 -0
  24. package/dist/ner/model-manager.d.ts.map +1 -0
  25. package/dist/ner/model-manager.js +325 -0
  26. package/dist/ner/model-manager.js.map +1 -0
  27. package/dist/ner/ner-model.d.ts +114 -0
  28. package/dist/ner/ner-model.d.ts.map +1 -0
  29. package/dist/ner/ner-model.js +253 -0
  30. package/dist/ner/ner-model.js.map +1 -0
  31. package/dist/ner/onnx-runtime.d.ts +46 -0
  32. package/dist/ner/onnx-runtime.d.ts.map +1 -0
  33. package/dist/ner/onnx-runtime.js +130 -0
  34. package/dist/ner/onnx-runtime.js.map +1 -0
  35. package/dist/ner/tokenizer.d.ts +118 -0
  36. package/dist/ner/tokenizer.d.ts.map +1 -0
  37. package/dist/ner/tokenizer.js +332 -0
  38. package/dist/ner/tokenizer.js.map +1 -0
  39. package/dist/pipeline/index.d.ts +12 -0
  40. package/dist/pipeline/index.d.ts.map +1 -0
  41. package/dist/pipeline/index.js +12 -0
  42. package/dist/pipeline/index.js.map +1 -0
  43. package/dist/pipeline/prenormalize.d.ts +48 -0
  44. package/dist/pipeline/prenormalize.d.ts.map +1 -0
  45. package/dist/pipeline/prenormalize.js +94 -0
  46. package/dist/pipeline/prenormalize.js.map +1 -0
  47. package/dist/pipeline/resolver.d.ts +56 -0
  48. package/dist/pipeline/resolver.d.ts.map +1 -0
  49. package/dist/pipeline/resolver.js +239 -0
  50. package/dist/pipeline/resolver.js.map +1 -0
  51. package/dist/pipeline/semantic-data-loader.d.ts +165 -0
  52. package/dist/pipeline/semantic-data-loader.d.ts.map +1 -0
  53. package/dist/pipeline/semantic-data-loader.js +655 -0
  54. package/dist/pipeline/semantic-data-loader.js.map +1 -0
  55. package/dist/pipeline/semantic-enricher.d.ts +112 -0
  56. package/dist/pipeline/semantic-enricher.d.ts.map +1 -0
  57. package/dist/pipeline/semantic-enricher.js +318 -0
  58. package/dist/pipeline/semantic-enricher.js.map +1 -0
  59. package/dist/pipeline/tagger.d.ts +114 -0
  60. package/dist/pipeline/tagger.d.ts.map +1 -0
  61. package/dist/pipeline/tagger.js +374 -0
  62. package/dist/pipeline/tagger.js.map +1 -0
  63. package/dist/pipeline/title-extractor.d.ts +79 -0
  64. package/dist/pipeline/title-extractor.d.ts.map +1 -0
  65. package/dist/pipeline/title-extractor.js +801 -0
  66. package/dist/pipeline/title-extractor.js.map +1 -0
  67. package/dist/pipeline/validator.d.ts +65 -0
  68. package/dist/pipeline/validator.d.ts.map +1 -0
  69. package/dist/pipeline/validator.js +264 -0
  70. package/dist/pipeline/validator.js.map +1 -0
  71. package/dist/recognizers/base.d.ts +78 -0
  72. package/dist/recognizers/base.d.ts.map +1 -0
  73. package/dist/recognizers/base.js +100 -0
  74. package/dist/recognizers/base.js.map +1 -0
  75. package/dist/recognizers/bic-swift.d.ts +10 -0
  76. package/dist/recognizers/bic-swift.d.ts.map +1 -0
  77. package/dist/recognizers/bic-swift.js +107 -0
  78. package/dist/recognizers/bic-swift.js.map +1 -0
  79. package/dist/recognizers/credit-card.d.ts +32 -0
  80. package/dist/recognizers/credit-card.d.ts.map +1 -0
  81. package/dist/recognizers/credit-card.js +160 -0
  82. package/dist/recognizers/credit-card.js.map +1 -0
  83. package/dist/recognizers/custom-id.d.ts +28 -0
  84. package/dist/recognizers/custom-id.d.ts.map +1 -0
  85. package/dist/recognizers/custom-id.js +116 -0
  86. package/dist/recognizers/custom-id.js.map +1 -0
  87. package/dist/recognizers/email.d.ts +10 -0
  88. package/dist/recognizers/email.d.ts.map +1 -0
  89. package/dist/recognizers/email.js +75 -0
  90. package/dist/recognizers/email.js.map +1 -0
  91. package/dist/recognizers/iban.d.ts +14 -0
  92. package/dist/recognizers/iban.d.ts.map +1 -0
  93. package/dist/recognizers/iban.js +67 -0
  94. package/dist/recognizers/iban.js.map +1 -0
  95. package/dist/recognizers/index.d.ts +20 -0
  96. package/dist/recognizers/index.d.ts.map +1 -0
  97. package/dist/recognizers/index.js +42 -0
  98. package/dist/recognizers/index.js.map +1 -0
  99. package/dist/recognizers/ip-address.d.ts +14 -0
  100. package/dist/recognizers/ip-address.d.ts.map +1 -0
  101. package/dist/recognizers/ip-address.js +183 -0
  102. package/dist/recognizers/ip-address.js.map +1 -0
  103. package/dist/recognizers/phone.d.ts +10 -0
  104. package/dist/recognizers/phone.d.ts.map +1 -0
  105. package/dist/recognizers/phone.js +145 -0
  106. package/dist/recognizers/phone.js.map +1 -0
  107. package/dist/recognizers/registry.d.ts +59 -0
  108. package/dist/recognizers/registry.d.ts.map +1 -0
  109. package/dist/recognizers/registry.js +113 -0
  110. package/dist/recognizers/registry.js.map +1 -0
  111. package/dist/recognizers/url.d.ts +14 -0
  112. package/dist/recognizers/url.d.ts.map +1 -0
  113. package/dist/recognizers/url.js +121 -0
  114. package/dist/recognizers/url.js.map +1 -0
  115. package/dist/types/index.d.ts +197 -0
  116. package/dist/types/index.d.ts.map +1 -0
  117. package/dist/types/index.js +80 -0
  118. package/dist/types/index.js.map +1 -0
  119. package/dist/types/pii-types.d.ts +50 -0
  120. package/dist/types/pii-types.d.ts.map +1 -0
  121. package/dist/types/pii-types.js +114 -0
  122. package/dist/types/pii-types.js.map +1 -0
  123. package/dist/utils/iban-checksum.d.ts +23 -0
  124. package/dist/utils/iban-checksum.d.ts.map +1 -0
  125. package/dist/utils/iban-checksum.js +106 -0
  126. package/dist/utils/iban-checksum.js.map +1 -0
  127. package/dist/utils/index.d.ts +10 -0
  128. package/dist/utils/index.d.ts.map +1 -0
  129. package/dist/utils/index.js +10 -0
  130. package/dist/utils/index.js.map +1 -0
  131. package/dist/utils/luhn.d.ts +17 -0
  132. package/dist/utils/luhn.d.ts.map +1 -0
  133. package/dist/utils/luhn.js +55 -0
  134. package/dist/utils/luhn.js.map +1 -0
  135. package/dist/utils/offsets.d.ts +86 -0
  136. package/dist/utils/offsets.d.ts.map +1 -0
  137. package/dist/utils/offsets.js +124 -0
  138. package/dist/utils/offsets.js.map +1 -0
  139. package/dist/utils/path.d.ts +34 -0
  140. package/dist/utils/path.d.ts.map +1 -0
  141. package/dist/utils/path.js +96 -0
  142. package/dist/utils/path.js.map +1 -0
  143. package/dist/utils/storage-browser.d.ts +51 -0
  144. package/dist/utils/storage-browser.d.ts.map +1 -0
  145. package/dist/utils/storage-browser.js +381 -0
  146. package/dist/utils/storage-browser.js.map +1 -0
  147. package/dist/utils/storage-node.d.ts +43 -0
  148. package/dist/utils/storage-node.d.ts.map +1 -0
  149. package/dist/utils/storage-node.js +93 -0
  150. package/dist/utils/storage-node.js.map +1 -0
  151. package/dist/utils/storage.d.ts +70 -0
  152. package/dist/utils/storage.d.ts.map +1 -0
  153. package/dist/utils/storage.js +69 -0
  154. package/dist/utils/storage.js.map +1 -0
  155. package/package.json +66 -0
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Node.js Storage Provider
3
+ * Implements StorageProvider using Node.js fs/promises
4
+ */
5
+ import * as fs from "fs/promises";
6
+ import * as nodePath from "path";
7
+ import * as os from "os";
8
+ /**
9
+ * Node.js implementation of StorageProvider
10
+ * Uses fs/promises for file operations
11
+ */
12
+ export class NodeStorageProvider {
13
+ /**
14
+ * Reads a file as binary data
15
+ */
16
+ async readFile(path) {
17
+ const buffer = await fs.readFile(path);
18
+ return new Uint8Array(buffer);
19
+ }
20
+ /**
21
+ * Reads a file as text
22
+ */
23
+ async readTextFile(path, encoding) {
24
+ // Handle latin1 encoding (used by nam_dict.txt)
25
+ const nodeEncoding = encoding === "latin1" ? "latin1" : "utf-8";
26
+ return fs.readFile(path, { encoding: nodeEncoding });
27
+ }
28
+ /**
29
+ * Writes data to a file
30
+ */
31
+ async writeFile(path, data) {
32
+ // Ensure parent directory exists
33
+ const dir = nodePath.dirname(path);
34
+ await fs.mkdir(dir, { recursive: true });
35
+ if (typeof data === "string") {
36
+ await fs.writeFile(path, data, "utf-8");
37
+ }
38
+ else {
39
+ await fs.writeFile(path, data);
40
+ }
41
+ }
42
+ /**
43
+ * Checks if a file or directory exists
44
+ */
45
+ async exists(path) {
46
+ try {
47
+ await fs.access(path);
48
+ return true;
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ }
54
+ /**
55
+ * Creates a directory
56
+ */
57
+ async mkdir(path) {
58
+ await fs.mkdir(path, { recursive: true });
59
+ }
60
+ /**
61
+ * Removes a file or directory
62
+ */
63
+ async rm(path, options) {
64
+ await fs.rm(path, {
65
+ recursive: options?.recursive ?? false,
66
+ force: options?.force ?? false,
67
+ });
68
+ }
69
+ /**
70
+ * Gets the platform-specific cache directory
71
+ */
72
+ getCacheDir(subdir) {
73
+ const homeDir = os.homedir();
74
+ let baseDir;
75
+ switch (process.platform) {
76
+ case "darwin":
77
+ baseDir = nodePath.join(homeDir, "Library", "Caches");
78
+ break;
79
+ case "win32":
80
+ baseDir =
81
+ process.env["LOCALAPPDATA"] ??
82
+ nodePath.join(homeDir, "AppData", "Local");
83
+ break;
84
+ default:
85
+ // Linux and others - use XDG_CACHE_HOME or ~/.cache
86
+ baseDir =
87
+ process.env["XDG_CACHE_HOME"] ?? nodePath.join(homeDir, ".cache");
88
+ break;
89
+ }
90
+ return nodePath.join(baseDir, "rehydra", subdir);
91
+ }
92
+ }
93
+ //# sourceMappingURL=storage-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-node.js","sourceRoot":"","sources":["../../src/utils/storage-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Storage Abstraction Layer
3
+ * Provides a unified interface for file storage across Node.js and browser environments
4
+ */
5
+ /**
6
+ * Storage provider interface
7
+ * Implementations exist for Node.js (fs) and browser (IndexedDB/OPFS)
8
+ */
9
+ export interface StorageProvider {
10
+ /**
11
+ * Reads a file as binary data
12
+ */
13
+ readFile(path: string): Promise<Uint8Array>;
14
+ /**
15
+ * Reads a file as text
16
+ * @param encoding - Character encoding (default: 'utf-8', also supports 'latin1')
17
+ */
18
+ readTextFile(path: string, encoding?: string): Promise<string>;
19
+ /**
20
+ * Writes data to a file
21
+ * Creates parent directories if they don't exist
22
+ */
23
+ writeFile(path: string, data: Uint8Array | string): Promise<void>;
24
+ /**
25
+ * Checks if a file or directory exists
26
+ */
27
+ exists(path: string): Promise<boolean>;
28
+ /**
29
+ * Creates a directory (and parent directories if needed)
30
+ */
31
+ mkdir(path: string): Promise<void>;
32
+ /**
33
+ * Removes a file or directory
34
+ */
35
+ rm(path: string, options?: {
36
+ recursive?: boolean;
37
+ force?: boolean;
38
+ }): Promise<void>;
39
+ /**
40
+ * Gets the cache directory path for a given subdirectory
41
+ * @param subdir - Subdirectory name (e.g., 'models', 'semantic-data')
42
+ */
43
+ getCacheDir(subdir: string): string;
44
+ }
45
+ /**
46
+ * Detects if running in Node.js environment
47
+ */
48
+ export declare function isNode(): boolean;
49
+ /**
50
+ * Detects if running in browser environment
51
+ */
52
+ export declare function isBrowser(): boolean;
53
+ /**
54
+ * Detects if running in a Web Worker
55
+ */
56
+ export declare function isWebWorker(): boolean;
57
+ /**
58
+ * Gets the appropriate storage provider for the current environment
59
+ * Uses lazy loading to avoid importing unnecessary modules
60
+ */
61
+ export declare function getStorageProvider(): Promise<StorageProvider>;
62
+ /**
63
+ * Resets the storage provider (useful for testing)
64
+ */
65
+ export declare function resetStorageProvider(): void;
66
+ /**
67
+ * Sets a custom storage provider (useful for testing)
68
+ */
69
+ export declare function setStorageProvider(provider: StorageProvider): void;
70
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/utils/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5C;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;OAEG;IACH,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACrC;AAMD;;GAEG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAMhC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAKnC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAKrC;AAQD;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAoBnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAElE"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Storage Abstraction Layer
3
+ * Provides a unified interface for file storage across Node.js and browser environments
4
+ */
5
+ // ============================================================================
6
+ // Runtime Detection
7
+ // ============================================================================
8
+ /**
9
+ * Detects if running in Node.js environment
10
+ */
11
+ export function isNode() {
12
+ return (typeof process !== "undefined" &&
13
+ process.versions !== undefined &&
14
+ process.versions.node !== undefined);
15
+ }
16
+ /**
17
+ * Detects if running in browser environment
18
+ */
19
+ export function isBrowser() {
20
+ return (typeof window !== "undefined" &&
21
+ typeof window.document !== "undefined");
22
+ }
23
+ /**
24
+ * Detects if running in a Web Worker
25
+ */
26
+ export function isWebWorker() {
27
+ return (typeof self !== "undefined" &&
28
+ typeof self.WorkerGlobalScope !== "undefined");
29
+ }
30
+ // ============================================================================
31
+ // Storage Provider Singleton
32
+ // ============================================================================
33
+ let storageProviderInstance = null;
34
+ /**
35
+ * Gets the appropriate storage provider for the current environment
36
+ * Uses lazy loading to avoid importing unnecessary modules
37
+ */
38
+ export async function getStorageProvider() {
39
+ if (storageProviderInstance !== null) {
40
+ return storageProviderInstance;
41
+ }
42
+ if (isNode()) {
43
+ // Dynamically import Node.js storage provider
44
+ const { NodeStorageProvider } = await import("./storage-node.js");
45
+ storageProviderInstance = new NodeStorageProvider();
46
+ }
47
+ else if (isBrowser() || isWebWorker()) {
48
+ // Dynamically import browser storage provider
49
+ const { BrowserStorageProvider } = await import("./storage-browser.js");
50
+ storageProviderInstance = new BrowserStorageProvider();
51
+ }
52
+ else {
53
+ throw new Error("Unsupported environment: neither Node.js nor browser detected");
54
+ }
55
+ return storageProviderInstance;
56
+ }
57
+ /**
58
+ * Resets the storage provider (useful for testing)
59
+ */
60
+ export function resetStorageProvider() {
61
+ storageProviderInstance = null;
62
+ }
63
+ /**
64
+ * Sets a custom storage provider (useful for testing)
65
+ */
66
+ export function setStorageProvider(provider) {
67
+ storageProviderInstance = provider;
68
+ }
69
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/utils/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8CH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,CACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,CACL,OAAO,IAAI,KAAK,WAAW;QAC3B,OAAQ,IAAmD,CAAC,iBAAiB,KAAK,WAAW,CAC9F,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,IAAI,uBAAuB,GAA2B,IAAI,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,uBAAuB,KAAK,IAAI,EAAE,CAAC;QACrC,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,IAAI,MAAM,EAAE,EAAE,CAAC;QACb,8CAA8C;QAC9C,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAClE,uBAAuB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACtD,CAAC;SAAM,IAAI,SAAS,EAAE,IAAI,WAAW,EAAE,EAAE,CAAC;QACxC,8CAA8C;QAC9C,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACxE,uBAAuB,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,uBAAuB,GAAG,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAyB;IAC1D,uBAAuB,GAAG,QAAQ,CAAC;AACrC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "rehydra",
3
+ "version": "0.1.0",
4
+ "description": "On-device PII anonymization module for high-privacy translation",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "files": [
9
+ "dist",
10
+ "README.md"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "test": "vitest",
15
+ "test:run": "vitest run",
16
+ "test:coverage": "vitest run --coverage",
17
+ "lint": "eslint src --ext .ts",
18
+ "clean": "rm -rf dist",
19
+ "setup:ner": "bash scripts/setup-ner-model.sh --quantize",
20
+ "setup:ner:standard": "bash scripts/setup-ner-model.sh",
21
+ "setup:ner:upload": "bash scripts/setup-ner-model.sh --quantize --upload",
22
+ "prepublishOnly": "npm run clean && npm run build"
23
+ },
24
+ "keywords": [
25
+ "anonymization",
26
+ "pii",
27
+ "privacy",
28
+ "ner",
29
+ "onnx"
30
+ ],
31
+ "author": "",
32
+ "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/rehydra-ai/rehydra.git"
36
+ },
37
+ "dependencies": {},
38
+ "optionalDependencies": {
39
+ "onnxruntime-node": "^1.17.0"
40
+ },
41
+ "peerDependencies": {
42
+ "onnxruntime-node": "^1.17.0",
43
+ "onnxruntime-web": "^1.17.0"
44
+ },
45
+ "peerDependenciesMeta": {
46
+ "onnxruntime-node": {
47
+ "optional": true
48
+ },
49
+ "onnxruntime-web": {
50
+ "optional": true
51
+ }
52
+ },
53
+ "devDependencies": {
54
+ "@types/node": "^20.10.0",
55
+ "@typescript-eslint/eslint-plugin": "^6.13.0",
56
+ "@typescript-eslint/parser": "^6.13.0",
57
+ "@vitest/coverage-v8": "^2.1.0",
58
+ "eslint": "^8.55.0",
59
+ "fake-indexeddb": "^6.2.5",
60
+ "typescript": "^5.3.0",
61
+ "vitest": "^2.1.0"
62
+ },
63
+ "engines": {
64
+ "node": ">=18.0.0"
65
+ }
66
+ }