opencode-rehydar 0.14.1 → 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 +14 -13
  430. package/package.json +19 -5
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Credit Card Number Recognizer
3
+ * Detects major card types with Luhn checksum validation
4
+ */
5
+ import type { Recognizer } from './base.js';
6
+ /**
7
+ * Credit card patterns for major card types
8
+ * All patterns allow optional separators (spaces, dashes)
9
+ */
10
+ declare const CARD_PATTERNS: {
11
+ visa: RegExp;
12
+ mastercard: RegExp;
13
+ amex: RegExp;
14
+ discover: RegExp;
15
+ diners: RegExp;
16
+ jcb: RegExp;
17
+ generic: RegExp;
18
+ };
19
+ /**
20
+ * Card type names for identification
21
+ */
22
+ type CardType = keyof typeof CARD_PATTERNS;
23
+ /**
24
+ * Credit card recognizer with Luhn validation
25
+ */
26
+ export declare const creditCardRecognizer: Recognizer;
27
+ /**
28
+ * Identifies the card type from a card number
29
+ */
30
+ export declare function identifyCardType(cardNumber: string): CardType | 'unknown';
31
+ export {};
32
+ //# sourceMappingURL=credit-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-card.d.ts","sourceRoot":"","sources":["../../src/recognizers/credit-card.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C;;;GAGG;AACH,QAAA,MAAM,aAAa;;;;;;;;CAuBlB,CAAC;AAEF;;GAEG;AACH,KAAK,QAAQ,GAAG,MAAM,OAAO,aAAa,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAuElC,CAAC;AA6DF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAWzE"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Credit Card Number Recognizer
3
+ * Detects major card types with Luhn checksum validation
4
+ */
5
+ import { PIIType, DetectionSource } from '../types/index.js';
6
+ import { validateLuhn } from '../utils/luhn.js';
7
+ /**
8
+ * Credit card patterns for major card types
9
+ * All patterns allow optional separators (spaces, dashes)
10
+ */
11
+ const CARD_PATTERNS = {
12
+ // Visa: 13 or 16 digits, starts with 4
13
+ visa: /\b4[0-9]{3}[\s-]?[0-9]{4}[\s-]?[0-9]{4}[\s-]?[0-9]{1,4}\b/g,
14
+ // Mastercard: 16 digits, starts with 51-55 or 2221-2720
15
+ mastercard: /\b(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[\s-]?[0-9]{4}[\s-]?[0-9]{4}[\s-]?[0-9]{4}\b/g,
16
+ // American Express: 15 digits, starts with 34 or 37
17
+ amex: /\b3[47][0-9]{2}[\s-]?[0-9]{6}[\s-]?[0-9]{5}\b/g,
18
+ // Discover: 16 digits, starts with 6011, 644-649, 65
19
+ discover: /\b(?:6011|64[4-9][0-9]|65[0-9]{2})[\s-]?[0-9]{4}[\s-]?[0-9]{4}[\s-]?[0-9]{4}\b/g,
20
+ // Diners Club: 14 digits, starts with 36, 38, or 300-305
21
+ diners: /\b(?:36[0-9]{2}|38[0-9]{2}|30[0-5][0-9])[\s-]?[0-9]{4}[\s-]?[0-9]{4}[\s-]?[0-9]{2}\b/g,
22
+ // JCB: 16 digits, starts with 3528-3589
23
+ jcb: /\b35(?:2[89]|[3-8][0-9])[\s-]?[0-9]{4}[\s-]?[0-9]{4}[\s-]?[0-9]{4}\b/g,
24
+ // Generic 16-digit pattern (fallback)
25
+ generic: /\b[0-9]{4}[\s-]?[0-9]{4}[\s-]?[0-9]{4}[\s-]?[0-9]{4}\b/g,
26
+ };
27
+ /**
28
+ * Credit card recognizer with Luhn validation
29
+ */
30
+ export const creditCardRecognizer = {
31
+ type: PIIType.CREDIT_CARD,
32
+ name: 'Credit Card Number',
33
+ defaultConfidence: 0.98,
34
+ find(text) {
35
+ const matches = [];
36
+ const seen = new Set();
37
+ // Try each card type pattern
38
+ for (const [cardType, pattern] of Object.entries(CARD_PATTERNS)) {
39
+ const globalPattern = new RegExp(pattern.source, 'g');
40
+ for (const match of text.matchAll(globalPattern)) {
41
+ if (match.index === undefined)
42
+ continue;
43
+ const cardNumber = match[0];
44
+ const key = `${match.index}:${match.index + cardNumber.length}`;
45
+ if (seen.has(key))
46
+ continue;
47
+ // Validate with Luhn checksum
48
+ if (!this.validate(cardNumber))
49
+ continue;
50
+ // Skip generic matches that look like other number sequences
51
+ if (cardType === 'generic' && !looksLikeCreditCard(cardNumber)) {
52
+ continue;
53
+ }
54
+ seen.add(key);
55
+ matches.push({
56
+ type: PIIType.CREDIT_CARD,
57
+ start: match.index,
58
+ end: match.index + cardNumber.length,
59
+ confidence: this.defaultConfidence,
60
+ source: DetectionSource.REGEX,
61
+ text: cardNumber,
62
+ });
63
+ }
64
+ }
65
+ // Remove overlapping matches
66
+ return deduplicateOverlapping(matches);
67
+ },
68
+ validate(cardNumber) {
69
+ // Extract digits only
70
+ const digits = cardNumber.replace(/\D/g, '');
71
+ // Check length (13-19 digits)
72
+ if (digits.length < 13 || digits.length > 19) {
73
+ return false;
74
+ }
75
+ // Validate Luhn checksum
76
+ if (!validateLuhn(digits)) {
77
+ return false;
78
+ }
79
+ // Should not be all same digit
80
+ if (/^(\d)\1+$/.test(digits)) {
81
+ return false;
82
+ }
83
+ return true;
84
+ },
85
+ normalize(cardNumber) {
86
+ // Remove separators, return digits only
87
+ return cardNumber.replace(/\D/g, '');
88
+ },
89
+ };
90
+ /**
91
+ * Additional heuristics for generic 16-digit sequences
92
+ */
93
+ function looksLikeCreditCard(number) {
94
+ const digits = number.replace(/\D/g, '');
95
+ // Check if it starts with a known card prefix
96
+ const knownPrefixes = [
97
+ '4', // Visa
98
+ '5', // Mastercard
99
+ '34',
100
+ '37', // Amex
101
+ '6011',
102
+ '65', // Discover
103
+ '36',
104
+ '38', // Diners
105
+ '35', // JCB
106
+ ];
107
+ for (const prefix of knownPrefixes) {
108
+ if (digits.startsWith(prefix)) {
109
+ return true;
110
+ }
111
+ }
112
+ // If it has separators in a card-like format, probably a card
113
+ if (/\d{4}[\s-]\d{4}[\s-]\d{4}[\s-]\d{4}/.test(number)) {
114
+ return true;
115
+ }
116
+ return false;
117
+ }
118
+ /**
119
+ * Remove overlapping matches
120
+ */
121
+ function deduplicateOverlapping(matches) {
122
+ if (matches.length <= 1)
123
+ return matches;
124
+ const sorted = [...matches].sort((a, b) => a.start - b.start);
125
+ const result = [];
126
+ for (const match of sorted) {
127
+ const last = result[result.length - 1];
128
+ if (last !== undefined && match.start < last.end) {
129
+ // Keep the one with higher confidence or longer match
130
+ if (match.confidence > last.confidence || match.end - match.start > last.end - last.start) {
131
+ result.pop();
132
+ result.push(match);
133
+ }
134
+ }
135
+ else {
136
+ result.push(match);
137
+ }
138
+ }
139
+ return result;
140
+ }
141
+ /**
142
+ * Identifies the card type from a card number
143
+ */
144
+ export function identifyCardType(cardNumber) {
145
+ const digits = cardNumber.replace(/\D/g, '');
146
+ if (/^4/.test(digits))
147
+ return 'visa';
148
+ if (/^5[1-5]/.test(digits) || /^2(?:2[2-9][1-9]|2[3-9]|[3-6]|7[01]|720)/.test(digits))
149
+ return 'mastercard';
150
+ if (/^3[47]/.test(digits))
151
+ return 'amex';
152
+ if (/^6(?:011|4[4-9]|5)/.test(digits))
153
+ return 'discover';
154
+ if (/^3(?:6|8|0[0-5])/.test(digits))
155
+ return 'diners';
156
+ if (/^35(?:2[89]|[3-8])/.test(digits))
157
+ return 'jcb';
158
+ return 'unknown';
159
+ }
160
+ //# sourceMappingURL=credit-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-card.js","sourceRoot":"","sources":["../../src/recognizers/credit-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Custom ID Recognizer
3
+ * Configurable recognizer for domain-specific identifiers
4
+ * (Case IDs, Customer IDs, File References, etc.)
5
+ */
6
+ import { CustomIdPattern } from '../types/index.js';
7
+ import type { Recognizer } from './base.js';
8
+ /**
9
+ * Creates a custom ID recognizer from patterns defined in policy
10
+ */
11
+ export declare function createCustomIdRecognizer(patterns: CustomIdPattern[]): Recognizer;
12
+ /**
13
+ * Common patterns for banking/government IDs that can be used as templates
14
+ */
15
+ export declare const COMMON_ID_PATTERNS: Record<string, RegExp>;
16
+ /**
17
+ * Creates a standard case ID recognizer
18
+ */
19
+ export declare function createCaseIdRecognizer(): Recognizer;
20
+ /**
21
+ * Creates a standard customer ID recognizer
22
+ */
23
+ export declare function createCustomerIdRecognizer(): Recognizer;
24
+ /**
25
+ * Validates that a string looks like a structured ID (not just random text)
26
+ */
27
+ export declare function isStructuredId(text: string): boolean;
28
+ //# sourceMappingURL=custom-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-id.d.ts","sourceRoot":"","sources":["../../src/recognizers/custom-id.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,UAAU,CA8ChF;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsBrD,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAanD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,UAAU,CAQvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAcpD"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Custom ID Recognizer
3
+ * Configurable recognizer for domain-specific identifiers
4
+ * (Case IDs, Customer IDs, File References, etc.)
5
+ */
6
+ import { PIIType, DetectionSource } from '../types/index.js';
7
+ /**
8
+ * Creates a custom ID recognizer from patterns defined in policy
9
+ */
10
+ export function createCustomIdRecognizer(patterns) {
11
+ return {
12
+ type: PIIType.CASE_ID, // Default type, will be overridden per pattern
13
+ name: 'Custom ID',
14
+ defaultConfidence: 0.9,
15
+ find(text) {
16
+ const matches = [];
17
+ const seen = new Set();
18
+ for (const patternConfig of patterns) {
19
+ const { pattern, type, validate } = patternConfig;
20
+ // Ensure pattern has global flag
21
+ const globalPattern = pattern.global
22
+ ? pattern
23
+ : new RegExp(pattern.source, pattern.flags + 'g');
24
+ for (const match of text.matchAll(globalPattern)) {
25
+ if (match.index === undefined)
26
+ continue;
27
+ const idText = match[0];
28
+ const key = `${match.index}:${match.index + idText.length}`;
29
+ if (seen.has(key))
30
+ continue;
31
+ // Run custom validation if provided
32
+ if (validate !== undefined && !validate(idText)) {
33
+ continue;
34
+ }
35
+ seen.add(key);
36
+ matches.push({
37
+ type,
38
+ start: match.index,
39
+ end: match.index + idText.length,
40
+ confidence: 0.9,
41
+ source: DetectionSource.REGEX,
42
+ text: idText,
43
+ });
44
+ }
45
+ }
46
+ return matches;
47
+ },
48
+ };
49
+ }
50
+ /**
51
+ * Common patterns for banking/government IDs that can be used as templates
52
+ */
53
+ export const COMMON_ID_PATTERNS = {
54
+ // German case/file reference patterns
55
+ germanCaseId: /\b[A-Z]{2,3}[\s-]?[0-9]{4,10}[\s-]?[A-Z0-9]{0,4}\b/g,
56
+ // Generic case number (e.g., CASE-12345)
57
+ genericCaseNumber: /\b(?:CASE|FILE|REF|TICKET)[\s-]?[A-Z0-9]{4,12}\b/gi,
58
+ // Customer number patterns
59
+ customerNumber: /\b(?:CUST|CUSTOMER|KD|KUNDEN)[\s-]?(?:NR|NO|NUM|NUMBER)?[\s-]?[0-9]{4,12}\b/gi,
60
+ // Account reference (non-IBAN)
61
+ accountReference: /\b(?:ACC|ACCT|KONTO)[\s-]?[0-9]{6,12}\b/gi,
62
+ // Invoice/Order numbers
63
+ invoiceNumber: /\b(?:INV|INVOICE|RG|RECHNUNG)[\s-]?[A-Z0-9]{4,12}\b/gi,
64
+ orderNumber: /\b(?:ORD|ORDER|BESTELLUNG)[\s-]?[A-Z0-9]{4,12}\b/gi,
65
+ // Policy/Contract numbers
66
+ policyNumber: /\b(?:POL|POLICY|VERTRAG)[\s-]?[A-Z0-9]{6,15}\b/gi,
67
+ // Social Security / Tax ID patterns (generic)
68
+ taxIdGeneric: /\b[0-9]{2,3}[\s/-]?[0-9]{2,4}[\s/-]?[0-9]{2,4}[\s/-]?[0-9]{1,4}\b/g,
69
+ };
70
+ /**
71
+ * Creates a standard case ID recognizer
72
+ */
73
+ export function createCaseIdRecognizer() {
74
+ return createCustomIdRecognizer([
75
+ {
76
+ name: 'German Case ID',
77
+ pattern: COMMON_ID_PATTERNS['germanCaseId'],
78
+ type: PIIType.CASE_ID,
79
+ },
80
+ {
81
+ name: 'Generic Case Number',
82
+ pattern: COMMON_ID_PATTERNS['genericCaseNumber'],
83
+ type: PIIType.CASE_ID,
84
+ },
85
+ ]);
86
+ }
87
+ /**
88
+ * Creates a standard customer ID recognizer
89
+ */
90
+ export function createCustomerIdRecognizer() {
91
+ return createCustomIdRecognizer([
92
+ {
93
+ name: 'Customer Number',
94
+ pattern: COMMON_ID_PATTERNS['customerNumber'],
95
+ type: PIIType.CUSTOMER_ID,
96
+ },
97
+ ]);
98
+ }
99
+ /**
100
+ * Validates that a string looks like a structured ID (not just random text)
101
+ */
102
+ export function isStructuredId(text) {
103
+ // Should have at least some digits
104
+ const digitCount = (text.match(/\d/g) ?? []).length;
105
+ if (digitCount < 3)
106
+ return false;
107
+ // Should not be all letters or all digits
108
+ const letterCount = (text.match(/[a-zA-Z]/g) ?? []).length;
109
+ const totalAlphanumeric = digitCount + letterCount;
110
+ // Most of the characters should be alphanumeric
111
+ const cleanText = text.replace(/[\s\-_]/g, '');
112
+ if (totalAlphanumeric / cleanText.length < 0.9)
113
+ return false;
114
+ return true;
115
+ }
116
+ //# sourceMappingURL=custom-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-id.js","sourceRoot":"","sources":["../../src/recognizers/custom-id.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Date Recognizer
3
+ * Detects common date formats: ISO, US, EU, and written (English) dates
4
+ */
5
+ import type { Recognizer } from './base.js';
6
+ /**
7
+ * Date recognizer with multi-format support
8
+ */
9
+ export declare const dateRecognizer: Recognizer;
10
+ //# sourceMappingURL=date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/recognizers/date.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAyH5C;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAwG5B,CAAC"}
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Date Recognizer
3
+ * Detects common date formats: ISO, US, EU, and written (English) dates
4
+ */
5
+ import { PIIType, DetectionSource } from '../types/index.js';
6
+ const MONTHS_LONG = [
7
+ 'january',
8
+ 'february',
9
+ 'march',
10
+ 'april',
11
+ 'may',
12
+ 'june',
13
+ 'july',
14
+ 'august',
15
+ 'september',
16
+ 'october',
17
+ 'november',
18
+ 'december',
19
+ ];
20
+ const MONTHS_SHORT = [
21
+ 'jan',
22
+ 'feb',
23
+ 'mar',
24
+ 'apr',
25
+ 'may',
26
+ 'jun',
27
+ 'jul',
28
+ 'aug',
29
+ 'sep',
30
+ 'oct',
31
+ 'nov',
32
+ 'dec',
33
+ ];
34
+ const MONTH_NAME_PATTERN = `(?:${MONTHS_LONG.join('|')}|${MONTHS_SHORT.join('|')})`;
35
+ /**
36
+ * Date patterns organized by format family
37
+ *
38
+ * Numeric patterns use negative lookbehind/lookahead for digits and dots
39
+ * to avoid matching inside IP addresses, version numbers, or longer numeric strings.
40
+ */
41
+ const DATE_PATTERNS = {
42
+ // ISO: 2024-03-15, 2024/03/15
43
+ iso: /(?<![0-9.])\b(\d{4})[/-](0[1-9]|1[0-2])[/-](0[1-9]|[12]\d|3[01])\b(?!\d)/gi,
44
+ // EU dot: 15.03.2024
45
+ euDot: /(?<![0-9.])\b(0[1-9]|[12]\d|3[01])\.(0[1-9]|1[0-2])\.(\d{4})\b(?![0-9.])/g,
46
+ // US slash/dash: 03/15/2024, 03-15-2024
47
+ usLong: /(?<![0-9.])\b(0?[1-9]|1[0-2])[/-](0?[1-9]|[12]\d|3[01])[/-](\d{4})\b(?!\d)/g,
48
+ // EU slash/dash (day first): 15/03/2024, 15-03-2024
49
+ // Only matches when day > 12 to disambiguate from US format
50
+ euSlash: /(?<![0-9.])\b(1[3-9]|2\d|3[01])[/-](0?[1-9]|1[0-2])[/-](\d{4})\b(?!\d)/g,
51
+ // Written long: March 15, 2024 / March 15 2024
52
+ writtenMDY: new RegExp(`\\b${MONTH_NAME_PATTERN}\\.?\\s+(0?[1-9]|[12]\\d|3[01])(?:st|nd|rd|th)?,?\\s+(\\d{4})\\b`, 'gi'),
53
+ // Written day-first: 15 March 2024 / 15th March, 2024
54
+ writtenDMY: new RegExp(`\\b(0?[1-9]|[12]\\d|3[01])(?:st|nd|rd|th)?\\s+${MONTH_NAME_PATTERN}\\.?,?\\s+(\\d{4})\\b`, 'gi'),
55
+ };
56
+ /**
57
+ * Maps month name to number (1-12)
58
+ */
59
+ function monthNameToNumber(name) {
60
+ const lower = name.toLowerCase().replace(/\.$/, '');
61
+ const longIdx = MONTHS_LONG.indexOf(lower);
62
+ if (longIdx !== -1)
63
+ return longIdx + 1;
64
+ const shortIdx = MONTHS_SHORT.indexOf(lower);
65
+ if (shortIdx !== -1)
66
+ return shortIdx + 1;
67
+ return 0;
68
+ }
69
+ /**
70
+ * Validates that month/day/year form a plausible calendar date
71
+ */
72
+ function isValidDate(year, month, day) {
73
+ if (year < 1900 || year > 2099)
74
+ return false;
75
+ if (month < 1 || month > 12)
76
+ return false;
77
+ if (day < 1 || day > 31)
78
+ return false;
79
+ // Month length check (accounts for leap years)
80
+ const maxDay = new Date(year, month, 0).getDate();
81
+ return day <= maxDay;
82
+ }
83
+ /**
84
+ * Parses and validates a numeric date match.
85
+ * Returns true if the captured groups form a valid date.
86
+ *
87
+ * @param groups - three captured strings in the order they appear in the regex
88
+ * @param order - describes which group is year/month/day
89
+ */
90
+ function validateNumericGroups(groups, order) {
91
+ const nums = groups.map(Number);
92
+ let year, month, day;
93
+ switch (order) {
94
+ case 'YMD':
95
+ [year, month, day] = nums;
96
+ break;
97
+ case 'DMY':
98
+ [day, month, year] = nums;
99
+ break;
100
+ case 'MDY':
101
+ [month, day, year] = nums;
102
+ break;
103
+ }
104
+ return isValidDate(year, month, day);
105
+ }
106
+ /**
107
+ * Date recognizer with multi-format support
108
+ */
109
+ export const dateRecognizer = {
110
+ type: PIIType.DATE,
111
+ name: 'Date',
112
+ defaultConfidence: 0.9,
113
+ find(text) {
114
+ const matches = [];
115
+ const seen = new Set();
116
+ // --- Numeric patterns with explicit group ordering --------------------
117
+ const numericEntries = [
118
+ { pattern: DATE_PATTERNS.iso, order: 'YMD' },
119
+ { pattern: DATE_PATTERNS.euDot, order: 'DMY' },
120
+ { pattern: DATE_PATTERNS.usLong, order: 'MDY' },
121
+ { pattern: DATE_PATTERNS.euSlash, order: 'DMY' },
122
+ ];
123
+ for (const { pattern, order } of numericEntries) {
124
+ const re = new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : pattern.flags + 'g');
125
+ for (const m of text.matchAll(re)) {
126
+ if (m.index === undefined)
127
+ continue;
128
+ const matchText = m[0];
129
+ const key = `${m.index}:${m.index + matchText.length}`;
130
+ if (seen.has(key))
131
+ continue;
132
+ const g1 = m[1];
133
+ const g2 = m[2];
134
+ const g3 = m[3];
135
+ if (g1 === undefined || g2 === undefined || g3 === undefined)
136
+ continue;
137
+ if (!validateNumericGroups([g1, g2, g3], order))
138
+ continue;
139
+ seen.add(key);
140
+ matches.push({
141
+ type: PIIType.DATE,
142
+ start: m.index,
143
+ end: m.index + matchText.length,
144
+ confidence: this.defaultConfidence,
145
+ source: DetectionSource.REGEX,
146
+ text: matchText,
147
+ });
148
+ }
149
+ }
150
+ // --- Written patterns -------------------------------------------------
151
+ const writtenPatterns = [DATE_PATTERNS.writtenMDY, DATE_PATTERNS.writtenDMY];
152
+ for (const pattern of writtenPatterns) {
153
+ const re = new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : pattern.flags + 'g');
154
+ for (const m of text.matchAll(re)) {
155
+ if (m.index === undefined)
156
+ continue;
157
+ const matchText = m[0];
158
+ const key = `${m.index}:${m.index + matchText.length}`;
159
+ if (seen.has(key))
160
+ continue;
161
+ // Extract month name from the full match
162
+ const monthMatch = matchText.match(new RegExp(MONTH_NAME_PATTERN, 'i'));
163
+ if (!monthMatch)
164
+ continue;
165
+ const monthNum = monthNameToNumber(monthMatch[0]);
166
+ if (monthNum === 0)
167
+ continue;
168
+ // Extract day and year digits from captured groups
169
+ const digits = [...matchText.matchAll(/\d+/g)].map((d) => Number(d[0]));
170
+ if (digits.length < 2)
171
+ continue;
172
+ let day, year;
173
+ if (digits[0] <= 31 && digits[1] >= 1900) {
174
+ // day ... year
175
+ day = digits[0];
176
+ year = digits[1];
177
+ }
178
+ else if (digits[0] >= 1900) {
179
+ // year ... day (unlikely in written form, but handle)
180
+ year = digits[0];
181
+ day = digits[1];
182
+ }
183
+ else {
184
+ day = digits[0];
185
+ year = digits[1];
186
+ }
187
+ if (!isValidDate(year, monthNum, day))
188
+ continue;
189
+ seen.add(key);
190
+ matches.push({
191
+ type: PIIType.DATE,
192
+ start: m.index,
193
+ end: m.index + matchText.length,
194
+ confidence: this.defaultConfidence,
195
+ source: DetectionSource.REGEX,
196
+ text: matchText,
197
+ });
198
+ }
199
+ }
200
+ return deduplicateOverlapping(matches);
201
+ },
202
+ normalize(date) {
203
+ return date.trim();
204
+ },
205
+ };
206
+ /**
207
+ * Remove overlapping matches, keeping longer ones
208
+ */
209
+ function deduplicateOverlapping(matches) {
210
+ if (matches.length <= 1)
211
+ return matches;
212
+ const sorted = [...matches].sort((a, b) => a.start - b.start);
213
+ const result = [];
214
+ for (const match of sorted) {
215
+ const last = result[result.length - 1];
216
+ if (last !== undefined && match.start < last.end) {
217
+ if (match.end - match.start > last.end - last.start) {
218
+ result.pop();
219
+ result.push(match);
220
+ }
221
+ }
222
+ else {
223
+ result.push(match);
224
+ }
225
+ }
226
+ return result;
227
+ }
228
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/recognizers/date.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Email Address Recognizer
3
+ * RFC-like pattern with boundary awareness
4
+ */
5
+ import type { Recognizer } from './base.js';
6
+ /**
7
+ * Email address recognizer
8
+ */
9
+ export declare const emailRecognizer: Recognizer;
10
+ //# sourceMappingURL=email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/recognizers/email.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAW5C;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,UA6D7B,CAAC"}