opencode-rehydar 0.14.2 → 0.14.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.
Files changed (430) hide show
  1. package/dist/browser.d.ts +54 -0
  2. package/dist/browser.d.ts.map +1 -0
  3. package/dist/browser.js +74 -0
  4. package/dist/browser.js.map +1 -0
  5. package/dist/core/anonymizer.d.ts +309 -0
  6. package/dist/core/anonymizer.d.ts.map +1 -0
  7. package/dist/core/anonymizer.js +555 -0
  8. package/dist/core/anonymizer.js.map +1 -0
  9. package/dist/core/index.d.ts +6 -0
  10. package/dist/core/index.d.ts.map +1 -0
  11. package/dist/core/index.js +6 -0
  12. package/dist/core/index.js.map +1 -0
  13. package/dist/crypto/index.d.ts +6 -0
  14. package/dist/crypto/index.d.ts.map +1 -0
  15. package/dist/crypto/index.js +6 -0
  16. package/dist/crypto/index.js.map +1 -0
  17. package/dist/crypto/pii-map-crypto.d.ts +114 -0
  18. package/dist/crypto/pii-map-crypto.d.ts.map +1 -0
  19. package/dist/crypto/pii-map-crypto.js +228 -0
  20. package/dist/crypto/pii-map-crypto.js.map +1 -0
  21. package/dist/index.d.ts +53 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +72 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/ner/bio-decoder.d.ts +64 -0
  26. package/dist/ner/bio-decoder.d.ts.map +1 -0
  27. package/dist/ner/bio-decoder.js +218 -0
  28. package/dist/ner/bio-decoder.js.map +1 -0
  29. package/dist/ner/index.d.ts +12 -0
  30. package/dist/ner/index.d.ts.map +1 -0
  31. package/dist/ner/index.js +12 -0
  32. package/dist/ner/index.js.map +1 -0
  33. package/dist/ner/inference-server-client.d.ts +81 -0
  34. package/dist/ner/inference-server-client.d.ts.map +1 -0
  35. package/dist/ner/inference-server-client.js +120 -0
  36. package/dist/ner/inference-server-client.js.map +1 -0
  37. package/dist/ner/inference-server-ner-model.d.ts +43 -0
  38. package/dist/ner/inference-server-ner-model.d.ts.map +1 -0
  39. package/dist/ner/inference-server-ner-model.js +119 -0
  40. package/dist/ner/inference-server-ner-model.js.map +1 -0
  41. package/dist/ner/model-manager.d.ts +111 -0
  42. package/dist/ner/model-manager.d.ts.map +1 -0
  43. package/dist/ner/model-manager.js +334 -0
  44. package/dist/ner/model-manager.js.map +1 -0
  45. package/dist/ner/ner-model.d.ts +172 -0
  46. package/dist/ner/ner-model.d.ts.map +1 -0
  47. package/dist/ner/ner-model.js +514 -0
  48. package/dist/ner/ner-model.js.map +1 -0
  49. package/dist/ner/onnx-runtime.browser.d.ts +46 -0
  50. package/dist/ner/onnx-runtime.browser.d.ts.map +1 -0
  51. package/dist/ner/onnx-runtime.browser.js +90 -0
  52. package/dist/ner/onnx-runtime.browser.js.map +1 -0
  53. package/dist/ner/onnx-runtime.d.ts +72 -0
  54. package/dist/ner/onnx-runtime.d.ts.map +1 -0
  55. package/dist/ner/onnx-runtime.js +132 -0
  56. package/dist/ner/onnx-runtime.js.map +1 -0
  57. package/dist/ner/token-window.d.ts +19 -0
  58. package/dist/ner/token-window.d.ts.map +1 -0
  59. package/dist/ner/token-window.js +101 -0
  60. package/dist/ner/token-window.js.map +1 -0
  61. package/dist/ner/tokenizer.d.ts +142 -0
  62. package/dist/ner/tokenizer.d.ts.map +1 -0
  63. package/dist/ner/tokenizer.js +362 -0
  64. package/dist/ner/tokenizer.js.map +1 -0
  65. package/dist/opencode-plugin/git-identity.d.ts +3 -0
  66. package/dist/opencode-plugin/git-identity.d.ts.map +1 -0
  67. package/dist/opencode-plugin/git-identity.js +37 -0
  68. package/dist/opencode-plugin/git-identity.js.map +1 -0
  69. package/dist/opencode-plugin/github-username.d.ts +3 -0
  70. package/dist/opencode-plugin/github-username.d.ts.map +1 -0
  71. package/dist/opencode-plugin/github-username.js +41 -0
  72. package/dist/opencode-plugin/github-username.js.map +1 -0
  73. package/dist/opencode-plugin/identity-recognizer.d.ts +5 -0
  74. package/dist/opencode-plugin/identity-recognizer.d.ts.map +1 -0
  75. package/dist/opencode-plugin/identity-recognizer.js +21 -0
  76. package/dist/opencode-plugin/identity-recognizer.js.map +1 -0
  77. package/dist/opencode-plugin/index.d.ts +7 -0
  78. package/dist/opencode-plugin/index.d.ts.map +1 -0
  79. package/dist/opencode-plugin/index.js +6 -0
  80. package/dist/opencode-plugin/index.js.map +1 -0
  81. package/dist/opencode-plugin/plugin.d.ts +39 -0
  82. package/dist/opencode-plugin/plugin.d.ts.map +1 -0
  83. package/dist/opencode-plugin/plugin.js +294 -0
  84. package/dist/opencode-plugin/plugin.js.map +1 -0
  85. package/dist/opencode-plugin/types.d.ts +33 -0
  86. package/dist/opencode-plugin/types.d.ts.map +1 -0
  87. package/dist/opencode-plugin/types.js +5 -0
  88. package/dist/opencode-plugin/types.js.map +1 -0
  89. package/dist/opencode-plugin/v2/anon-state.d.ts +12 -0
  90. package/dist/opencode-plugin/v2/anon-state.d.ts.map +1 -0
  91. package/dist/opencode-plugin/v2/anon-state.js +14 -0
  92. package/dist/opencode-plugin/v2/anon-state.js.map +1 -0
  93. package/dist/opencode-plugin/v2/deep-rehydrate.d.ts +13 -0
  94. package/dist/opencode-plugin/v2/deep-rehydrate.d.ts.map +1 -0
  95. package/dist/opencode-plugin/v2/deep-rehydrate.js +33 -0
  96. package/dist/opencode-plugin/v2/deep-rehydrate.js.map +1 -0
  97. package/dist/opencode-plugin/v2/index.d.ts +17 -0
  98. package/dist/opencode-plugin/v2/index.d.ts.map +1 -0
  99. package/dist/opencode-plugin/v2/index.js +17 -0
  100. package/dist/opencode-plugin/v2/index.js.map +1 -0
  101. package/dist/opencode-plugin/v2/logger.d.ts +24 -0
  102. package/dist/opencode-plugin/v2/logger.d.ts.map +1 -0
  103. package/dist/opencode-plugin/v2/logger.js +73 -0
  104. package/dist/opencode-plugin/v2/logger.js.map +1 -0
  105. package/dist/opencode-plugin/v2/options.d.ts +63 -0
  106. package/dist/opencode-plugin/v2/options.d.ts.map +1 -0
  107. package/dist/opencode-plugin/v2/options.js +183 -0
  108. package/dist/opencode-plugin/v2/options.js.map +1 -0
  109. package/dist/opencode-plugin/v2/register-hooks.d.ts +43 -0
  110. package/dist/opencode-plugin/v2/register-hooks.d.ts.map +1 -0
  111. package/dist/opencode-plugin/v2/register-hooks.js +160 -0
  112. package/dist/opencode-plugin/v2/register-hooks.js.map +1 -0
  113. package/dist/opencode-plugin/v2/rehydrate-tail.d.ts +101 -0
  114. package/dist/opencode-plugin/v2/rehydrate-tail.d.ts.map +1 -0
  115. package/dist/opencode-plugin/v2/rehydrate-tail.js +147 -0
  116. package/dist/opencode-plugin/v2/rehydrate-tail.js.map +1 -0
  117. package/dist/opencode-plugin/v2/response-rehydrate.d.ts +78 -0
  118. package/dist/opencode-plugin/v2/response-rehydrate.d.ts.map +1 -0
  119. package/dist/opencode-plugin/v2/response-rehydrate.js +210 -0
  120. package/dist/opencode-plugin/v2/response-rehydrate.js.map +1 -0
  121. package/dist/opencode-plugin/v2/scrub-messages.d.ts +39 -0
  122. package/dist/opencode-plugin/v2/scrub-messages.d.ts.map +1 -0
  123. package/dist/opencode-plugin/v2/scrub-messages.js +260 -0
  124. package/dist/opencode-plugin/v2/scrub-messages.js.map +1 -0
  125. package/dist/opencode-plugin/v2/sessions.d.ts +17 -0
  126. package/dist/opencode-plugin/v2/sessions.d.ts.map +1 -0
  127. package/dist/opencode-plugin/v2/sessions.js +23 -0
  128. package/dist/opencode-plugin/v2/sessions.js.map +1 -0
  129. package/dist/opencode-plugin/v2/sse.d.ts +101 -0
  130. package/dist/opencode-plugin/v2/sse.d.ts.map +1 -0
  131. package/dist/opencode-plugin/v2/sse.js +235 -0
  132. package/dist/opencode-plugin/v2/sse.js.map +1 -0
  133. package/dist/opencode-plugin/v2/types.d.ts +188 -0
  134. package/dist/opencode-plugin/v2/types.d.ts.map +1 -0
  135. package/dist/opencode-plugin/v2/types.js +10 -0
  136. package/dist/opencode-plugin/v2/types.js.map +1 -0
  137. package/dist/opencode-plugin/vcs-command.d.ts +3 -0
  138. package/dist/opencode-plugin/vcs-command.d.ts.map +1 -0
  139. package/dist/opencode-plugin/vcs-command.js +34 -0
  140. package/dist/opencode-plugin/vcs-command.js.map +1 -0
  141. package/dist/pipeline/index.d.ts +12 -0
  142. package/dist/pipeline/index.d.ts.map +1 -0
  143. package/dist/pipeline/index.js +12 -0
  144. package/dist/pipeline/index.js.map +1 -0
  145. package/dist/pipeline/prenormalize.d.ts +48 -0
  146. package/dist/pipeline/prenormalize.d.ts.map +1 -0
  147. package/dist/pipeline/prenormalize.js +94 -0
  148. package/dist/pipeline/prenormalize.js.map +1 -0
  149. package/dist/pipeline/resolver.d.ts +56 -0
  150. package/dist/pipeline/resolver.d.ts.map +1 -0
  151. package/dist/pipeline/resolver.js +239 -0
  152. package/dist/pipeline/resolver.js.map +1 -0
  153. package/dist/pipeline/semantic-data-loader.d.ts +171 -0
  154. package/dist/pipeline/semantic-data-loader.d.ts.map +1 -0
  155. package/dist/pipeline/semantic-data-loader.js +677 -0
  156. package/dist/pipeline/semantic-data-loader.js.map +1 -0
  157. package/dist/pipeline/semantic-enricher.d.ts +112 -0
  158. package/dist/pipeline/semantic-enricher.d.ts.map +1 -0
  159. package/dist/pipeline/semantic-enricher.js +322 -0
  160. package/dist/pipeline/semantic-enricher.js.map +1 -0
  161. package/dist/pipeline/tagger.d.ts +121 -0
  162. package/dist/pipeline/tagger.d.ts.map +1 -0
  163. package/dist/pipeline/tagger.js +545 -0
  164. package/dist/pipeline/tagger.js.map +1 -0
  165. package/dist/pipeline/title-extractor.d.ts +79 -0
  166. package/dist/pipeline/title-extractor.d.ts.map +1 -0
  167. package/dist/pipeline/title-extractor.js +801 -0
  168. package/dist/pipeline/title-extractor.js.map +1 -0
  169. package/dist/pipeline/validator.d.ts +65 -0
  170. package/dist/pipeline/validator.d.ts.map +1 -0
  171. package/dist/pipeline/validator.js +292 -0
  172. package/dist/pipeline/validator.js.map +1 -0
  173. package/dist/proxy/index.d.ts +13 -0
  174. package/dist/proxy/index.d.ts.map +1 -0
  175. package/dist/proxy/index.js +12 -0
  176. package/dist/proxy/index.js.map +1 -0
  177. package/dist/proxy/providers/anthropic.d.ts +28 -0
  178. package/dist/proxy/providers/anthropic.d.ts.map +1 -0
  179. package/dist/proxy/providers/anthropic.js +265 -0
  180. package/dist/proxy/providers/anthropic.js.map +1 -0
  181. package/dist/proxy/providers/index.d.ts +19 -0
  182. package/dist/proxy/providers/index.d.ts.map +1 -0
  183. package/dist/proxy/providers/index.js +41 -0
  184. package/dist/proxy/providers/index.js.map +1 -0
  185. package/dist/proxy/providers/openai.d.ts +27 -0
  186. package/dist/proxy/providers/openai.d.ts.map +1 -0
  187. package/dist/proxy/providers/openai.js +203 -0
  188. package/dist/proxy/providers/openai.js.map +1 -0
  189. package/dist/proxy/providers/streaming-tool-loop.d.ts +12 -0
  190. package/dist/proxy/providers/streaming-tool-loop.d.ts.map +1 -0
  191. package/dist/proxy/providers/streaming-tool-loop.js +223 -0
  192. package/dist/proxy/providers/streaming-tool-loop.js.map +1 -0
  193. package/dist/proxy/providers/types.d.ts +109 -0
  194. package/dist/proxy/providers/types.d.ts.map +1 -0
  195. package/dist/proxy/providers/types.js +2 -0
  196. package/dist/proxy/providers/types.js.map +1 -0
  197. package/dist/proxy/proxy-server.d.ts +61 -0
  198. package/dist/proxy/proxy-server.d.ts.map +1 -0
  199. package/dist/proxy/proxy-server.js +146 -0
  200. package/dist/proxy/proxy-server.js.map +1 -0
  201. package/dist/proxy/rehydra-fetch.d.ts +35 -0
  202. package/dist/proxy/rehydra-fetch.d.ts.map +1 -0
  203. package/dist/proxy/rehydra-fetch.js +631 -0
  204. package/dist/proxy/rehydra-fetch.js.map +1 -0
  205. package/dist/proxy/rehydra-proxy.d.ts +40 -0
  206. package/dist/proxy/rehydra-proxy.d.ts.map +1 -0
  207. package/dist/proxy/rehydra-proxy.js +150 -0
  208. package/dist/proxy/rehydra-proxy.js.map +1 -0
  209. package/dist/proxy/sse-parser.d.ts +59 -0
  210. package/dist/proxy/sse-parser.d.ts.map +1 -0
  211. package/dist/proxy/sse-parser.js +112 -0
  212. package/dist/proxy/sse-parser.js.map +1 -0
  213. package/dist/proxy/system-instruction.d.ts +19 -0
  214. package/dist/proxy/system-instruction.d.ts.map +1 -0
  215. package/dist/proxy/system-instruction.js +33 -0
  216. package/dist/proxy/system-instruction.js.map +1 -0
  217. package/dist/proxy/tool-loop-stream.d.ts +7 -0
  218. package/dist/proxy/tool-loop-stream.d.ts.map +1 -0
  219. package/dist/proxy/tool-loop-stream.js +65 -0
  220. package/dist/proxy/tool-loop-stream.js.map +1 -0
  221. package/dist/proxy/types.d.ts +138 -0
  222. package/dist/proxy/types.d.ts.map +1 -0
  223. package/dist/proxy/types.js +5 -0
  224. package/dist/proxy/types.js.map +1 -0
  225. package/dist/proxy/wrap-client.d.ts +47 -0
  226. package/dist/proxy/wrap-client.d.ts.map +1 -0
  227. package/dist/proxy/wrap-client.js +70 -0
  228. package/dist/proxy/wrap-client.js.map +1 -0
  229. package/dist/recognizers/address.d.ts +2 -0
  230. package/dist/recognizers/address.d.ts.map +1 -0
  231. package/dist/recognizers/address.js +23 -0
  232. package/dist/recognizers/address.js.map +1 -0
  233. package/dist/recognizers/base.d.ts +78 -0
  234. package/dist/recognizers/base.d.ts.map +1 -0
  235. package/dist/recognizers/base.js +100 -0
  236. package/dist/recognizers/base.js.map +1 -0
  237. package/dist/recognizers/bic-swift.d.ts +10 -0
  238. package/dist/recognizers/bic-swift.d.ts.map +1 -0
  239. package/dist/recognizers/bic-swift.js +107 -0
  240. package/dist/recognizers/bic-swift.js.map +1 -0
  241. package/dist/recognizers/credit-card.d.ts +32 -0
  242. package/dist/recognizers/credit-card.d.ts.map +1 -0
  243. package/dist/recognizers/credit-card.js +160 -0
  244. package/dist/recognizers/credit-card.js.map +1 -0
  245. package/dist/recognizers/custom-id.d.ts +28 -0
  246. package/dist/recognizers/custom-id.d.ts.map +1 -0
  247. package/dist/recognizers/custom-id.js +116 -0
  248. package/dist/recognizers/custom-id.js.map +1 -0
  249. package/dist/recognizers/date.d.ts +10 -0
  250. package/dist/recognizers/date.d.ts.map +1 -0
  251. package/dist/recognizers/date.js +228 -0
  252. package/dist/recognizers/date.js.map +1 -0
  253. package/dist/recognizers/email.d.ts +10 -0
  254. package/dist/recognizers/email.d.ts.map +1 -0
  255. package/dist/recognizers/email.js +75 -0
  256. package/dist/recognizers/email.js.map +1 -0
  257. package/dist/recognizers/iban.d.ts +14 -0
  258. package/dist/recognizers/iban.d.ts.map +1 -0
  259. package/dist/recognizers/iban.js +67 -0
  260. package/dist/recognizers/iban.js.map +1 -0
  261. package/dist/recognizers/index.d.ts +25 -0
  262. package/dist/recognizers/index.d.ts.map +1 -0
  263. package/dist/recognizers/index.js +53 -0
  264. package/dist/recognizers/index.js.map +1 -0
  265. package/dist/recognizers/ip-address.d.ts +14 -0
  266. package/dist/recognizers/ip-address.d.ts.map +1 -0
  267. package/dist/recognizers/ip-address.js +183 -0
  268. package/dist/recognizers/ip-address.js.map +1 -0
  269. package/dist/recognizers/phone.d.ts +10 -0
  270. package/dist/recognizers/phone.d.ts.map +1 -0
  271. package/dist/recognizers/phone.js +145 -0
  272. package/dist/recognizers/phone.js.map +1 -0
  273. package/dist/recognizers/postal-code.d.ts +16 -0
  274. package/dist/recognizers/postal-code.d.ts.map +1 -0
  275. package/dist/recognizers/postal-code.js +42 -0
  276. package/dist/recognizers/postal-code.js.map +1 -0
  277. package/dist/recognizers/registry.d.ts +59 -0
  278. package/dist/recognizers/registry.d.ts.map +1 -0
  279. package/dist/recognizers/registry.js +113 -0
  280. package/dist/recognizers/registry.js.map +1 -0
  281. package/dist/recognizers/secrets/api-key.d.ts +6 -0
  282. package/dist/recognizers/secrets/api-key.d.ts.map +1 -0
  283. package/dist/recognizers/secrets/api-key.js +40 -0
  284. package/dist/recognizers/secrets/api-key.js.map +1 -0
  285. package/dist/recognizers/secrets/aws-credentials.d.ts +7 -0
  286. package/dist/recognizers/secrets/aws-credentials.d.ts.map +1 -0
  287. package/dist/recognizers/secrets/aws-credentials.js +68 -0
  288. package/dist/recognizers/secrets/aws-credentials.js.map +1 -0
  289. package/dist/recognizers/secrets/config-secret.d.ts +8 -0
  290. package/dist/recognizers/secrets/config-secret.d.ts.map +1 -0
  291. package/dist/recognizers/secrets/config-secret.js +59 -0
  292. package/dist/recognizers/secrets/config-secret.js.map +1 -0
  293. package/dist/recognizers/secrets/connection-string.d.ts +6 -0
  294. package/dist/recognizers/secrets/connection-string.d.ts.map +1 -0
  295. package/dist/recognizers/secrets/connection-string.js +40 -0
  296. package/dist/recognizers/secrets/connection-string.js.map +1 -0
  297. package/dist/recognizers/secrets/env-var.d.ts +8 -0
  298. package/dist/recognizers/secrets/env-var.d.ts.map +1 -0
  299. package/dist/recognizers/secrets/env-var.js +54 -0
  300. package/dist/recognizers/secrets/env-var.js.map +1 -0
  301. package/dist/recognizers/secrets/index.d.ts +22 -0
  302. package/dist/recognizers/secrets/index.d.ts.map +1 -0
  303. package/dist/recognizers/secrets/index.js +41 -0
  304. package/dist/recognizers/secrets/index.js.map +1 -0
  305. package/dist/recognizers/secrets/jwt.d.ts +6 -0
  306. package/dist/recognizers/secrets/jwt.d.ts.map +1 -0
  307. package/dist/recognizers/secrets/jwt.js +47 -0
  308. package/dist/recognizers/secrets/jwt.js.map +1 -0
  309. package/dist/recognizers/secrets/key-patterns.d.ts +10 -0
  310. package/dist/recognizers/secrets/key-patterns.d.ts.map +1 -0
  311. package/dist/recognizers/secrets/key-patterns.js +15 -0
  312. package/dist/recognizers/secrets/key-patterns.js.map +1 -0
  313. package/dist/recognizers/secrets/literal-value.d.ts +10 -0
  314. package/dist/recognizers/secrets/literal-value.d.ts.map +1 -0
  315. package/dist/recognizers/secrets/literal-value.js +48 -0
  316. package/dist/recognizers/secrets/literal-value.js.map +1 -0
  317. package/dist/recognizers/secrets/private-key.d.ts +6 -0
  318. package/dist/recognizers/secrets/private-key.d.ts.map +1 -0
  319. package/dist/recognizers/secrets/private-key.js +16 -0
  320. package/dist/recognizers/secrets/private-key.js.map +1 -0
  321. package/dist/recognizers/url.d.ts +14 -0
  322. package/dist/recognizers/url.d.ts.map +1 -0
  323. package/dist/recognizers/url.js +121 -0
  324. package/dist/recognizers/url.js.map +1 -0
  325. package/dist/storage/browser.d.ts +13 -0
  326. package/dist/storage/browser.d.ts.map +1 -0
  327. package/dist/storage/browser.js +13 -0
  328. package/dist/storage/browser.js.map +1 -0
  329. package/dist/storage/in-memory.d.ts +60 -0
  330. package/dist/storage/in-memory.d.ts.map +1 -0
  331. package/dist/storage/in-memory.js +108 -0
  332. package/dist/storage/in-memory.js.map +1 -0
  333. package/dist/storage/index.d.ts +11 -0
  334. package/dist/storage/index.d.ts.map +1 -0
  335. package/dist/storage/index.js +11 -0
  336. package/dist/storage/index.js.map +1 -0
  337. package/dist/storage/indexeddb.d.ts +69 -0
  338. package/dist/storage/indexeddb.d.ts.map +1 -0
  339. package/dist/storage/indexeddb.js +274 -0
  340. package/dist/storage/indexeddb.js.map +1 -0
  341. package/dist/storage/session-base.d.ts +34 -0
  342. package/dist/storage/session-base.d.ts.map +1 -0
  343. package/dist/storage/session-base.js +122 -0
  344. package/dist/storage/session-base.js.map +1 -0
  345. package/dist/storage/session.d.ts +19 -0
  346. package/dist/storage/session.d.ts.map +1 -0
  347. package/dist/storage/session.js +31 -0
  348. package/dist/storage/session.js.map +1 -0
  349. package/dist/storage/sqlite.d.ts +80 -0
  350. package/dist/storage/sqlite.d.ts.map +1 -0
  351. package/dist/storage/sqlite.js +255 -0
  352. package/dist/storage/sqlite.js.map +1 -0
  353. package/dist/storage/types.d.ts +208 -0
  354. package/dist/storage/types.d.ts.map +1 -0
  355. package/dist/storage/types.js +6 -0
  356. package/dist/storage/types.js.map +1 -0
  357. package/dist/streaming/anonymizer-stream.d.ts +63 -0
  358. package/dist/streaming/anonymizer-stream.d.ts.map +1 -0
  359. package/dist/streaming/anonymizer-stream.js +184 -0
  360. package/dist/streaming/anonymizer-stream.js.map +1 -0
  361. package/dist/streaming/index.d.ts +9 -0
  362. package/dist/streaming/index.d.ts.map +1 -0
  363. package/dist/streaming/index.js +8 -0
  364. package/dist/streaming/index.js.map +1 -0
  365. package/dist/streaming/sentence-buffer.d.ts +78 -0
  366. package/dist/streaming/sentence-buffer.d.ts.map +1 -0
  367. package/dist/streaming/sentence-buffer.js +239 -0
  368. package/dist/streaming/sentence-buffer.js.map +1 -0
  369. package/dist/streaming/stream-factory.d.ts +38 -0
  370. package/dist/streaming/stream-factory.d.ts.map +1 -0
  371. package/dist/streaming/stream-factory.js +69 -0
  372. package/dist/streaming/stream-factory.js.map +1 -0
  373. package/dist/streaming/types.d.ts +121 -0
  374. package/dist/streaming/types.d.ts.map +1 -0
  375. package/dist/streaming/types.js +5 -0
  376. package/dist/streaming/types.js.map +1 -0
  377. package/dist/types/index.d.ts +269 -0
  378. package/dist/types/index.d.ts.map +1 -0
  379. package/dist/types/index.js +95 -0
  380. package/dist/types/index.js.map +1 -0
  381. package/dist/types/pii-types.d.ts +64 -0
  382. package/dist/types/pii-types.d.ts.map +1 -0
  383. package/dist/types/pii-types.js +153 -0
  384. package/dist/types/pii-types.js.map +1 -0
  385. package/dist/utils/iban-checksum.d.ts +23 -0
  386. package/dist/utils/iban-checksum.d.ts.map +1 -0
  387. package/dist/utils/iban-checksum.js +106 -0
  388. package/dist/utils/iban-checksum.js.map +1 -0
  389. package/dist/utils/index.d.ts +11 -0
  390. package/dist/utils/index.d.ts.map +1 -0
  391. package/dist/utils/index.js +11 -0
  392. package/dist/utils/index.js.map +1 -0
  393. package/dist/utils/json-walk.d.ts +21 -0
  394. package/dist/utils/json-walk.d.ts.map +1 -0
  395. package/dist/utils/json-walk.js +44 -0
  396. package/dist/utils/json-walk.js.map +1 -0
  397. package/dist/utils/luhn.d.ts +17 -0
  398. package/dist/utils/luhn.d.ts.map +1 -0
  399. package/dist/utils/luhn.js +55 -0
  400. package/dist/utils/luhn.js.map +1 -0
  401. package/dist/utils/offsets.d.ts +86 -0
  402. package/dist/utils/offsets.d.ts.map +1 -0
  403. package/dist/utils/offsets.js +124 -0
  404. package/dist/utils/offsets.js.map +1 -0
  405. package/dist/utils/path.d.ts +34 -0
  406. package/dist/utils/path.d.ts.map +1 -0
  407. package/dist/utils/path.js +96 -0
  408. package/dist/utils/path.js.map +1 -0
  409. package/dist/utils/regex.d.ts +11 -0
  410. package/dist/utils/regex.d.ts.map +1 -0
  411. package/dist/utils/regex.js +14 -0
  412. package/dist/utils/regex.js.map +1 -0
  413. package/dist/utils/storage-browser.d.ts +51 -0
  414. package/dist/utils/storage-browser.d.ts.map +1 -0
  415. package/dist/utils/storage-browser.js +381 -0
  416. package/dist/utils/storage-browser.js.map +1 -0
  417. package/dist/utils/storage-node.d.ts +51 -0
  418. package/dist/utils/storage-node.d.ts.map +1 -0
  419. package/dist/utils/storage-node.js +153 -0
  420. package/dist/utils/storage-node.js.map +1 -0
  421. package/dist/utils/storage.browser.d.ts +75 -0
  422. package/dist/utils/storage.browser.d.ts.map +1 -0
  423. package/dist/utils/storage.browser.js +69 -0
  424. package/dist/utils/storage.browser.js.map +1 -0
  425. package/dist/utils/storage.d.ts +73 -0
  426. package/dist/utils/storage.d.ts.map +1 -0
  427. package/dist/utils/storage.js +69 -0
  428. package/dist/utils/storage.js.map +1 -0
  429. package/index.js +6 -4
  430. package/package.json +19 -5
