beeai-framework 0.1.28 → 0.1.30

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 (564) hide show
  1. package/dist/adapters/a2a/agents/agent.cjs.map +1 -1
  2. package/dist/adapters/a2a/agents/agent.d.cts +2 -2
  3. package/dist/adapters/a2a/agents/agent.d.ts +2 -2
  4. package/dist/adapters/a2a/agents/agent.js.map +1 -1
  5. package/dist/adapters/a2a/agents/events.d.cts +1 -1
  6. package/dist/adapters/a2a/agents/events.d.ts +1 -1
  7. package/dist/adapters/a2a/agents/types.d.cts +2 -2
  8. package/dist/adapters/a2a/agents/types.d.ts +2 -2
  9. package/dist/adapters/a2a/agents/utils.cjs +52 -11
  10. package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
  11. package/dist/adapters/a2a/agents/utils.js +52 -11
  12. package/dist/adapters/a2a/agents/utils.js.map +1 -1
  13. package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
  14. package/dist/adapters/a2a/serve/agent_executor.d.cts +3 -3
  15. package/dist/adapters/a2a/serve/agent_executor.d.ts +3 -3
  16. package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
  17. package/dist/adapters/a2a/serve/server.cjs.map +1 -1
  18. package/dist/adapters/a2a/serve/server.d.cts +2 -2
  19. package/dist/adapters/a2a/serve/server.d.ts +2 -2
  20. package/dist/adapters/a2a/serve/server.js.map +1 -1
  21. package/dist/adapters/acp/agents/agent.cjs.map +1 -1
  22. package/dist/adapters/acp/agents/agent.d.cts +2 -2
  23. package/dist/adapters/acp/agents/agent.d.ts +2 -2
  24. package/dist/adapters/acp/agents/agent.js.map +1 -1
  25. package/dist/adapters/acp/agents/events.d.cts +1 -1
  26. package/dist/adapters/acp/agents/events.d.ts +1 -1
  27. package/dist/adapters/agentstack/agents/agent.cjs.map +1 -1
  28. package/dist/adapters/agentstack/agents/agent.d.cts +2 -2
  29. package/dist/adapters/agentstack/agents/agent.d.ts +2 -2
  30. package/dist/adapters/agentstack/agents/agent.js.map +1 -1
  31. package/dist/adapters/agentstack/agents/events.d.cts +1 -1
  32. package/dist/adapters/agentstack/agents/events.d.ts +1 -1
  33. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  34. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +2 -2
  35. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +2 -2
  36. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  37. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  38. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  39. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  40. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +2 -2
  41. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +2 -2
  42. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  43. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  44. package/dist/adapters/anthropic/backend/chat.d.cts +3 -3
  45. package/dist/adapters/anthropic/backend/chat.d.ts +3 -3
  46. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  47. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  48. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  49. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  50. package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
  51. package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
  52. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  53. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  54. package/dist/adapters/azure-openai/backend/chat.d.cts +3 -3
  55. package/dist/adapters/azure-openai/backend/chat.d.ts +3 -3
  56. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  57. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  58. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  59. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  60. package/dist/adapters/azure-openai/backend/embedding.d.cts +2 -2
  61. package/dist/adapters/azure-openai/backend/embedding.d.ts +2 -2
  62. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  63. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  64. package/dist/adapters/dummy/backend/chat.d.cts +2 -2
  65. package/dist/adapters/dummy/backend/chat.d.ts +2 -2
  66. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  67. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  68. package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
  69. package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
  70. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  71. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  72. package/dist/adapters/google-vertex/backend/chat.d.cts +3 -3
  73. package/dist/adapters/google-vertex/backend/chat.d.ts +3 -3
  74. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  75. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  76. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  77. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  78. package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
  79. package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
  80. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  81. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  82. package/dist/adapters/groq/backend/chat.d.cts +3 -3
  83. package/dist/adapters/groq/backend/chat.d.ts +3 -3
  84. package/dist/adapters/groq/backend/chat.js.map +1 -1
  85. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  86. package/dist/adapters/groq/backend/client.js.map +1 -1
  87. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  88. package/dist/adapters/groq/backend/embedding.d.cts +2 -2
  89. package/dist/adapters/groq/backend/embedding.d.ts +2 -2
  90. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  91. package/dist/adapters/langchain/backend/chat.cjs +6 -28
  92. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  93. package/dist/adapters/langchain/backend/chat.d.cts +6 -5
  94. package/dist/adapters/langchain/backend/chat.d.ts +6 -5
  95. package/dist/adapters/langchain/backend/chat.js +6 -28
  96. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  97. package/dist/adapters/langchain/backend/embedding.cjs +3 -2
  98. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  99. package/dist/adapters/langchain/backend/embedding.d.cts +3 -3
  100. package/dist/adapters/langchain/backend/embedding.d.ts +3 -3
  101. package/dist/adapters/langchain/backend/embedding.js +3 -2
  102. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  103. package/dist/adapters/langchain/backend/utils.cjs +328 -0
  104. package/dist/adapters/langchain/backend/utils.cjs.map +1 -0
  105. package/dist/adapters/langchain/backend/utils.d.cts +39 -0
  106. package/dist/adapters/langchain/backend/utils.d.ts +39 -0
  107. package/dist/adapters/langchain/backend/utils.js +324 -0
  108. package/dist/adapters/langchain/backend/utils.js.map +1 -0
  109. package/dist/adapters/langchain/tools.cjs.map +1 -1
  110. package/dist/adapters/langchain/tools.d.cts +2 -2
  111. package/dist/adapters/langchain/tools.d.ts +2 -2
  112. package/dist/adapters/langchain/tools.js.map +1 -1
  113. package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
  114. package/dist/adapters/mcp/serve/http_server.js.map +1 -1
  115. package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
  116. package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
  117. package/dist/adapters/mcp/serve/server.cjs.map +1 -1
  118. package/dist/adapters/mcp/serve/server.js.map +1 -1
  119. package/dist/adapters/minimax/backend/chat.cjs +25 -0
  120. package/dist/adapters/minimax/backend/chat.cjs.map +1 -0
  121. package/dist/adapters/minimax/backend/chat.d.cts +38 -0
  122. package/dist/adapters/minimax/backend/chat.d.ts +38 -0
  123. package/dist/adapters/minimax/backend/chat.js +23 -0
  124. package/dist/adapters/minimax/backend/chat.js.map +1 -0
  125. package/dist/adapters/minimax/backend/client.cjs +31 -0
  126. package/dist/adapters/minimax/backend/client.cjs.map +1 -0
  127. package/dist/adapters/minimax/backend/client.d.cts +17 -0
  128. package/dist/adapters/minimax/backend/client.d.ts +17 -0
  129. package/dist/adapters/minimax/backend/client.js +29 -0
  130. package/dist/adapters/minimax/backend/client.js.map +1 -0
  131. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  132. package/dist/adapters/ollama/backend/chat.d.cts +2 -2
  133. package/dist/adapters/ollama/backend/chat.d.ts +2 -2
  134. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  135. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  136. package/dist/adapters/ollama/backend/client.js.map +1 -1
  137. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  138. package/dist/adapters/ollama/backend/embedding.d.cts +2 -2
  139. package/dist/adapters/ollama/backend/embedding.d.ts +2 -2
  140. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  141. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  142. package/dist/adapters/openai/backend/chat.d.cts +2 -2
  143. package/dist/adapters/openai/backend/chat.d.ts +2 -2
  144. package/dist/adapters/openai/backend/chat.js.map +1 -1
  145. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  146. package/dist/adapters/openai/backend/client.js.map +1 -1
  147. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  148. package/dist/adapters/openai/backend/embedding.d.cts +2 -2
  149. package/dist/adapters/openai/backend/embedding.d.ts +2 -2
  150. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  151. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  152. package/dist/adapters/vercel/backend/chat.d.cts +2 -2
  153. package/dist/adapters/vercel/backend/chat.d.ts +2 -2
  154. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  155. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  156. package/dist/adapters/vercel/backend/embedding.d.cts +2 -2
  157. package/dist/adapters/vercel/backend/embedding.d.ts +2 -2
  158. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  159. package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
  160. package/dist/adapters/vercel/backend/utils.d.cts +2 -2
  161. package/dist/adapters/vercel/backend/utils.d.ts +2 -2
  162. package/dist/adapters/vercel/backend/utils.js.map +1 -1
  163. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  164. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  165. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  166. package/dist/adapters/watsonx/backend/chat.js +1 -1
  167. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  168. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  169. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  170. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  171. package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
  172. package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
  173. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  174. package/dist/adapters/xai/backend/chat.cjs.map +1 -1
  175. package/dist/adapters/xai/backend/chat.d.cts +2 -2
  176. package/dist/adapters/xai/backend/chat.d.ts +2 -2
  177. package/dist/adapters/xai/backend/chat.js.map +1 -1
  178. package/dist/adapters/xai/backend/client.cjs.map +1 -1
  179. package/dist/adapters/xai/backend/client.js.map +1 -1
  180. package/dist/{agent-BAVf6-xf.d.ts → agent-s3uhvAba.d.ts} +5 -5
  181. package/dist/{agent-DHO-oJQf.d.cts → agent-zfT__iq9.d.cts} +5 -5
  182. package/dist/agents/base.cjs.map +1 -1
  183. package/dist/agents/base.d.cts +2 -2
  184. package/dist/agents/base.d.ts +2 -2
  185. package/dist/agents/base.js.map +1 -1
  186. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  187. package/dist/agents/experimental/replan/agent.d.cts +3 -3
  188. package/dist/agents/experimental/replan/agent.d.ts +3 -3
  189. package/dist/agents/experimental/replan/agent.js.map +1 -1
  190. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  191. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  192. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  193. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  194. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  195. package/dist/agents/experimental/streamlit/agent.d.cts +3 -3
  196. package/dist/agents/experimental/streamlit/agent.d.ts +3 -3
  197. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  198. package/dist/agents/experimental/streamlit/prompts.cjs +2 -2
  199. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  200. package/dist/agents/experimental/streamlit/prompts.js +2 -2
  201. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  202. package/dist/agents/react/agent.cjs +6 -6
  203. package/dist/agents/react/agent.cjs.map +1 -1
  204. package/dist/agents/react/agent.d.cts +4 -4
  205. package/dist/agents/react/agent.d.ts +4 -4
  206. package/dist/agents/react/agent.js.map +1 -1
  207. package/dist/agents/react/prompts.cjs.map +1 -1
  208. package/dist/agents/react/prompts.d.cts +1 -1
  209. package/dist/agents/react/prompts.d.ts +1 -1
  210. package/dist/agents/react/prompts.js.map +1 -1
  211. package/dist/agents/react/runners/base.cjs.map +1 -1
  212. package/dist/agents/react/runners/base.d.cts +4 -4
  213. package/dist/agents/react/runners/base.d.ts +4 -4
  214. package/dist/agents/react/runners/base.js.map +1 -1
  215. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
  216. package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -1
  217. package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -1
  218. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
  219. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
  220. package/dist/agents/react/runners/deep-think/runner.d.cts +5 -5
  221. package/dist/agents/react/runners/deep-think/runner.d.ts +5 -5
  222. package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
  223. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  224. package/dist/agents/react/runners/default/runner.d.cts +5 -5
  225. package/dist/agents/react/runners/default/runner.d.ts +5 -5
  226. package/dist/agents/react/runners/default/runner.js.map +1 -1
  227. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
  228. package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
  229. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
  230. package/dist/agents/react/runners/granite/prompts.d.cts +1 -1
  231. package/dist/agents/react/runners/granite/prompts.d.ts +1 -1
  232. package/dist/agents/react/runners/granite/prompts.js.map +1 -1
  233. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  234. package/dist/agents/react/runners/granite/runner.d.cts +5 -5
  235. package/dist/agents/react/runners/granite/runner.d.ts +5 -5
  236. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  237. package/dist/agents/react/types.d.cts +2 -2
  238. package/dist/agents/react/types.d.ts +2 -2
  239. package/dist/agents/requirement/agent.cjs.map +1 -1
  240. package/dist/agents/requirement/agent.d.cts +5 -5
  241. package/dist/agents/requirement/agent.d.ts +5 -5
  242. package/dist/agents/requirement/agent.js.map +1 -1
  243. package/dist/agents/requirement/prompts.d.cts +2 -2
  244. package/dist/agents/requirement/prompts.d.ts +2 -2
  245. package/dist/agents/requirement/requirements/conditional.cjs.map +1 -1
  246. package/dist/agents/requirement/requirements/conditional.d.cts +5 -5
  247. package/dist/agents/requirement/requirements/conditional.d.ts +5 -5
  248. package/dist/agents/requirement/requirements/conditional.js.map +1 -1
  249. package/dist/agents/requirement/requirements/requirement.cjs.map +1 -1
  250. package/dist/agents/requirement/requirements/requirement.d.cts +4 -4
  251. package/dist/agents/requirement/requirements/requirement.d.ts +4 -4
  252. package/dist/agents/requirement/requirements/requirement.js.map +1 -1
  253. package/dist/agents/requirement/requirements/utils.cjs.map +1 -1
  254. package/dist/agents/requirement/requirements/utils.d.cts +1 -1
  255. package/dist/agents/requirement/requirements/utils.d.ts +1 -1
  256. package/dist/agents/requirement/requirements/utils.js.map +1 -1
  257. package/dist/agents/requirement/runner.cjs.map +1 -1
  258. package/dist/agents/requirement/runner.d.cts +5 -5
  259. package/dist/agents/requirement/runner.d.ts +5 -5
  260. package/dist/agents/requirement/runner.js.map +1 -1
  261. package/dist/agents/requirement/types.d.cts +4 -4
  262. package/dist/agents/requirement/types.d.ts +4 -4
  263. package/dist/agents/requirement/utils/llm.cjs.map +1 -1
  264. package/dist/agents/requirement/utils/llm.d.cts +4 -4
  265. package/dist/agents/requirement/utils/llm.d.ts +4 -4
  266. package/dist/agents/requirement/utils/llm.js.map +1 -1
  267. package/dist/agents/requirement/utils/tool.cjs.map +1 -1
  268. package/dist/agents/requirement/utils/tool.d.cts +4 -4
  269. package/dist/agents/requirement/utils/tool.d.ts +4 -4
  270. package/dist/agents/requirement/utils/tool.js.map +1 -1
  271. package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -1
  272. package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -1
  273. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  274. package/dist/agents/toolCalling/agent.d.cts +4 -4
  275. package/dist/agents/toolCalling/agent.d.ts +4 -4
  276. package/dist/agents/toolCalling/agent.js.map +1 -1
  277. package/dist/agents/toolCalling/prompts.cjs.map +1 -1
  278. package/dist/agents/toolCalling/prompts.js.map +1 -1
  279. package/dist/agents/toolCalling/types.d.cts +1 -1
  280. package/dist/agents/toolCalling/types.d.ts +1 -1
  281. package/dist/agents/types.d.cts +2 -2
  282. package/dist/agents/types.d.ts +2 -2
  283. package/dist/backend/backend.cjs.map +1 -1
  284. package/dist/backend/backend.d.cts +3 -3
  285. package/dist/backend/backend.d.ts +3 -3
  286. package/dist/backend/backend.js.map +1 -1
  287. package/dist/backend/chat.cjs.map +1 -1
  288. package/dist/backend/chat.d.cts +2 -2
  289. package/dist/backend/chat.d.ts +2 -2
  290. package/dist/backend/chat.js.map +1 -1
  291. package/dist/backend/client.cjs.map +1 -1
  292. package/dist/backend/client.js.map +1 -1
  293. package/dist/backend/constants.cjs +7 -0
  294. package/dist/backend/constants.cjs.map +1 -1
  295. package/dist/backend/constants.d.cts +5 -0
  296. package/dist/backend/constants.d.ts +5 -0
  297. package/dist/backend/constants.js +7 -0
  298. package/dist/backend/constants.js.map +1 -1
  299. package/dist/backend/core.d.cts +2 -2
  300. package/dist/backend/core.d.ts +2 -2
  301. package/dist/backend/embedding.cjs.map +1 -1
  302. package/dist/backend/embedding.d.cts +2 -2
  303. package/dist/backend/embedding.d.ts +2 -2
  304. package/dist/backend/embedding.js.map +1 -1
  305. package/dist/backend/errors.cjs.map +1 -1
  306. package/dist/backend/errors.d.cts +2 -2
  307. package/dist/backend/errors.d.ts +2 -2
  308. package/dist/backend/errors.js.map +1 -1
  309. package/dist/backend/message.cjs.map +1 -1
  310. package/dist/backend/message.js.map +1 -1
  311. package/dist/backend/utils.cjs.map +1 -1
  312. package/dist/backend/utils.d.cts +2 -2
  313. package/dist/backend/utils.d.ts +2 -2
  314. package/dist/backend/utils.js.map +1 -1
  315. package/dist/{base-BfhNzUYf.d.ts → base-BjzyQ8k6.d.ts} +2 -2
  316. package/dist/{base-BqzN2QwB.d.cts → base-s3ioVIE9.d.cts} +2 -2
  317. package/dist/cache/decoratorCache.cjs.map +1 -1
  318. package/dist/cache/decoratorCache.js.map +1 -1
  319. package/dist/cache/fileCache.cjs.map +1 -1
  320. package/dist/cache/fileCache.js.map +1 -1
  321. package/dist/cache/nullCache.cjs.map +1 -1
  322. package/dist/cache/nullCache.js.map +1 -1
  323. package/dist/cache/slidingCache.cjs.map +1 -1
  324. package/dist/cache/slidingCache.js.map +1 -1
  325. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  326. package/dist/cache/unconstrainedCache.js.map +1 -1
  327. package/dist/{chat-DaqV3woF.d.cts → chat-C20nYj46.d.cts} +3 -3
  328. package/dist/{chat-DTxmaKP0.d.ts → chat-CfTNfR60.d.ts} +3 -3
  329. package/dist/context.cjs.map +1 -1
  330. package/dist/context.d.cts +1 -1
  331. package/dist/context.d.ts +1 -1
  332. package/dist/context.js.map +1 -1
  333. package/dist/emitter/emitter.cjs.map +1 -1
  334. package/dist/emitter/emitter.d.cts +1 -1
  335. package/dist/emitter/emitter.d.ts +1 -1
  336. package/dist/emitter/emitter.js.map +1 -1
  337. package/dist/emitter/types.d.cts +1 -1
  338. package/dist/emitter/types.d.ts +1 -1
  339. package/dist/emitter/utils.cjs.map +1 -1
  340. package/dist/emitter/utils.js.map +1 -1
  341. package/dist/{emitter-UkIkNrek.d.cts → emitter-D4OcelZ9.d.cts} +2 -2
  342. package/dist/{emitter-CL56qab4.d.ts → emitter-kHxkUxco.d.ts} +2 -2
  343. package/dist/errors.cjs.map +1 -1
  344. package/dist/errors.js.map +1 -1
  345. package/dist/index.d.cts +4 -4
  346. package/dist/index.d.ts +4 -4
  347. package/dist/internals/env.cjs.map +1 -1
  348. package/dist/internals/env.js.map +1 -1
  349. package/dist/internals/fetcher.cjs.map +1 -1
  350. package/dist/internals/fetcher.d.cts +1 -1
  351. package/dist/internals/fetcher.d.ts +1 -1
  352. package/dist/internals/fetcher.js.map +1 -1
  353. package/dist/internals/helpers/array.cjs.map +1 -1
  354. package/dist/internals/helpers/array.js.map +1 -1
  355. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  356. package/dist/internals/helpers/cancellation.js.map +1 -1
  357. package/dist/internals/helpers/counter.cjs.map +1 -1
  358. package/dist/internals/helpers/counter.js.map +1 -1
  359. package/dist/internals/helpers/general.cjs.map +1 -1
  360. package/dist/internals/helpers/general.js.map +1 -1
  361. package/dist/internals/helpers/hash.cjs.map +1 -1
  362. package/dist/internals/helpers/hash.js.map +1 -1
  363. package/dist/internals/helpers/map.cjs.map +1 -1
  364. package/dist/internals/helpers/map.js.map +1 -1
  365. package/dist/internals/helpers/math.cjs.map +1 -1
  366. package/dist/internals/helpers/math.js.map +1 -1
  367. package/dist/internals/helpers/object.cjs +7 -1
  368. package/dist/internals/helpers/object.cjs.map +1 -1
  369. package/dist/internals/helpers/object.js +7 -1
  370. package/dist/internals/helpers/object.js.map +1 -1
  371. package/dist/internals/helpers/paginate.cjs.map +1 -1
  372. package/dist/internals/helpers/paginate.js.map +1 -1
  373. package/dist/internals/helpers/promise.cjs.map +1 -1
  374. package/dist/internals/helpers/promise.js.map +1 -1
  375. package/dist/internals/helpers/prototype.cjs.map +1 -1
  376. package/dist/internals/helpers/prototype.js.map +1 -1
  377. package/dist/internals/helpers/retry.cjs.map +1 -1
  378. package/dist/internals/helpers/retry.js.map +1 -1
  379. package/dist/internals/helpers/retryable.cjs.map +1 -1
  380. package/dist/internals/helpers/retryable.js.map +1 -1
  381. package/dist/internals/helpers/schema.cjs.map +1 -1
  382. package/dist/internals/helpers/schema.d.cts +4 -4
  383. package/dist/internals/helpers/schema.d.ts +4 -4
  384. package/dist/internals/helpers/schema.js.map +1 -1
  385. package/dist/internals/helpers/stream.cjs.map +1 -1
  386. package/dist/internals/helpers/stream.js.map +1 -1
  387. package/dist/internals/helpers/string.cjs.map +1 -1
  388. package/dist/internals/helpers/string.js.map +1 -1
  389. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  390. package/dist/internals/helpers/weakRef.js.map +1 -1
  391. package/dist/internals/serializable.cjs +3 -1
  392. package/dist/internals/serializable.cjs.map +1 -1
  393. package/dist/internals/serializable.d.cts +6 -0
  394. package/dist/internals/serializable.d.ts +6 -0
  395. package/dist/internals/serializable.js +3 -1
  396. package/dist/internals/serializable.js.map +1 -1
  397. package/dist/internals/types.cjs.map +1 -1
  398. package/dist/internals/types.js.map +1 -1
  399. package/dist/logger/logger.cjs.map +1 -1
  400. package/dist/logger/logger.d.cts +2 -2
  401. package/dist/logger/logger.d.ts +2 -2
  402. package/dist/logger/logger.js +2 -2
  403. package/dist/logger/logger.js.map +1 -1
  404. package/dist/logger/pretty.cjs.map +1 -1
  405. package/dist/logger/pretty.js.map +1 -1
  406. package/dist/memory/base.cjs.map +1 -1
  407. package/dist/memory/base.js.map +1 -1
  408. package/dist/memory/slidingMemory.cjs.map +1 -1
  409. package/dist/memory/slidingMemory.js.map +1 -1
  410. package/dist/memory/summarizeMemory.cjs.map +1 -1
  411. package/dist/memory/summarizeMemory.d.cts +2 -2
  412. package/dist/memory/summarizeMemory.d.ts +2 -2
  413. package/dist/memory/summarizeMemory.js.map +1 -1
  414. package/dist/memory/tokenMemory.cjs.map +1 -1
  415. package/dist/memory/tokenMemory.js.map +1 -1
  416. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  417. package/dist/memory/unconstrainedMemory.js.map +1 -1
  418. package/dist/middleware/streamToolCall.cjs.map +1 -1
  419. package/dist/middleware/streamToolCall.d.cts +2 -2
  420. package/dist/middleware/streamToolCall.d.ts +2 -2
  421. package/dist/middleware/streamToolCall.js.map +1 -1
  422. package/dist/middleware/trajectory.cjs.map +1 -1
  423. package/dist/middleware/trajectory.d.cts +2 -2
  424. package/dist/middleware/trajectory.d.ts +2 -2
  425. package/dist/middleware/trajectory.js.map +1 -1
  426. package/dist/parsers/errors.cjs.map +1 -1
  427. package/dist/parsers/errors.js.map +1 -1
  428. package/dist/parsers/field.cjs.map +1 -1
  429. package/dist/parsers/field.js.map +1 -1
  430. package/dist/parsers/linePrefix.cjs.map +1 -1
  431. package/dist/parsers/linePrefix.d.cts +1 -1
  432. package/dist/parsers/linePrefix.d.ts +1 -1
  433. package/dist/parsers/linePrefix.js.map +1 -1
  434. package/dist/serializer/error.cjs.map +1 -1
  435. package/dist/serializer/error.js.map +1 -1
  436. package/dist/serializer/serializer.cjs +16 -3
  437. package/dist/serializer/serializer.cjs.map +1 -1
  438. package/dist/serializer/serializer.d.cts +1 -1
  439. package/dist/serializer/serializer.d.ts +1 -1
  440. package/dist/serializer/serializer.js +16 -4
  441. package/dist/serializer/serializer.js.map +1 -1
  442. package/dist/serializer/utils.cjs.map +1 -1
  443. package/dist/serializer/utils.d.cts +1 -1
  444. package/dist/serializer/utils.d.ts +1 -1
  445. package/dist/serializer/utils.js.map +1 -1
  446. package/dist/{serializer-53t8gGQa.d.ts → serializer-BafOT48s.d.ts} +10 -4
  447. package/dist/{serializer-c51B2z6d.d.cts → serializer-CFDWYUco.d.cts} +10 -4
  448. package/dist/serve/server.cjs.map +1 -1
  449. package/dist/serve/server.js.map +1 -1
  450. package/dist/template.cjs.map +1 -1
  451. package/dist/template.js.map +1 -1
  452. package/dist/tools/arxiv.cjs.map +1 -1
  453. package/dist/tools/arxiv.d.cts +2 -2
  454. package/dist/tools/arxiv.d.ts +2 -2
  455. package/dist/tools/arxiv.js.map +1 -1
  456. package/dist/tools/base.cjs.map +1 -1
  457. package/dist/tools/base.d.cts +1 -1
  458. package/dist/tools/base.d.ts +1 -1
  459. package/dist/tools/base.js.map +1 -1
  460. package/dist/tools/calculator.cjs.map +1 -1
  461. package/dist/tools/calculator.d.cts +3 -3
  462. package/dist/tools/calculator.d.ts +3 -3
  463. package/dist/tools/calculator.js.map +1 -1
  464. package/dist/tools/custom.cjs.map +1 -1
  465. package/dist/tools/custom.d.cts +3 -3
  466. package/dist/tools/custom.d.ts +3 -3
  467. package/dist/tools/custom.js.map +1 -1
  468. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  469. package/dist/tools/database/elasticsearch.d.cts +3 -3
  470. package/dist/tools/database/elasticsearch.d.ts +3 -3
  471. package/dist/tools/database/elasticsearch.js.map +1 -1
  472. package/dist/tools/database/metadata.cjs.map +1 -1
  473. package/dist/tools/database/metadata.js.map +1 -1
  474. package/dist/tools/database/milvus.cjs.map +1 -1
  475. package/dist/tools/database/milvus.d.cts +3 -3
  476. package/dist/tools/database/milvus.d.ts +3 -3
  477. package/dist/tools/database/milvus.js.map +1 -1
  478. package/dist/tools/database/qdrant.cjs.map +1 -1
  479. package/dist/tools/database/qdrant.d.cts +2 -2
  480. package/dist/tools/database/qdrant.d.ts +2 -2
  481. package/dist/tools/database/qdrant.js.map +1 -1
  482. package/dist/tools/database/sql.cjs.map +1 -1
  483. package/dist/tools/database/sql.d.cts +2 -2
  484. package/dist/tools/database/sql.d.ts +2 -2
  485. package/dist/tools/database/sql.js.map +1 -1
  486. package/dist/tools/handoff.cjs.map +1 -1
  487. package/dist/tools/handoff.d.cts +2 -2
  488. package/dist/tools/handoff.d.ts +2 -2
  489. package/dist/tools/handoff.js.map +1 -1
  490. package/dist/tools/llm.cjs +1 -1
  491. package/dist/tools/llm.cjs.map +1 -1
  492. package/dist/tools/llm.d.cts +3 -3
  493. package/dist/tools/llm.d.ts +3 -3
  494. package/dist/tools/llm.js +1 -1
  495. package/dist/tools/llm.js.map +1 -1
  496. package/dist/tools/mcp.cjs.map +1 -1
  497. package/dist/tools/mcp.d.cts +2 -2
  498. package/dist/tools/mcp.d.ts +2 -2
  499. package/dist/tools/mcp.js.map +1 -1
  500. package/dist/tools/openapi.cjs.map +1 -1
  501. package/dist/tools/openapi.d.cts +2 -2
  502. package/dist/tools/openapi.d.ts +2 -2
  503. package/dist/tools/openapi.js.map +1 -1
  504. package/dist/tools/python/output.cjs.map +1 -1
  505. package/dist/tools/python/output.d.cts +1 -1
  506. package/dist/tools/python/output.d.ts +1 -1
  507. package/dist/tools/python/output.js.map +1 -1
  508. package/dist/tools/python/python.cjs +5 -2
  509. package/dist/tools/python/python.cjs.map +1 -1
  510. package/dist/tools/python/python.d.cts +3 -3
  511. package/dist/tools/python/python.d.ts +3 -3
  512. package/dist/tools/python/python.js +5 -2
  513. package/dist/tools/python/python.js.map +1 -1
  514. package/dist/tools/python/storage.cjs.map +1 -1
  515. package/dist/tools/python/storage.js.map +1 -1
  516. package/dist/tools/search/base.cjs.map +1 -1
  517. package/dist/tools/search/base.d.cts +2 -2
  518. package/dist/tools/search/base.d.ts +2 -2
  519. package/dist/tools/search/base.js.map +1 -1
  520. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  521. package/dist/tools/search/duckDuckGoSearch.d.cts +2 -2
  522. package/dist/tools/search/duckDuckGoSearch.d.ts +2 -2
  523. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  524. package/dist/tools/search/googleSearch.cjs.map +1 -1
  525. package/dist/tools/search/googleSearch.d.cts +2 -2
  526. package/dist/tools/search/googleSearch.d.ts +2 -2
  527. package/dist/tools/search/googleSearch.js.map +1 -1
  528. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  529. package/dist/tools/search/searXNGSearch.d.cts +2 -2
  530. package/dist/tools/search/searXNGSearch.d.ts +2 -2
  531. package/dist/tools/search/searXNGSearch.js.map +1 -1
  532. package/dist/tools/search/wikipedia.cjs.map +1 -1
  533. package/dist/tools/search/wikipedia.d.cts +3 -3
  534. package/dist/tools/search/wikipedia.d.ts +3 -3
  535. package/dist/tools/search/wikipedia.js.map +1 -1
  536. package/dist/tools/similarity.cjs.map +1 -1
  537. package/dist/tools/similarity.d.cts +2 -2
  538. package/dist/tools/similarity.d.ts +2 -2
  539. package/dist/tools/similarity.js.map +1 -1
  540. package/dist/tools/think.cjs.map +1 -1
  541. package/dist/tools/think.d.cts +2 -2
  542. package/dist/tools/think.d.ts +2 -2
  543. package/dist/tools/think.js.map +1 -1
  544. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  545. package/dist/tools/weather/openMeteo.d.cts +2 -2
  546. package/dist/tools/weather/openMeteo.d.ts +2 -2
  547. package/dist/tools/weather/openMeteo.js.map +1 -1
  548. package/dist/tools/web/webCrawler.cjs.map +1 -1
  549. package/dist/tools/web/webCrawler.d.cts +2 -2
  550. package/dist/tools/web/webCrawler.d.ts +2 -2
  551. package/dist/tools/web/webCrawler.js.map +1 -1
  552. package/dist/{types-YoNQSxQH.d.cts → types-BNsa3W7Z.d.cts} +4 -4
  553. package/dist/{types-YT-WdK3m.d.ts → types-DYtzF6ya.d.ts} +4 -4
  554. package/dist/version.cjs +1 -1
  555. package/dist/version.js +1 -1
  556. package/dist/workflows/agent.cjs.map +1 -1
  557. package/dist/workflows/agent.d.cts +40 -40
  558. package/dist/workflows/agent.d.ts +40 -40
  559. package/dist/workflows/agent.js.map +1 -1
  560. package/dist/workflows/workflow.cjs.map +1 -1
  561. package/dist/workflows/workflow.d.cts +1 -1
  562. package/dist/workflows/workflow.d.ts +1 -1
  563. package/dist/workflows/workflow.js.map +1 -1
  564. package/package.json +38 -15
