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 @@
1
+ {"version":3,"file":"stream-factory.js","sourceRoot":"","sources":["../../src/streaming/stream-factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAuB,EAAE;IAEzB,8DAA8D;IAC9D,IAAI,gBAAgB,GAAiC,MAAM,CAAC,UAAU,CAAC;IACvE,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;QACvC,gBAAgB,GAAG;YACjB,GAAG,gBAAgB;YACnB,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;SAC1B,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,+EAA+E;IAC/E,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,gBAAgB,GAAG;YACjB,GAAG,gBAAgB;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,MAAM,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;IAE9B,0DAA0D;IAC1D,IAAI,aAAoC,CAAC;IACzC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC7I,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC9C,aAAa,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Streaming Anonymization Types
3
+ */
4
+ import type { TransformOptions } from "node:stream";
5
+ import type { AnonymizerConfig } from "../core/anonymizer.js";
6
+ import type { AnonymizationPolicy, DetectedEntity, EncryptedPIIMap } from "../types/index.js";
7
+ import type { KeyProvider } from "../crypto/index.js";
8
+ import type { PIIStorageProvider } from "../storage/types.js";
9
+ /**
10
+ * Configuration for the streaming anonymizer
11
+ */
12
+ export interface StreamConfig {
13
+ /** Base anonymizer config */
14
+ anonymizer?: AnonymizerConfig;
15
+ /** Policy override for all chunks */
16
+ policy?: Partial<AnonymizationPolicy>;
17
+ /** Locale hint (e.g., 'de-DE', 'en-US') */
18
+ locale?: string;
19
+ /** Sentence buffer configuration */
20
+ buffer?: SentenceBufferConfig;
21
+ /** Session ID for cross-chunk ID persistence and storage */
22
+ sessionId?: string;
23
+ /** Storage provider (required if sessionId is set) */
24
+ piiStorageProvider?: PIIStorageProvider;
25
+ /** Key provider (required if sessionId is set) */
26
+ keyProvider?: KeyProvider;
27
+ /**
28
+ * Interval in milliseconds for saving the PII map to storage during streaming.
29
+ * When set, saves at most once per interval (in addition to the final save on flush).
30
+ * Useful for crash recovery on long streams.
31
+ * @default undefined (only save on stream end)
32
+ */
33
+ saveIntervalMs?: number;
34
+ /** Node.js Transform stream options (highWaterMark, etc.) */
35
+ streamOptions?: TransformOptions;
36
+ /** Callback fired after each chunk is anonymized */
37
+ onChunk?: (event: StreamChunkEvent) => void;
38
+ /** Callback fired when the stream finishes */
39
+ onFinish?: (event: StreamFinishEvent) => void;
40
+ }
41
+ /**
42
+ * Sentence buffer configuration
43
+ */
44
+ export interface SentenceBufferConfig {
45
+ /**
46
+ * Overlap size in characters for NER context window.
47
+ * The overlap region from the previous chunk is re-processed
48
+ * to catch entities that span boundaries.
49
+ * @default 100
50
+ */
51
+ overlapChars?: number;
52
+ /**
53
+ * Maximum buffer size before forcing a flush.
54
+ * Prevents unbounded memory growth if no sentence boundary is found.
55
+ * @default 8192
56
+ */
57
+ maxBufferSize?: number;
58
+ /**
59
+ * Minimum characters to buffer before attempting sentence detection.
60
+ * In low-latency mode this is automatically reduced.
61
+ * @default 50
62
+ */
63
+ minBufferSize?: number;
64
+ /**
65
+ * Low-latency mode for LLM token streams.
66
+ * - Reduces buffer sizes
67
+ * - Disables NER (regex-only)
68
+ * - Flushes more aggressively
69
+ * @default false
70
+ */
71
+ lowLatency?: boolean;
72
+ /**
73
+ * Custom sentence boundary regex.
74
+ * @default /[.!?]\s+|[\n]{2,}/
75
+ */
76
+ sentenceBoundary?: RegExp;
77
+ }
78
+ /**
79
+ * Event emitted after each chunk is processed
80
+ */
81
+ export interface StreamChunkEvent {
82
+ /** Anonymized text for this chunk */
83
+ anonymizedText: string;
84
+ /** Entities detected in this chunk */
85
+ entities: Omit<DetectedEntity, "original">[];
86
+ /** Cumulative entity count */
87
+ totalEntities: number;
88
+ /** Processing time for this chunk in ms */
89
+ processingTimeMs: number;
90
+ }
91
+ /**
92
+ * Event emitted when the stream finishes
93
+ */
94
+ export interface StreamFinishEvent {
95
+ /** Total entities across all chunks */
96
+ totalEntities: number;
97
+ /** Final encrypted PII map (if pseudonymize mode) */
98
+ piiMap?: EncryptedPIIMap;
99
+ /** Total processing time in ms */
100
+ totalProcessingTimeMs: number;
101
+ }
102
+ /**
103
+ * Result of a single buffer flush
104
+ */
105
+ export interface FlushResult {
106
+ /** Anonymized text for the new (non-overlap) portion */
107
+ anonymizedText: string;
108
+ /** Entities detected in this flush */
109
+ entities: Omit<DetectedEntity, "original">[];
110
+ }
111
+ /**
112
+ * Resolved buffer configuration with defaults applied
113
+ */
114
+ export interface ResolvedBufferConfig {
115
+ overlapChars: number;
116
+ maxBufferSize: number;
117
+ minBufferSize: number;
118
+ lowLatency: boolean;
119
+ sentenceBoundary: RegExp;
120
+ }
121
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oCAAoC;IACpC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAE9B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC,kDAAkD;IAClD,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAEjC,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE5C,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC;IAC7C,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,kCAAkC;IAClC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Streaming Anonymization Types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,269 @@
1
+ import { PIIType } from "./pii-types.js";
2
+ export * from "./pii-types.js";
3
+ /**
4
+ * Source of entity detection
5
+ */
6
+ export declare enum DetectionSource {
7
+ REGEX = "REGEX",
8
+ NER = "NER",
9
+ HYBRID = "HYBRID"
10
+ }
11
+ /**
12
+ * Anonymization mode
13
+ * - 'pseudonymize': Reversible anonymization with encrypted PII map (default)
14
+ * - 'anonymize': Irreversible anonymization without PII map
15
+ */
16
+ export type AnonymizationMode = "pseudonymize" | "anonymize";
17
+ /**
18
+ * Gender attribute for PERSON entities
19
+ * Used to preserve grammatical agreement during machine translation
20
+ */
21
+ export type PersonGender = "male" | "female" | "neutral" | "unknown";
22
+ /**
23
+ * Scope attribute for LOCATION entities
24
+ * Helps MT engines select correct prepositions (e.g., "in Berlin" vs "in Germany")
25
+ */
26
+ export type LocationScope = "city" | "country" | "region" | "macro-region" | "unknown";
27
+ /**
28
+ * Semantic attributes for PII entities
29
+ * These attributes help preserve linguistic context during translation
30
+ */
31
+ export interface SemanticAttributes {
32
+ /** Gender for PERSON entities */
33
+ gender?: PersonGender;
34
+ /** Geographic scope for LOCATION entities */
35
+ scope?: LocationScope;
36
+ /** Honorific title extracted from PERSON entities (e.g., "Dr.", "Mrs.") */
37
+ title?: string;
38
+ }
39
+ /**
40
+ * Configures the delimiter format used for PII placeholder tags.
41
+ *
42
+ * Default (XML-style): `<PII type="EMAIL" id="1"/>`
43
+ * Custom example: `[[PII type="EMAIL" id="1"]]`
44
+ */
45
+ export interface TagFormat {
46
+ /** Opening delimiter (e.g., "<" for XML, "[[" for bracket style) */
47
+ open: string;
48
+ /** Closing delimiter (e.g., "/>" for XML self-closing, "]]" for bracket style) */
49
+ close: string;
50
+ /** Tag keyword (default: "PII"). Allows e.g., "REDACTED" instead of "PII" */
51
+ keyword?: string;
52
+ }
53
+ /**
54
+ * Default XML-style tag format: `<PII type="..." id="N"/>`
55
+ */
56
+ export declare const DEFAULT_TAG_FORMAT: TagFormat;
57
+ /**
58
+ * Progress callback for semantic data downloads
59
+ */
60
+ export type SemanticDownloadProgressCallback = (progress: {
61
+ file: string;
62
+ bytesDownloaded: number;
63
+ totalBytes: number | null;
64
+ percent: number | null;
65
+ }) => void;
66
+ /**
67
+ * Semantic enrichment configuration
68
+ * Controls automatic downloading and loading of semantic data for MT-friendly PII tags
69
+ */
70
+ export interface SemanticConfig {
71
+ /**
72
+ * Whether to enable semantic masking (adds gender/scope attributes to PII tags)
73
+ * @default false
74
+ */
75
+ enabled: boolean;
76
+ /**
77
+ * Whether to auto-download semantic data if not present
78
+ * Data files include name-gender mappings (~40K names) and location data (~25K cities)
79
+ * Total download size: ~4 MB
80
+ * @default true when enabled is true
81
+ */
82
+ autoDownload?: boolean;
83
+ /**
84
+ * Callback for download progress
85
+ */
86
+ onDownloadProgress?: SemanticDownloadProgressCallback;
87
+ /**
88
+ * Callback for status messages
89
+ */
90
+ onStatus?: (status: string) => void;
91
+ }
92
+ /**
93
+ * Identifier of a PII tag.
94
+ *
95
+ * IDs assigned by the tagger are 1-based, monotonically increasing numbers.
96
+ * Externally generated IDs (e.g. seeded through an existing PII map) may also
97
+ * be lowercase alphanumeric strings (`[0-9a-z]+`), which lets callers derive a
98
+ * stable ID from the value it masks. Decimal-only IDs are always represented
99
+ * as numbers; any ID containing letters is represented as a lowercase string.
100
+ */
101
+ export type TagId = number | string;
102
+ /**
103
+ * A detected PII entity with its position and metadata
104
+ */
105
+ export interface DetectedEntity {
106
+ /** PII category */
107
+ type: PIIType;
108
+ /** Unique identifier within the document (see {@link TagId}) */
109
+ id: TagId;
110
+ /** Start character offset in original text (0-based, inclusive) */
111
+ start: number;
112
+ /** End character offset in original text (0-based, exclusive) */
113
+ end: number;
114
+ /** Detection confidence score (0.0 to 1.0) */
115
+ confidence: number;
116
+ /** How this entity was detected */
117
+ source: DetectionSource;
118
+ /** Original text (only stored in encrypted pii_map, never logged) */
119
+ original: string;
120
+ /** Semantic attributes for MT-friendly tags (gender, scope, etc.) */
121
+ semantic?: SemanticAttributes;
122
+ }
123
+ /**
124
+ * A span match from a recognizer (before ID assignment)
125
+ */
126
+ export interface SpanMatch {
127
+ /** PII category */
128
+ type: PIIType;
129
+ /** Start character offset (0-based, inclusive) */
130
+ start: number;
131
+ /** End character offset (0-based, exclusive) */
132
+ end: number;
133
+ /** Detection confidence score (0.0 to 1.0) */
134
+ confidence: number;
135
+ /** How this span was detected */
136
+ source: DetectionSource;
137
+ /** The matched text */
138
+ text: string;
139
+ /** Semantic attributes for MT-friendly tags (gender, scope, etc.) */
140
+ semantic?: SemanticAttributes;
141
+ }
142
+ /**
143
+ * Custom ID pattern configuration
144
+ */
145
+ export interface CustomIdPattern {
146
+ /** Pattern name for identification */
147
+ name: string;
148
+ /** Regular expression pattern */
149
+ pattern: RegExp;
150
+ /** PII type to assign (typically CASE_ID or CUSTOMER_ID) */
151
+ type: PIIType;
152
+ /** Optional validation function */
153
+ validate?: (match: string) => boolean;
154
+ }
155
+ /**
156
+ * Anonymization policy configuration
157
+ */
158
+ export interface AnonymizationPolicy {
159
+ /** Set of PII types to detect (both regex and NER) */
160
+ enabledTypes: Set<PIIType>;
161
+ /** Set of PII types to detect via regex */
162
+ regexEnabledTypes: Set<PIIType>;
163
+ /** Set of PII types to detect via NER */
164
+ nerEnabledTypes: Set<PIIType>;
165
+ /** Priority order for resolving overlapping entities (higher index = higher priority) */
166
+ typePriority: PIIType[];
167
+ /** Minimum confidence thresholds per type (default: 0.5) */
168
+ confidenceThresholds: Map<PIIType, number>;
169
+ /** Custom ID patterns for domain-specific identifiers */
170
+ customIdPatterns: CustomIdPattern[];
171
+ /** Terms that should not be treated as PII (case-insensitive) */
172
+ allowlistTerms: Set<string>;
173
+ /** Terms that should always be treated as PII */
174
+ denylistPatterns: RegExp[];
175
+ /** Whether to reuse IDs for identical repeated PII strings */
176
+ reuseIdsForRepeatedPII: boolean;
177
+ /** Whether to run leak scan on anonymized output */
178
+ enableLeakScan: boolean;
179
+ /** Enable semantic attribute enrichment for MT-friendly tags (gender, location scope) */
180
+ enableSemanticMasking: boolean;
181
+ /** Location scopes to exclude from anonymization (e.g., 'country', 'region').
182
+ * Requires enableSemanticMasking to be true. Locations whose scope matches
183
+ * one of these values are dropped before tagging. */
184
+ excludeLocationScopes: Set<LocationScope>;
185
+ }
186
+ /**
187
+ * Encrypted PII map entry
188
+ */
189
+ export interface EncryptedPIIMap {
190
+ /** AES-256-GCM encrypted data (base64) */
191
+ ciphertext: string;
192
+ /** Initialization vector (base64) */
193
+ iv: string;
194
+ /** Authentication tag (base64) */
195
+ authTag: string;
196
+ }
197
+ /**
198
+ * Statistics about the anonymization process
199
+ */
200
+ export interface AnonymizationStats {
201
+ /** Count of entities detected per type */
202
+ countsByType: Record<PIIType, number>;
203
+ /** Total number of entities detected */
204
+ totalEntities: number;
205
+ /** NER model version used */
206
+ modelVersion: string;
207
+ /** Policy version/identifier */
208
+ policyVersion: string;
209
+ /** Processing time in milliseconds */
210
+ processingTimeMs: number;
211
+ /** Whether leak scan passed (if enabled) */
212
+ leakScanPassed?: boolean;
213
+ /**
214
+ * True when NER coverage was truncated because the input exceeded
215
+ * maxWindowsPerInput (its tail was not scanned by the NER model). Regex
216
+ * detection is unaffected. Callers enforcing a fail-closed policy should
217
+ * treat this as incomplete masking. Undefined when NER did not run (e.g.
218
+ * regex-only) or the producer does not report coverage.
219
+ */
220
+ nerTruncated?: boolean;
221
+ /**
222
+ * Number of leading input characters NER scanned (in prenormalized space).
223
+ * Only meaningful when nerTruncated is true: a caller can cut the input at
224
+ * this offset to keep only the fully-scanned portion. Because prenormalized
225
+ * text is never longer than the original, cutting the original string at
226
+ * this offset stays at or before the true boundary (never keeps unscanned
227
+ * content).
228
+ */
229
+ nerCoverageChars?: number;
230
+ }
231
+ /**
232
+ * Result of the anonymization process
233
+ */
234
+ export interface AnonymizationResult {
235
+ /** Text with PII replaced by placeholder tags */
236
+ anonymizedText: string;
237
+ /** List of detected entities (without original text for safety) */
238
+ entities: Omit<DetectedEntity, "original">[];
239
+ /** Encrypted mapping of (type, id) -> original string (undefined in 'anonymize' mode) */
240
+ piiMap?: EncryptedPIIMap;
241
+ /** Statistics about the anonymization */
242
+ stats: AnonymizationStats;
243
+ }
244
+ /**
245
+ * Creates a default anonymization policy with all types enabled
246
+ */
247
+ /**
248
+ * Secrets/credentials detection configuration
249
+ */
250
+ export interface SecretsConfig {
251
+ /** Enable secrets/credentials detection */
252
+ enabled: boolean;
253
+ /** .env file paths or Node.js glob patterns to parse for known secret values */
254
+ envFiles?: string[];
255
+ /** Base directory for Node.js envFiles paths/globs. Defaults to process.cwd(). */
256
+ envBaseDirectory?: string;
257
+ /** Explicit values to always redact */
258
+ redactValues?: string[];
259
+ /** Additional key name patterns for ENV_VAR_SECRET / CONFIG_SECRET detection */
260
+ secretKeyPatterns?: RegExp[];
261
+ /** Minimum value length to consider as a secret (default: 4) */
262
+ minValueLength?: number;
263
+ }
264
+ export declare function createDefaultPolicy(): AnonymizationPolicy;
265
+ /**
266
+ * Merges a partial policy with defaults
267
+ */
268
+ export declare function mergePolicy(partial: Partial<AnonymizationPolicy>): AnonymizationPolicy;
269
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { PIIType, DEFAULT_TYPE_PRIORITY, SECRET_PII_TYPES } from "./pii-types.js";
2
+ export * from "./pii-types.js";
3
+ /**
4
+ * Source of entity detection
5
+ */
6
+ export var DetectionSource;
7
+ (function (DetectionSource) {
8
+ DetectionSource["REGEX"] = "REGEX";
9
+ DetectionSource["NER"] = "NER";
10
+ DetectionSource["HYBRID"] = "HYBRID";
11
+ })(DetectionSource || (DetectionSource = {}));
12
+ /**
13
+ * Default XML-style tag format: `<PII type="..." id="N"/>`
14
+ */
15
+ export const DEFAULT_TAG_FORMAT = {
16
+ open: "<",
17
+ close: "/>",
18
+ keyword: "PII",
19
+ };
20
+ export function createDefaultPolicy() {
21
+ const allTypes = new Set(Object.values(PIIType));
22
+ // Secret types are opt-in only — exclude from default enabled set
23
+ const secretTypeSet = new Set(SECRET_PII_TYPES);
24
+ for (const secretType of secretTypeSet) {
25
+ allTypes.delete(secretType);
26
+ }
27
+ const defaultThresholds = new Map();
28
+ for (const type of allTypes) {
29
+ // Higher threshold for NER-detected types (more uncertainty)
30
+ defaultThresholds.set(type, type === PIIType.PERSON || type === PIIType.ORG ? 0.7 : 0.5);
31
+ }
32
+ return {
33
+ enabledTypes: allTypes,
34
+ regexEnabledTypes: new Set([
35
+ PIIType.ADDRESS,
36
+ PIIType.EMAIL,
37
+ PIIType.PHONE,
38
+ PIIType.POSTAL_CODE,
39
+ PIIType.IBAN,
40
+ PIIType.BIC_SWIFT,
41
+ PIIType.CREDIT_CARD,
42
+ PIIType.IP_ADDRESS,
43
+ PIIType.URL,
44
+ PIIType.DATE,
45
+ PIIType.CASE_ID,
46
+ PIIType.CUSTOMER_ID,
47
+ ]),
48
+ nerEnabledTypes: new Set([
49
+ PIIType.PERSON,
50
+ PIIType.ORG,
51
+ PIIType.LOCATION,
52
+ PIIType.ADDRESS,
53
+ PIIType.DATE_OF_BIRTH,
54
+ ]),
55
+ typePriority: [...DEFAULT_TYPE_PRIORITY],
56
+ confidenceThresholds: defaultThresholds,
57
+ customIdPatterns: [],
58
+ allowlistTerms: new Set(),
59
+ denylistPatterns: [],
60
+ reuseIdsForRepeatedPII: false,
61
+ enableLeakScan: true,
62
+ enableSemanticMasking: false,
63
+ excludeLocationScopes: new Set(),
64
+ };
65
+ }
66
+ /**
67
+ * Merges a partial policy with defaults
68
+ */
69
+ export function mergePolicy(partial) {
70
+ const defaultPolicy = createDefaultPolicy();
71
+ // Deep merge confidenceThresholds Map
72
+ let confidenceThresholds = defaultPolicy.confidenceThresholds;
73
+ if (partial.confidenceThresholds !== undefined) {
74
+ confidenceThresholds = new Map(defaultPolicy.confidenceThresholds);
75
+ // Merge in partial thresholds
76
+ for (const [type, threshold] of partial.confidenceThresholds) {
77
+ confidenceThresholds.set(type, threshold);
78
+ }
79
+ }
80
+ return {
81
+ enabledTypes: partial.enabledTypes ?? defaultPolicy.enabledTypes,
82
+ regexEnabledTypes: partial.regexEnabledTypes ?? defaultPolicy.regexEnabledTypes,
83
+ nerEnabledTypes: partial.nerEnabledTypes ?? defaultPolicy.nerEnabledTypes,
84
+ typePriority: partial.typePriority ?? defaultPolicy.typePriority,
85
+ confidenceThresholds,
86
+ customIdPatterns: partial.customIdPatterns ?? defaultPolicy.customIdPatterns,
87
+ allowlistTerms: partial.allowlistTerms ?? defaultPolicy.allowlistTerms,
88
+ denylistPatterns: partial.denylistPatterns ?? defaultPolicy.denylistPatterns,
89
+ reuseIdsForRepeatedPII: partial.reuseIdsForRepeatedPII ?? defaultPolicy.reuseIdsForRepeatedPII,
90
+ enableLeakScan: partial.enableLeakScan ?? defaultPolicy.enableLeakScan,
91
+ enableSemanticMasking: partial.enableSemanticMasking ?? defaultPolicy.enableSemanticMasking,
92
+ excludeLocationScopes: partial.excludeLocationScopes ?? defaultPolicy.excludeLocationScopes,
93
+ };
94
+ }
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * PII Type Enumeration
3
+ * Defines all supported PII categories for detection and anonymization
4
+ */
5
+ export declare enum PIIType {
6
+ PERSON = "PERSON",
7
+ ORG = "ORG",
8
+ LOCATION = "LOCATION",
9
+ ADDRESS = "ADDRESS",
10
+ POSTAL_CODE = "POSTAL_CODE",
11
+ EMAIL = "EMAIL",
12
+ PHONE = "PHONE",
13
+ GITHUB_USERNAME = "GITHUB_USERNAME",
14
+ URL = "URL",
15
+ IP_ADDRESS = "IP_ADDRESS",
16
+ IBAN = "IBAN",
17
+ BIC_SWIFT = "BIC_SWIFT",
18
+ ACCOUNT_NUMBER = "ACCOUNT_NUMBER",
19
+ CREDIT_CARD = "CREDIT_CARD",
20
+ DATE = "DATE",
21
+ TAX_ID = "TAX_ID",
22
+ NATIONAL_ID = "NATIONAL_ID",
23
+ DATE_OF_BIRTH = "DATE_OF_BIRTH",
24
+ CASE_ID = "CASE_ID",
25
+ CUSTOMER_ID = "CUSTOMER_ID",
26
+ API_KEY = "API_KEY",
27
+ PRIVATE_KEY = "PRIVATE_KEY",
28
+ JWT = "JWT",
29
+ CONNECTION_STRING = "CONNECTION_STRING",
30
+ AWS_CREDENTIALS = "AWS_CREDENTIALS",
31
+ ENV_VAR_SECRET = "ENV_VAR_SECRET",
32
+ CONFIG_SECRET = "CONFIG_SECRET"
33
+ }
34
+ /**
35
+ * All PII types as a readonly array for iteration
36
+ */
37
+ export declare const ALL_PII_TYPES: readonly PIIType[];
38
+ /**
39
+ * PII types that are detected via regex (structured PII)
40
+ */
41
+ export declare const REGEX_PII_TYPES: readonly PIIType[];
42
+ /**
43
+ * PII types that are secrets/credentials (opt-in, regex-based)
44
+ */
45
+ export declare const SECRET_PII_TYPES: readonly PIIType[];
46
+ /**
47
+ * PII types that are detected via NER model (soft PII)
48
+ */
49
+ export declare const NER_PII_TYPES: readonly PIIType[];
50
+ /**
51
+ * Default priority order for resolving overlapping entities
52
+ * Higher index = higher priority
53
+ */
54
+ export declare const DEFAULT_TYPE_PRIORITY: readonly PIIType[];
55
+ /**
56
+ * Maps NER model labels to PIIType
57
+ * Common label formats from NER models (B-PER, I-PER, B-ORG, etc.)
58
+ */
59
+ export declare const NER_LABEL_TO_PII_TYPE: Record<string, PIIType>;
60
+ /**
61
+ * Get PIIType from NER label (handles B-/I- prefixes)
62
+ */
63
+ export declare function getPIITypeFromNERLabel(label: string): PIIType | null;
64
+ //# sourceMappingURL=pii-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pii-types.d.ts","sourceRoot":"","sources":["../../src/types/pii-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,OAAO;IAEjB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAG3B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,eAAe,oBAAoB;IACnC,GAAG,QAAQ;IACX,UAAU,eAAe;IAGzB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAG3B,IAAI,SAAS;IAGb,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAG/B,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAG3B,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,GAAG,QAAQ;IACX,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,OAAO,EAAwC,CAAC;AAErF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,OAAO,EAiB7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,OAAO,EAQ9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,OAAO,EAM3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,OAAO,EAgCnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAWzD,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CASpE"}