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,381 @@
1
+ /**
2
+ * Browser Storage Provider
3
+ * Implements StorageProvider using IndexedDB for text data and OPFS for binary files
4
+ */
5
+ import { join } from "./path.js";
6
+ // ============================================================================
7
+ // Constants
8
+ // ============================================================================
9
+ const DB_NAME = "rehydra";
10
+ const DB_VERSION = 1;
11
+ const STORE_NAME = "files";
12
+ const CACHE_PREFIX = "rehydra";
13
+ // ============================================================================
14
+ // IndexedDB Helpers
15
+ // ============================================================================
16
+ /**
17
+ * Opens the IndexedDB database
18
+ */
19
+ function openDatabase() {
20
+ return new Promise((resolve, reject) => {
21
+ const request = indexedDB.open(DB_NAME, DB_VERSION);
22
+ request.onerror = () => {
23
+ reject(new Error(`Failed to open IndexedDB: ${request.error?.message}`));
24
+ };
25
+ request.onsuccess = () => {
26
+ resolve(request.result);
27
+ };
28
+ request.onupgradeneeded = (event) => {
29
+ const db = event.target.result;
30
+ if (!db.objectStoreNames.contains(STORE_NAME)) {
31
+ db.createObjectStore(STORE_NAME);
32
+ }
33
+ };
34
+ });
35
+ }
36
+ /**
37
+ * Gets a value from IndexedDB
38
+ */
39
+ async function idbGet(key) {
40
+ const db = await openDatabase();
41
+ return new Promise((resolve, reject) => {
42
+ const transaction = db.transaction(STORE_NAME, "readonly");
43
+ const store = transaction.objectStore(STORE_NAME);
44
+ const request = store.get(key);
45
+ request.onerror = () => {
46
+ reject(new Error(`Failed to read from IndexedDB: ${request.error?.message}`));
47
+ };
48
+ request.onsuccess = () => {
49
+ resolve(request.result);
50
+ };
51
+ transaction.oncomplete = () => {
52
+ db.close();
53
+ };
54
+ });
55
+ }
56
+ /**
57
+ * Sets a value in IndexedDB
58
+ */
59
+ async function idbSet(key, value) {
60
+ const db = await openDatabase();
61
+ return new Promise((resolve, reject) => {
62
+ const transaction = db.transaction(STORE_NAME, "readwrite");
63
+ const store = transaction.objectStore(STORE_NAME);
64
+ const request = store.put(value, key);
65
+ request.onerror = () => {
66
+ reject(new Error(`Failed to write to IndexedDB: ${request.error?.message}`));
67
+ };
68
+ transaction.oncomplete = () => {
69
+ db.close();
70
+ resolve();
71
+ };
72
+ });
73
+ }
74
+ /**
75
+ * Deletes a value from IndexedDB
76
+ */
77
+ async function idbDelete(key) {
78
+ const db = await openDatabase();
79
+ return new Promise((resolve, reject) => {
80
+ const transaction = db.transaction(STORE_NAME, "readwrite");
81
+ const store = transaction.objectStore(STORE_NAME);
82
+ const request = store.delete(key);
83
+ request.onerror = () => {
84
+ reject(new Error(`Failed to delete from IndexedDB: ${request.error?.message}`));
85
+ };
86
+ transaction.oncomplete = () => {
87
+ db.close();
88
+ resolve();
89
+ };
90
+ });
91
+ }
92
+ /**
93
+ * Gets all keys from IndexedDB that start with a prefix
94
+ */
95
+ async function idbGetKeysWithPrefix(prefix) {
96
+ const db = await openDatabase();
97
+ return new Promise((resolve, reject) => {
98
+ const transaction = db.transaction(STORE_NAME, "readonly");
99
+ const store = transaction.objectStore(STORE_NAME);
100
+ const request = store.getAllKeys();
101
+ request.onerror = () => {
102
+ reject(new Error(`Failed to get keys from IndexedDB: ${request.error?.message}`));
103
+ };
104
+ request.onsuccess = () => {
105
+ const allKeys = request.result;
106
+ const matchingKeys = allKeys.filter((key) => typeof key === "string" && key.startsWith(prefix));
107
+ resolve(matchingKeys);
108
+ };
109
+ transaction.oncomplete = () => {
110
+ db.close();
111
+ };
112
+ });
113
+ }
114
+ // ============================================================================
115
+ // OPFS Helpers
116
+ // ============================================================================
117
+ /**
118
+ * Checks if OPFS is available
119
+ */
120
+ function isOPFSAvailable() {
121
+ return (typeof navigator !== "undefined" &&
122
+ "storage" in navigator &&
123
+ "getDirectory" in navigator.storage);
124
+ }
125
+ /**
126
+ * Gets the OPFS root directory handle
127
+ */
128
+ async function getOPFSRoot() {
129
+ if (!isOPFSAvailable()) {
130
+ throw new Error("Origin Private File System is not available in this browser");
131
+ }
132
+ return navigator.storage.getDirectory();
133
+ }
134
+ /**
135
+ * Gets a file handle from OPFS, creating parent directories if needed
136
+ */
137
+ async function getOPFSFileHandle(path, create) {
138
+ const root = await getOPFSRoot();
139
+ const parts = path.split("/").filter((p) => p !== "");
140
+ if (parts.length === 0) {
141
+ return null;
142
+ }
143
+ const filename = parts.pop();
144
+ let dir = root;
145
+ // Navigate/create directories
146
+ for (const part of parts) {
147
+ try {
148
+ dir = await dir.getDirectoryHandle(part, { create });
149
+ }
150
+ catch {
151
+ if (!create)
152
+ return null;
153
+ throw new Error(`Failed to access directory: ${part}`);
154
+ }
155
+ }
156
+ // Get file handle
157
+ try {
158
+ return await dir.getFileHandle(filename, { create });
159
+ }
160
+ catch {
161
+ if (!create)
162
+ return null;
163
+ throw new Error(`Failed to access file: ${filename}`);
164
+ }
165
+ }
166
+ // ============================================================================
167
+ // Browser Storage Provider Implementation
168
+ // ============================================================================
169
+ /**
170
+ * Browser implementation of StorageProvider
171
+ * Uses IndexedDB for text data and OPFS for binary files (like models)
172
+ */
173
+ export class BrowserStorageProvider {
174
+ /**
175
+ * Determines if a path should use OPFS (for large binary files)
176
+ */
177
+ shouldUseOPFS(path) {
178
+ // Use OPFS for model files (large binaries)
179
+ return path.includes("/models/") && (path.endsWith(".onnx") ||
180
+ path.endsWith(".bin") ||
181
+ path.endsWith(".safetensors"));
182
+ }
183
+ /**
184
+ * Normalizes a path to a storage key
185
+ */
186
+ toStorageKey(path) {
187
+ // Remove leading slashes and normalize
188
+ return path.replace(/^\/+/, "").replace(/\/+/g, "/");
189
+ }
190
+ /**
191
+ * Reads a file as binary data
192
+ */
193
+ async readFile(path) {
194
+ const key = this.toStorageKey(path);
195
+ if (this.shouldUseOPFS(path) && isOPFSAvailable()) {
196
+ // Read from OPFS
197
+ const handle = await getOPFSFileHandle(key, false);
198
+ if (!handle) {
199
+ throw new Error(`File not found: ${path}`);
200
+ }
201
+ const file = await handle.getFile();
202
+ const buffer = await file.arrayBuffer();
203
+ return new Uint8Array(buffer);
204
+ }
205
+ // Read from IndexedDB
206
+ const data = await idbGet(key);
207
+ if (data === undefined) {
208
+ throw new Error(`File not found: ${path}`);
209
+ }
210
+ if (data instanceof Uint8Array) {
211
+ return data;
212
+ }
213
+ if (typeof data === "string") {
214
+ const encoder = new TextEncoder();
215
+ return encoder.encode(data);
216
+ }
217
+ throw new Error(`Invalid data type for file: ${path}`);
218
+ }
219
+ /**
220
+ * Reads a file as text
221
+ */
222
+ async readTextFile(path, encoding) {
223
+ const key = this.toStorageKey(path);
224
+ // First try IndexedDB (where we store text files)
225
+ const data = await idbGet(key);
226
+ if (data !== undefined) {
227
+ if (typeof data === "string") {
228
+ return data;
229
+ }
230
+ if (data instanceof Uint8Array) {
231
+ // Handle latin1 encoding
232
+ if (encoding === "latin1") {
233
+ // Latin1 is a 1:1 mapping of byte values to characters
234
+ return Array.from(data)
235
+ .map((b) => String.fromCharCode(b))
236
+ .join("");
237
+ }
238
+ const decoder = new TextDecoder(encoding ?? "utf-8");
239
+ return decoder.decode(data);
240
+ }
241
+ }
242
+ // Try OPFS as fallback
243
+ if (isOPFSAvailable()) {
244
+ const handle = await getOPFSFileHandle(key, false);
245
+ if (handle) {
246
+ const file = await handle.getFile();
247
+ if (encoding === "latin1") {
248
+ const buffer = await file.arrayBuffer();
249
+ const bytes = new Uint8Array(buffer);
250
+ return Array.from(bytes)
251
+ .map((b) => String.fromCharCode(b))
252
+ .join("");
253
+ }
254
+ return file.text();
255
+ }
256
+ }
257
+ throw new Error(`File not found: ${path}`);
258
+ }
259
+ /**
260
+ * Writes data to a file
261
+ */
262
+ async writeFile(path, data) {
263
+ const key = this.toStorageKey(path);
264
+ if (this.shouldUseOPFS(path) && isOPFSAvailable()) {
265
+ // Write to OPFS for large binary files
266
+ const handle = await getOPFSFileHandle(key, true);
267
+ if (!handle) {
268
+ throw new Error(`Failed to create file: ${path}`);
269
+ }
270
+ const writable = await handle.createWritable();
271
+ // Cast data to the expected type for FileSystemWritableFileStream
272
+ await writable.write(typeof data === "string" ? data : data);
273
+ await writable.close();
274
+ }
275
+ else {
276
+ // Write to IndexedDB for smaller/text files
277
+ await idbSet(key, data);
278
+ }
279
+ }
280
+ /**
281
+ * Checks if a file exists
282
+ */
283
+ async exists(path) {
284
+ const key = this.toStorageKey(path);
285
+ // Check IndexedDB first
286
+ const idbData = await idbGet(key);
287
+ if (idbData !== undefined) {
288
+ return true;
289
+ }
290
+ // Check OPFS
291
+ if (isOPFSAvailable()) {
292
+ const handle = await getOPFSFileHandle(key, false);
293
+ if (handle) {
294
+ return true;
295
+ }
296
+ }
297
+ return false;
298
+ }
299
+ /**
300
+ * Creates a directory (no-op in browser storage, directories are implicit)
301
+ */
302
+ async mkdir(_path) {
303
+ // Directories are created implicitly when writing files
304
+ // For OPFS, we create them when needed
305
+ }
306
+ /**
307
+ * Removes a file or directory
308
+ */
309
+ async rm(path, options) {
310
+ const key = this.toStorageKey(path);
311
+ if (options?.recursive === true) {
312
+ // Delete all keys with this prefix from IndexedDB
313
+ const keys = await idbGetKeysWithPrefix(key);
314
+ for (const k of keys) {
315
+ await idbDelete(k);
316
+ }
317
+ // Delete from OPFS if available
318
+ if (isOPFSAvailable()) {
319
+ try {
320
+ const root = await getOPFSRoot();
321
+ const parts = key.split("/").filter((p) => p !== "");
322
+ let dir = root;
323
+ // Navigate to parent directory
324
+ for (let i = 0; i < parts.length - 1; i++) {
325
+ try {
326
+ dir = await dir.getDirectoryHandle(parts[i]);
327
+ }
328
+ catch {
329
+ return; // Directory doesn't exist
330
+ }
331
+ }
332
+ // Remove the entry
333
+ const name = parts[parts.length - 1];
334
+ if (name !== undefined && name !== "") {
335
+ await dir.removeEntry(name, { recursive: true });
336
+ }
337
+ }
338
+ catch {
339
+ if (options?.force !== true) {
340
+ throw new Error(`Failed to remove: ${path}`);
341
+ }
342
+ }
343
+ }
344
+ }
345
+ else {
346
+ // Delete single file
347
+ try {
348
+ await idbDelete(key);
349
+ }
350
+ catch (e) {
351
+ if (options?.force !== true)
352
+ throw e;
353
+ }
354
+ if (isOPFSAvailable()) {
355
+ try {
356
+ const handle = await getOPFSFileHandle(key, false);
357
+ if (handle !== null) {
358
+ const root = await getOPFSRoot();
359
+ const parts = key.split("/").filter((p) => p !== "");
360
+ let dir = root;
361
+ for (let i = 0; i < parts.length - 1; i++) {
362
+ dir = await dir.getDirectoryHandle(parts[i]);
363
+ }
364
+ await dir.removeEntry(parts[parts.length - 1]);
365
+ }
366
+ }
367
+ catch (e) {
368
+ if (options?.force !== true)
369
+ throw e;
370
+ }
371
+ }
372
+ }
373
+ }
374
+ /**
375
+ * Gets the cache directory path (virtual path in browser)
376
+ */
377
+ getCacheDir(subdir) {
378
+ return join(CACHE_PREFIX, subdir);
379
+ }
380
+ }
381
+ //# sourceMappingURL=storage-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-browser.js","sourceRoot":"","sources":["../../src/utils/storage-browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Node.js Storage Provider
3
+ * Implements StorageProvider using Node.js fs/promises
4
+ */
5
+ import type { StorageProvider } from "./storage.js";
6
+ /**
7
+ * Node.js implementation of StorageProvider
8
+ * Uses fs/promises for file operations
9
+ */
10
+ export declare class NodeStorageProvider implements StorageProvider {
11
+ /**
12
+ * Filters out matched paths whose parent directories cannot be read by
13
+ * the current process. fast-glob's `suppressErrors` does not prevent
14
+ * per-entry permission warnings from being surfaced as log lines by the
15
+ * embedding host (e.g. OpenCode), so we drop unreadable entries here.
16
+ */
17
+ private static filterReadable;
18
+ /**
19
+ * Reads a file as binary data
20
+ */
21
+ readFile(path: string): Promise<Uint8Array>;
22
+ /**
23
+ * Reads a file as text
24
+ */
25
+ readTextFile(path: string, encoding?: string): Promise<string>;
26
+ resolveFiles(patterns: string[], baseDirectory?: string): Promise<string[]>;
27
+ /**
28
+ * Writes data to a file
29
+ */
30
+ writeFile(path: string, data: Uint8Array | string): Promise<void>;
31
+ /**
32
+ * Checks if a file or directory exists
33
+ */
34
+ exists(path: string): Promise<boolean>;
35
+ /**
36
+ * Creates a directory
37
+ */
38
+ mkdir(path: string): Promise<void>;
39
+ /**
40
+ * Removes a file or directory
41
+ */
42
+ rm(path: string, options?: {
43
+ recursive?: boolean;
44
+ force?: boolean;
45
+ }): Promise<void>;
46
+ /**
47
+ * Gets the platform-specific cache directory
48
+ */
49
+ getCacheDir(subdir: string): string;
50
+ }
51
+ //# sourceMappingURL=storage-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-node.d.ts","sourceRoot":"","sources":["../../src/utils/storage-node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD;;;;;OAKG;mBACkB,cAAc;IAgBnC;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKjD;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoCjF;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvE;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5C;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC;;OAEG;IACG,EAAE,CACN,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACjD,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAsBpC"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Node.js Storage Provider
3
+ * Implements StorageProvider using Node.js fs/promises
4
+ */
5
+ import * as fs from "fs/promises";
6
+ import * as nodePath from "path";
7
+ import * as os from "os";
8
+ import glob from "fast-glob";
9
+ /**
10
+ * Node.js implementation of StorageProvider
11
+ * Uses fs/promises for file operations
12
+ */
13
+ export class NodeStorageProvider {
14
+ /**
15
+ * Filters out matched paths whose parent directories cannot be read by
16
+ * the current process. fast-glob's `suppressErrors` does not prevent
17
+ * per-entry permission warnings from being surfaced as log lines by the
18
+ * embedding host (e.g. OpenCode), so we drop unreadable entries here.
19
+ */
20
+ static async filterReadable(paths) {
21
+ const results = await Promise.all(paths.map(async (entry) => {
22
+ try {
23
+ // Stat the parent directory rather than the file itself: the
24
+ // file may be readable while its directory was the failing
25
+ // scandir, which is the exact case fast-glob warned about.
26
+ await fs.access(nodePath.dirname(entry));
27
+ return entry;
28
+ }
29
+ catch {
30
+ return undefined;
31
+ }
32
+ }));
33
+ return results.filter((entry) => entry !== undefined);
34
+ }
35
+ /**
36
+ * Reads a file as binary data
37
+ */
38
+ async readFile(path) {
39
+ const buffer = await fs.readFile(path);
40
+ return new Uint8Array(buffer);
41
+ }
42
+ /**
43
+ * Reads a file as text
44
+ */
45
+ async readTextFile(path, encoding) {
46
+ // Handle latin1 encoding (used by nam_dict.txt)
47
+ const nodeEncoding = encoding === "latin1" ? "latin1" : "utf-8";
48
+ return fs.readFile(path, { encoding: nodeEncoding });
49
+ }
50
+ async resolveFiles(patterns, baseDirectory) {
51
+ const cwd = baseDirectory ?? process.cwd();
52
+ // Preserve existing literal paths containing glob metacharacters.
53
+ const inputs = await Promise.all(patterns.map(async (pattern) => {
54
+ if (await this.exists(nodePath.resolve(cwd, pattern))) {
55
+ return glob.convertPathToPattern(pattern);
56
+ }
57
+ return pattern;
58
+ }));
59
+ if (inputs.length === 0)
60
+ return [];
61
+ try {
62
+ const matched = (await glob(inputs, {
63
+ cwd,
64
+ absolute: true,
65
+ dot: true,
66
+ onlyFiles: true,
67
+ followSymbolicLinks: false,
68
+ unique: true,
69
+ ignore: ["**/node_modules/**", "**/.git/**"],
70
+ })).sort();
71
+ // fast-glob's `suppressErrors` still prints per-entry EACCES/EPERM
72
+ // warnings through the Taskgraph / internal warning channel that the
73
+ // OpenCode host surfaces as WARN log lines on every periodic reload.
74
+ // Filter the results ourselves to drop entries that point at
75
+ // subtrees we cannot stat, which prevents those WARN logs without
76
+ // changing the happy-path behavior.
77
+ return await NodeStorageProvider.filterReadable(matched);
78
+ }
79
+ catch (error) {
80
+ // Defensive fallback: if fast-glob still throws for a reason that
81
+ // escapes `suppressErrors` (e.g. cwd missing), degrade to an empty
82
+ // result rather than breaking callers like plugin setup.
83
+ if (error.code === "ENOENT")
84
+ return [];
85
+ throw error;
86
+ }
87
+ }
88
+ /**
89
+ * Writes data to a file
90
+ */
91
+ async writeFile(path, data) {
92
+ // Ensure parent directory exists
93
+ const dir = nodePath.dirname(path);
94
+ await fs.mkdir(dir, { recursive: true });
95
+ if (typeof data === "string") {
96
+ await fs.writeFile(path, data, "utf-8");
97
+ }
98
+ else {
99
+ await fs.writeFile(path, data);
100
+ }
101
+ }
102
+ /**
103
+ * Checks if a file or directory exists
104
+ */
105
+ async exists(path) {
106
+ try {
107
+ await fs.access(path);
108
+ return true;
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ }
114
+ /**
115
+ * Creates a directory
116
+ */
117
+ async mkdir(path) {
118
+ await fs.mkdir(path, { recursive: true });
119
+ }
120
+ /**
121
+ * Removes a file or directory
122
+ */
123
+ async rm(path, options) {
124
+ await fs.rm(path, {
125
+ recursive: options?.recursive ?? false,
126
+ force: options?.force ?? false,
127
+ });
128
+ }
129
+ /**
130
+ * Gets the platform-specific cache directory
131
+ */
132
+ getCacheDir(subdir) {
133
+ const homeDir = os.homedir();
134
+ let baseDir;
135
+ switch (process.platform) {
136
+ case "darwin":
137
+ baseDir = nodePath.join(homeDir, "Library", "Caches");
138
+ break;
139
+ case "win32":
140
+ baseDir =
141
+ process.env["LOCALAPPDATA"] ??
142
+ nodePath.join(homeDir, "AppData", "Local");
143
+ break;
144
+ default:
145
+ // Linux and others - use XDG_CACHE_HOME or ~/.cache
146
+ baseDir =
147
+ process.env["XDG_CACHE_HOME"] ?? nodePath.join(homeDir, ".cache");
148
+ break;
149
+ }
150
+ return nodePath.join(baseDir, "rehydra", subdir);
151
+ }
152
+ }
153
+ //# sourceMappingURL=storage-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-node.js","sourceRoot":"","sources":["../../src/utils/storage-node.ts"],"names":[],"mappings":"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"}