@@ -0,0 +1,80 @@
1
+ /**
2
+ * SQLite PII Storage Provider
3
+ * Server-side persistence with dual-runtime support (Node.js + Bun)
4
+ */
5
+ import type { EncryptedPIIMap } from "../types/index.js";
6
+ import type { PIIStorageProvider, PIIMapMetadata, StoredPIIMap, ListOptions } from "./types.js";
7
+ /**
8
+ * SQLite implementation of PIIStorageProvider
9
+ *
10
+ * Works on both Node.js (using better-sqlite3) and Bun (using bun:sqlite).
11
+ * The runtime is auto-detected, so no configuration is needed.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Create with file path (works on both Node.js and Bun)
16
+ * const storage = new SQLitePIIStorageProvider('./pii-maps.db');
17
+ * await storage.initialize();
18
+ *
19
+ * // Or use in-memory database for testing
20
+ * const storage = new SQLitePIIStorageProvider(':memory:');
21
+ * await storage.initialize();
22
+ *
23
+ * await storage.save('conv-123', encryptedPiiMap, {
24
+ * createdAt: Date.now(),
25
+ * entityCounts: { PERSON: 2 }
26
+ * });
27
+ * ```
28
+ */
29
+ export declare class SQLitePIIStorageProvider implements PIIStorageProvider {
30
+ private db;
31
+ private readonly dbPath;
32
+ private initialized;
33
+ /**
34
+ * Create a new SQLite storage provider
35
+ * @param dbPath - Path to SQLite database file, or ':memory:' for in-memory
36
+ */
37
+ constructor(dbPath: string);
38
+ /**
39
+ * Initialize the database connection and create tables
40
+ * Must be called before using other methods
41
+ */
42
+ initialize(): Promise<void>;
43
+ /**
44
+ * Ensure database is initialized
45
+ */
46
+ private ensureInitialized;
47
+ /**
48
+ * Save an encrypted PII map
49
+ */
50
+ save(conversationId: string, piiMap: EncryptedPIIMap, metadata?: Partial<PIIMapMetadata>): Promise<void>;
51
+ /**
52
+ * Load an encrypted PII map
53
+ */
54
+ load(conversationId: string): Promise<StoredPIIMap | null>;
55
+ /**
56
+ * Delete a PII map
57
+ */
58
+ delete(conversationId: string): Promise<boolean>;
59
+ /**
60
+ * Check if a PII map exists
61
+ */
62
+ exists(conversationId: string): Promise<boolean>;
63
+ /**
64
+ * List stored conversation IDs
65
+ */
66
+ list(options?: ListOptions): Promise<string[]>;
67
+ /**
68
+ * Delete entries older than the specified date
69
+ */
70
+ cleanup(olderThan: Date): Promise<number>;
71
+ /**
72
+ * Close the database connection
73
+ */
74
+ close(): void;
75
+ /**
76
+ * Check if the provider is initialized
77
+ */
78
+ get isInitialized(): boolean;
79
+ }
80
+ //# sourceMappingURL=sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAwFpB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,OAAO,CAAC,EAAE,CAA+B;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,WAAW,CAAS;IAE5B;;;OAGG;gBACS,MAAM,EAAE,MAAM;IAI1B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,IAAI,CACF,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,eAAe,EACvB,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;IAyChB;;OAEG;IACH,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAgC1D;;OAEG;IACH,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAchD;;OAEG;IACH,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAehD;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6B9C;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAczC;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;CACF"}
@@ -0,0 +1,255 @@
1
+ /**
2
+ * SQLite PII Storage Provider
3
+ * Server-side persistence with dual-runtime support (Node.js + Bun)
4
+ */
5
+ // ============================================================================
6
+ // Runtime Detection
7
+ // ============================================================================
8
+ /**
9
+ * Check if running in Bun runtime
10
+ */
11
+ function isBun() {
12
+ return typeof globalThis.Bun !== "undefined";
13
+ }
14
+ /**
15
+ * Load the appropriate SQLite driver based on runtime
16
+ */
17
+ async function loadSQLiteDriver(dbPath) {
18
+ if (isBun()) {
19
+ // Bun: use built-in bun:sqlite
20
+ // Use dynamic import with string to avoid TypeScript trying to resolve the module
21
+ const bunSqlite = "bun:sqlite";
22
+ const bunModule = (await import(/* @vite-ignore */ bunSqlite));
23
+ return new bunModule.Database(dbPath);
24
+ }
25
+ else {
26
+ // Node.js: use better-sqlite3
27
+ try {
28
+ const betterSqlite3 = await import(/* @vite-ignore */ "better-sqlite3");
29
+ const Database = betterSqlite3.default;
30
+ return new Database(dbPath);
31
+ }
32
+ catch (error) {
33
+ if (error instanceof Error &&
34
+ (error.message.includes("Cannot find module") ||
35
+ error.message.includes("MODULE_NOT_FOUND"))) {
36
+ throw new Error("SQLitePIIStorageProvider requires 'better-sqlite3' package on Node.js.\n" +
37
+ "Install it with: npm install better-sqlite3\n" +
38
+ "Note: On Bun, the built-in bun:sqlite is used automatically.");
39
+ }
40
+ throw error;
41
+ }
42
+ }
43
+ }
44
+ // ============================================================================
45
+ // SQLite Storage Provider
46
+ // ============================================================================
47
+ /**
48
+ * SQLite implementation of PIIStorageProvider
49
+ *
50
+ * Works on both Node.js (using better-sqlite3) and Bun (using bun:sqlite).
51
+ * The runtime is auto-detected, so no configuration is needed.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * // Create with file path (works on both Node.js and Bun)
56
+ * const storage = new SQLitePIIStorageProvider('./pii-maps.db');
57
+ * await storage.initialize();
58
+ *
59
+ * // Or use in-memory database for testing
60
+ * const storage = new SQLitePIIStorageProvider(':memory:');
61
+ * await storage.initialize();
62
+ *
63
+ * await storage.save('conv-123', encryptedPiiMap, {
64
+ * createdAt: Date.now(),
65
+ * entityCounts: { PERSON: 2 }
66
+ * });
67
+ * ```
68
+ */
69
+ export class SQLitePIIStorageProvider {
70
+ db = null;
71
+ dbPath;
72
+ initialized = false;
73
+ /**
74
+ * Create a new SQLite storage provider
75
+ * @param dbPath - Path to SQLite database file, or ':memory:' for in-memory
76
+ */
77
+ constructor(dbPath) {
78
+ this.dbPath = dbPath;
79
+ }
80
+ /**
81
+ * Initialize the database connection and create tables
82
+ * Must be called before using other methods
83
+ */
84
+ async initialize() {
85
+ if (this.initialized)
86
+ return;
87
+ this.db = await loadSQLiteDriver(this.dbPath);
88
+ // Create table and index
89
+ this.db.exec(`
90
+ CREATE TABLE IF NOT EXISTS pii_maps (
91
+ conversation_id TEXT PRIMARY KEY,
92
+ ciphertext TEXT NOT NULL,
93
+ iv TEXT NOT NULL,
94
+ auth_tag TEXT NOT NULL,
95
+ entity_counts TEXT,
96
+ model_version TEXT,
97
+ created_at INTEGER NOT NULL,
98
+ updated_at INTEGER
99
+ )
100
+ `);
101
+ this.db.exec(`
102
+ CREATE INDEX IF NOT EXISTS idx_pii_maps_created_at
103
+ ON pii_maps(created_at)
104
+ `);
105
+ this.initialized = true;
106
+ }
107
+ /**
108
+ * Ensure database is initialized
109
+ */
110
+ ensureInitialized() {
111
+ if (!this.initialized || this.db === null) {
112
+ throw new Error("SQLitePIIStorageProvider not initialized. Call initialize() first.");
113
+ }
114
+ }
115
+ /**
116
+ * Save an encrypted PII map
117
+ */
118
+ save(conversationId, piiMap, metadata) {
119
+ try {
120
+ this.ensureInitialized();
121
+ }
122
+ catch (error) {
123
+ return Promise.reject(error);
124
+ }
125
+ const now = Date.now();
126
+ // Check if entry exists to preserve createdAt
127
+ // bun:sqlite returns null, better-sqlite3 returns undefined for no results
128
+ const existing = this.db.prepare("SELECT created_at, entity_counts, model_version FROM pii_maps WHERE conversation_id = ?").get(conversationId);
129
+ const createdAt = existing?.created_at ?? metadata?.createdAt ?? now;
130
+ const existingEntityCounts = existing?.entity_counts;
131
+ const entityCounts = metadata?.entityCounts ??
132
+ (typeof existingEntityCounts === "string" && existingEntityCounts.length > 0
133
+ ? JSON.parse(existingEntityCounts)
134
+ : {});
135
+ const modelVersion = metadata?.modelVersion ?? existing?.model_version ?? null;
136
+ this.db.prepare(`
137
+ INSERT OR REPLACE INTO pii_maps
138
+ (conversation_id, ciphertext, iv, auth_tag, entity_counts, model_version, created_at, updated_at)
139
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
140
+ `).run(conversationId, piiMap.ciphertext, piiMap.iv, piiMap.authTag, JSON.stringify(entityCounts), modelVersion, createdAt, now);
141
+ return Promise.resolve();
142
+ }
143
+ /**
144
+ * Load an encrypted PII map
145
+ */
146
+ load(conversationId) {
147
+ try {
148
+ this.ensureInitialized();
149
+ }
150
+ catch (error) {
151
+ return Promise.reject(error);
152
+ }
153
+ const row = this.db.prepare("SELECT * FROM pii_maps WHERE conversation_id = ?").get(conversationId);
154
+ // bun:sqlite returns null, better-sqlite3 returns undefined for no results
155
+ if (row == null)
156
+ return Promise.resolve(null);
157
+ const entityCountsRaw = row.entity_counts;
158
+ return Promise.resolve({
159
+ piiMap: {
160
+ ciphertext: row.ciphertext,
161
+ iv: row.iv,
162
+ authTag: row.auth_tag,
163
+ },
164
+ metadata: {
165
+ createdAt: row.created_at,
166
+ updatedAt: row.updated_at ?? undefined,
167
+ entityCounts: typeof entityCountsRaw === "string" && entityCountsRaw.length > 0
168
+ ? JSON.parse(entityCountsRaw)
169
+ : {},
170
+ modelVersion: row.model_version ?? undefined,
171
+ },
172
+ });
173
+ }
174
+ /**
175
+ * Delete a PII map
176
+ */
177
+ delete(conversationId) {
178
+ try {
179
+ this.ensureInitialized();
180
+ }
181
+ catch (error) {
182
+ return Promise.reject(error);
183
+ }
184
+ const result = this.db.prepare("DELETE FROM pii_maps WHERE conversation_id = ?").run(conversationId);
185
+ return Promise.resolve(result.changes > 0);
186
+ }
187
+ /**
188
+ * Check if a PII map exists
189
+ */
190
+ exists(conversationId) {
191
+ try {
192
+ this.ensureInitialized();
193
+ }
194
+ catch (error) {
195
+ return Promise.reject(error);
196
+ }
197
+ const row = this.db.prepare("SELECT 1 FROM pii_maps WHERE conversation_id = ?").get(conversationId);
198
+ // bun:sqlite returns null, better-sqlite3 returns undefined for no results
199
+ return Promise.resolve(row != null);
200
+ }
201
+ /**
202
+ * List stored conversation IDs
203
+ */
204
+ list(options) {
205
+ try {
206
+ this.ensureInitialized();
207
+ }
208
+ catch (error) {
209
+ return Promise.reject(error);
210
+ }
211
+ let sql = "SELECT conversation_id FROM pii_maps";
212
+ const params = [];
213
+ if (options?.olderThan !== undefined) {
214
+ sql += " WHERE created_at < ?";
215
+ params.push(options.olderThan.getTime());
216
+ }
217
+ sql += " ORDER BY created_at DESC";
218
+ if (options?.limit !== undefined && options.limit > 0) {
219
+ sql += " LIMIT ?";
220
+ params.push(options.limit);
221
+ }
222
+ const rows = this.db.prepare(sql).all(...params);
223
+ return Promise.resolve(rows.map((row) => row.conversation_id));
224
+ }
225
+ /**
226
+ * Delete entries older than the specified date
227
+ */
228
+ cleanup(olderThan) {
229
+ try {
230
+ this.ensureInitialized();
231
+ }
232
+ catch (error) {
233
+ return Promise.reject(error);
234
+ }
235
+ const result = this.db.prepare("DELETE FROM pii_maps WHERE created_at < ?").run(olderThan.getTime());
236
+ return Promise.resolve(result.changes);
237
+ }
238
+ /**
239
+ * Close the database connection
240
+ */
241
+ close() {
242
+ if (this.db !== null) {
243
+ this.db.close();
244
+ this.db = null;
245
+ this.initialized = false;
246
+ }
247
+ }
248
+ /**
249
+ * Check if the provider is initialized
250
+ */
251
+ get isInitialized() {
252
+ return this.initialized;
253
+ }
254
+ }
255
+ //# sourceMappingURL=sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * PII Storage Provider Types
3
+ * Interfaces and types for persisting encrypted PII maps
4
+ */
5
+ export { EncryptedPIIMap } from "../types/index.js";
6
+ import type { EncryptedPIIMap, AnonymizationResult, AnonymizationPolicy } from "../types/index.js";
7
+ /**
8
+ * Metadata associated with a stored PII map
9
+ */
10
+ export interface PIIMapMetadata {
11
+ /** Unix timestamp when the PII map was created */
12
+ createdAt: number;
13
+ /** Unix timestamp when the PII map was last updated */
14
+ updatedAt?: number;
15
+ /** Count of entities by type (e.g., { PERSON: 2, EMAIL: 1 }) */
16
+ entityCounts: Record<string, number>;
17
+ /** Version of the model used for detection */
18
+ modelVersion?: string;
19
+ }
20
+ /**
21
+ * A stored PII map with its metadata
22
+ */
23
+ export interface StoredPIIMap {
24
+ /** The encrypted PII map data */
25
+ piiMap: EncryptedPIIMap;
26
+ /** Associated metadata */
27
+ metadata: PIIMapMetadata;
28
+ }
29
+ /**
30
+ * Options for listing stored PII maps
31
+ */
32
+ export interface ListOptions {
33
+ /** Maximum number of conversation IDs to return */
34
+ limit?: number;
35
+ /** Only return entries older than this date */
36
+ olderThan?: Date;
37
+ }
38
+ /**
39
+ * Storage provider interface for persisting encrypted PII maps
40
+ *
41
+ * Implementations:
42
+ * - InMemoryPIIStorageProvider: For development/testing
43
+ * - SQLitePIIStorageProvider: For server-side persistence (Node.js/Bun)
44
+ * - IndexedDBPIIStorageProvider: For browser-side persistence
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * const storage = new InMemoryPIIStorageProvider();
49
+ *
50
+ * // Save a PII map
51
+ * await storage.save('conv-123', encryptedPiiMap, {
52
+ * createdAt: Date.now(),
53
+ * entityCounts: { PERSON: 2, EMAIL: 1 }
54
+ * });
55
+ *
56
+ * // Load it back
57
+ * const stored = await storage.load('conv-123');
58
+ *
59
+ * // Cleanup old entries (optional)
60
+ * const deleted = await storage.cleanup(new Date(Date.now() - 7 * 24 * 60 * 60 * 1000));
61
+ * ```
62
+ */
63
+ export interface PIIStorageProvider {
64
+ /**
65
+ * Save an encrypted PII map
66
+ * @param conversationId - Unique conversation identifier
67
+ * @param piiMap - Encrypted PII map (ciphertext, iv, authTag)
68
+ * @param metadata - Optional metadata (createdAt, entityCounts, etc.)
69
+ * If not provided, createdAt defaults to current time
70
+ */
71
+ save(conversationId: string, piiMap: EncryptedPIIMap, metadata?: Partial<PIIMapMetadata>): Promise<void>;
72
+ /**
73
+ * Load an encrypted PII map
74
+ * @param conversationId - Unique conversation identifier
75
+ * @returns The stored PII map with metadata, or null if not found
76
+ */
77
+ load(conversationId: string): Promise<StoredPIIMap | null>;
78
+ /**
79
+ * Delete a PII map
80
+ * @param conversationId - Unique conversation identifier
81
+ * @returns true if deleted, false if not found
82
+ */
83
+ delete(conversationId: string): Promise<boolean>;
84
+ /**
85
+ * Check if a PII map exists
86
+ * @param conversationId - Unique conversation identifier
87
+ * @returns true if exists, false otherwise
88
+ */
89
+ exists(conversationId: string): Promise<boolean>;
90
+ /**
91
+ * List stored conversation IDs
92
+ * @param options - Optional filtering/limiting options
93
+ * @returns Array of conversation IDs
94
+ */
95
+ list(options?: ListOptions): Promise<string[]>;
96
+ /**
97
+ * Delete entries older than the specified date
98
+ * This is a manual cleanup operation - entries persist forever by default
99
+ * @param olderThan - Delete entries with createdAt before this date
100
+ * @returns Number of entries deleted
101
+ */
102
+ cleanup(olderThan: Date): Promise<number>;
103
+ }
104
+ /**
105
+ * Session-bound interface for anonymization with automatic storage
106
+ *
107
+ * A session wraps an Anonymizer instance with a specific session ID,
108
+ * automatically saving PII maps on anonymize and loading them on rehydrate.
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const session = anonymizer.session('chat-123');
113
+ *
114
+ * // Anonymize - auto-saves to storage
115
+ * const result = await session.anonymize('Hello John Smith!');
116
+ *
117
+ * // Rehydrate - auto-loads and decrypts
118
+ * const original = await session.rehydrate(translatedText);
119
+ * ```
120
+ */
121
+ export interface AnonymizerSession {
122
+ /** The session identifier */
123
+ readonly sessionId: string;
124
+ /**
125
+ * Anonymize text and automatically save the encrypted PII map
126
+ * @param text - Input text to anonymize
127
+ * @param locale - Optional locale hint (e.g., 'de-DE', 'en-US')
128
+ * @param policy - Optional policy override
129
+ * @returns Anonymization result (same as Anonymizer.anonymize)
130
+ */
131
+ anonymize(text: string, locale?: string, policy?: Partial<AnonymizationPolicy>): Promise<AnonymizationResult>;
132
+ /**
133
+ * Rehydrate anonymized text by loading and decrypting the stored PII map
134
+ * @param text - Anonymized text with PII placeholders
135
+ * @returns Original text with PII values restored
136
+ * @throws Error if no PII map found for this session
137
+ */
138
+ rehydrate(text: string): Promise<string>;
139
+ /**
140
+ * Load the stored PII map for this session (without decrypting)
141
+ * @returns The stored PII map with metadata, or null if not found
142
+ */
143
+ load(): Promise<StoredPIIMap | null>;
144
+ /**
145
+ * Delete the stored PII map for this session
146
+ * @returns true if deleted, false if not found
147
+ */
148
+ delete(): Promise<boolean>;
149
+ /**
150
+ * Check if a PII map exists for this session
151
+ * @returns true if exists, false otherwise
152
+ */
153
+ exists(): Promise<boolean>;
154
+ /**
155
+ * Recursively anonymize all string values in a JSON-serializable structure.
156
+ * Returns a deep copy with every string leaf anonymized via session.anonymize().
157
+ *
158
+ * Useful for anonymizing tool call results or arbitrary JSON payloads
159
+ * in multi-round LLM tool execution loops.
160
+ *
161
+ * @param value - Any JSON-serializable value (object, array, string, number, boolean, null)
162
+ * @param locale - Optional locale hint (e.g., 'de-DE', 'en-US')
163
+ * @param policy - Optional policy override
164
+ * @returns Deep copy with all strings anonymized
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * const result = await session.anonymizeJson({
169
+ * name: "John Smith",
170
+ * email: "john@example.com",
171
+ * age: 30,
172
+ * });
173
+ * // { name: '<PII type="PERSON" id="1"/>', email: '<PII type="EMAIL" id="2"/>', age: 30 }
174
+ * ```
175
+ */
176
+ anonymizeJson<T>(value: T, locale?: string, policy?: Partial<AnonymizationPolicy>): Promise<T>;
177
+ /**
178
+ * Recursively rehydrate all string values in a JSON-serializable structure.
179
+ * Returns a deep copy with every string leaf rehydrated via session.rehydrate().
180
+ *
181
+ * @param value - Any JSON-serializable value
182
+ * @returns Deep copy with all strings rehydrated (PII tags replaced with original values)
183
+ *
184
+ * @example
185
+ * ```typescript
186
+ * const original = await session.rehydrateJson(anonymizedResult);
187
+ * // { name: "John Smith", email: "john@example.com", age: 30 }
188
+ * ```
189
+ */
190
+ rehydrateJson<T>(value: T): Promise<T>;
191
+ /**
192
+ * Create a streaming anonymizer bound to this session.
193
+ * The stream automatically uses this session's ID, storage, and key provider.
194
+ * Node.js/Bun only — not available in browser builds.
195
+ *
196
+ * @param config - Optional stream configuration overrides
197
+ * @returns A Transform stream that anonymizes text chunk-by-chunk
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * const session = anonymizer.session('chat-123');
202
+ * const stream = await session.createStream();
203
+ * input.pipe(stream).pipe(output);
204
+ * ```
205
+ */
206
+ createStream?(config?: Record<string, unknown>): Promise<NodeJS.ReadWriteStream>;
207
+ }
208
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * PII Storage Provider Types
3
+ * Interfaces and types for persisting encrypted PII maps
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Anonymizer Stream
3
+ * Node.js Transform stream that anonymizes text chunk-by-chunk
4
+ * using sentence buffering for NER context.
5
+ */
6
+ import { Transform, type TransformCallback } from "node:stream";
7
+ import type { RawPIIMap } from "../pipeline/tagger.js";
8
+ import type { StreamConfig } from "./types.js";
9
+ import type { IAnonymizer } from "../storage/session.js";
10
+ /**
11
+ * Transform stream that anonymizes text passing through it.
12
+ *
13
+ * Uses a SentenceBuffer to accumulate text and flush at sentence
14
+ * boundaries, maintaining overlap for NER context.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const stream = await createAnonymizerStream({
19
+ * anonymizer: { ner: { mode: 'quantized' } },
20
+ * sessionId: 'chat-123',
21
+ * piiStorageProvider: storage,
22
+ * keyProvider: keyProvider,
23
+ * });
24
+ *
25
+ * createReadStream('input.txt')
26
+ * .pipe(stream)
27
+ * .pipe(createWriteStream('anonymized.txt'));
28
+ * ```
29
+ */
30
+ export declare class AnonymizerStream extends Transform {
31
+ private readonly sentenceBuffer;
32
+ private readonly keyProvider;
33
+ private readonly piiStorageProvider;
34
+ private readonly sessionId;
35
+ private readonly onChunkCallback?;
36
+ private readonly onFinishCallback?;
37
+ private readonly saveIntervalMs;
38
+ private lastSaveTime;
39
+ private totalEntities;
40
+ private startTime;
41
+ private chunkCount;
42
+ constructor(anonymizer: IAnonymizer, config: StreamConfig, initialPiiMap?: RawPIIMap);
43
+ /**
44
+ * Get the cumulative PII map built across all chunks.
45
+ * Available after stream finishes.
46
+ */
47
+ getPiiMap(): RawPIIMap;
48
+ /**
49
+ * Get stream statistics.
50
+ */
51
+ get stats(): {
52
+ totalEntities: number;
53
+ chunksProcessed: number;
54
+ totalProcessingTimeMs: number;
55
+ };
56
+ _transform(chunk: Buffer | string, encoding: BufferEncoding, callback: TransformCallback): void;
57
+ _flush(callback: TransformCallback): void;
58
+ private processChunk;
59
+ private maybeSaveToStorage;
60
+ private processFlush;
61
+ private buildEntityCounts;
62
+ }
63
+ //# sourceMappingURL=anonymizer-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anonymizer-stream.d.ts","sourceRoot":"","sources":["../../src/streaming/anonymizer-stream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAuC,MAAM,YAAY,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4B;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAoC;IACrE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAqC;IAEvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;gBAGrB,UAAU,EAAE,WAAW,EACvB,MAAM,EAAE,YAAY,EACpB,aAAa,CAAC,EAAE,SAAS;IAuB3B;;;OAGG;IACH,SAAS,IAAI,SAAS;IAItB;;OAEG;IACH,IAAI,KAAK,IAAI;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAOA;IAEQ,UAAU,CACjB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAYE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;YAMpC,YAAY;YAuBZ,kBAAkB;YAsBlB,YAAY;IAgD1B,OAAO,CAAC,iBAAiB;CAY1B"}