@@ -1,7 +1,7 @@
1
1
  import { MiddlewareType, Run, GetRunContext } from './context.js';
2
2
  import { FrameworkError } from './errors.js';
3
3
  import { Serializable } from './internals/serializable.js';
4
- import { E as Emitter } from './emitter-CL56qab4.js';
4
+ import { E as Emitter } from './emitter-kHxkUxco.js';
5
5
  import { BaseMemory } from './memory/base.js';
6
6
  import { OmitEmpty } from './internals/types.js';
7
7
  import { AnyTool } from './tools/base.js';
@@ -54,4 +54,4 @@ declare abstract class BaseAgent<TInput, TOutput, TOptions extends BaseAgentRunO
54
54
  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
55
55
  }
56
56
 
57
- export { AgentError as A, type BaseAgentRunOptions as B, type GetAgentInput as G, type InternalAgentCallbackValue as I, type PublicAgentCallbackValue as P, BaseAgent as a, type AnyAgent as b, type AgentMeta as c, type AgentCallbackValue as d, type AgentCallback as e, type GetAgentOutput as f };
57
+ export { AgentError as A, BaseAgent as B, type GetAgentInput as G, type InternalAgentCallbackValue as I, type PublicAgentCallbackValue as P, type BaseAgentRunOptions as a, type AnyAgent as b, type AgentMeta as c, type AgentCallback as d, type AgentCallbackValue as e, type GetAgentOutput as f };
@@ -1,7 +1,7 @@
1
1
  import { MiddlewareType, Run, GetRunContext } from './context.cjs';
2
2
  import { FrameworkError } from './errors.cjs';
3
3
  import { Serializable } from './internals/serializable.cjs';
