@elanlanguages/bridge-anonymization 0.1.3 → 0.2.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 (54) hide show
  1. package/README.md +255 -94
  2. package/dist/crypto/pii-map-crypto.d.ts +50 -36
  3. package/dist/crypto/pii-map-crypto.d.ts.map +1 -1
  4. package/dist/crypto/pii-map-crypto.js +133 -68
  5. package/dist/crypto/pii-map-crypto.js.map +1 -1
  6. package/dist/index.d.ts +3 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +48 -9
  9. package/dist/index.js.map +1 -1
  10. package/dist/ner/model-manager.d.ts +20 -11
  11. package/dist/ner/model-manager.d.ts.map +1 -1
  12. package/dist/ner/model-manager.js +147 -76
  13. package/dist/ner/model-manager.js.map +1 -1
  14. package/dist/ner/ner-model.d.ts +1 -1
  15. package/dist/ner/ner-model.d.ts.map +1 -1
  16. package/dist/ner/ner-model.js +40 -27
  17. package/dist/ner/ner-model.js.map +1 -1
  18. package/dist/ner/onnx-runtime.d.ts +6 -5
  19. package/dist/ner/onnx-runtime.d.ts.map +1 -1
  20. package/dist/ner/onnx-runtime.js +55 -24
  21. package/dist/ner/onnx-runtime.js.map +1 -1
  22. package/dist/ner/tokenizer.d.ts +5 -0
  23. package/dist/ner/tokenizer.d.ts.map +1 -1
  24. package/dist/ner/tokenizer.js +15 -2
  25. package/dist/ner/tokenizer.js.map +1 -1
  26. package/dist/pipeline/semantic-data-loader.d.ts +24 -16
  27. package/dist/pipeline/semantic-data-loader.d.ts.map +1 -1
  28. package/dist/pipeline/semantic-data-loader.js +169 -176
  29. package/dist/pipeline/semantic-data-loader.js.map +1 -1
  30. package/dist/pipeline/semantic-enricher.d.ts +12 -2
  31. package/dist/pipeline/semantic-enricher.d.ts.map +1 -1
  32. package/dist/pipeline/semantic-enricher.js +85 -35
  33. package/dist/pipeline/semantic-enricher.js.map +1 -1
  34. package/dist/utils/index.d.ts +2 -0
  35. package/dist/utils/index.d.ts.map +1 -1
  36. package/dist/utils/index.js +2 -0
  37. package/dist/utils/index.js.map +1 -1
  38. package/dist/utils/path.d.ts +34 -0
  39. package/dist/utils/path.d.ts.map +1 -0
  40. package/dist/utils/path.js +96 -0
  41. package/dist/utils/path.js.map +1 -0
  42. package/dist/utils/storage-browser.d.ts +51 -0
  43. package/dist/utils/storage-browser.d.ts.map +1 -0
  44. package/dist/utils/storage-browser.js +381 -0
  45. package/dist/utils/storage-browser.js.map +1 -0
  46. package/dist/utils/storage-node.d.ts +43 -0
  47. package/dist/utils/storage-node.d.ts.map +1 -0
  48. package/dist/utils/storage-node.js +93 -0
  49. package/dist/utils/storage-node.js.map +1 -0
  50. package/dist/utils/storage.d.ts +70 -0
  51. package/dist/utils/storage.d.ts.map +1 -0
  52. package/dist/utils/storage.js +69 -0
  53. package/dist/utils/storage.js.map +1 -0
  54. package/package.json +2 -1
@@ -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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elanlanguages/bridge-anonymization",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "On-device PII anonymization module for high-privacy translation",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -56,6 +56,7 @@
56
56
  "@typescript-eslint/parser": "^6.13.0",
57
57
  "@vitest/coverage-v8": "^2.1.0",
58
58
  "eslint": "^8.55.0",
59
+ "fake-indexeddb": "^6.2.5",
59
60
  "typescript": "^5.3.0",
60
61
  "vitest": "^2.1.0"
61
62
  },