4
- import { E as Emitter } from './emitter-UkIkNrek.cjs';
4
+ import { E as Emitter } from './emitter-D4OcelZ9.cjs';
5
5
  import { BaseMemory } from './memory/base.cjs';
6
6
  import { OmitEmpty } from './internals/types.cjs';
7
7
  import { AnyTool } from './tools/base.cjs';
@@ -54,4 +54,4 @@ declare abstract class BaseAgent<TInput, TOutput, TOptions extends BaseAgentRunO
54
54
  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
55
55
  }
56
56
 
57
- export { AgentError as A, type BaseAgentRunOptions as B, type GetAgentInput as G, type InternalAgentCallbackValue as I, type PublicAgentCallbackValue as P, BaseAgent as a, type AnyAgent as b, type AgentMeta as c, type AgentCallbackValue as d, type AgentCallback as e, type GetAgentOutput as f };
57
+ export { AgentError as A, BaseAgent as B, type GetAgentInput as G, type InternalAgentCallbackValue as I, type PublicAgentCallbackValue as P, type BaseAgentRunOptions as a, type AnyAgent as b, type AgentMeta as c, type AgentCallback as d, type AgentCallbackValue as e, type GetAgentOutput as f };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/decoratorCache.ts"],"names":["state","container","WeakMap","extractDescriptor","descriptor","value","update","get","Error","Cache","name","getInstanceContext","target","ctx","instances","has","set","cache","Map","options","initQueue","_options","baseOptions","enabled","cacheKey","ObjectHashKeyFn","ttl","Infinity","enumerable","R","pickBy","isDefined","handler","obj","key","Object","hasOwn","constructor","Boolean","push","SingletonCacheKeyFn","groupContext","fn","wrapper","args","invokeOriginal","apply","inputHash","expiresAt","Date","now","result","data","defineProperty","init","self","task","getOwnPropertyDescriptor","prototype","assign","delete","getInstance","property","findDescriptor","TypeError","String","ctxByInstance","clear","keys","forEach","oldTTL","newTTL","undefined","values","diff","isEnabled","enable","disable","WeakRefKeyFn","_lookup","chunks","map","isObjectType","isFunction","createRandomHash","createHash","JSON","stringify","from","cb","join","hash","encoding","replacer","AbortSignal","unorderedArrays","unorderedObjects","unorderedSets","JSONCacheKeyFn","CacheFn","Function","create","instance","Proxy","_","prop","receiver","updateTTL","createSnapshot"],"mappings":"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","file":"decoratorCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyFn, TypedFn } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport hash from \"object-hash\";\nimport { createHash, createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { findDescriptor } from \"@/internals/helpers/prototype.js\";\n\ntype InputFn = AnyFn;\ntype TargetFn = AnyFn;\ntype Instance = NonNullable<any>;\n\ntype CacheKeyFn = (this: Instance, ...args: any[]) => string;\n\nexport interface CacheDecoratorOptions {\n enabled: boolean;\n ttl?: number;\n cacheKey: CacheKeyFn;\n enumerable?: boolean;\n}\n\ninterface CacheEntry {\n expiresAt: number;\n data: any;\n}\n\ninterface FnContext {\n options: CacheDecoratorOptions;\n cache: Map<string, CacheEntry>;\n}\n\ninterface GroupContext {\n options: CacheDecoratorOptions;\n instances: WeakMap<Instance, FnContext>;\n}\n\nexport interface CacheDecoratorInstance {\n get(key?: string): CacheEntry | undefined;\n\n clear(keys?: string[]): void;\n\n isEnabled(): boolean;\n\n enable(): void;\n\n disable(): void;\n\n update(data: Partial<CacheDecoratorOptions>): void;\n}\n\nconst state = {\n container: new WeakMap<InputFn, GroupContext>(),\n extractDescriptor(descriptor: PropertyDescriptor) {\n // Method approach\n if (descriptor.value != null) {\n return {\n value: descriptor.value as AnyFn,\n update: (value: TargetFn) => {\n descriptor.value = value;\n },\n };\n }\n // Accessor approach\n if (descriptor.get != null) {\n return {\n value: descriptor.get as AnyFn,\n update: (value: TargetFn) => {\n descriptor.get = value;\n },\n };\n }\n throw new Error(`@${Cache.name} decorator must be either on a method or get accessor.`);\n },\n getInstanceContext<T extends NonNullable<unknown>>(target: T, ctx: GroupContext) {\n if (!ctx.instances.has(target)) {\n ctx.instances.set(target, {\n cache: new Map(),\n options: ctx.options,\n });\n }\n return ctx.instances.get(target)!;\n },\n} as const;\n\nconst initQueue = new WeakMap<Instance, { key: PropertyKey; enumerable: boolean }[]>();\n\nexport function Cache(_options?: Partial<CacheDecoratorOptions>) {\n const baseOptions: Required<CacheDecoratorOptions> = {\n enabled: true,\n cacheKey: ObjectHashKeyFn,\n ttl: Infinity,\n enumerable: false,\n ...R.pickBy(_options ?? {}, R.isDefined),\n };\n\n return function handler(\n obj: NonNullable<object>,\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n if (Object.hasOwn(obj, \"constructor\")) {\n const constructor = obj.constructor;\n if (!initQueue.has(constructor)) {\n initQueue.set(constructor, []);\n }\n\n baseOptions.enumerable = Boolean(descriptor.get);\n initQueue\n .get(constructor)!\n .push({ key, enumerable: _options?.enumerable ?? baseOptions.enumerable });\n }\n\n const target = state.extractDescriptor(descriptor);\n if (descriptor.get && !_options?.cacheKey) {\n baseOptions.cacheKey = SingletonCacheKeyFn;\n }\n\n const groupContext: GroupContext = { instances: new WeakMap(), options: baseOptions };\n\n const fn = function wrapper(this: any, ...args: any[]) {\n const invokeOriginal = () => target.value.apply(this, args);\n const ctx = state.getInstanceContext(this, groupContext);\n if (!ctx.options.enabled) {\n return invokeOriginal();\n }\n\n const inputHash = ctx.options.cacheKey.apply(this, args);\n if (\n !ctx.cache.has(inputHash) ||\n (ctx.cache.get(inputHash)?.expiresAt ?? Infinity) < Date.now() // is expired check\n ) {\n const result = invokeOriginal();\n ctx.cache.set(inputHash, {\n expiresAt: Date.now() + (ctx.options.ttl ?? Infinity),\n data: result,\n });\n }\n return ctx.cache.get(inputHash)!.data;\n };\n Object.defineProperty(fn, \"name\", {\n get: () => target.value.name ?? \"anonymous\",\n });\n\n target.update(fn);\n state.container.set(fn, groupContext);\n };\n}\n\nCache.init = function init<T extends NonNullable<unknown>>(self: T) {\n const task = initQueue.get(self.constructor) ?? [];\n for (const { key, enumerable } of task) {\n const descriptor = Object.getOwnPropertyDescriptor(self.constructor.prototype, key);\n if (descriptor) {\n Object.defineProperty(self, key, Object.assign(descriptor, { enumerable }));\n }\n }\n initQueue.delete(self);\n};\n\nCache.getInstance = function getInstance<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): CacheDecoratorInstance {\n const descriptor = findDescriptor(target, property);\n if (!descriptor) {\n throw new TypeError(`No descriptor has been found for '${String(property)}'`);\n }\n const value = state.extractDescriptor(descriptor);\n const ctxByInstance = state.container.get(value.value);\n if (!ctxByInstance) {\n throw new TypeError(`No cache instance is bounded to '${String(property)}'!`);\n }\n\n const ctx = state.getInstanceContext(target, ctxByInstance);\n return {\n get(key = \"\") {\n return ctx.cache.get(key);\n },\n clear(keys?: string[]) {\n if (keys) {\n keys.forEach((key) => ctx.cache.delete(key));\n } else {\n ctx.cache.clear();\n }\n },\n update(data: CacheDecoratorOptions) {\n const oldTTL = ctx.options.ttl;\n const newTTL = data.ttl;\n if (oldTTL !== newTTL && newTTL !== undefined) {\n for (const value of ctx.cache.values()) {\n if (value.expiresAt === Infinity) {\n value.expiresAt = Date.now() + newTTL;\n } else {\n const diff = newTTL - (oldTTL ?? 0);\n value.expiresAt += diff;\n }\n }\n }\n Object.assign(ctx.options, data);\n },\n isEnabled() {\n return ctx.options.enabled;\n },\n enable() {\n ctx.options.enabled = true;\n },\n disable() {\n ctx.options.enabled = false;\n },\n };\n};\n\nexport const WeakRefKeyFn = (() => {\n const _lookup = new WeakMap();\n\n const fn = (...args: any[]) => {\n const chunks = args.map((value) => {\n if (R.isObjectType(value) || R.isFunction(value)) {\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n });\n return createHash(JSON.stringify(chunks));\n };\n fn.from = <T>(cb: (self: T) => any[]) => {\n return function (this: T) {\n return cb(this).map(fn).join(\"#\");\n };\n };\n return fn;\n})() satisfies CacheKeyFn;\n\nexport const ObjectHashKeyFn: CacheKeyFn = (...args: any[]) =>\n hash(args, {\n encoding: \"base64\",\n replacer: (() => {\n const _lookup = new WeakMap();\n return (value: unknown) => {\n if (value && value instanceof AbortSignal) {\n // not supported by \"hash\" function\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n };\n })(),\n unorderedArrays: false,\n unorderedObjects: false,\n unorderedSets: false,\n });\nexport const JSONCacheKeyFn: CacheKeyFn = (...args: any[]) => JSON.stringify(args);\n// eslint-disable-next-line unused-imports/no-unused-vars\nexport const SingletonCacheKeyFn: CacheKeyFn = (...args: any[]) => \"\";\n\nexport class CacheFn<P extends any[], R> extends Function {\n readonly name = CacheFn.name;\n\n static create<A extends any[], B>(\n fn: (...args: A) => B,\n options?: Partial<CacheDecoratorOptions>,\n ) {\n const instance = new CacheFn(fn, options);\n return instance as TypedFn<A, B> & CacheFn<A, B>;\n }\n\n constructor(\n protected readonly fn: (...args: P) => R,\n protected readonly options?: Partial<CacheDecoratorOptions>,\n ) {\n super();\n\n Cache.getInstance(this, \"get\").update(options ?? {});\n return new Proxy<typeof this>(this, {\n apply(this: CacheFn<P, R>, target, _, args: any[]) {\n return target.get(...(args as unknown as P));\n },\n get(target, prop: string | symbol, receiver: any) {\n const value = target[prop as keyof typeof target];\n if (value instanceof Function) {\n return function (this: CacheFn<P, R>, ...args: P) {\n return value.apply(this === receiver ? target : this, args);\n };\n }\n return value;\n },\n }) as unknown as CacheFn<P, R> & typeof fn;\n }\n\n updateTTL(ttl: number) {\n Cache.getInstance(this, \"get\").update({ ttl });\n }\n\n createSnapshot() {\n return {\n fn: this.fn,\n options: this.options,\n };\n }\n\n @Cache()\n get(...args: P) {\n return this.fn(...args);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/decoratorCache.ts"],"names":["state","container","WeakMap","extractDescriptor","descriptor","value","update","get","Error","Cache","name","getInstanceContext","target","ctx","instances","has","set","cache","Map","options","initQueue","_options","baseOptions","enabled","cacheKey","ObjectHashKeyFn","ttl","Infinity","enumerable","R","pickBy","isDefined","handler","obj","key","Object","hasOwn","constructor","Boolean","push","SingletonCacheKeyFn","groupContext","fn","wrapper","args","invokeOriginal","apply","inputHash","expiresAt","Date","now","result","data","defineProperty","init","self","task","getOwnPropertyDescriptor","prototype","assign","delete","getInstance","property","findDescriptor","TypeError","String","ctxByInstance","clear","keys","forEach","oldTTL","newTTL","undefined","values","diff","isEnabled","enable","disable","WeakRefKeyFn","_lookup","chunks","map","isObjectType","isFunction","createRandomHash","createHash","JSON","stringify","from","cb","join","hash","encoding","replacer","AbortSignal","unorderedArrays","unorderedObjects","unorderedSets","JSONCacheKeyFn","CacheFn","Function","create","instance","Proxy","_","prop","receiver","updateTTL","createSnapshot"],"mappings":"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","file":"decoratorCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyFn, TypedFn } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport hash from \"object-hash\";\nimport { createHash, createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { findDescriptor } from \"@/internals/helpers/prototype.js\";\n\ntype InputFn = AnyFn;\ntype TargetFn = AnyFn;\ntype Instance = NonNullable<any>;\n\ntype CacheKeyFn = (this: Instance, ...args: any[]) => string;\n\nexport interface CacheDecoratorOptions {\n enabled: boolean;\n ttl?: number;\n cacheKey: CacheKeyFn;\n enumerable?: boolean;\n}\n\ninterface CacheEntry {\n expiresAt: number;\n data: any;\n}\n\ninterface FnContext {\n options: CacheDecoratorOptions;\n cache: Map<string, CacheEntry>;\n}\n\ninterface GroupContext {\n options: CacheDecoratorOptions;\n instances: WeakMap<Instance, FnContext>;\n}\n\nexport interface CacheDecoratorInstance {\n get(key?: string): CacheEntry | undefined;\n\n clear(keys?: string[]): void;\n\n isEnabled(): boolean;\n\n enable(): void;\n\n disable(): void;\n\n update(data: Partial<CacheDecoratorOptions>): void;\n}\n\nconst state = {\n container: new WeakMap<InputFn, GroupContext>(),\n extractDescriptor(descriptor: PropertyDescriptor) {\n // Method approach\n if (descriptor.value != null) {\n return {\n value: descriptor.value as AnyFn,\n update: (value: TargetFn) => {\n descriptor.value = value;\n },\n };\n }\n // Accessor approach\n if (descriptor.get != null) {\n return {\n value: descriptor.get as AnyFn,\n update: (value: TargetFn) => {\n descriptor.get = value;\n },\n };\n }\n throw new Error(`@${Cache.name} decorator must be either on a method or get accessor.`);\n },\n getInstanceContext<T extends NonNullable<unknown>>(target: T, ctx: GroupContext) {\n if (!ctx.instances.has(target)) {\n ctx.instances.set(target, {\n cache: new Map(),\n options: ctx.options,\n });\n }\n return ctx.instances.get(target)!;\n },\n} as const;\n\nconst initQueue = new WeakMap<Instance, { key: PropertyKey; enumerable: boolean }[]>();\n\nexport function Cache(_options?: Partial<CacheDecoratorOptions>) {\n const baseOptions: Required<CacheDecoratorOptions> = {\n enabled: true,\n cacheKey: ObjectHashKeyFn,\n ttl: Infinity,\n enumerable: false,\n ...R.pickBy(_options ?? {}, R.isDefined),\n };\n\n return function handler(\n obj: NonNullable<object>,\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n if (Object.hasOwn(obj, \"constructor\")) {\n const constructor = obj.constructor;\n if (!initQueue.has(constructor)) {\n initQueue.set(constructor, []);\n }\n\n baseOptions.enumerable = Boolean(descriptor.get);\n initQueue\n .get(constructor)!\n .push({ key, enumerable: _options?.enumerable ?? baseOptions.enumerable });\n }\n\n const target = state.extractDescriptor(descriptor);\n if (descriptor.get && !_options?.cacheKey) {\n baseOptions.cacheKey = SingletonCacheKeyFn;\n }\n\n const groupContext: GroupContext = { instances: new WeakMap(), options: baseOptions };\n\n const fn = function wrapper(this: any, ...args: any[]) {\n const invokeOriginal = () => target.value.apply(this, args);\n const ctx = state.getInstanceContext(this, groupContext);\n if (!ctx.options.enabled) {\n return invokeOriginal();\n }\n\n const inputHash = ctx.options.cacheKey.apply(this, args);\n if (\n !ctx.cache.has(inputHash) ||\n (ctx.cache.get(inputHash)?.expiresAt ?? Infinity) < Date.now() // is expired check\n ) {\n const result = invokeOriginal();\n ctx.cache.set(inputHash, {\n expiresAt: Date.now() + (ctx.options.ttl ?? Infinity),\n data: result,\n });\n }\n return ctx.cache.get(inputHash)!.data;\n };\n Object.defineProperty(fn, \"name\", {\n get: () => target.value.name ?? \"anonymous\",\n });\n\n target.update(fn);\n state.container.set(fn, groupContext);\n };\n}\n\nCache.init = function init<T extends NonNullable<unknown>>(self: T) {\n const task = initQueue.get(self.constructor) ?? [];\n for (const { key, enumerable } of task) {\n const descriptor = Object.getOwnPropertyDescriptor(self.constructor.prototype, key);\n if (descriptor) {\n Object.defineProperty(self, key, Object.assign(descriptor, { enumerable }));\n }\n }\n initQueue.delete(self);\n};\n\nCache.getInstance = function getInstance<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): CacheDecoratorInstance {\n const descriptor = findDescriptor(target, property);\n if (!descriptor) {\n throw new TypeError(`No descriptor has been found for '${String(property)}'`);\n }\n const value = state.extractDescriptor(descriptor);\n const ctxByInstance = state.container.get(value.value);\n if (!ctxByInstance) {\n throw new TypeError(`No cache instance is bounded to '${String(property)}'!`);\n }\n\n const ctx = state.getInstanceContext(target, ctxByInstance);\n return {\n get(key = \"\") {\n return ctx.cache.get(key);\n },\n clear(keys?: string[]) {\n if (keys) {\n keys.forEach((key) => ctx.cache.delete(key));\n } else {\n ctx.cache.clear();\n }\n },\n update(data: CacheDecoratorOptions) {\n const oldTTL = ctx.options.ttl;\n const newTTL = data.ttl;\n if (oldTTL !== newTTL && newTTL !== undefined) {\n for (const value of ctx.cache.values()) {\n if (value.expiresAt === Infinity) {\n value.expiresAt = Date.now() + newTTL;\n } else {\n const diff = newTTL - (oldTTL ?? 0);\n value.expiresAt += diff;\n }\n }\n }\n Object.assign(ctx.options, data);\n },\n isEnabled() {\n return ctx.options.enabled;\n },\n enable() {\n ctx.options.enabled = true;\n },\n disable() {\n ctx.options.enabled = false;\n },\n };\n};\n\nexport const WeakRefKeyFn = (() => {\n const _lookup = new WeakMap();\n\n const fn = (...args: any[]) => {\n const chunks = args.map((value) => {\n if (R.isObjectType(value) || R.isFunction(value)) {\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n });\n return createHash(JSON.stringify(chunks));\n };\n fn.from = <T>(cb: (self: T) => any[]) => {\n return function (this: T) {\n return cb(this).map(fn).join(\"#\");\n };\n };\n return fn;\n})() satisfies CacheKeyFn;\n\nexport const ObjectHashKeyFn: CacheKeyFn = (...args: any[]) =>\n hash(args, {\n encoding: \"base64\",\n replacer: (() => {\n const _lookup = new WeakMap();\n return (value: unknown) => {\n if (value && value instanceof AbortSignal) {\n // not supported by \"hash\" function\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n };\n })(),\n unorderedArrays: false,\n unorderedObjects: false,\n unorderedSets: false,\n });\nexport const JSONCacheKeyFn: CacheKeyFn = (...args: any[]) => JSON.stringify(args);\n// eslint-disable-next-line unused-imports/no-unused-vars\nexport const SingletonCacheKeyFn: CacheKeyFn = (...args: any[]) => \"\";\n\nexport class CacheFn<P extends any[], R> extends Function {\n readonly name = CacheFn.name;\n\n static create<A extends any[], B>(\n fn: (...args: A) => B,\n options?: Partial<CacheDecoratorOptions>,\n ) {\n const instance = new CacheFn(fn, options);\n return instance as TypedFn<A, B> & CacheFn<A, B>;\n }\n\n constructor(\n protected readonly fn: (...args: P) => R,\n protected readonly options?: Partial<CacheDecoratorOptions>,\n ) {\n super();\n\n Cache.getInstance(this, \"get\").update(options ?? {});\n return new Proxy<typeof this>(this, {\n apply(this: CacheFn<P, R>, target, _, args: any[]) {\n return target.get(...(args as unknown as P));\n },\n get(target, prop: string | symbol, receiver: any) {\n const value = target[prop as keyof typeof target];\n if (value instanceof Function) {\n return function (this: CacheFn<P, R>, ...args: P) {\n return value.apply(this === receiver ? target : this, args);\n };\n }\n return value;\n },\n }) as unknown as CacheFn<P, R> & typeof fn;\n }\n\n updateTTL(ttl: number) {\n Cache.getInstance(this, \"get\").update({ ttl });\n }\n\n createSnapshot() {\n return {\n fn: this.fn,\n options: this.options,\n };\n }\n\n @Cache()\n get(...args: P) {\n return this.fn(...args);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/decoratorCache.ts"],"names":["state","container","WeakMap","extractDescriptor","descriptor","value","update","get","Error","Cache","name","getInstanceContext","target","ctx","instances","has","set","cache","Map","options","initQueue","_options","baseOptions","enabled","cacheKey","ObjectHashKeyFn","ttl","Infinity","enumerable","R","pickBy","isDefined","handler","obj","key","Object","hasOwn","constructor","Boolean","push","SingletonCacheKeyFn","groupContext","fn","wrapper","args","invokeOriginal","apply","inputHash","expiresAt","Date","now","result","data","defineProperty","init","self","task","getOwnPropertyDescriptor","prototype","assign","delete","getInstance","property","findDescriptor","TypeError","String","ctxByInstance","clear","keys","forEach","oldTTL","newTTL","undefined","values","diff","isEnabled","enable","disable","WeakRefKeyFn","_lookup","chunks","map","isObjectType","isFunction","createRandomHash","createHash","JSON","stringify","from","cb","join","hash","encoding","replacer","AbortSignal","unorderedArrays","unorderedObjects","unorderedSets","JSONCacheKeyFn","CacheFn","Function","create","instance","Proxy","_","prop","receiver","updateTTL","createSnapshot"],"mappings":"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","file":"decoratorCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyFn, TypedFn } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport hash from \"object-hash\";\nimport { createHash, createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { findDescriptor } from \"@/internals/helpers/prototype.js\";\n\ntype InputFn = AnyFn;\ntype TargetFn = AnyFn;\ntype Instance = NonNullable<any>;\n\ntype CacheKeyFn = (this: Instance, ...args: any[]) => string;\n\nexport interface CacheDecoratorOptions {\n enabled: boolean;\n ttl?: number;\n cacheKey: CacheKeyFn;\n enumerable?: boolean;\n}\n\ninterface CacheEntry {\n expiresAt: number;\n data: any;\n}\n\ninterface FnContext {\n options: CacheDecoratorOptions;\n cache: Map<string, CacheEntry>;\n}\n\ninterface GroupContext {\n options: CacheDecoratorOptions;\n instances: WeakMap<Instance, FnContext>;\n}\n\nexport interface CacheDecoratorInstance {\n get(key?: string): CacheEntry | undefined;\n\n clear(keys?: string[]): void;\n\n isEnabled(): boolean;\n\n enable(): void;\n\n disable(): void;\n\n update(data: Partial<CacheDecoratorOptions>): void;\n}\n\nconst state = {\n container: new WeakMap<InputFn, GroupContext>(),\n extractDescriptor(descriptor: PropertyDescriptor) {\n // Method approach\n if (descriptor.value != null) {\n return {\n value: descriptor.value as AnyFn,\n update: (value: TargetFn) => {\n descriptor.value = value;\n },\n };\n }\n // Accessor approach\n if (descriptor.get != null) {\n return {\n value: descriptor.get as AnyFn,\n update: (value: TargetFn) => {\n descriptor.get = value;\n },\n };\n }\n throw new Error(`@${Cache.name} decorator must be either on a method or get accessor.`);\n },\n getInstanceContext<T extends NonNullable<unknown>>(target: T, ctx: GroupContext) {\n if (!ctx.instances.has(target)) {\n ctx.instances.set(target, {\n cache: new Map(),\n options: ctx.options,\n });\n }\n return ctx.instances.get(target)!;\n },\n} as const;\n\nconst initQueue = new WeakMap<Instance, { key: PropertyKey; enumerable: boolean }[]>();\n\nexport function Cache(_options?: Partial<CacheDecoratorOptions>) {\n const baseOptions: Required<CacheDecoratorOptions> = {\n enabled: true,\n cacheKey: ObjectHashKeyFn,\n ttl: Infinity,\n enumerable: false,\n ...R.pickBy(_options ?? {}, R.isDefined),\n };\n\n return function handler(\n obj: NonNullable<object>,\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n if (Object.hasOwn(obj, \"constructor\")) {\n const constructor = obj.constructor;\n if (!initQueue.has(constructor)) {\n initQueue.set(constructor, []);\n }\n\n baseOptions.enumerable = Boolean(descriptor.get);\n initQueue\n .get(constructor)!\n .push({ key, enumerable: _options?.enumerable ?? baseOptions.enumerable });\n }\n\n const target = state.extractDescriptor(descriptor);\n if (descriptor.get && !_options?.cacheKey) {\n baseOptions.cacheKey = SingletonCacheKeyFn;\n }\n\n const groupContext: GroupContext = { instances: new WeakMap(), options: baseOptions };\n\n const fn = function wrapper(this: any, ...args: any[]) {\n const invokeOriginal = () => target.value.apply(this, args);\n const ctx = state.getInstanceContext(this, groupContext);\n if (!ctx.options.enabled) {\n return invokeOriginal();\n }\n\n const inputHash = ctx.options.cacheKey.apply(this, args);\n if (\n !ctx.cache.has(inputHash) ||\n (ctx.cache.get(inputHash)?.expiresAt ?? Infinity) < Date.now() // is expired check\n ) {\n const result = invokeOriginal();\n ctx.cache.set(inputHash, {\n expiresAt: Date.now() + (ctx.options.ttl ?? Infinity),\n data: result,\n });\n }\n return ctx.cache.get(inputHash)!.data;\n };\n Object.defineProperty(fn, \"name\", {\n get: () => target.value.name ?? \"anonymous\",\n });\n\n target.update(fn);\n state.container.set(fn, groupContext);\n };\n}\n\nCache.init = function init<T extends NonNullable<unknown>>(self: T) {\n const task = initQueue.get(self.constructor) ?? [];\n for (const { key, enumerable } of task) {\n const descriptor = Object.getOwnPropertyDescriptor(self.constructor.prototype, key);\n if (descriptor) {\n Object.defineProperty(self, key, Object.assign(descriptor, { enumerable }));\n }\n }\n initQueue.delete(self);\n};\n\nCache.getInstance = function getInstance<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): CacheDecoratorInstance {\n const descriptor = findDescriptor(target, property);\n if (!descriptor) {\n throw new TypeError(`No descriptor has been found for '${String(property)}'`);\n }\n const value = state.extractDescriptor(descriptor);\n const ctxByInstance = state.container.get(value.value);\n if (!ctxByInstance) {\n throw new TypeError(`No cache instance is bounded to '${String(property)}'!`);\n }\n\n const ctx = state.getInstanceContext(target, ctxByInstance);\n return {\n get(key = \"\") {\n return ctx.cache.get(key);\n },\n clear(keys?: string[]) {\n if (keys) {\n keys.forEach((key) => ctx.cache.delete(key));\n } else {\n ctx.cache.clear();\n }\n },\n update(data: CacheDecoratorOptions) {\n const oldTTL = ctx.options.ttl;\n const newTTL = data.ttl;\n if (oldTTL !== newTTL && newTTL !== undefined) {\n for (const value of ctx.cache.values()) {\n if (value.expiresAt === Infinity) {\n value.expiresAt = Date.now() + newTTL;\n } else {\n const diff = newTTL - (oldTTL ?? 0);\n value.expiresAt += diff;\n }\n }\n }\n Object.assign(ctx.options, data);\n },\n isEnabled() {\n return ctx.options.enabled;\n },\n enable() {\n ctx.options.enabled = true;\n },\n disable() {\n ctx.options.enabled = false;\n },\n };\n};\n\nexport const WeakRefKeyFn = (() => {\n const _lookup = new WeakMap();\n\n const fn = (...args: any[]) => {\n const chunks = args.map((value) => {\n if (R.isObjectType(value) || R.isFunction(value)) {\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n });\n return createHash(JSON.stringify(chunks));\n };\n fn.from = <T>(cb: (self: T) => any[]) => {\n return function (this: T) {\n return cb(this).map(fn).join(\"#\");\n };\n };\n return fn;\n})() satisfies CacheKeyFn;\n\nexport const ObjectHashKeyFn: CacheKeyFn = (...args: any[]) =>\n hash(args, {\n encoding: \"base64\",\n replacer: (() => {\n const _lookup = new WeakMap();\n return (value: unknown) => {\n if (value && value instanceof AbortSignal) {\n // not supported by \"hash\" function\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n };\n })(),\n unorderedArrays: false,\n unorderedObjects: false,\n unorderedSets: false,\n });\nexport const JSONCacheKeyFn: CacheKeyFn = (...args: any[]) => JSON.stringify(args);\n// eslint-disable-next-line unused-imports/no-unused-vars\nexport const SingletonCacheKeyFn: CacheKeyFn = (...args: any[]) => \"\";\n\nexport class CacheFn<P extends any[], R> extends Function {\n readonly name = CacheFn.name;\n\n static create<A extends any[], B>(\n fn: (...args: A) => B,\n options?: Partial<CacheDecoratorOptions>,\n ) {\n const instance = new CacheFn(fn, options);\n return instance as TypedFn<A, B> & CacheFn<A, B>;\n }\n\n constructor(\n protected readonly fn: (...args: P) => R,\n protected readonly options?: Partial<CacheDecoratorOptions>,\n ) {\n super();\n\n Cache.getInstance(this, \"get\").update(options ?? {});\n return new Proxy<typeof this>(this, {\n apply(this: CacheFn<P, R>, target, _, args: any[]) {\n return target.get(...(args as unknown as P));\n },\n get(target, prop: string | symbol, receiver: any) {\n const value = target[prop as keyof typeof target];\n if (value instanceof Function) {\n return function (this: CacheFn<P, R>, ...args: P) {\n return value.apply(this === receiver ? target : this, args);\n };\n }\n return value;\n },\n }) as unknown as CacheFn<P, R> & typeof fn;\n }\n\n updateTTL(ttl: number) {\n Cache.getInstance(this, \"get\").update({ ttl });\n }\n\n createSnapshot() {\n return {\n fn: this.fn,\n options: this.options,\n };\n }\n\n @Cache()\n get(...args: P) {\n return this.fn(...args);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/decoratorCache.ts"],"names":["state","container","WeakMap","extractDescriptor","descriptor","value","update","get","Error","Cache","name","getInstanceContext","target","ctx","instances","has","set","cache","Map","options","initQueue","_options","baseOptions","enabled","cacheKey","ObjectHashKeyFn","ttl","Infinity","enumerable","R","pickBy","isDefined","handler","obj","key","Object","hasOwn","constructor","Boolean","push","SingletonCacheKeyFn","groupContext","fn","wrapper","args","invokeOriginal","apply","inputHash","expiresAt","Date","now","result","data","defineProperty","init","self","task","getOwnPropertyDescriptor","prototype","assign","delete","getInstance","property","findDescriptor","TypeError","String","ctxByInstance","clear","keys","forEach","oldTTL","newTTL","undefined","values","diff","isEnabled","enable","disable","WeakRefKeyFn","_lookup","chunks","map","isObjectType","isFunction","createRandomHash","createHash","JSON","stringify","from","cb","join","hash","encoding","replacer","AbortSignal","unorderedArrays","unorderedObjects","unorderedSets","JSONCacheKeyFn","CacheFn","Function","create","instance","Proxy","_","prop","receiver","updateTTL","createSnapshot"],"mappings":"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","file":"decoratorCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyFn, TypedFn } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport hash from \"object-hash\";\nimport { createHash, createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { findDescriptor } from \"@/internals/helpers/prototype.js\";\n\ntype InputFn = AnyFn;\ntype TargetFn = AnyFn;\ntype Instance = NonNullable<any>;\n\ntype CacheKeyFn = (this: Instance, ...args: any[]) => string;\n\nexport interface CacheDecoratorOptions {\n enabled: boolean;\n ttl?: number;\n cacheKey: CacheKeyFn;\n enumerable?: boolean;\n}\n\ninterface CacheEntry {\n expiresAt: number;\n data: any;\n}\n\ninterface FnContext {\n options: CacheDecoratorOptions;\n cache: Map<string, CacheEntry>;\n}\n\ninterface GroupContext {\n options: CacheDecoratorOptions;\n instances: WeakMap<Instance, FnContext>;\n}\n\nexport interface CacheDecoratorInstance {\n get(key?: string): CacheEntry | undefined;\n\n clear(keys?: string[]): void;\n\n isEnabled(): boolean;\n\n enable(): void;\n\n disable(): void;\n\n update(data: Partial<CacheDecoratorOptions>): void;\n}\n\nconst state = {\n container: new WeakMap<InputFn, GroupContext>(),\n extractDescriptor(descriptor: PropertyDescriptor) {\n // Method approach\n if (descriptor.value != null) {\n return {\n value: descriptor.value as AnyFn,\n update: (value: TargetFn) => {\n descriptor.value = value;\n },\n };\n }\n // Accessor approach\n if (descriptor.get != null) {\n return {\n value: descriptor.get as AnyFn,\n update: (value: TargetFn) => {\n descriptor.get = value;\n },\n };\n }\n throw new Error(`@${Cache.name} decorator must be either on a method or get accessor.`);\n },\n getInstanceContext<T extends NonNullable<unknown>>(target: T, ctx: GroupContext) {\n if (!ctx.instances.has(target)) {\n ctx.instances.set(target, {\n cache: new Map(),\n options: ctx.options,\n });\n }\n return ctx.instances.get(target)!;\n },\n} as const;\n\nconst initQueue = new WeakMap<Instance, { key: PropertyKey; enumerable: boolean }[]>();\n\nexport function Cache(_options?: Partial<CacheDecoratorOptions>) {\n const baseOptions: Required<CacheDecoratorOptions> = {\n enabled: true,\n cacheKey: ObjectHashKeyFn,\n ttl: Infinity,\n enumerable: false,\n ...R.pickBy(_options ?? {}, R.isDefined),\n };\n\n return function handler(\n obj: NonNullable<object>,\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n if (Object.hasOwn(obj, \"constructor\")) {\n const constructor = obj.constructor;\n if (!initQueue.has(constructor)) {\n initQueue.set(constructor, []);\n }\n\n baseOptions.enumerable = Boolean(descriptor.get);\n initQueue\n .get(constructor)!\n .push({ key, enumerable: _options?.enumerable ?? baseOptions.enumerable });\n }\n\n const target = state.extractDescriptor(descriptor);\n if (descriptor.get && !_options?.cacheKey) {\n baseOptions.cacheKey = SingletonCacheKeyFn;\n }\n\n const groupContext: GroupContext = { instances: new WeakMap(), options: baseOptions };\n\n const fn = function wrapper(this: any, ...args: any[]) {\n const invokeOriginal = () => target.value.apply(this, args);\n const ctx = state.getInstanceContext(this, groupContext);\n if (!ctx.options.enabled) {\n return invokeOriginal();\n }\n\n const inputHash = ctx.options.cacheKey.apply(this, args);\n if (\n !ctx.cache.has(inputHash) ||\n (ctx.cache.get(inputHash)?.expiresAt ?? Infinity) < Date.now() // is expired check\n ) {\n const result = invokeOriginal();\n ctx.cache.set(inputHash, {\n expiresAt: Date.now() + (ctx.options.ttl ?? Infinity),\n data: result,\n });\n }\n return ctx.cache.get(inputHash)!.data;\n };\n Object.defineProperty(fn, \"name\", {\n get: () => target.value.name ?? \"anonymous\",\n });\n\n target.update(fn);\n state.container.set(fn, groupContext);\n };\n}\n\nCache.init = function init<T extends NonNullable<unknown>>(self: T) {\n const task = initQueue.get(self.constructor) ?? [];\n for (const { key, enumerable } of task) {\n const descriptor = Object.getOwnPropertyDescriptor(self.constructor.prototype, key);\n if (descriptor) {\n Object.defineProperty(self, key, Object.assign(descriptor, { enumerable }));\n }\n }\n initQueue.delete(self);\n};\n\nCache.getInstance = function getInstance<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): CacheDecoratorInstance {\n const descriptor = findDescriptor(target, property);\n if (!descriptor) {\n throw new TypeError(`No descriptor has been found for '${String(property)}'`);\n }\n const value = state.extractDescriptor(descriptor);\n const ctxByInstance = state.container.get(value.value);\n if (!ctxByInstance) {\n throw new TypeError(`No cache instance is bounded to '${String(property)}'!`);\n }\n\n const ctx = state.getInstanceContext(target, ctxByInstance);\n return {\n get(key = \"\") {\n return ctx.cache.get(key);\n },\n clear(keys?: string[]) {\n if (keys) {\n keys.forEach((key) => ctx.cache.delete(key));\n } else {\n ctx.cache.clear();\n }\n },\n update(data: CacheDecoratorOptions) {\n const oldTTL = ctx.options.ttl;\n const newTTL = data.ttl;\n if (oldTTL !== newTTL && newTTL !== undefined) {\n for (const value of ctx.cache.values()) {\n if (value.expiresAt === Infinity) {\n value.expiresAt = Date.now() + newTTL;\n } else {\n const diff = newTTL - (oldTTL ?? 0);\n value.expiresAt += diff;\n }\n }\n }\n Object.assign(ctx.options, data);\n },\n isEnabled() {\n return ctx.options.enabled;\n },\n enable() {\n ctx.options.enabled = true;\n },\n disable() {\n ctx.options.enabled = false;\n },\n };\n};\n\nexport const WeakRefKeyFn = (() => {\n const _lookup = new WeakMap();\n\n const fn = (...args: any[]) => {\n const chunks = args.map((value) => {\n if (R.isObjectType(value) || R.isFunction(value)) {\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n });\n return createHash(JSON.stringify(chunks));\n };\n fn.from = <T>(cb: (self: T) => any[]) => {\n return function (this: T) {\n return cb(this).map(fn).join(\"#\");\n };\n };\n return fn;\n})() satisfies CacheKeyFn;\n\nexport const ObjectHashKeyFn: CacheKeyFn = (...args: any[]) =>\n hash(args, {\n encoding: \"base64\",\n replacer: (() => {\n const _lookup = new WeakMap();\n return (value: unknown) => {\n if (value && value instanceof AbortSignal) {\n // not supported by \"hash\" function\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n };\n })(),\n unorderedArrays: false,\n unorderedObjects: false,\n unorderedSets: false,\n });\nexport const JSONCacheKeyFn: CacheKeyFn = (...args: any[]) => JSON.stringify(args);\n// eslint-disable-next-line unused-imports/no-unused-vars\nexport const SingletonCacheKeyFn: CacheKeyFn = (...args: any[]) => \"\";\n\nexport class CacheFn<P extends any[], R> extends Function {\n readonly name = CacheFn.name;\n\n static create<A extends any[], B>(\n fn: (...args: A) => B,\n options?: Partial<CacheDecoratorOptions>,\n ) {\n const instance = new CacheFn(fn, options);\n return instance as TypedFn<A, B> & CacheFn<A, B>;\n }\n\n constructor(\n protected readonly fn: (...args: P) => R,\n protected readonly options?: Partial<CacheDecoratorOptions>,\n ) {\n super();\n\n Cache.getInstance(this, \"get\").update(options ?? {});\n return new Proxy<typeof this>(this, {\n apply(this: CacheFn<P, R>, target, _, args: any[]) {\n return target.get(...(args as unknown as P));\n },\n get(target, prop: string | symbol, receiver: any) {\n const value = target[prop as keyof typeof target];\n if (value instanceof Function) {\n return function (this: CacheFn<P, R>, ...args: P) {\n return value.apply(this === receiver ? target : this, args);\n };\n }\n return value;\n },\n }) as unknown as CacheFn<P, R> & typeof fn;\n }\n\n updateTTL(ttl: number) {\n Cache.getInstance(this, \"get\").update({ ttl });\n }\n\n createSnapshot() {\n return {\n fn: this.fn,\n options: this.options,\n };\n }\n\n @Cache()\n get(...args: P) {\n return this.fn(...args);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/fileCache.ts"],"names":["FileCache","BaseCache","input","register","source","fullPath","fromProvider","provider","fs","promises","writeFile","serialize","getProvider","exists","stat","then","r","isFile","catch","serialized","readFile","target","snapshot","Serializer","deserialize","Target","getFactory","ref","instance","fromSnapshot","TypeError","SlidingCache","size","Infinity","ttl","reload","Cache","getInstance","clear","save","set","key","value","get","finally","has","delete","result","createSnapshot","loadSnapshot","Object","assign"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAMA,kBAAqBC,kBAAAA,CAAAA;AAAAA,EAAAA;;;;AAChC,EAAA,WAAA,CAA+BC,KAAAA,EAAc;AAC3C,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,IAAIC,MAAAA,GAAS;AACX,IAAA,OAAO,KAAKF,KAAAA,CAAMG,QAAAA;AACpB;EAEA,aAAaC,YAAAA,CAAgBC,UAAwBL,KAAAA,EAAc;AACjE,IAAA,MAAMM,mBAAAA,CAAGC,SAASC,SAAAA,CAAUR,KAAAA,CAAMG,UAAU,MAAME,QAAAA,CAASI,WAAS,CAAA;AACpE,IAAA,OAAO,IAAIX,UAAaE,KAAAA,CAAAA;AAC1B;AAEA,EAAA,MACgBU,WAAAA,GAAqC;AACnD,IAAA,MAAMC,SAAS,MAAML,mBAAAA,CAAGC,SACrBK,IAAAA,CAAK,IAAA,CAAKZ,MAAMG,QAAQ,CAAA,CACxBU,IAAAA,CAAK,CAACC,MAAMA,CAAAA,CAAEC,MAAAA,EAAM,CAAA,CACpBC,KAAAA,CAAM,MAAM,KAAA,CAAA;AAEf,IAAA,IAAIL,MAAAA,EAAQ;AACV,MAAA,MAAMM,UAAAA,GAAa,MAAMX,mBAAAA,CAAGC,QAAAA,CAASW,SAAS,IAAA,CAAKlB,KAAAA,CAAMG,UAAU,MAAA,CAAA;AACnE,MAAA,MAAM,EAAEgB,MAAAA,EAAQC,QAAAA,KAAa,MAAMC,yBAAAA,CAAWC,YAAiBL,UAAAA,CAAAA;AAC/D,MAAA,MAAMM,MAAAA,GAASF,yBAAAA,CAAWG,UAAAA,CAAWL,MAAAA,CAAAA,CAAQM,GAAAA;AAC7C,MAAA,MAAMC,QAAAA,GAAW,MAAMH,MAAAA,CAAOI,YAAAA,CAAaP,QAAAA,CAAAA;AAC3C,MAAA,IAAI,EAAEM,oBAAoB3B,kBAAAA,CAAAA,EAAY;AACpC,QAAA,MAAM,IAAI6B,UAAU,mEAAA,CAAA;AACtB;AACA,MAAA,OAAOF,QAAAA;KACT,MAAO;AACL,MAAA,OAAO,IAAIG,6BAAAA,CAAa;QACtBC,IAAAA,EAAMC,QAAAA;QACNC,GAAAA,EAAKD;OACP,CAAA;AACF;AACF;AAEA,EAAA,MAAME,MAAAA,GAAS;AAEbC,IAAAA,wBAAAA,CAAMC,WAAAA,CAAY,IAAA,EAAM,aAAA,CAAA,CAAeC,KAAAA,EAAK;AAC5C,IAAA,KAAM,MAAM,KAAK1B,WAAAA,EAAW;AAC9B;AAEA,EAAA,MAAgB2B,IAAAA,GAAO;AACrB,IAAA,MAAMhC,QAAAA,GAAW,MAAM,IAAA,CAAKK,WAAAA,EAAW;AACvC,IAAA,OAAO,MAAMJ,mBAAAA,CAAGC,QAAAA,CAASC,SAAAA,CAAU,IAAA,CAAKR,MAAMG,QAAAA,EAAU,MAAME,QAAAA,CAASI,SAAAA,EAAS,CAAA;AAClF;AAEA,EAAA,MAAMqB,IAAAA,GAAO;AACX,IAAA,MAAMzB,QAAAA,GAAW,MAAM,IAAA,CAAKK,WAAAA,EAAW;AACvC,IAAA,OAAOL,SAASyB,IAAAA,EAAI;AACtB;EAEA,MAAMQ,GAAAA,CAAIC,KAAaC,KAAAA,EAAU;AAC/B,IAAA,MAAMnC,QAAAA,GAAW,MAAM,IAAA,CAAKK,WAAAA,EAAW;AACvC,IAAA,MAAML,QAAAA,CAASiC,GAAAA,CAAIC,GAAAA,EAAKC,KAAAA,CAAAA;AACxB,IAAA,KAAKnC,QAAAA,CAASoC,GAAAA,CAAIF,GAAAA,CAAAA,CAAKG,QAAQ,MAAA;AAC7B,MAAA,KAAK,KAAKL,IAAAA,EAAI;KAChB,CAAA;AACF;AAEA,EAAA,MAAMI,IAAIF,GAAAA,EAAa;AACrB,IAAA,MAAMlC,QAAAA,GAAW,MAAM,IAAA,CAAKK,WAAAA,EAAW;AACvC,IAAA,OAAO,MAAML,QAAAA,CAASoC,GAAAA,CAAIF,GAAAA,CAAAA;AAC5B;AAEA,EAAA,MAAMI,IAAIJ,GAAAA,EAAa;AACrB,IAAA,MAAMlC,QAAAA,GAAW,MAAM,IAAA,CAAKK,WAAAA,EAAW;AACvC,IAAA,OAAO,MAAML,QAAAA,CAASsC,GAAAA,CAAIJ,GAAAA,CAAAA;AAC5B;AAEA,EAAA,MAAMK,OAAOL,GAAAA,EAAa;AACxB,IAAA,MAAMlC,QAAAA,GAAW,MAAM,IAAA,CAAKK,WAAAA,EAAW;AACvC,IAAA,MAAMmC,MAAAA,GAAS,MAAMxC,QAAAA,CAASuC,MAAAA,CAAOL,GAAAA,CAAAA;AACrC,IAAA,MAAM,KAAKF,IAAAA,EAAI;AACf,IAAA,OAAOQ,MAAAA;AACT;AAEA,EAAA,MAAMT,KAAAA,GAAQ;AACZ,IAAA,MAAM/B,QAAAA,GAAW,MAAM,IAAA,CAAKK,WAAAA,EAAW;AACvC,IAAA,MAAML,SAAS+B,KAAAA,EAAK;AACpB,IAAA,MAAM,KAAKC,IAAAA,EAAI;AACjB;AAEA,EAAA,MAAMS,cAAAA,GAAiB;AACrB,IAAA,OAAO;MACL9C,KAAAA,EAAO;AAAEG,QAAAA,QAAAA,EAAU,KAAKH,KAAAA,CAAMG;AAAS,OAAA;MACvCE,QAAAA,EAAU,MAAM,KAAKK,WAAAA;AACvB,KAAA;AACF;AAEAqC,EAAAA,YAAAA,CAAa3B,QAAAA,EAAiE;AAC5E4B,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAM7B,QAAAA,CAAAA;AACtB;AACF","file":"fileCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\nimport fs from \"node:fs\";\nimport { SlidingCache } from \"@/cache/slidingCache.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { SerializableClass } from \"@/internals/serializable.js\";\n\ninterface Input {\n fullPath: string;\n}\n\nexport class FileCache<T> extends BaseCache<T> {\n constructor(protected readonly input: Input) {\n super();\n }\n\n static {\n this.register();\n }\n\n get source() {\n return this.input.fullPath;\n }\n\n static async fromProvider<A>(provider: BaseCache<A>, input: Input) {\n await fs.promises.writeFile(input.fullPath, await provider.serialize());\n return new FileCache<A>(input);\n }\n\n @Cache()\n protected async getProvider(): Promise<BaseCache<T>> {\n const exists = await fs.promises\n .stat(this.input.fullPath)\n .then((r) => r.isFile())\n .catch(() => false);\n\n if (exists) {\n const serialized = await fs.promises.readFile(this.input.fullPath, \"utf8\");\n const { target, snapshot } = await Serializer.deserialize<any>(serialized);\n const Target = Serializer.getFactory(target).ref as SerializableClass<BaseCache<T>>;\n const instance = await Target.fromSnapshot(snapshot);\n if (!(instance instanceof BaseCache)) {\n throw new TypeError(\"Provided file does not serialize any instance of BaseCache class.\");\n }\n return instance;\n } else {\n return new SlidingCache({\n size: Infinity,\n ttl: Infinity,\n });\n }\n }\n\n async reload() {\n // @ts-expect-error protected property\n Cache.getInstance(this, \"getProvider\").clear();\n void (await this.getProvider());\n }\n\n protected async save() {\n const provider = await this.getProvider();\n return await fs.promises.writeFile(this.input.fullPath, await provider.serialize());\n }\n\n async size() {\n const provider = await this.getProvider();\n return provider.size();\n }\n\n async set(key: string, value: T) {\n const provider = await this.getProvider();\n await provider.set(key, value);\n void provider.get(key).finally(() => {\n void this.save();\n });\n }\n\n async get(key: string) {\n const provider = await this.getProvider();\n return await provider.get(key);\n }\n\n async has(key: string) {\n const provider = await this.getProvider();\n return await provider.has(key);\n }\n\n async delete(key: string) {\n const provider = await this.getProvider();\n const result = await provider.delete(key);\n await this.save();\n return result;\n }\n\n async clear() {\n const provider = await this.getProvider();\n await provider.clear();\n await this.save();\n }\n\n async createSnapshot() {\n return {\n input: { fullPath: this.input.fullPath },\n provider: await this.getProvider(),\n };\n }\n\n loadSnapshot(snapshot: Awaited<ReturnType<typeof this.createSnapshot>>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/fileCache.ts"],"names":["FileCache","BaseCache","input","register","source","fullPath","fromProvider","provider","fs","promises","writeFile","serialize","getProvider","exists","stat","then","r","isFile","catch","serialized","readFile","target","snapshot","Serializer","deserialize","Target","getFactory","ref","instance","fromSnapshot","TypeError","SlidingCache","size","Infinity","ttl","reload","Cache","getInstance","clear","save","set","key","value","get","finally","has","delete","result","createSnapshot","loadSnapshot","Object","assign"],"mappings":"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","file":"fileCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\nimport fs from \"node:fs\";\nimport { SlidingCache } from \"@/cache/slidingCache.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { SerializableClass } from \"@/internals/serializable.js\";\n\ninterface Input {\n fullPath: string;\n}\n\nexport class FileCache<T> extends BaseCache<T> {\n constructor(protected readonly input: Input) {\n super();\n }\n\n static {\n this.register();\n }\n\n get source() {\n return this.input.fullPath;\n }\n\n static async fromProvider<A>(provider: BaseCache<A>, input: Input) {\n await fs.promises.writeFile(input.fullPath, await provider.serialize());\n return new FileCache<A>(input);\n }\n\n @Cache()\n protected async getProvider(): Promise<BaseCache<T>> {\n const exists = await fs.promises\n .stat(this.input.fullPath)\n .then((r) => r.isFile())\n .catch(() => false);\n\n if (exists) {\n const serialized = await fs.promises.readFile(this.input.fullPath, \"utf8\");\n const { target, snapshot } = await Serializer.deserialize<any>(serialized);\n const Target = Serializer.getFactory(target).ref as SerializableClass<BaseCache<T>>;\n const instance = await Target.fromSnapshot(snapshot);\n if (!(instance instanceof BaseCache)) {\n throw new TypeError(\"Provided file does not serialize any instance of BaseCache class.\");\n }\n return instance;\n } else {\n return new SlidingCache({\n size: Infinity,\n ttl: Infinity,\n });\n }\n }\n\n async reload() {\n // @ts-expect-error protected property\n Cache.getInstance(this, \"getProvider\").clear();\n void (await this.getProvider());\n }\n\n protected async save() {\n const provider = await this.getProvider();\n return await fs.promises.writeFile(this.input.fullPath, await provider.serialize());\n }\n\n async size() {\n const provider = await this.getProvider();\n return provider.size();\n }\n\n async set(key: string, value: T) {\n const provider = await this.getProvider();\n await provider.set(key, value);\n void provider.get(key).finally(() => {\n void this.save();\n });\n }\n\n async get(key: string) {\n const provider = await this.getProvider();\n return await provider.get(key);\n }\n\n async has(key: string) {\n const provider = await this.getProvider();\n return await provider.has(key);\n }\n\n async delete(key: string) {\n const provider = await this.getProvider();\n const result = await provider.delete(key);\n await this.save();\n return result;\n }\n\n async clear() {\n const provider = await this.getProvider();\n await provider.clear();\n await this.save();\n }\n\n async createSnapshot() {\n return {\n input: { fullPath: this.input.fullPath },\n provider: await this.getProvider(),\n };\n }\n\n loadSnapshot(snapshot: Awaited<ReturnType<typeof this.createSnapshot>>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/fileCache.ts"],"names":["FileCache","BaseCache","input","register","source","fullPath","fromProvider","provider","fs","promises","writeFile","serialize","getProvider","exists","stat","then","r","isFile","catch","serialized","readFile","target","snapshot","Serializer","deserialize","Target","getFactory","ref","instance","fromSnapshot","TypeError","SlidingCache","size","Infinity","ttl","reload","Cache","getInstance","clear","save","set","key","value","get","finally","has","delete","result","createSnapshot","loadSnapshot","Object","assign"],"mappings":"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","file":"fileCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\nimport fs from \"node:fs\";\nimport { SlidingCache } from \"@/cache/slidingCache.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { SerializableClass } from \"@/internals/serializable.js\";\n\ninterface Input {\n fullPath: string;\n}\n\nexport class FileCache<T> extends BaseCache<T> {\n constructor(protected readonly input: Input) {\n super();\n }\n\n static {\n this.register();\n }\n\n get source() {\n return this.input.fullPath;\n }\n\n static async fromProvider<A>(provider: BaseCache<A>, input: Input) {\n await fs.promises.writeFile(input.fullPath, await provider.serialize());\n return new FileCache<A>(input);\n }\n\n @Cache()\n protected async getProvider(): Promise<BaseCache<T>> {\n const exists = await fs.promises\n .stat(this.input.fullPath)\n .then((r) => r.isFile())\n .catch(() => false);\n\n if (exists) {\n const serialized = await fs.promises.readFile(this.input.fullPath, \"utf8\");\n const { target, snapshot } = await Serializer.deserialize<any>(serialized);\n const Target = Serializer.getFactory(target).ref as SerializableClass<BaseCache<T>>;\n const instance = await Target.fromSnapshot(snapshot);\n if (!(instance instanceof BaseCache)) {\n throw new TypeError(\"Provided file does not serialize any instance of BaseCache class.\");\n }\n return instance;\n } else {\n return new SlidingCache({\n size: Infinity,\n ttl: Infinity,\n });\n }\n }\n\n async reload() {\n // @ts-expect-error protected property\n Cache.getInstance(this, \"getProvider\").clear();\n void (await this.getProvider());\n }\n\n protected async save() {\n const provider = await this.getProvider();\n return await fs.promises.writeFile(this.input.fullPath, await provider.serialize());\n }\n\n async size() {\n const provider = await this.getProvider();\n return provider.size();\n }\n\n async set(key: string, value: T) {\n const provider = await this.getProvider();\n await provider.set(key, value);\n void provider.get(key).finally(() => {\n void this.save();\n });\n }\n\n async get(key: string) {\n const provider = await this.getProvider();\n return await provider.get(key);\n }\n\n async has(key: string) {\n const provider = await this.getProvider();\n return await provider.has(key);\n }\n\n async delete(key: string) {\n const provider = await this.getProvider();\n const result = await provider.delete(key);\n await this.save();\n return result;\n }\n\n async clear() {\n const provider = await this.getProvider();\n await provider.clear();\n await this.save();\n }\n\n async createSnapshot() {\n return {\n input: { fullPath: this.input.fullPath },\n provider: await this.getProvider(),\n };\n }\n\n loadSnapshot(snapshot: Awaited<ReturnType<typeof this.createSnapshot>>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/fileCache.ts"],"names":["FileCache","BaseCache","input","register","source","fullPath","fromProvider","provider","fs","promises","writeFile","serialize","getProvider","exists","stat","then","r","isFile","catch","serialized","readFile","target","snapshot","Serializer","deserialize","Target","getFactory","ref","instance","fromSnapshot","TypeError","SlidingCache","size","Infinity","ttl","reload","Cache","getInstance","clear","save","set","key","value","get","finally","has","delete","result","createSnapshot","loadSnapshot","Object","assign"],"mappings":"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","file":"fileCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\nimport fs from \"node:fs\";\nimport { SlidingCache } from \"@/cache/slidingCache.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { SerializableClass } from \"@/internals/serializable.js\";\n\ninterface Input {\n fullPath: string;\n}\n\nexport class FileCache<T> extends BaseCache<T> {\n constructor(protected readonly input: Input) {\n super();\n }\n\n static {\n this.register();\n }\n\n get source() {\n return this.input.fullPath;\n }\n\n static async fromProvider<A>(provider: BaseCache<A>, input: Input) {\n await fs.promises.writeFile(input.fullPath, await provider.serialize());\n return new FileCache<A>(input);\n }\n\n @Cache()\n protected async getProvider(): Promise<BaseCache<T>> {\n const exists = await fs.promises\n .stat(this.input.fullPath)\n .then((r) => r.isFile())\n .catch(() => false);\n\n if (exists) {\n const serialized = await fs.promises.readFile(this.input.fullPath, \"utf8\");\n const { target, snapshot } = await Serializer.deserialize<any>(serialized);\n const Target = Serializer.getFactory(target).ref as SerializableClass<BaseCache<T>>;\n const instance = await Target.fromSnapshot(snapshot);\n if (!(instance instanceof BaseCache)) {\n throw new TypeError(\"Provided file does not serialize any instance of BaseCache class.\");\n }\n return instance;\n } else {\n return new SlidingCache({\n size: Infinity,\n ttl: Infinity,\n });\n }\n }\n\n async reload() {\n // @ts-expect-error protected property\n Cache.getInstance(this, \"getProvider\").clear();\n void (await this.getProvider());\n }\n\n protected async save() {\n const provider = await this.getProvider();\n return await fs.promises.writeFile(this.input.fullPath, await provider.serialize());\n }\n\n async size() {\n const provider = await this.getProvider();\n return provider.size();\n }\n\n async set(key: string, value: T) {\n const provider = await this.getProvider();\n await provider.set(key, value);\n void provider.get(key).finally(() => {\n void this.save();\n });\n }\n\n async get(key: string) {\n const provider = await this.getProvider();\n return await provider.get(key);\n }\n\n async has(key: string) {\n const provider = await this.getProvider();\n return await provider.has(key);\n }\n\n async delete(key: string) {\n const provider = await this.getProvider();\n const result = await provider.delete(key);\n await this.save();\n return result;\n }\n\n async clear() {\n const provider = await this.getProvider();\n await provider.clear();\n await this.save();\n }\n\n async createSnapshot() {\n return {\n input: { fullPath: this.input.fullPath },\n provider: await this.getProvider(),\n };\n }\n\n loadSnapshot(snapshot: Awaited<ReturnType<typeof this.createSnapshot>>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/nullCache.ts"],"names":["NullCache","BaseCache","enabled","set","_key","_value","get","undefined","has","delete","clear","size","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAOO,MAAMA,kBAAqBC,kBAAAA,CAAAA;EAPlC;;;EAQEC,OAAAA,GAAU,KAAA;EAEV,MAAMC,GAAAA,CAAIC,MAAcC,MAAAA,EAAW;AAAC;AAEpC,EAAA,MAAMC,IAAIF,IAAAA,EAAc;AACtB,IAAA,OAAOG,MAAAA;AACT;AAEA,EAAA,MAAMC,IAAIJ,IAAAA,EAAc;AACtB,IAAA,OAAO,KAAA;AACT;AAEA,EAAA,MAAMK,OAAOL,IAAAA,EAAc;AACzB,IAAA,OAAO,IAAA;AACT;AAEA,EAAA,MAAMM,KAAAA,GAAQ;AAAC;AAEf,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,CAAA;AACT;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLV,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF;AAEAW,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"nullCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class NullCache<T> extends BaseCache<T> {\n enabled = false;\n\n async set(_key: string, _value: T) {}\n\n async get(_key: string) {\n return undefined;\n }\n\n async has(_key: string) {\n return false;\n }\n\n async delete(_key: string) {\n return true;\n }\n\n async clear() {}\n\n async size() {\n return 0;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/nullCache.ts"],"names":["NullCache","BaseCache","enabled","set","_key","_value","get","undefined","has","delete","clear","size","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAOO,MAAMA,kBAAqBC,kBAAAA,CAAAA;EAPlC;;;EAQEC,OAAAA,GAAU,KAAA;EAEV,MAAMC,GAAAA,CAAIC,MAAcC,MAAAA,EAAW;AAAC,EAAA;AAEpC,EAAA,MAAMC,IAAIF,IAAAA,EAAc;AACtB,IAAA,OAAOG,MAAAA;AACT,EAAA;AAEA,EAAA,MAAMC,IAAIJ,IAAAA,EAAc;AACtB,IAAA,OAAO,KAAA;AACT,EAAA;AAEA,EAAA,MAAMK,OAAOL,IAAAA,EAAc;AACzB,IAAA,OAAO,IAAA;AACT,EAAA;AAEA,EAAA,MAAMM,KAAAA,GAAQ;AAAC,EAAA;AAEf,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,CAAA;AACT,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLV,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF,EAAA;AAEAW,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"nullCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class NullCache<T> extends BaseCache<T> {\n enabled = false;\n\n async set(_key: string, _value: T) {}\n\n async get(_key: string) {\n return undefined;\n }\n\n async has(_key: string) {\n return false;\n }\n\n async delete(_key: string) {\n return true;\n }\n\n async clear() {}\n\n async size() {\n return 0;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/nullCache.ts"],"names":["NullCache","BaseCache","enabled","set","_key","_value","get","undefined","has","delete","clear","size","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;AAOO,MAAMA,kBAAqBC,SAAAA,CAAAA;EAPlC;;;EAQEC,OAAAA,GAAU,KAAA;EAEV,MAAMC,GAAAA,CAAIC,MAAcC,MAAAA,EAAW;AAAC;AAEpC,EAAA,MAAMC,IAAIF,IAAAA,EAAc;AACtB,IAAA,OAAOG,MAAAA;AACT;AAEA,EAAA,MAAMC,IAAIJ,IAAAA,EAAc;AACtB,IAAA,OAAO,KAAA;AACT;AAEA,EAAA,MAAMK,OAAOL,IAAAA,EAAc;AACzB,IAAA,OAAO,IAAA;AACT;AAEA,EAAA,MAAMM,KAAAA,GAAQ;AAAC;AAEf,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,CAAA;AACT;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLV,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF;AAEAW,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"nullCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class NullCache<T> extends BaseCache<T> {\n enabled = false;\n\n async set(_key: string, _value: T) {}\n\n async get(_key: string) {\n return undefined;\n }\n\n async has(_key: string) {\n return false;\n }\n\n async delete(_key: string) {\n return true;\n }\n\n async clear() {}\n\n async size() {\n return 0;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/nullCache.ts"],"names":["NullCache","BaseCache","enabled","set","_key","_value","get","undefined","has","delete","clear","size","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;AAOO,MAAMA,kBAAqBC,SAAAA,CAAAA;EAPlC;;;EAQEC,OAAAA,GAAU,KAAA;EAEV,MAAMC,GAAAA,CAAIC,MAAcC,MAAAA,EAAW;AAAC,EAAA;AAEpC,EAAA,MAAMC,IAAIF,IAAAA,EAAc;AACtB,IAAA,OAAOG,MAAAA;AACT,EAAA;AAEA,EAAA,MAAMC,IAAIJ,IAAAA,EAAc;AACtB,IAAA,OAAO,KAAA;AACT,EAAA;AAEA,EAAA,MAAMK,OAAOL,IAAAA,EAAc;AACzB,IAAA,OAAO,IAAA;AACT,EAAA;AAEA,EAAA,MAAMM,KAAAA,GAAQ;AAAC,EAAA;AAEf,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,CAAA;AACT,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLV,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF,EAAA;AAEAW,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"nullCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class NullCache<T> extends BaseCache<T> {\n enabled = false;\n\n async set(_key: string, _value: T) {}\n\n async get(_key: string) {\n return undefined;\n }\n\n async has(_key: string) {\n return false;\n }\n\n async delete(_key: string) {\n return true;\n }\n\n async clear() {}\n\n async size() {\n return 0;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/slidingCache.ts"],"names":["SlidingCacheEntry","Serializable","value","register","destructor","Task","unwrap","createSnapshot","loadSnapshot","snapshot","Object","assign","SlidingCache","BaseCache","provider","input","SlidingTaskMap","size","ttl","get","key","has","clear","delete","set","enabled"],"mappings":";;;;;;;;AAcA,IAAMA,iBAAAA,GAAN,MAAMA,kBAAAA,SAA6BC,6BAAAA,CAAAA;EAdnC;;;;AAeE,EAAA,WAAA,CAA+BC,KAAAA,EAAU;AACvC,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,UAAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAKF,iBAAiBG,qBAAAA,EAAM;AAC9B,MAAA,IAAA,CAAKH,MAAME,UAAAA,EAAU;AACvB;AACF;EAEAE,MAAAA,GAAY;AACV,IAAA,OAAO,IAAA,CAAKJ,KAAAA;AACd;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AAAEL,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA;AAC7B;AAEAM,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF,CAAA;AAEO,MAAMG,qBAAwBC,kBAAAA,CAAAA;EA1CrC;;;AA2CqBC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYC,KAAAA,EAA0B;AACpC,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKD,WAAW,IAAIE,+BAAAA,CAA6CD,KAAAA,CAAME,IAAAA,EAAMF,MAAMG,GAAG,CAAA;AACxF;EAEA;AACE,IAAA,IAAA,CAAKf,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMgB,IAAIC,GAAAA,EAAa;AACrB,IAAA,MAAMlB,KAAAA,GAAQ,IAAA,CAAKY,QAAAA,CAASK,GAAAA,CAAIC,GAAAA,CAAAA;AAChC,IAAA,OAAOlB,OAAOI,MAAAA,IAAAA;AAChB;AAEA,EAAA,MAAMe,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASO,GAAAA,CAAID,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKR,SAASQ,KAAAA,EAAK;AACrB;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASS,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B;EAEA,MAAMI,GAAAA,CAAIJ,KAAalB,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKY,SAASU,GAAAA,CAAIJ,GAAAA,EAAK,IAAIpB,iBAAAA,CAAkBE,KAAAA,CAAAA,CAAAA;AAC/C;AAEA,EAAA,MAAMe,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKH,QAAAA,CAASG,IAAAA;AACvB;EAEAV,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLkB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdX,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF;AAEAN,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"slidingCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SlidingTaskMap, Task } from \"promise-based-task\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport interface SlidingCacheInput {\n size: number;\n ttl?: number;\n}\n\nclass SlidingCacheEntry<T> extends Serializable {\n constructor(protected readonly value: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n destructor() {\n if (this.value instanceof Task) {\n this.value.destructor();\n }\n }\n\n unwrap(): T {\n return this.value;\n }\n\n createSnapshot() {\n return { value: this.value };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SlidingCache<T> extends BaseCache<T> {\n protected readonly provider;\n\n constructor(input: SlidingCacheInput) {\n super();\n this.provider = new SlidingTaskMap<string, SlidingCacheEntry<T>>(input.size, input.ttl);\n }\n\n static {\n this.register();\n }\n\n async get(key: string) {\n const value = this.provider.get(key);\n return value?.unwrap?.();\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, new SlidingCacheEntry(value));\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/slidingCache.ts"],"names":["SlidingCacheEntry","Serializable","value","register","destructor","Task","unwrap","createSnapshot","loadSnapshot","snapshot","Object","assign","SlidingCache","BaseCache","provider","input","SlidingTaskMap","size","ttl","get","key","has","clear","delete","set","enabled"],"mappings":";;;;;;;;AAcA,IAAMA,iBAAAA,GAAN,MAAMA,kBAAAA,SAA6BC,6BAAAA,CAAAA;EAdnC;;;;AAeE,EAAA,WAAA,CAA+BC,KAAAA,EAAU;AACvC,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B,EAAA;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,UAAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAKF,iBAAiBG,qBAAAA,EAAM;AAC9B,MAAA,IAAA,CAAKH,MAAME,UAAAA,EAAU;AACvB,IAAA;AACF,EAAA;EAEAE,MAAAA,GAAY;AACV,IAAA,OAAO,IAAA,CAAKJ,KAAAA;AACd,EAAA;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AAAEL,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA;AAC7B,EAAA;AAEAM,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF,CAAA;AAEO,MAAMG,qBAAwBC,kBAAAA,CAAAA;EA1CrC;;;AA2CqBC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYC,KAAAA,EAA0B;AACpC,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKD,WAAW,IAAIE,+BAAAA,CAA6CD,KAAAA,CAAME,IAAAA,EAAMF,MAAMG,GAAG,CAAA;AACxF,EAAA;EAEA;AACE,IAAA,IAAA,CAAKf,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMgB,IAAIC,GAAAA,EAAa;AACrB,IAAA,MAAMlB,KAAAA,GAAQ,IAAA,CAAKY,QAAAA,CAASK,GAAAA,CAAIC,GAAAA,CAAAA;AAChC,IAAA,OAAOlB,OAAOI,MAAAA,IAAAA;AAChB,EAAA;AAEA,EAAA,MAAMe,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASO,GAAAA,CAAID,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKR,SAASQ,KAAAA,EAAK;AACrB,EAAA;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASS,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B,EAAA;EAEA,MAAMI,GAAAA,CAAIJ,KAAalB,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKY,SAASU,GAAAA,CAAIJ,GAAAA,EAAK,IAAIpB,iBAAAA,CAAkBE,KAAAA,CAAAA,CAAAA;AAC/C,EAAA;AAEA,EAAA,MAAMe,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKH,QAAAA,CAASG,IAAAA;AACvB,EAAA;EAEAV,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLkB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdX,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF,EAAA;AAEAN,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"slidingCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SlidingTaskMap, Task } from \"promise-based-task\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport interface SlidingCacheInput {\n size: number;\n ttl?: number;\n}\n\nclass SlidingCacheEntry<T> extends Serializable {\n constructor(protected readonly value: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n destructor() {\n if (this.value instanceof Task) {\n this.value.destructor();\n }\n }\n\n unwrap(): T {\n return this.value;\n }\n\n createSnapshot() {\n return { value: this.value };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SlidingCache<T> extends BaseCache<T> {\n protected readonly provider;\n\n constructor(input: SlidingCacheInput) {\n super();\n this.provider = new SlidingTaskMap<string, SlidingCacheEntry<T>>(input.size, input.ttl);\n }\n\n static {\n this.register();\n }\n\n async get(key: string) {\n const value = this.provider.get(key);\n return value?.unwrap?.();\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, new SlidingCacheEntry(value));\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/slidingCache.ts"],"names":["SlidingCacheEntry","Serializable","value","register","destructor","Task","unwrap","createSnapshot","loadSnapshot","snapshot","Object","assign","SlidingCache","BaseCache","provider","input","SlidingTaskMap","size","ttl","get","key","has","clear","delete","set","enabled"],"mappings":";;;;;;AAcA,IAAMA,iBAAAA,GAAN,MAAMA,kBAAAA,SAA6BC,YAAAA,CAAAA;EAdnC;;;;AAeE,EAAA,WAAA,CAA+BC,KAAAA,EAAU;AACvC,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,UAAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAKF,iBAAiBG,IAAAA,EAAM;AAC9B,MAAA,IAAA,CAAKH,MAAME,UAAAA,EAAU;AACvB;AACF;EAEAE,MAAAA,GAAY;AACV,IAAA,OAAO,IAAA,CAAKJ,KAAAA;AACd;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AAAEL,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA;AAC7B;AAEAM,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF,CAAA;AAEO,MAAMG,qBAAwBC,SAAAA,CAAAA;EA1CrC;;;AA2CqBC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYC,KAAAA,EAA0B;AACpC,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKD,WAAW,IAAIE,cAAAA,CAA6CD,KAAAA,CAAME,IAAAA,EAAMF,MAAMG,GAAG,CAAA;AACxF;EAEA;AACE,IAAA,IAAA,CAAKf,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMgB,IAAIC,GAAAA,EAAa;AACrB,IAAA,MAAMlB,KAAAA,GAAQ,IAAA,CAAKY,QAAAA,CAASK,GAAAA,CAAIC,GAAAA,CAAAA;AAChC,IAAA,OAAOlB,OAAOI,MAAAA,IAAAA;AAChB;AAEA,EAAA,MAAMe,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASO,GAAAA,CAAID,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKR,SAASQ,KAAAA,EAAK;AACrB;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASS,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B;EAEA,MAAMI,GAAAA,CAAIJ,KAAalB,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKY,SAASU,GAAAA,CAAIJ,GAAAA,EAAK,IAAIpB,iBAAAA,CAAkBE,KAAAA,CAAAA,CAAAA;AAC/C;AAEA,EAAA,MAAMe,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKH,QAAAA,CAASG,IAAAA;AACvB;EAEAV,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLkB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdX,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF;AAEAN,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"slidingCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SlidingTaskMap, Task } from \"promise-based-task\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport interface SlidingCacheInput {\n size: number;\n ttl?: number;\n}\n\nclass SlidingCacheEntry<T> extends Serializable {\n constructor(protected readonly value: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n destructor() {\n if (this.value instanceof Task) {\n this.value.destructor();\n }\n }\n\n unwrap(): T {\n return this.value;\n }\n\n createSnapshot() {\n return { value: this.value };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SlidingCache<T> extends BaseCache<T> {\n protected readonly provider;\n\n constructor(input: SlidingCacheInput) {\n super();\n this.provider = new SlidingTaskMap<string, SlidingCacheEntry<T>>(input.size, input.ttl);\n }\n\n static {\n this.register();\n }\n\n async get(key: string) {\n const value = this.provider.get(key);\n return value?.unwrap?.();\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, new SlidingCacheEntry(value));\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/slidingCache.ts"],"names":["SlidingCacheEntry","Serializable","value","register","destructor","Task","unwrap","createSnapshot","loadSnapshot","snapshot","Object","assign","SlidingCache","BaseCache","provider","input","SlidingTaskMap","size","ttl","get","key","has","clear","delete","set","enabled"],"mappings":";;;;;;AAcA,IAAMA,iBAAAA,GAAN,MAAMA,kBAAAA,SAA6BC,YAAAA,CAAAA;EAdnC;;;;AAeE,EAAA,WAAA,CAA+BC,KAAAA,EAAU;AACvC,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B,EAAA;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,UAAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAKF,iBAAiBG,IAAAA,EAAM;AAC9B,MAAA,IAAA,CAAKH,MAAME,UAAAA,EAAU;AACvB,IAAA;AACF,EAAA;EAEAE,MAAAA,GAAY;AACV,IAAA,OAAO,IAAA,CAAKJ,KAAAA;AACd,EAAA;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AAAEL,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA;AAC7B,EAAA;AAEAM,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF,CAAA;AAEO,MAAMG,qBAAwBC,SAAAA,CAAAA;EA1CrC;;;AA2CqBC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYC,KAAAA,EAA0B;AACpC,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKD,WAAW,IAAIE,cAAAA,CAA6CD,KAAAA,CAAME,IAAAA,EAAMF,MAAMG,GAAG,CAAA;AACxF,EAAA;EAEA;AACE,IAAA,IAAA,CAAKf,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMgB,IAAIC,GAAAA,EAAa;AACrB,IAAA,MAAMlB,KAAAA,GAAQ,IAAA,CAAKY,QAAAA,CAASK,GAAAA,CAAIC,GAAAA,CAAAA;AAChC,IAAA,OAAOlB,OAAOI,MAAAA,IAAAA;AAChB,EAAA;AAEA,EAAA,MAAMe,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASO,GAAAA,CAAID,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKR,SAASQ,KAAAA,EAAK;AACrB,EAAA;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASS,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B,EAAA;EAEA,MAAMI,GAAAA,CAAIJ,KAAalB,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKY,SAASU,GAAAA,CAAIJ,GAAAA,EAAK,IAAIpB,iBAAAA,CAAkBE,KAAAA,CAAAA,CAAAA;AAC/C,EAAA;AAEA,EAAA,MAAMe,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKH,QAAAA,CAASG,IAAAA;AACvB,EAAA;EAEAV,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLkB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdX,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF,EAAA;AAEAN,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"slidingCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SlidingTaskMap, Task } from \"promise-based-task\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport interface SlidingCacheInput {\n size: number;\n ttl?: number;\n}\n\nclass SlidingCacheEntry<T> extends Serializable {\n constructor(protected readonly value: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n destructor() {\n if (this.value instanceof Task) {\n this.value.destructor();\n }\n }\n\n unwrap(): T {\n return this.value;\n }\n\n createSnapshot() {\n return { value: this.value };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SlidingCache<T> extends BaseCache<T> {\n protected readonly provider;\n\n constructor(input: SlidingCacheInput) {\n super();\n this.provider = new SlidingTaskMap<string, SlidingCacheEntry<T>>(input.size, input.ttl);\n }\n\n static {\n this.register();\n }\n\n async get(key: string) {\n const value = this.provider.get(key);\n return value?.unwrap?.();\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, new SlidingCacheEntry(value));\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/unconstrainedCache.ts"],"names":["UnconstrainedCache","BaseCache","provider","Map","register","get","key","has","clear","delete","set","value","size","createSnapshot","enabled","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAOO,MAAMA,2BAA8BC,kBAAAA,CAAAA;EAP3C;;;AAQqBC,EAAAA,QAAAA,uBAAeC,GAAAA,EAAAA;EAElC;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMC,IAAIC,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASG,GAAAA,CAAIC,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAMC,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASK,GAAAA,CAAID,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKN,SAASM,KAAAA,EAAK;AACrB;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASO,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B;EAEA,MAAMI,GAAAA,CAAIJ,KAAaK,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKT,QAAAA,CAASQ,GAAAA,CAAIJ,GAAAA,EAAKK,KAAAA,CAAAA;AACzB;AAEA,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKV,QAAAA,CAASU,IAAAA;AACvB;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdZ,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF;AAEAa,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"unconstrainedCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class UnconstrainedCache<T> extends BaseCache<T> {\n protected readonly provider = new Map<string, T>();\n\n static {\n this.register();\n }\n\n async get(key: string) {\n return this.provider.get(key);\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, value);\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/unconstrainedCache.ts"],"names":["UnconstrainedCache","BaseCache","provider","Map","register","get","key","has","clear","delete","set","value","size","createSnapshot","enabled","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAOO,MAAMA,2BAA8BC,kBAAAA,CAAAA;EAP3C;;;AAQqBC,EAAAA,QAAAA,uBAAeC,GAAAA,EAAAA;EAElC;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMC,IAAIC,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASG,GAAAA,CAAIC,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAMC,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASK,GAAAA,CAAID,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKN,SAASM,KAAAA,EAAK;AACrB,EAAA;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASO,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B,EAAA;EAEA,MAAMI,GAAAA,CAAIJ,KAAaK,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKT,QAAAA,CAASQ,GAAAA,CAAIJ,GAAAA,EAAKK,KAAAA,CAAAA;AACzB,EAAA;AAEA,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKV,QAAAA,CAASU,IAAAA;AACvB,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdZ,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF,EAAA;AAEAa,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"unconstrainedCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class UnconstrainedCache<T> extends BaseCache<T> {\n protected readonly provider = new Map<string, T>();\n\n static {\n this.register();\n }\n\n async get(key: string) {\n return this.provider.get(key);\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, value);\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/unconstrainedCache.ts"],"names":["UnconstrainedCache","BaseCache","provider","Map","register","get","key","has","clear","delete","set","value","size","createSnapshot","enabled","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;AAOO,MAAMA,2BAA8BC,SAAAA,CAAAA;EAP3C;;;AAQqBC,EAAAA,QAAAA,uBAAeC,GAAAA,EAAAA;EAElC;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMC,IAAIC,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASG,GAAAA,CAAIC,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAMC,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASK,GAAAA,CAAID,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKN,SAASM,KAAAA,EAAK;AACrB;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASO,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B;EAEA,MAAMI,GAAAA,CAAIJ,KAAaK,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKT,QAAAA,CAASQ,GAAAA,CAAIJ,GAAAA,EAAKK,KAAAA,CAAAA;AACzB;AAEA,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKV,QAAAA,CAASU,IAAAA;AACvB;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdZ,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF;AAEAa,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"unconstrainedCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class UnconstrainedCache<T> extends BaseCache<T> {\n protected readonly provider = new Map<string, T>();\n\n static {\n this.register();\n }\n\n async get(key: string) {\n return this.provider.get(key);\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, value);\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/cache/unconstrainedCache.ts"],"names":["UnconstrainedCache","BaseCache","provider","Map","register","get","key","has","clear","delete","set","value","size","createSnapshot","enabled","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;AAOO,MAAMA,2BAA8BC,SAAAA,CAAAA;EAP3C;;;AAQqBC,EAAAA,QAAAA,uBAAeC,GAAAA,EAAAA;EAElC;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMC,IAAIC,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASG,GAAAA,CAAIC,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAMC,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASK,GAAAA,CAAID,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKN,SAASM,KAAAA,EAAK;AACrB,EAAA;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASO,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B,EAAA;EAEA,MAAMI,GAAAA,CAAIJ,KAAaK,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKT,QAAAA,CAASQ,GAAAA,CAAIJ,GAAAA,EAAKK,KAAAA,CAAAA;AACzB,EAAA;AAEA,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKV,QAAAA,CAASU,IAAAA;AACvB,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdZ,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF,EAAA;AAEAa,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"unconstrainedCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class UnconstrainedCache<T> extends BaseCache<T> {\n protected readonly provider = new Map<string, T>();\n\n static {\n this.register();\n }\n\n async get(key: string) {\n return this.provider.get(key);\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, value);\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Message, AssistantMessage, MessageContentPart } from './backend/message.cjs';
2
2
  import { MiddlewareType, Run, GetRunContext } from './context.cjs';
3
3
  import { Serializable } from './internals/serializable.cjs';
4
- import { C as Callback, E as Emitter } from './emitter-UkIkNrek.cjs';
4
+ import { E as Emitter, C as Callback } from './emitter-D4OcelZ9.cjs';
5
5
  import { FrameworkError } from './errors.cjs';
6
6
  import { Task } from 'promise-based-task';
7
7
  import { BaseCache } from './cache/base.cjs';
@@ -21,7 +21,7 @@ import { ToolCallPart } from 'ai';
21
21
 
22
22
  type FullModelName = `${ProviderName}:${string}`;
23
23
  declare function parseModel(name: string): {
24
- providerId: "openai" | "azure" | "watsonx" | "ollama" | "google-vertex" | "amazon-bedrock" | "groq" | "xai" | "dummy" | "anthropic";
24
+ providerId: "openai" | "azure" | "watsonx" | "ollama" | "google-vertex" | "amazon-bedrock" | "groq" | "xai" | "dummy" | "anthropic" | "minimax";
25
25
  modelId: string;
26
26
  providerDef: ProviderDef;
27
27
  };
@@ -169,4 +169,4 @@ declare class ChatModelOutput extends Serializable {
169
169
  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
170
170
  }
171
171
 
172
- export { type ChatModelParameters as C, type FullModelName as F, type ChatModelObjectInput as a, type ChatModelObjectOutput as b, type ChatModelToolChoice as c, type ChatModelInput as d, type ChatModelFinishReason as e, type ChatModelUsage as f, type ChatModelEvents as g, type ChatModelEmitter as h, type ChatModelCache as i, type ConfigFn as j, type ChatConfig as k, type ChatModelToolChoiceSupport as l, ChatModel as m, ChatModelOutput as n, loadModel as o, parseModel as p, generateToolUnionSchema as q, filterToolsByToolChoice as r };
172
+ export { type ChatConfig as C, type FullModelName as F, ChatModel as a, type ChatModelCache as b, type ChatModelEmitter as c, type ChatModelEvents as d, type ChatModelFinishReason as e, type ChatModelInput as f, type ChatModelObjectInput as g, type ChatModelObjectOutput as h, ChatModelOutput as i, type ChatModelParameters as j, type ChatModelToolChoice as k, type ChatModelToolChoiceSupport as l, type ChatModelUsage as m, type ConfigFn as n, filterToolsByToolChoice as o, generateToolUnionSchema as p, loadModel as q, parseModel as r };
@@ -1,7 +1,7 @@
1
1
  import { Message, AssistantMessage, MessageContentPart } from './backend/message.js';
2
2
  import { MiddlewareType, Run, GetRunContext } from './context.js';
3
3
  import { Serializable } from './internals/serializable.js';
4
- import { C as Callback, E as Emitter } from './emitter-CL56qab4.js';
4
+ import { E as Emitter, C as Callback } from './emitter-kHxkUxco.js';
5
5
  import { FrameworkError } from './errors.js';
6
6
  import { Task } from 'promise-based-task';
7
7
  import { BaseCache } from './cache/base.js';
@@ -21,7 +21,7 @@ import { ToolCallPart } from 'ai';
21
21
 
22
22
  type FullModelName = `${ProviderName}:${string}`;
23
23
  declare function parseModel(name: string): {
24
- providerId: "openai" | "azure" | "watsonx" | "ollama" | "google-vertex" | "amazon-bedrock" | "groq" | "xai" | "dummy" | "anthropic";
24
+ providerId: "openai" | "azure" | "watsonx" | "ollama" | "google-vertex" | "amazon-bedrock" | "groq" | "xai" | "dummy" | "anthropic" | "minimax";
25
25
  modelId: string;
26
26
  providerDef: ProviderDef;
27
27
  };
@@ -169,4 +169,4 @@ declare class ChatModelOutput extends Serializable {
169
169
  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
170
170
  }
171
171
 
172
- export { type ChatModelParameters as C, type FullModelName as F, type ChatModelObjectInput as a, type ChatModelObjectOutput as b, type ChatModelToolChoice as c, type ChatModelInput as d, type ChatModelFinishReason as e, type ChatModelUsage as f, type ChatModelEvents as g, type ChatModelEmitter as h, type ChatModelCache as i, type ConfigFn as j, type ChatConfig as k, type ChatModelToolChoiceSupport as l, ChatModel as m, ChatModelOutput as n, loadModel as o, parseModel as p, generateToolUnionSchema as q, filterToolsByToolChoice as r };
172
+ export { type ChatConfig as C, type FullModelName as F, ChatModel as a, type ChatModelCache as b, type ChatModelEmitter as c, type ChatModelEvents as d, type ChatModelFinishReason as e, type ChatModelInput as f, type ChatModelObjectInput as g, type ChatModelObjectOutput as h, ChatModelOutput as i, type ChatModelParameters as j, type ChatModelToolChoice as k, type ChatModelToolChoiceSupport as l, type ChatModelUsage as m, type ConfigFn as n, filterToolsByToolChoice as o, generateToolUnionSchema as p, loadModel as q, parseModel as r };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/context.ts"],"names":["Middleware","Run","LazyPromise","tasks","handler","runContext","Symbol","toStringTag","observe","fn","push","emitter","context","value","Object","assign","middleware","fns","isFunction","bind","before","executeSequentially","splice","Infinity","asyncIterator","response","then","isAsyncIterable","Error","RunContext","Serializable","AsyncLocalStorage","controller","runId","groupId","parentId","runParams","createdAt","signal","abort","reason","instance","input","parent","Date","params","createRandomHash","omit","AbortController","registerSignals","child","trace","id","parentRunId","pipe","destroy","FrameworkError","enter","getStore","namespace","creator","internal","finishEvent","startEvent","output","undefined","emit","result","Promise","race","run","_","reject","addEventListener","setTimeout","_e","e","ensure","register","createSnapshot","shallowCopy","loadSnapshot","snapshot"],"mappings":"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","file":"context.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { isFunction, omit } from \"remeda\";\nimport { Callback, InferCallbackValue } from \"@/emitter/types.js\";\nimport { registerSignals } from \"@/internals/helpers/cancellation.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { executeSequentially, LazyPromise } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { isAsyncIterable } from \"@/internals/helpers/stream.js\";\n\nexport interface RunInstance<T = any> {\n emitter: Emitter<T>;\n}\n\nexport interface RunContextCallbacks {\n start: Callback<{ input: any; output: any }>;\n success: Callback<unknown>; // TODO: should be updated to Callback<{ input: any; output: any }>\n error: Callback<Error>;\n finish: Callback<{ input: any; output?: any; error?: FrameworkError }>;\n}\n\nexport abstract class Middleware<T extends RunInstance = any> {\n abstract bind(ctx: RunContext<T>): void;\n}\n\nexport type GetRunContext<T, P = any> = T extends RunInstance ? RunContext<T, P> : never;\nexport type GetRunInstance<T> = T extends RunInstance<infer P> ? P : never;\nexport type MiddlewareFn<T> = (context: GetRunContext<T>) => void;\nexport type MiddlewareType<T extends RunInstance> = Middleware<T> | MiddlewareFn<T>;\n\nexport class Run<R, I extends RunInstance, P = any> extends LazyPromise<R> {\n protected readonly tasks: (() => Promise<void>)[] = [];\n\n constructor(\n handler: () => Promise<R>,\n protected readonly runContext: GetRunContext<I, P>,\n ) {\n super(handler);\n }\n\n readonly [Symbol.toStringTag] = \"Promise\";\n\n observe(fn: (emitter: Emitter<GetRunInstance<I>>) => void) {\n this.tasks.push(async () => fn(this.runContext.emitter));\n return this;\n }\n\n context(value: object) {\n this.tasks.push(async () => {\n Object.assign(this.runContext.context, value);\n Object.assign(this.runContext.emitter.context, value);\n });\n return this;\n }\n\n middleware(...fns: MiddlewareType<I>[]) {\n for (const fn of fns) {\n this.tasks.push(async () =>\n isFunction(fn) ? fn(this.runContext) : fn.bind(this.runContext),\n );\n }\n return this;\n }\n\n protected async before(): Promise<void> {\n await super.before();\n await executeSequentially(this.tasks.splice(0, Infinity));\n }\n\n // @ts-expect-error too complex\n async *[Symbol.asyncIterator](): R extends AsyncIterable<infer X> ? AsyncIterator<X> : never {\n const response = await this.then();\n if (isAsyncIterable(response)) {\n yield* response;\n } else {\n throw new Error(\"Result is not iterable!\");\n }\n }\n}\n\nexport interface RunContextInput<P> {\n params: P;\n signal?: AbortSignal;\n}\n\nexport class RunContext<T extends RunInstance, P = any> extends Serializable {\n static #storage = new AsyncLocalStorage<RunContext<any>>();\n\n protected readonly controller: AbortController;\n public readonly runId: string;\n public readonly groupId: string;\n public readonly parentId?: string;\n public readonly emitter;\n public readonly context: object;\n public runParams: P;\n public readonly createdAt: Date;\n\n get signal() {\n return this.controller.signal;\n }\n\n abort(reason?: Error) {\n this.controller.abort(reason);\n }\n\n constructor(\n public readonly instance: T,\n protected readonly input: RunContextInput<P>,\n parent?: RunContext<any>,\n ) {\n super();\n this.createdAt = new Date();\n this.runParams = input.params;\n this.runId = createRandomHash(5);\n this.parentId = parent?.runId;\n this.groupId = parent?.groupId ?? createRandomHash();\n this.context = omit((parent?.context ?? {}) as any, [\"id\", \"parentId\"]);\n\n this.controller = new AbortController();\n registerSignals(this.controller, [input.signal, parent?.signal]);\n\n this.emitter = instance.emitter.child<GetRunInstance<T>>({\n context: this.context,\n trace: {\n id: this.groupId,\n runId: this.runId,\n parentRunId: parent?.runId,\n },\n });\n if (parent) {\n this.emitter.pipe(parent.emitter);\n }\n }\n\n destroy() {\n this.emitter.destroy();\n this.controller.abort(new FrameworkError(\"Context destroyed.\"));\n }\n\n static enter<C2 extends RunInstance, R2, P2>(\n instance: C2,\n input: RunContextInput<P2>,\n fn: (context: GetRunContext<C2, P2>) => Promise<R2>,\n ) {\n const parent = RunContext.#storage.getStore();\n const runContext = new RunContext(instance, input, parent) as GetRunContext<C2, P2>;\n\n return new Run(async () => {\n const emitter = runContext.emitter.child<RunContextCallbacks>({\n namespace: [\"run\"],\n creator: runContext,\n context: { internal: true },\n });\n\n const finishEvent = {} as InferCallbackValue<RunContextCallbacks[\"finish\"]>;\n try {\n const startEvent: InferCallbackValue<RunContextCallbacks[\"start\"]> = {\n input: runContext.runParams,\n output: undefined,\n };\n await emitter.emit(\"start\", startEvent);\n\n // Copy back any modifications made by middleware to run_params\n runContext.runParams = startEvent.input;\n finishEvent.input = startEvent.input;\n\n const result: R2 = await Promise.race([\n RunContext.#storage.run(\n runContext,\n startEvent.output === undefined ? fn : async () => startEvent.output,\n runContext,\n ),\n new Promise<never>((_, reject) =>\n runContext.signal.addEventListener(\"abort\", () =>\n setTimeout(() => reject(runContext.signal.reason), 0),\n ),\n ),\n ]);\n finishEvent.output = result;\n await emitter.emit(\"success\", result);\n return result;\n } catch (_e) {\n const e = FrameworkError.ensure(_e);\n finishEvent.output = e;\n await emitter.emit(\"error\", e);\n throw e;\n } finally {\n await emitter.emit(\"finish\", finishEvent);\n runContext.destroy();\n }\n }, runContext);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n controller: this.controller,\n runId: this.runId,\n groupId: this.groupId,\n parentId: this.parentId,\n emitter: this.emitter,\n context: shallowCopy(this.context),\n runParams: shallowCopy(this.runParams),\n createdAt: new Date(this.createdAt),\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/context.ts"],"names":["Middleware","Run","LazyPromise","tasks","handler","runContext","Symbol","toStringTag","observe","fn","push","emitter","context","value","Object","assign","middleware","fns","isFunction","bind","before","executeSequentially","splice","Infinity","asyncIterator","response","then","isAsyncIterable","Error","RunContext","Serializable","AsyncLocalStorage","controller","runId","groupId","parentId","runParams","createdAt","signal","abort","reason","instance","input","parent","Date","params","createRandomHash","omit","AbortController","registerSignals","child","trace","id","parentRunId","pipe","destroy","FrameworkError","enter","getStore","namespace","creator","internal","finishEvent","startEvent","output","undefined","emit","result","Promise","race","run","_","reject","addEventListener","setTimeout","_e","e","ensure","register","createSnapshot","shallowCopy","loadSnapshot","snapshot"],"mappings":"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","file":"context.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { isFunction, omit } from \"remeda\";\nimport { Callback, InferCallbackValue } from \"@/emitter/types.js\";\nimport { registerSignals } from \"@/internals/helpers/cancellation.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { executeSequentially, LazyPromise } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { isAsyncIterable } from \"@/internals/helpers/stream.js\";\n\nexport interface RunInstance<T = any> {\n emitter: Emitter<T>;\n}\n\nexport interface RunContextCallbacks {\n start: Callback<{ input: any; output: any }>;\n success: Callback<unknown>; // TODO: should be updated to Callback<{ input: any; output: any }>\n error: Callback<Error>;\n finish: Callback<{ input: any; output?: any; error?: FrameworkError }>;\n}\n\nexport abstract class Middleware<T extends RunInstance = any> {\n abstract bind(ctx: RunContext<T>): void;\n}\n\nexport type GetRunContext<T, P = any> = T extends RunInstance ? RunContext<T, P> : never;\nexport type GetRunInstance<T> = T extends RunInstance<infer P> ? P : never;\nexport type MiddlewareFn<T> = (context: GetRunContext<T>) => void;\nexport type MiddlewareType<T extends RunInstance> = Middleware<T> | MiddlewareFn<T>;\n\nexport class Run<R, I extends RunInstance, P = any> extends LazyPromise<R> {\n protected readonly tasks: (() => Promise<void>)[] = [];\n\n constructor(\n handler: () => Promise<R>,\n protected readonly runContext: GetRunContext<I, P>,\n ) {\n super(handler);\n }\n\n readonly [Symbol.toStringTag] = \"Promise\";\n\n observe(fn: (emitter: Emitter<GetRunInstance<I>>) => void) {\n this.tasks.push(async () => fn(this.runContext.emitter));\n return this;\n }\n\n context(value: object) {\n this.tasks.push(async () => {\n Object.assign(this.runContext.context, value);\n Object.assign(this.runContext.emitter.context, value);\n });\n return this;\n }\n\n middleware(...fns: MiddlewareType<I>[]) {\n for (const fn of fns) {\n this.tasks.push(async () =>\n isFunction(fn) ? fn(this.runContext) : fn.bind(this.runContext),\n );\n }\n return this;\n }\n\n protected async before(): Promise<void> {\n await super.before();\n await executeSequentially(this.tasks.splice(0, Infinity));\n }\n\n // @ts-expect-error too complex\n async *[Symbol.asyncIterator](): R extends AsyncIterable<infer X> ? AsyncIterator<X> : never {\n const response = await this.then();\n if (isAsyncIterable(response)) {\n yield* response;\n } else {\n throw new Error(\"Result is not iterable!\");\n }\n }\n}\n\nexport interface RunContextInput<P> {\n params: P;\n signal?: AbortSignal;\n}\n\nexport class RunContext<T extends RunInstance, P = any> extends Serializable {\n static #storage = new AsyncLocalStorage<RunContext<any>>();\n\n protected readonly controller: AbortController;\n public readonly runId: string;\n public readonly groupId: string;\n public readonly parentId?: string;\n public readonly emitter;\n public readonly context: object;\n public runParams: P;\n public readonly createdAt: Date;\n\n get signal() {\n return this.controller.signal;\n }\n\n abort(reason?: Error) {\n this.controller.abort(reason);\n }\n\n constructor(\n public readonly instance: T,\n protected readonly input: RunContextInput<P>,\n parent?: RunContext<any>,\n ) {\n super();\n this.createdAt = new Date();\n this.runParams = input.params;\n this.runId = createRandomHash(5);\n this.parentId = parent?.runId;\n this.groupId = parent?.groupId ?? createRandomHash();\n this.context = omit((parent?.context ?? {}) as any, [\"id\", \"parentId\"]);\n\n this.controller = new AbortController();\n registerSignals(this.controller, [input.signal, parent?.signal]);\n\n this.emitter = instance.emitter.child<GetRunInstance<T>>({\n context: this.context,\n trace: {\n id: this.groupId,\n runId: this.runId,\n parentRunId: parent?.runId,\n },\n });\n if (parent) {\n this.emitter.pipe(parent.emitter);\n }\n }\n\n destroy() {\n this.emitter.destroy();\n this.controller.abort(new FrameworkError(\"Context destroyed.\"));\n }\n\n static enter<C2 extends RunInstance, R2, P2>(\n instance: C2,\n input: RunContextInput<P2>,\n fn: (context: GetRunContext<C2, P2>) => Promise<R2>,\n ) {\n const parent = RunContext.#storage.getStore();\n const runContext = new RunContext(instance, input, parent) as GetRunContext<C2, P2>;\n\n return new Run(async () => {\n const emitter = runContext.emitter.child<RunContextCallbacks>({\n namespace: [\"run\"],\n creator: runContext,\n context: { internal: true },\n });\n\n const finishEvent = {} as InferCallbackValue<RunContextCallbacks[\"finish\"]>;\n try {\n const startEvent: InferCallbackValue<RunContextCallbacks[\"start\"]> = {\n input: runContext.runParams,\n output: undefined,\n };\n await emitter.emit(\"start\", startEvent);\n\n // Copy back any modifications made by middleware to run_params\n runContext.runParams = startEvent.input;\n finishEvent.input = startEvent.input;\n\n const result: R2 = await Promise.race([\n RunContext.#storage.run(\n runContext,\n startEvent.output === undefined ? fn : async () => startEvent.output,\n runContext,\n ),\n new Promise<never>((_, reject) =>\n runContext.signal.addEventListener(\"abort\", () =>\n setTimeout(() => reject(runContext.signal.reason), 0),\n ),\n ),\n ]);\n finishEvent.output = result;\n await emitter.emit(\"success\", result);\n return result;\n } catch (_e) {\n const e = FrameworkError.ensure(_e);\n finishEvent.output = e;\n await emitter.emit(\"error\", e);\n throw e;\n } finally {\n await emitter.emit(\"finish\", finishEvent);\n runContext.destroy();\n }\n }, runContext);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n controller: this.controller,\n runId: this.runId,\n groupId: this.groupId,\n parentId: this.parentId,\n emitter: this.emitter,\n context: shallowCopy(this.context),\n runParams: shallowCopy(this.runParams),\n createdAt: new Date(this.createdAt),\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { E as Emitter, C as Callback } from './emitter-UkIkNrek.cjs';
1
+ import { E as Emitter, C as Callback } from './emitter-D4OcelZ9.cjs';
2
2
  import { Serializable } from './internals/serializable.cjs';
3
3
  import { LazyPromise } from './internals/helpers/promise.cjs';
4
4
  import { FrameworkError } from './errors.cjs';
package/dist/context.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { E as Emitter, C as Callback } from './emitter-CL56qab4.js';
1
+ import { E as Emitter, C as Callback } from './emitter-kHxkUxco.js';
2
2
  import { Serializable } from './internals/serializable.js';
3
3
  import { LazyPromise } from './internals/helpers/promise.js';
4
4
  import { FrameworkError } from './errors.js';