beeai-framework 0.1.2 → 0.1.4

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 (347) hide show
  1. package/README.md +47 -130
  2. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  3. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  4. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  5. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  6. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  7. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  8. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  9. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  10. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  11. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  12. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  13. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  14. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  15. package/dist/adapters/azure-openai/backend/chat.d.cts +1 -1
  16. package/dist/adapters/azure-openai/backend/chat.d.ts +1 -1
  17. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  18. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  19. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  20. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  21. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  22. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  23. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  24. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  25. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  26. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  27. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  28. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  29. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  30. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  31. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  32. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  33. package/dist/adapters/groq/backend/chat.js.map +1 -1
  34. package/dist/adapters/groq/backend/client.cjs +3 -3
  35. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  36. package/dist/adapters/groq/backend/client.d.cts +1 -1
  37. package/dist/adapters/groq/backend/client.d.ts +1 -1
  38. package/dist/adapters/groq/backend/client.js +3 -3
  39. package/dist/adapters/groq/backend/client.js.map +1 -1
  40. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  41. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  42. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  43. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  44. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  45. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  46. package/dist/adapters/langchain/tools.cjs.map +1 -1
  47. package/dist/adapters/langchain/tools.js.map +1 -1
  48. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  49. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  50. package/dist/adapters/ollama/backend/client.cjs +3 -3
  51. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  52. package/dist/adapters/ollama/backend/client.d.cts +1 -1
  53. package/dist/adapters/ollama/backend/client.d.ts +1 -1
  54. package/dist/adapters/ollama/backend/client.js +3 -3
  55. package/dist/adapters/ollama/backend/client.js.map +1 -1
  56. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  57. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  58. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  59. package/dist/adapters/openai/backend/chat.js.map +1 -1
  60. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  61. package/dist/adapters/openai/backend/client.js.map +1 -1
  62. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  63. package/dist/adapters/openai/backend/embedding.d.cts +1 -1
  64. package/dist/adapters/openai/backend/embedding.d.ts +1 -1
  65. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  66. package/dist/adapters/vercel/backend/chat.cjs +2 -2
  67. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  68. package/dist/adapters/vercel/backend/chat.js +2 -2
  69. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  70. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  71. package/dist/adapters/vercel/backend/embedding.d.cts +4 -4
  72. package/dist/adapters/vercel/backend/embedding.d.ts +4 -4
  73. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  74. package/dist/adapters/watsonx/backend/chat.cjs +4 -7
  75. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  76. package/dist/adapters/watsonx/backend/chat.js +4 -7
  77. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  78. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  79. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  80. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  81. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  82. package/dist/{agent-BbaHVlob.d.cts → agent-CtPtFtGb.d.cts} +1 -1
  83. package/dist/{agent-Bks2fOUl.d.ts → agent-CxoSeic0.d.ts} +1 -1
  84. package/dist/agents/base.cjs.map +1 -1
  85. package/dist/agents/base.js.map +1 -1
  86. package/dist/agents/bee/agent.cjs.map +1 -1
  87. package/dist/agents/bee/agent.d.cts +1 -1
  88. package/dist/agents/bee/agent.d.ts +1 -1
  89. package/dist/agents/bee/agent.js.map +1 -1
  90. package/dist/agents/bee/prompts.cjs.map +1 -1
  91. package/dist/agents/bee/prompts.js.map +1 -1
  92. package/dist/agents/bee/runners/base.cjs.map +1 -1
  93. package/dist/agents/bee/runners/base.d.cts +1 -1
  94. package/dist/agents/bee/runners/base.d.ts +1 -1
  95. package/dist/agents/bee/runners/base.js.map +1 -1
  96. package/dist/agents/bee/runners/deep-think/prompts.cjs.map +1 -1
  97. package/dist/agents/bee/runners/deep-think/prompts.js.map +1 -1
  98. package/dist/agents/bee/runners/deep-think/runner.cjs +11 -11
  99. package/dist/agents/bee/runners/deep-think/runner.cjs.map +1 -1
  100. package/dist/agents/bee/runners/deep-think/runner.d.cts +1 -1
  101. package/dist/agents/bee/runners/deep-think/runner.d.ts +1 -1
  102. package/dist/agents/bee/runners/deep-think/runner.js +2 -2
  103. package/dist/agents/bee/runners/deep-think/runner.js.map +1 -1
  104. package/dist/agents/bee/runners/default/runner.cjs.map +1 -1
  105. package/dist/agents/bee/runners/default/runner.d.cts +1 -1
  106. package/dist/agents/bee/runners/default/runner.d.ts +1 -1
  107. package/dist/agents/bee/runners/default/runner.js +1 -1
  108. package/dist/agents/bee/runners/default/runner.js.map +1 -1
  109. package/dist/agents/bee/runners/default/runner.spec.cjs.map +1 -1
  110. package/dist/agents/bee/runners/default/runner.spec.js.map +1 -1
  111. package/dist/agents/bee/runners/granite/prompts.cjs.map +1 -1
  112. package/dist/agents/bee/runners/granite/prompts.js.map +1 -1
  113. package/dist/agents/bee/runners/granite/runner.cjs +11 -11
  114. package/dist/agents/bee/runners/granite/runner.cjs.map +1 -1
  115. package/dist/agents/bee/runners/granite/runner.d.cts +1 -1
  116. package/dist/agents/bee/runners/granite/runner.d.ts +1 -1
  117. package/dist/agents/bee/runners/granite/runner.js +2 -2
  118. package/dist/agents/bee/runners/granite/runner.js.map +1 -1
  119. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  120. package/dist/agents/experimental/replan/agent.js.map +1 -1
  121. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  122. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  123. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  124. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  125. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  126. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  127. package/dist/backend/backend.cjs.map +1 -1
  128. package/dist/backend/backend.js.map +1 -1
  129. package/dist/backend/chat.cjs.map +1 -1
  130. package/dist/backend/chat.d.cts +1 -1
  131. package/dist/backend/chat.d.ts +1 -1
  132. package/dist/backend/chat.js.map +1 -1
  133. package/dist/backend/client.cjs.map +1 -1
  134. package/dist/backend/client.js.map +1 -1
  135. package/dist/backend/constants.cjs.map +1 -1
  136. package/dist/backend/constants.js.map +1 -1
  137. package/dist/backend/embedding.cjs.map +1 -1
  138. package/dist/backend/embedding.d.cts +1 -1
  139. package/dist/backend/embedding.d.ts +1 -1
  140. package/dist/backend/embedding.js.map +1 -1
  141. package/dist/backend/errors.cjs.map +1 -1
  142. package/dist/backend/errors.js.map +1 -1
  143. package/dist/backend/message.cjs.map +1 -1
  144. package/dist/backend/message.js.map +1 -1
  145. package/dist/backend/utils.cjs.map +1 -1
  146. package/dist/backend/utils.js.map +1 -1
  147. package/dist/cache/base.cjs.map +1 -1
  148. package/dist/cache/base.js.map +1 -1
  149. package/dist/cache/decoratorCache.cjs.map +1 -1
  150. package/dist/cache/decoratorCache.js.map +1 -1
  151. package/dist/cache/fileCache.cjs.map +1 -1
  152. package/dist/cache/fileCache.js.map +1 -1
  153. package/dist/cache/nullCache.cjs.map +1 -1
  154. package/dist/cache/nullCache.js.map +1 -1
  155. package/dist/cache/slidingCache.cjs.map +1 -1
  156. package/dist/cache/slidingCache.js.map +1 -1
  157. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  158. package/dist/cache/unconstrainedCache.js.map +1 -1
  159. package/dist/context.cjs.map +1 -1
  160. package/dist/context.js.map +1 -1
  161. package/dist/emitter/emitter.cjs.map +1 -1
  162. package/dist/emitter/emitter.js.map +1 -1
  163. package/dist/emitter/errors.cjs.map +1 -1
  164. package/dist/emitter/errors.js.map +1 -1
  165. package/dist/emitter/utils.cjs.map +1 -1
  166. package/dist/emitter/utils.js.map +1 -1
  167. package/dist/errors.cjs.map +1 -1
  168. package/dist/errors.js.map +1 -1
  169. package/dist/instrumentation/config.cjs.map +1 -1
  170. package/dist/instrumentation/config.js.map +1 -1
  171. package/dist/instrumentation/create-telemetry-middleware.cjs.map +1 -1
  172. package/dist/instrumentation/create-telemetry-middleware.js.map +1 -1
  173. package/dist/instrumentation/helpers/create-span.cjs.map +1 -1
  174. package/dist/instrumentation/helpers/create-span.js.map +1 -1
  175. package/dist/instrumentation/helpers/get-error-safe.cjs.map +1 -1
  176. package/dist/instrumentation/helpers/get-error-safe.js.map +1 -1
  177. package/dist/instrumentation/helpers/get-serialized-object-safe.cjs.map +1 -1
  178. package/dist/instrumentation/helpers/get-serialized-object-safe.js.map +1 -1
  179. package/dist/instrumentation/helpers/id-name-manager.cjs.map +1 -1
  180. package/dist/instrumentation/helpers/id-name-manager.js.map +1 -1
  181. package/dist/instrumentation/helpers/trace-serializer.cjs.map +1 -1
  182. package/dist/instrumentation/helpers/trace-serializer.js.map +1 -1
  183. package/dist/instrumentation/helpers/utils.cjs.map +1 -1
  184. package/dist/instrumentation/helpers/utils.js.map +1 -1
  185. package/dist/instrumentation/logger.cjs.map +1 -1
  186. package/dist/instrumentation/logger.js.map +1 -1
  187. package/dist/instrumentation/tracer.cjs.map +1 -1
  188. package/dist/instrumentation/tracer.js.map +1 -1
  189. package/dist/internals/env.cjs.map +1 -1
  190. package/dist/internals/env.js.map +1 -1
  191. package/dist/internals/fetcher.cjs.map +1 -1
  192. package/dist/internals/fetcher.js.map +1 -1
  193. package/dist/internals/helpers/array.cjs.map +1 -1
  194. package/dist/internals/helpers/array.js.map +1 -1
  195. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  196. package/dist/internals/helpers/cancellation.js.map +1 -1
  197. package/dist/internals/helpers/counter.cjs.map +1 -1
  198. package/dist/internals/helpers/counter.js.map +1 -1
  199. package/dist/internals/helpers/general.cjs.map +1 -1
  200. package/dist/internals/helpers/general.js.map +1 -1
  201. package/dist/internals/helpers/guards.cjs.map +1 -1
  202. package/dist/internals/helpers/guards.js.map +1 -1
  203. package/dist/internals/helpers/hash.cjs +5 -3
  204. package/dist/internals/helpers/hash.cjs.map +1 -1
  205. package/dist/internals/helpers/hash.js +5 -3
  206. package/dist/internals/helpers/hash.js.map +1 -1
  207. package/dist/internals/helpers/map.cjs.map +1 -1
  208. package/dist/internals/helpers/map.js.map +1 -1
  209. package/dist/internals/helpers/math.cjs.map +1 -1
  210. package/dist/internals/helpers/math.js.map +1 -1
  211. package/dist/internals/helpers/number.cjs.map +1 -1
  212. package/dist/internals/helpers/number.js.map +1 -1
  213. package/dist/internals/helpers/object.cjs.map +1 -1
  214. package/dist/internals/helpers/object.js.map +1 -1
  215. package/dist/internals/helpers/paginate.cjs.map +1 -1
  216. package/dist/internals/helpers/paginate.js.map +1 -1
  217. package/dist/internals/helpers/promise.cjs.map +1 -1
  218. package/dist/internals/helpers/promise.js.map +1 -1
  219. package/dist/internals/helpers/prototype.cjs.map +1 -1
  220. package/dist/internals/helpers/prototype.js.map +1 -1
  221. package/dist/internals/helpers/retry.cjs.map +1 -1
  222. package/dist/internals/helpers/retry.js.map +1 -1
  223. package/dist/internals/helpers/retryable.cjs.map +1 -1
  224. package/dist/internals/helpers/retryable.js.map +1 -1
  225. package/dist/internals/helpers/schema.cjs.map +1 -1
  226. package/dist/internals/helpers/schema.d.cts +1 -1
  227. package/dist/internals/helpers/schema.d.ts +1 -1
  228. package/dist/internals/helpers/schema.js.map +1 -1
  229. package/dist/internals/helpers/stream.cjs.map +1 -1
  230. package/dist/internals/helpers/stream.js.map +1 -1
  231. package/dist/internals/helpers/string.cjs.map +1 -1
  232. package/dist/internals/helpers/string.js.map +1 -1
  233. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  234. package/dist/internals/helpers/weakRef.js.map +1 -1
  235. package/dist/internals/serializable.cjs.map +1 -1
  236. package/dist/internals/serializable.js.map +1 -1
  237. package/dist/internals/types.cjs.map +1 -1
  238. package/dist/internals/types.js.map +1 -1
  239. package/dist/logger/logger.cjs.map +1 -1
  240. package/dist/logger/logger.js.map +1 -1
  241. package/dist/logger/pretty.cjs.map +1 -1
  242. package/dist/logger/pretty.js.map +1 -1
  243. package/dist/memory/base.cjs.map +1 -1
  244. package/dist/memory/base.js.map +1 -1
  245. package/dist/memory/slidingMemory.cjs.map +1 -1
  246. package/dist/memory/slidingMemory.js.map +1 -1
  247. package/dist/memory/summarizeMemory.cjs.map +1 -1
  248. package/dist/memory/summarizeMemory.js.map +1 -1
  249. package/dist/memory/tokenMemory.cjs.map +1 -1
  250. package/dist/memory/tokenMemory.js.map +1 -1
  251. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  252. package/dist/memory/unconstrainedMemory.js.map +1 -1
  253. package/dist/parsers/errors.cjs.map +1 -1
  254. package/dist/parsers/errors.js.map +1 -1
  255. package/dist/parsers/field.cjs.map +1 -1
  256. package/dist/parsers/field.js.map +1 -1
  257. package/dist/parsers/linePrefix.cjs.map +1 -1
  258. package/dist/parsers/linePrefix.d.cts +1 -1
  259. package/dist/parsers/linePrefix.d.ts +1 -1
  260. package/dist/parsers/linePrefix.js.map +1 -1
  261. package/dist/serializer/error.cjs.map +1 -1
  262. package/dist/serializer/error.js.map +1 -1
  263. package/dist/serializer/serializer.cjs +3 -3
  264. package/dist/serializer/serializer.cjs.map +1 -1
  265. package/dist/serializer/serializer.js +2 -2
  266. package/dist/serializer/serializer.js.map +1 -1
  267. package/dist/serializer/utils.cjs.map +1 -1
  268. package/dist/serializer/utils.js.map +1 -1
  269. package/dist/template.cjs.map +1 -1
  270. package/dist/template.d.cts +1 -1
  271. package/dist/template.d.ts +1 -1
  272. package/dist/template.js.map +1 -1
  273. package/dist/tools/arxiv.cjs.map +1 -1
  274. package/dist/tools/arxiv.d.cts +1 -1
  275. package/dist/tools/arxiv.d.ts +1 -1
  276. package/dist/tools/arxiv.js.map +1 -1
  277. package/dist/tools/base.cjs.map +1 -1
  278. package/dist/tools/base.d.cts +1 -1
  279. package/dist/tools/base.d.ts +1 -1
  280. package/dist/tools/base.js.map +1 -1
  281. package/dist/tools/calculator.cjs.map +1 -1
  282. package/dist/tools/calculator.js.map +1 -1
  283. package/dist/tools/custom.cjs.map +1 -1
  284. package/dist/tools/custom.js.map +1 -1
  285. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  286. package/dist/tools/database/elasticsearch.js.map +1 -1
  287. package/dist/tools/database/metadata.cjs.map +1 -1
  288. package/dist/tools/database/metadata.js.map +1 -1
  289. package/dist/tools/database/milvus.cjs.map +1 -1
  290. package/dist/tools/database/milvus.js.map +1 -1
  291. package/dist/tools/database/sql.cjs.map +1 -1
  292. package/dist/tools/database/sql.d.cts +2 -2
  293. package/dist/tools/database/sql.d.ts +2 -2
  294. package/dist/tools/database/sql.js.map +1 -1
  295. package/dist/tools/llm.cjs.map +1 -1
  296. package/dist/tools/llm.js +1 -1
  297. package/dist/tools/llm.js.map +1 -1
  298. package/dist/tools/mcp.cjs.map +1 -1
  299. package/dist/tools/mcp.js.map +1 -1
  300. package/dist/tools/openapi.cjs.map +1 -1
  301. package/dist/tools/openapi.js +1 -1
  302. package/dist/tools/openapi.js.map +1 -1
  303. package/dist/tools/python/output.cjs.map +1 -1
  304. package/dist/tools/python/output.js.map +1 -1
  305. package/dist/tools/python/python.cjs.map +1 -1
  306. package/dist/tools/python/python.js.map +1 -1
  307. package/dist/tools/python/storage.cjs.map +1 -1
  308. package/dist/tools/python/storage.js.map +1 -1
  309. package/dist/tools/search/base.cjs.map +1 -1
  310. package/dist/tools/search/base.js.map +1 -1
  311. package/dist/tools/search/duckDuckGoSearch.cjs +19 -19
  312. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  313. package/dist/tools/search/duckDuckGoSearch.d.cts +1 -3
  314. package/dist/tools/search/duckDuckGoSearch.d.ts +1 -3
  315. package/dist/tools/search/duckDuckGoSearch.js +17 -13
  316. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  317. package/dist/tools/search/googleSearch.cjs.map +1 -1
  318. package/dist/tools/search/googleSearch.js.map +1 -1
  319. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  320. package/dist/tools/search/searXNGSearch.js.map +1 -1
  321. package/dist/tools/search/wikipedia.cjs.map +1 -1
  322. package/dist/tools/search/wikipedia.js.map +1 -1
  323. package/dist/tools/similarity.cjs.map +1 -1
  324. package/dist/tools/similarity.d.cts +1 -1
  325. package/dist/tools/similarity.d.ts +1 -1
  326. package/dist/tools/similarity.js.map +1 -1
  327. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  328. package/dist/tools/weather/openMeteo.d.cts +1 -1
  329. package/dist/tools/weather/openMeteo.d.ts +1 -1
  330. package/dist/tools/weather/openMeteo.js.map +1 -1
  331. package/dist/tools/web/webCrawler.cjs.map +1 -1
  332. package/dist/tools/web/webCrawler.d.cts +1 -1
  333. package/dist/tools/web/webCrawler.d.ts +1 -1
  334. package/dist/tools/web/webCrawler.js.map +1 -1
  335. package/dist/version.cjs +1 -1
  336. package/dist/version.cjs.map +1 -1
  337. package/dist/version.js +1 -1
  338. package/dist/version.js.map +1 -1
  339. package/dist/workflows/agent.cjs.map +1 -1
  340. package/dist/workflows/agent.js.map +1 -1
  341. package/dist/workflows/workflow.cjs +2 -2
  342. package/dist/workflows/workflow.cjs.map +1 -1
  343. package/dist/workflows/workflow.d.cts +1 -1
  344. package/dist/workflows/workflow.d.ts +1 -1
  345. package/dist/workflows/workflow.js +2 -2
  346. package/dist/workflows/workflow.js.map +1 -1
  347. package/package.json +28 -27
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/guards.ts"],"names":["isPrimitive","value","R","isString","isNumber","isBoolean","isNullish","isSymbol"],"mappings":";;;;AAmBO,SAASA,YAAYC,KAAc,EAAA;AACxC,EAAA,OACEC,EAAEC,QAASF,CAAAA,KAAAA,KACXC,CAAEE,CAAAA,QAAAA,CAASH,KAAAA,CACXC,IAAAA,CAAAA,CAAEG,SAAUJ,CAAAA,KAAAA,KACZC,CAAEI,CAAAA,SAAAA,CAAUL,KAAAA,CACZC,IAAAA,CAAAA,CAAEK,SAASN,KAAAA,CAAAA;AAEf;AARgBD,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA","file":"guards.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\n\nexport type Primitive = string | number | symbol | bigint | boolean | null | undefined;\nexport function isPrimitive(value: unknown): value is Primitive {\n return (\n R.isString(value) ||\n R.isNumber(value) ||\n R.isBoolean(value) ||\n R.isNullish(value) ||\n R.isSymbol(value)\n );\n}\n"]}
1
+ {"version":3,"sources":["guards.ts"],"names":["isPrimitive","value","R","isString","isNumber","isBoolean","isNullish","isSymbol"],"mappings":";;;;AAmBO,SAASA,YAAYC,KAAc,EAAA;AACxC,EAAA,OACEC,EAAEC,QAASF,CAAAA,KAAAA,KACXC,CAAEE,CAAAA,QAAAA,CAASH,KAAAA,CACXC,IAAAA,CAAAA,CAAEG,SAAUJ,CAAAA,KAAAA,KACZC,CAAEI,CAAAA,SAAAA,CAAUL,KAAAA,CACZC,IAAAA,CAAAA,CAAEK,SAASN,KAAAA,CAAAA;AAEf;AARgBD,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA","file":"guards.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\n\nexport type Primitive = string | number | symbol | bigint | boolean | null | undefined;\nexport function isPrimitive(value: unknown): value is Primitive {\n return (\n R.isString(value) ||\n R.isNumber(value) ||\n R.isBoolean(value) ||\n R.isNullish(value) ||\n R.isSymbol(value)\n );\n}\n"]}
@@ -1,13 +1,15 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
+ var errors_cjs = require('../../errors.cjs');
4
5
 
5
6
  var __defProp = Object.defineProperty;
6
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
8
  function createHash(input, length = 4) {
8
- return node_crypto.createHash("shake256", {
9
- outputLength: length
10
- }).update(input).digest("hex");
9
+ if (length > 32) {
10
+ throw new errors_cjs.NotImplementedError("Max supported hash length is 32");
11
+ }
12
+ return node_crypto.createHash("sha256").update(input).digest("hex").slice(0, length * 2);
11
13
  }
12
14
  __name(createHash, "createHash");
13
15
  function createRandomHash(length = 4) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/hash.ts"],"names":["createHash","input","length","_createHash","outputLength","update","digest","createRandomHash","randomBytes","toString"],"mappings":";;;;;;AAkBO,SAASA,UAAAA,CAAWC,KAAeC,EAAAA,MAAAA,GAAS,CAAC,EAAA;AAClD,EAAA,OAAOC,uBAAY,UAAY,EAAA;IAC7BC,YAAcF,EAAAA;AAChB,GAAA,CACGG,CAAAA,MAAAA,CAAOJ,KAAAA,CAAAA,CACPK,OAAO,KAAA,CAAA;AACZ;AANgBN,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAQT,SAASO,gBAAAA,CAAiBL,SAAS,CAAC,EAAA;AACzC,EAAA,OAAOF,WAAWQ,uBAAY,CAAA,EAAA,EAAIC,QAAS,CAAA,QAAA,GAAWP,MAAAA,CAAAA;AACxD;AAFgBK,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA","file":"hash.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createHash as _createHash, randomBytes } from \"node:crypto\";\n\nexport function createHash(input: string, length = 4) {\n return _createHash(\"shake256\", {\n outputLength: length,\n })\n .update(input)\n .digest(\"hex\");\n}\n\nexport function createRandomHash(length = 4) {\n return createHash(randomBytes(20).toString(\"base64\"), length);\n}\n"]}
1
+ {"version":3,"sources":["hash.ts"],"names":["createHash","input","length","NotImplementedError","_createHash","update","digest","slice","createRandomHash","randomBytes","toString"],"mappings":";;;;;;;AAmBO,SAASA,UAAAA,CAAWC,KAAeC,EAAAA,MAAAA,GAAS,CAAC,EAAA;AAClD,EAAA,IAAIA,SAAS,EAAI,EAAA;AACf,IAAM,MAAA,IAAIC,+BAAoB,iCAAA,CAAA;AAChC;AAEA,EAAA,OAAOC,sBAAY,CAAA,QAAA,CAChBC,CAAAA,MAAAA,CAAOJ,KAAAA,CAAAA,CACPK,MAAO,CAAA,KAAA,CACPC,CAAAA,KAAAA,CAAM,CAAGL,EAAAA,MAAAA,GAAS,CAAA,CAAA;AACvB;AATgBF,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAWT,SAASQ,gBAAAA,CAAiBN,SAAS,CAAC,EAAA;AACzC,EAAA,OAAOF,WAAWS,uBAAY,CAAA,EAAA,EAAIC,QAAS,CAAA,QAAA,GAAWR,MAAAA,CAAAA;AACxD;AAFgBM,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA","file":"hash.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createHash as _createHash, randomBytes } from \"node:crypto\";\nimport { NotImplementedError } from \"@/errors.js\";\n\nexport function createHash(input: string, length = 4) {\n if (length > 32) {\n throw new NotImplementedError(\"Max supported hash length is 32\");\n }\n\n return _createHash(\"sha256\")\n .update(input)\n .digest(\"hex\")\n .slice(0, length * 2);\n}\n\nexport function createRandomHash(length = 4) {\n return createHash(randomBytes(20).toString(\"base64\"), length);\n}\n"]}
@@ -1,11 +1,13 @@
1
1
  import { createHash as createHash$1, randomBytes } from 'node:crypto';
2
+ import { NotImplementedError } from '../../errors.js';
2
3
 
3
4
  var __defProp = Object.defineProperty;
4
5
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
6
  function createHash(input, length = 4) {
6
- return createHash$1("shake256", {
7
- outputLength: length
8
- }).update(input).digest("hex");
7
+ if (length > 32) {
8
+ throw new NotImplementedError("Max supported hash length is 32");
9
+ }
10
+ return createHash$1("sha256").update(input).digest("hex").slice(0, length * 2);
9
11
  }
10
12
  __name(createHash, "createHash");
11
13
  function createRandomHash(length = 4) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/hash.ts"],"names":["createHash","input","length","_createHash","outputLength","update","digest","createRandomHash","randomBytes","toString"],"mappings":";;;;AAkBO,SAASA,UAAAA,CAAWC,KAAeC,EAAAA,MAAAA,GAAS,CAAC,EAAA;AAClD,EAAA,OAAOC,aAAY,UAAY,EAAA;IAC7BC,YAAcF,EAAAA;AAChB,GAAA,CACGG,CAAAA,MAAAA,CAAOJ,KAAAA,CAAAA,CACPK,OAAO,KAAA,CAAA;AACZ;AANgBN,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAQT,SAASO,gBAAAA,CAAiBL,SAAS,CAAC,EAAA;AACzC,EAAA,OAAOF,WAAWQ,WAAY,CAAA,EAAA,EAAIC,QAAS,CAAA,QAAA,GAAWP,MAAAA,CAAAA;AACxD;AAFgBK,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA","file":"hash.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createHash as _createHash, randomBytes } from \"node:crypto\";\n\nexport function createHash(input: string, length = 4) {\n return _createHash(\"shake256\", {\n outputLength: length,\n })\n .update(input)\n .digest(\"hex\");\n}\n\nexport function createRandomHash(length = 4) {\n return createHash(randomBytes(20).toString(\"base64\"), length);\n}\n"]}
1
+ {"version":3,"sources":["hash.ts"],"names":["createHash","input","length","NotImplementedError","_createHash","update","digest","slice","createRandomHash","randomBytes","toString"],"mappings":";;;;;AAmBO,SAASA,UAAAA,CAAWC,KAAeC,EAAAA,MAAAA,GAAS,CAAC,EAAA;AAClD,EAAA,IAAIA,SAAS,EAAI,EAAA;AACf,IAAM,MAAA,IAAIC,oBAAoB,iCAAA,CAAA;AAChC;AAEA,EAAA,OAAOC,YAAY,CAAA,QAAA,CAChBC,CAAAA,MAAAA,CAAOJ,KAAAA,CAAAA,CACPK,MAAO,CAAA,KAAA,CACPC,CAAAA,KAAAA,CAAM,CAAGL,EAAAA,MAAAA,GAAS,CAAA,CAAA;AACvB;AATgBF,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAWT,SAASQ,gBAAAA,CAAiBN,SAAS,CAAC,EAAA;AACzC,EAAA,OAAOF,WAAWS,WAAY,CAAA,EAAA,EAAIC,QAAS,CAAA,QAAA,GAAWR,MAAAA,CAAAA;AACxD;AAFgBM,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA","file":"hash.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createHash as _createHash, randomBytes } from \"node:crypto\";\nimport { NotImplementedError } from \"@/errors.js\";\n\nexport function createHash(input: string, length = 4) {\n if (length > 32) {\n throw new NotImplementedError(\"Max supported hash length is 32\");\n }\n\n return _createHash(\"sha256\")\n .update(input)\n .digest(\"hex\")\n .slice(0, length * 2);\n}\n\nexport function createRandomHash(length = 4) {\n return createHash(randomBytes(20).toString(\"base64\"), length);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/map.ts"],"names":["findUniqueKey","baseKey","map","key","i","has","concat","String"],"mappings":";;;;AAgBO,SAASA,aAAAA,CAAcC,SAAiBC,GAAyB,EAAA;AACtE,EAAA,IAAIC,GAAMF,GAAAA,OAAAA;AACV,EAAA,KAAA,IAASG,IAAI,CAAGF,EAAAA,GAAAA,CAAIG,GAAIF,CAAAA,GAAAA,GAAMC,CAAK,EAAA,EAAA;AACjCD,IAAAA,GAAAA,GAAMF,OAAQK,CAAAA,MAAAA,CAAOC,MAAOH,CAAAA,CAAAA,CAAAA,CAAAA;AAC9B;AACA,EAAOD,OAAAA,GAAAA;AACT;AANgBH,MAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA","file":"map.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function findUniqueKey(baseKey: string, map: Map<string, unknown>) {\n let key = baseKey;\n for (let i = 1; map.has(key); i++) {\n key = baseKey.concat(String(i));\n }\n return key;\n}\n"]}
1
+ {"version":3,"sources":["map.ts"],"names":["findUniqueKey","baseKey","map","key","i","has","concat","String"],"mappings":";;;;AAgBO,SAASA,aAAAA,CAAcC,SAAiBC,GAAyB,EAAA;AACtE,EAAA,IAAIC,GAAMF,GAAAA,OAAAA;AACV,EAAA,KAAA,IAASG,IAAI,CAAGF,EAAAA,GAAAA,CAAIG,GAAIF,CAAAA,GAAAA,GAAMC,CAAK,EAAA,EAAA;AACjCD,IAAAA,GAAAA,GAAMF,OAAQK,CAAAA,MAAAA,CAAOC,MAAOH,CAAAA,CAAAA,CAAAA,CAAAA;AAC9B;AACA,EAAOD,OAAAA,GAAAA;AACT;AANgBH,MAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA","file":"map.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function findUniqueKey(baseKey: string, map: Map<string, unknown>) {\n let key = baseKey;\n for (let i = 1; map.has(key); i++) {\n key = baseKey.concat(String(i));\n }\n return key;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/map.ts"],"names":["findUniqueKey","baseKey","map","key","i","has","concat","String"],"mappings":";;AAgBO,SAASA,aAAAA,CAAcC,SAAiBC,GAAyB,EAAA;AACtE,EAAA,IAAIC,GAAMF,GAAAA,OAAAA;AACV,EAAA,KAAA,IAASG,IAAI,CAAGF,EAAAA,GAAAA,CAAIG,GAAIF,CAAAA,GAAAA,GAAMC,CAAK,EAAA,EAAA;AACjCD,IAAAA,GAAAA,GAAMF,OAAQK,CAAAA,MAAAA,CAAOC,MAAOH,CAAAA,CAAAA,CAAAA,CAAAA;AAC9B;AACA,EAAOD,OAAAA,GAAAA;AACT;AANgBH,MAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA","file":"map.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function findUniqueKey(baseKey: string, map: Map<string, unknown>) {\n let key = baseKey;\n for (let i = 1; map.has(key); i++) {\n key = baseKey.concat(String(i));\n }\n return key;\n}\n"]}
1
+ {"version":3,"sources":["map.ts"],"names":["findUniqueKey","baseKey","map","key","i","has","concat","String"],"mappings":";;AAgBO,SAASA,aAAAA,CAAcC,SAAiBC,GAAyB,EAAA;AACtE,EAAA,IAAIC,GAAMF,GAAAA,OAAAA;AACV,EAAA,KAAA,IAASG,IAAI,CAAGF,EAAAA,GAAAA,CAAIG,GAAIF,CAAAA,GAAAA,GAAMC,CAAK,EAAA,EAAA;AACjCD,IAAAA,GAAAA,GAAMF,OAAQK,CAAAA,MAAAA,CAAOC,MAAOH,CAAAA,CAAAA,CAAAA,CAAAA;AAC9B;AACA,EAAOD,OAAAA,GAAAA;AACT;AANgBH,MAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA","file":"map.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function findUniqueKey(baseKey: string, map: Map<string, unknown>) {\n let key = baseKey;\n for (let i = 1; map.has(key); i++) {\n key = baseKey.concat(String(i));\n }\n return key;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/math.ts"],"names":["cosineSimilarity","vecA","vecB","length","ValueError","dot","reduce","sum","value","index","magA","Math","sqrt","magB","cosineSimilarityMatrix","matrixA","matrixB","map","rowA","rowB"],"mappings":";;;;;;AAkBO,SAASA,gBAAAA,CAAiBC,MAAgBC,IAAc,EAAA;AAC7D,EAAID,IAAAA,IAAAA,CAAKE,MAAWD,KAAAA,IAAAA,CAAKC,MAAQ,EAAA;AAC/B,IAAM,MAAA,IAAIC,sBAAW,gCAAA,CAAA;AACvB;AAEA,EAAA,MAAMC,GAAMJ,GAAAA,IAAAA,CAAKK,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,EAAOC,KAAUF,KAAAA,GAAAA,GAAMC,KAAQN,GAAAA,IAAAA,CAAKO,KAAAA,CAAAA,EAAQ,CAAA,CAAA;AAC1E,EAAA,MAAMC,IAAOC,GAAAA,IAAAA,CAAKC,IAAKX,CAAAA,IAAAA,CAAKK,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,KAAUD,GAAMC,GAAAA,KAAAA,IAAS,CAAG,EAAA,CAAA,CAAA,CAAA;AACrE,EAAA,MAAMK,IAAOF,GAAAA,IAAAA,CAAKC,IAAKV,CAAAA,IAAAA,CAAKI,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,KAAUD,GAAMC,GAAAA,KAAAA,IAAS,CAAG,EAAA,CAAA,CAAA,CAAA;AAErE,EAAIE,IAAAA,IAAAA,KAAS,CAAKG,IAAAA,IAAAA,KAAS,CAAG,EAAA;AAC5B,IAAM,MAAA,IAAIT,sBAAW,wCAAA,CAAA;AACvB;AACA,EAAA,OAAOC,OAAOK,IAAOG,GAAAA,IAAAA,CAAAA;AACvB;AAbgBb,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAeT,SAASc,sBAAAA,CAAuBC,SAAqBC,OAAmB,EAAA;AAC7E,EAAKD,IAAAA,CAAAA,OAAAA,CAAQ,CAAA,CAAIZ,EAAAA,MAAAA,IAAU,QAAQY,OAAQ,CAAA,CAAA,CAAIZ,EAAAA,MAAAA,IAAU,CAAI,CAAA,EAAA;AAC3D,IAAM,MAAA,IAAIC,sBAAW,gDAAA,CAAA;AACvB;AAEA,EAAA,OAAOW,OAAQE,CAAAA,GAAAA,CAAI,CAACC,IAAAA,KAASF,OAAQC,CAAAA,GAAAA,CAAI,CAACE,IAAAA,KAASnB,gBAAiBkB,CAAAA,IAAAA,EAAMC,IAAAA,CAAAA,CAAAA,CAAAA;AAC5E;AANgBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA","file":"math.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ValueError } from \"@/errors.js\";\n\nexport function cosineSimilarity(vecA: number[], vecB: number[]): number {\n if (vecA.length !== vecB.length) {\n throw new ValueError(\"Vectors must have equal length\");\n }\n // (cos θ) = (A · B) / (|A| * |B|)\n const dot = vecA.reduce((sum, value, index) => sum + value * vecB[index], 0);\n const magA = Math.sqrt(vecA.reduce((sum, value) => sum + value ** 2, 0));\n const magB = Math.sqrt(vecB.reduce((sum, value) => sum + value ** 2, 0));\n\n if (magA === 0 || magB === 0) {\n throw new ValueError(\"Vectors cannot not have zero magnitude\");\n }\n return dot / (magA * magB);\n}\n\nexport function cosineSimilarityMatrix(matrixA: number[][], matrixB: number[][]): number[][] {\n if ((matrixA[0]?.length ?? 0) !== (matrixA[0]?.length ?? 0)) {\n throw new ValueError(\"Matrices must have the same number of columns.\");\n }\n\n return matrixA.map((rowA) => matrixB.map((rowB) => cosineSimilarity(rowA, rowB)));\n}\n"]}
1
+ {"version":3,"sources":["math.ts"],"names":["cosineSimilarity","vecA","vecB","length","ValueError","dot","reduce","sum","value","index","magA","Math","sqrt","magB","cosineSimilarityMatrix","matrixA","matrixB","map","rowA","rowB"],"mappings":";;;;;;AAkBO,SAASA,gBAAAA,CAAiBC,MAAgBC,IAAc,EAAA;AAC7D,EAAID,IAAAA,IAAAA,CAAKE,MAAWD,KAAAA,IAAAA,CAAKC,MAAQ,EAAA;AAC/B,IAAM,MAAA,IAAIC,sBAAW,gCAAA,CAAA;AACvB;AAEA,EAAA,MAAMC,GAAMJ,GAAAA,IAAAA,CAAKK,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,EAAOC,KAAUF,KAAAA,GAAAA,GAAMC,KAAQN,GAAAA,IAAAA,CAAKO,KAAAA,CAAAA,EAAQ,CAAA,CAAA;AAC1E,EAAA,MAAMC,IAAOC,GAAAA,IAAAA,CAAKC,IAAKX,CAAAA,IAAAA,CAAKK,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,KAAUD,GAAMC,GAAAA,KAAAA,IAAS,CAAG,EAAA,CAAA,CAAA,CAAA;AACrE,EAAA,MAAMK,IAAOF,GAAAA,IAAAA,CAAKC,IAAKV,CAAAA,IAAAA,CAAKI,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,KAAUD,GAAMC,GAAAA,KAAAA,IAAS,CAAG,EAAA,CAAA,CAAA,CAAA;AAErE,EAAIE,IAAAA,IAAAA,KAAS,CAAKG,IAAAA,IAAAA,KAAS,CAAG,EAAA;AAC5B,IAAM,MAAA,IAAIT,sBAAW,wCAAA,CAAA;AACvB;AACA,EAAA,OAAOC,OAAOK,IAAOG,GAAAA,IAAAA,CAAAA;AACvB;AAbgBb,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAeT,SAASc,sBAAAA,CAAuBC,SAAqBC,OAAmB,EAAA;AAC7E,EAAKD,IAAAA,CAAAA,OAAAA,CAAQ,CAAA,CAAIZ,EAAAA,MAAAA,IAAU,QAAQY,OAAQ,CAAA,CAAA,CAAIZ,EAAAA,MAAAA,IAAU,CAAI,CAAA,EAAA;AAC3D,IAAM,MAAA,IAAIC,sBAAW,gDAAA,CAAA;AACvB;AAEA,EAAA,OAAOW,OAAQE,CAAAA,GAAAA,CAAI,CAACC,IAAAA,KAASF,OAAQC,CAAAA,GAAAA,CAAI,CAACE,IAAAA,KAASnB,gBAAiBkB,CAAAA,IAAAA,EAAMC,IAAAA,CAAAA,CAAAA,CAAAA;AAC5E;AANgBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA","file":"math.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ValueError } from \"@/errors.js\";\n\nexport function cosineSimilarity(vecA: number[], vecB: number[]): number {\n if (vecA.length !== vecB.length) {\n throw new ValueError(\"Vectors must have equal length\");\n }\n // (cos θ) = (A · B) / (|A| * |B|)\n const dot = vecA.reduce((sum, value, index) => sum + value * vecB[index], 0);\n const magA = Math.sqrt(vecA.reduce((sum, value) => sum + value ** 2, 0));\n const magB = Math.sqrt(vecB.reduce((sum, value) => sum + value ** 2, 0));\n\n if (magA === 0 || magB === 0) {\n throw new ValueError(\"Vectors cannot not have zero magnitude\");\n }\n return dot / (magA * magB);\n}\n\nexport function cosineSimilarityMatrix(matrixA: number[][], matrixB: number[][]): number[][] {\n if ((matrixA[0]?.length ?? 0) !== (matrixA[0]?.length ?? 0)) {\n throw new ValueError(\"Matrices must have the same number of columns.\");\n }\n\n return matrixA.map((rowA) => matrixB.map((rowB) => cosineSimilarity(rowA, rowB)));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/math.ts"],"names":["cosineSimilarity","vecA","vecB","length","ValueError","dot","reduce","sum","value","index","magA","Math","sqrt","magB","cosineSimilarityMatrix","matrixA","matrixB","map","rowA","rowB"],"mappings":";;;;AAkBO,SAASA,gBAAAA,CAAiBC,MAAgBC,IAAc,EAAA;AAC7D,EAAID,IAAAA,IAAAA,CAAKE,MAAWD,KAAAA,IAAAA,CAAKC,MAAQ,EAAA;AAC/B,IAAM,MAAA,IAAIC,WAAW,gCAAA,CAAA;AACvB;AAEA,EAAA,MAAMC,GAAMJ,GAAAA,IAAAA,CAAKK,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,EAAOC,KAAUF,KAAAA,GAAAA,GAAMC,KAAQN,GAAAA,IAAAA,CAAKO,KAAAA,CAAAA,EAAQ,CAAA,CAAA;AAC1E,EAAA,MAAMC,IAAOC,GAAAA,IAAAA,CAAKC,IAAKX,CAAAA,IAAAA,CAAKK,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,KAAUD,GAAMC,GAAAA,KAAAA,IAAS,CAAG,EAAA,CAAA,CAAA,CAAA;AACrE,EAAA,MAAMK,IAAOF,GAAAA,IAAAA,CAAKC,IAAKV,CAAAA,IAAAA,CAAKI,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,KAAUD,GAAMC,GAAAA,KAAAA,IAAS,CAAG,EAAA,CAAA,CAAA,CAAA;AAErE,EAAIE,IAAAA,IAAAA,KAAS,CAAKG,IAAAA,IAAAA,KAAS,CAAG,EAAA;AAC5B,IAAM,MAAA,IAAIT,WAAW,wCAAA,CAAA;AACvB;AACA,EAAA,OAAOC,OAAOK,IAAOG,GAAAA,IAAAA,CAAAA;AACvB;AAbgBb,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAeT,SAASc,sBAAAA,CAAuBC,SAAqBC,OAAmB,EAAA;AAC7E,EAAKD,IAAAA,CAAAA,OAAAA,CAAQ,CAAA,CAAIZ,EAAAA,MAAAA,IAAU,QAAQY,OAAQ,CAAA,CAAA,CAAIZ,EAAAA,MAAAA,IAAU,CAAI,CAAA,EAAA;AAC3D,IAAM,MAAA,IAAIC,WAAW,gDAAA,CAAA;AACvB;AAEA,EAAA,OAAOW,OAAQE,CAAAA,GAAAA,CAAI,CAACC,IAAAA,KAASF,OAAQC,CAAAA,GAAAA,CAAI,CAACE,IAAAA,KAASnB,gBAAiBkB,CAAAA,IAAAA,EAAMC,IAAAA,CAAAA,CAAAA,CAAAA;AAC5E;AANgBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA","file":"math.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ValueError } from \"@/errors.js\";\n\nexport function cosineSimilarity(vecA: number[], vecB: number[]): number {\n if (vecA.length !== vecB.length) {\n throw new ValueError(\"Vectors must have equal length\");\n }\n // (cos θ) = (A · B) / (|A| * |B|)\n const dot = vecA.reduce((sum, value, index) => sum + value * vecB[index], 0);\n const magA = Math.sqrt(vecA.reduce((sum, value) => sum + value ** 2, 0));\n const magB = Math.sqrt(vecB.reduce((sum, value) => sum + value ** 2, 0));\n\n if (magA === 0 || magB === 0) {\n throw new ValueError(\"Vectors cannot not have zero magnitude\");\n }\n return dot / (magA * magB);\n}\n\nexport function cosineSimilarityMatrix(matrixA: number[][], matrixB: number[][]): number[][] {\n if ((matrixA[0]?.length ?? 0) !== (matrixA[0]?.length ?? 0)) {\n throw new ValueError(\"Matrices must have the same number of columns.\");\n }\n\n return matrixA.map((rowA) => matrixB.map((rowB) => cosineSimilarity(rowA, rowB)));\n}\n"]}
1
+ {"version":3,"sources":["math.ts"],"names":["cosineSimilarity","vecA","vecB","length","ValueError","dot","reduce","sum","value","index","magA","Math","sqrt","magB","cosineSimilarityMatrix","matrixA","matrixB","map","rowA","rowB"],"mappings":";;;;AAkBO,SAASA,gBAAAA,CAAiBC,MAAgBC,IAAc,EAAA;AAC7D,EAAID,IAAAA,IAAAA,CAAKE,MAAWD,KAAAA,IAAAA,CAAKC,MAAQ,EAAA;AAC/B,IAAM,MAAA,IAAIC,WAAW,gCAAA,CAAA;AACvB;AAEA,EAAA,MAAMC,GAAMJ,GAAAA,IAAAA,CAAKK,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,EAAOC,KAAUF,KAAAA,GAAAA,GAAMC,KAAQN,GAAAA,IAAAA,CAAKO,KAAAA,CAAAA,EAAQ,CAAA,CAAA;AAC1E,EAAA,MAAMC,IAAOC,GAAAA,IAAAA,CAAKC,IAAKX,CAAAA,IAAAA,CAAKK,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,KAAUD,GAAMC,GAAAA,KAAAA,IAAS,CAAG,EAAA,CAAA,CAAA,CAAA;AACrE,EAAA,MAAMK,IAAOF,GAAAA,IAAAA,CAAKC,IAAKV,CAAAA,IAAAA,CAAKI,MAAO,CAAA,CAACC,GAAKC,EAAAA,KAAAA,KAAUD,GAAMC,GAAAA,KAAAA,IAAS,CAAG,EAAA,CAAA,CAAA,CAAA;AAErE,EAAIE,IAAAA,IAAAA,KAAS,CAAKG,IAAAA,IAAAA,KAAS,CAAG,EAAA;AAC5B,IAAM,MAAA,IAAIT,WAAW,wCAAA,CAAA;AACvB;AACA,EAAA,OAAOC,OAAOK,IAAOG,GAAAA,IAAAA,CAAAA;AACvB;AAbgBb,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAeT,SAASc,sBAAAA,CAAuBC,SAAqBC,OAAmB,EAAA;AAC7E,EAAKD,IAAAA,CAAAA,OAAAA,CAAQ,CAAA,CAAIZ,EAAAA,MAAAA,IAAU,QAAQY,OAAQ,CAAA,CAAA,CAAIZ,EAAAA,MAAAA,IAAU,CAAI,CAAA,EAAA;AAC3D,IAAM,MAAA,IAAIC,WAAW,gDAAA,CAAA;AACvB;AAEA,EAAA,OAAOW,OAAQE,CAAAA,GAAAA,CAAI,CAACC,IAAAA,KAASF,OAAQC,CAAAA,GAAAA,CAAI,CAACE,IAAAA,KAASnB,gBAAiBkB,CAAAA,IAAAA,EAAMC,IAAAA,CAAAA,CAAAA,CAAAA;AAC5E;AANgBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA","file":"math.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ValueError } from \"@/errors.js\";\n\nexport function cosineSimilarity(vecA: number[], vecB: number[]): number {\n if (vecA.length !== vecB.length) {\n throw new ValueError(\"Vectors must have equal length\");\n }\n // (cos θ) = (A · B) / (|A| * |B|)\n const dot = vecA.reduce((sum, value, index) => sum + value * vecB[index], 0);\n const magA = Math.sqrt(vecA.reduce((sum, value) => sum + value ** 2, 0));\n const magB = Math.sqrt(vecB.reduce((sum, value) => sum + value ** 2, 0));\n\n if (magA === 0 || magB === 0) {\n throw new ValueError(\"Vectors cannot not have zero magnitude\");\n }\n return dot / (magA * magB);\n}\n\nexport function cosineSimilarityMatrix(matrixA: number[][], matrixB: number[][]): number[][] {\n if ((matrixA[0]?.length ?? 0) !== (matrixA[0]?.length ?? 0)) {\n throw new ValueError(\"Matrices must have the same number of columns.\");\n }\n\n return matrixA.map((rowA) => matrixB.map((rowB) => cosineSimilarity(rowA, rowB)));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/number.ts"],"names":["safeSum","numbers","R","sum","filter","isNonNullish","takeBigger","Math","max","ensureRange","value","options","min","Infinity"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,SAASA,WAAWC,OAAsC,EAAA;AAC/D,EAAA,OAAOC,aAAEC,GAAIF,CAAAA,OAAAA,EAASG,MAAOF,CAAAA,YAAAA,CAAEG,YAAY,CAAK,IAAA;AAAC,IAAA;AAAE,GAAA,CAAA;AACrD;AAFgBL,MAAAA,CAAAA,OAAAA,EAAAA,SAAAA,CAAAA;AAIT,SAASM,cAAcL,OAAsC,EAAA;AAClE,EAAA,OAAOM,KAAKC,GAAG,CAAA,GAAKP,SAASG,MAAOF,CAAAA,YAAAA,CAAEG,YAAY,CAAK,IAAA;AAAC,IAAA;GAAE,CAAM,IAAA,CAAA;AAClE;AAFgBC,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAIT,SAASG,WAAAA,CAAYC,OAAeC,OAAuC,EAAA;AAChF,EAAOJ,OAAAA,IAAAA,CAAKC,GAAIG,CAAAA,OAAAA,CAAQC,GAAO,IAAA,CAAA,QAAA,EAAWL,IAAKK,CAAAA,GAAAA,CAAIF,KAAOC,EAAAA,OAAAA,CAAQH,GAAOK,IAAAA,QAAAA,CAAAA,CAAAA;AAC3E;AAFgBJ,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA","file":"number.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\n\nexport function safeSum(...numbers: (number | undefined | null)[]): number {\n return R.sum(numbers?.filter(R.isNonNullish) || [0]);\n}\n\nexport function takeBigger(...numbers: (number | undefined | null)[]): number {\n return Math.max(...(numbers?.filter(R.isNonNullish) || [0])) || 0;\n}\n\nexport function ensureRange(value: number, options: { min?: number; max?: number }): number {\n return Math.max(options.min ?? -Infinity, Math.min(value, options.max ?? Infinity));\n}\n"]}
1
+ {"version":3,"sources":["number.ts"],"names":["safeSum","numbers","R","sum","filter","isNonNullish","takeBigger","Math","max","ensureRange","value","options","min","Infinity"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,SAASA,WAAWC,OAAsC,EAAA;AAC/D,EAAA,OAAOC,aAAEC,GAAIF,CAAAA,OAAAA,EAASG,MAAOF,CAAAA,YAAAA,CAAEG,YAAY,CAAK,IAAA;AAAC,IAAA;AAAE,GAAA,CAAA;AACrD;AAFgBL,MAAAA,CAAAA,OAAAA,EAAAA,SAAAA,CAAAA;AAIT,SAASM,cAAcL,OAAsC,EAAA;AAClE,EAAA,OAAOM,KAAKC,GAAG,CAAA,GAAKP,SAASG,MAAOF,CAAAA,YAAAA,CAAEG,YAAY,CAAK,IAAA;AAAC,IAAA;GAAE,CAAM,IAAA,CAAA;AAClE;AAFgBC,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAIT,SAASG,WAAAA,CAAYC,OAAeC,OAAuC,EAAA;AAChF,EAAOJ,OAAAA,IAAAA,CAAKC,GAAIG,CAAAA,OAAAA,CAAQC,GAAO,IAAA,CAAA,QAAA,EAAWL,IAAKK,CAAAA,GAAAA,CAAIF,KAAOC,EAAAA,OAAAA,CAAQH,GAAOK,IAAAA,QAAAA,CAAAA,CAAAA;AAC3E;AAFgBJ,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA","file":"number.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\n\nexport function safeSum(...numbers: (number | undefined | null)[]): number {\n return R.sum(numbers?.filter(R.isNonNullish) || [0]);\n}\n\nexport function takeBigger(...numbers: (number | undefined | null)[]): number {\n return Math.max(...(numbers?.filter(R.isNonNullish) || [0])) || 0;\n}\n\nexport function ensureRange(value: number, options: { min?: number; max?: number }): number {\n return Math.max(options.min ?? -Infinity, Math.min(value, options.max ?? Infinity));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/number.ts"],"names":["safeSum","numbers","R","sum","filter","isNonNullish","takeBigger","Math","max","ensureRange","value","options","min","Infinity"],"mappings":";;;;AAkBO,SAASA,WAAWC,OAAsC,EAAA;AAC/D,EAAA,OAAOC,EAAEC,GAAIF,CAAAA,OAAAA,EAASG,MAAOF,CAAAA,CAAAA,CAAEG,YAAY,CAAK,IAAA;AAAC,IAAA;AAAE,GAAA,CAAA;AACrD;AAFgBL,MAAAA,CAAAA,OAAAA,EAAAA,SAAAA,CAAAA;AAIT,SAASM,cAAcL,OAAsC,EAAA;AAClE,EAAA,OAAOM,KAAKC,GAAG,CAAA,GAAKP,SAASG,MAAOF,CAAAA,CAAAA,CAAEG,YAAY,CAAK,IAAA;AAAC,IAAA;GAAE,CAAM,IAAA,CAAA;AAClE;AAFgBC,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAIT,SAASG,WAAAA,CAAYC,OAAeC,OAAuC,EAAA;AAChF,EAAOJ,OAAAA,IAAAA,CAAKC,GAAIG,CAAAA,OAAAA,CAAQC,GAAO,IAAA,CAAA,QAAA,EAAWL,IAAKK,CAAAA,GAAAA,CAAIF,KAAOC,EAAAA,OAAAA,CAAQH,GAAOK,IAAAA,QAAAA,CAAAA,CAAAA;AAC3E;AAFgBJ,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA","file":"number.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\n\nexport function safeSum(...numbers: (number | undefined | null)[]): number {\n return R.sum(numbers?.filter(R.isNonNullish) || [0]);\n}\n\nexport function takeBigger(...numbers: (number | undefined | null)[]): number {\n return Math.max(...(numbers?.filter(R.isNonNullish) || [0])) || 0;\n}\n\nexport function ensureRange(value: number, options: { min?: number; max?: number }): number {\n return Math.max(options.min ?? -Infinity, Math.min(value, options.max ?? Infinity));\n}\n"]}
1
+ {"version":3,"sources":["number.ts"],"names":["safeSum","numbers","R","sum","filter","isNonNullish","takeBigger","Math","max","ensureRange","value","options","min","Infinity"],"mappings":";;;;AAkBO,SAASA,WAAWC,OAAsC,EAAA;AAC/D,EAAA,OAAOC,EAAEC,GAAIF,CAAAA,OAAAA,EAASG,MAAOF,CAAAA,CAAAA,CAAEG,YAAY,CAAK,IAAA;AAAC,IAAA;AAAE,GAAA,CAAA;AACrD;AAFgBL,MAAAA,CAAAA,OAAAA,EAAAA,SAAAA,CAAAA;AAIT,SAASM,cAAcL,OAAsC,EAAA;AAClE,EAAA,OAAOM,KAAKC,GAAG,CAAA,GAAKP,SAASG,MAAOF,CAAAA,CAAAA,CAAEG,YAAY,CAAK,IAAA;AAAC,IAAA;GAAE,CAAM,IAAA,CAAA;AAClE;AAFgBC,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAIT,SAASG,WAAAA,CAAYC,OAAeC,OAAuC,EAAA;AAChF,EAAOJ,OAAAA,IAAAA,CAAKC,GAAIG,CAAAA,OAAAA,CAAQC,GAAO,IAAA,CAAA,QAAA,EAAWL,IAAKK,CAAAA,GAAAA,CAAIF,KAAOC,EAAAA,OAAAA,CAAQH,GAAOK,IAAAA,QAAAA,CAAAA,CAAAA;AAC3E;AAFgBJ,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA","file":"number.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\n\nexport function safeSum(...numbers: (number | undefined | null)[]): number {\n return R.sum(numbers?.filter(R.isNonNullish) || [0]);\n}\n\nexport function takeBigger(...numbers: (number | undefined | null)[]): number {\n return Math.max(...(numbers?.filter(R.isNonNullish) || [0])) || 0;\n}\n\nexport function ensureRange(value: number, options: { min?: number; max?: number }): number {\n return Math.max(options.min ?? -Infinity, Math.min(value, options.max ?? Infinity));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/object.ts"],"names":["assignFactory","target","source","Object","assign","a","b","omitEmptyValues","R","pickBy","isTruthy","omitUndefined","isDefined","hasProp","key","Boolean","prototype","hasOwnProperty","call","hasProps","keys","every","setProp","paths","value","entry","entries","idx","isPlainObject","isArray","TypeError","isLast","length","newValue","getPropStrict","path","getProp","defaultValue","undefined","deleteProps","forEach","updateObject","old","update","val","existing","FrameworkError","context","customMerge","results","processors","finalResult","next","oldValue","takeFirstBy","mapObj","obj","fn","updated","pair"],"mappings":"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","file":"object.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\nimport { FrameworkError } from \"@/errors.js\";\n\nexport type Override<T, T2 extends Partial<T>> = {\n [K in keyof T2]: K extends keyof T ? T2[K] : never;\n};\n\nexport function assignFactory<T extends NonNullable<unknown>, T2 extends Partial<T>>(target: T) {\n return (source: NonNullable<Override<T, T2>>) => {\n Object.assign(target, source);\n };\n}\n\nexport const assign = <T extends NonNullable<unknown>, T2 extends Partial<T>>(\n a: T,\n b: NonNullable<Override<T, T2>>,\n) => assignFactory(a)(b);\nexport const omitEmptyValues = R.pickBy(R.isTruthy);\nexport const omitUndefined = R.pickBy(R.isDefined);\n\nexport function hasProp<T>(target: T | undefined, key: keyof T): key is keyof T {\n return Boolean(target) && Object.prototype.hasOwnProperty.call(target, key);\n}\n\nexport function hasProps<T>(keys: (keyof T)[]) {\n return (target: T | undefined) => keys.every((key) => hasProp(target, key));\n}\n\nexport function setProp(target: unknown, paths: readonly (keyof any)[], value: unknown) {\n for (const entry of paths.entries()) {\n const [idx, key] = entry as [number, keyof object];\n if (!R.isPlainObject(target) && !R.isArray(target)) {\n throw new TypeError(\"Only plain objects and arrays are supported!\");\n }\n\n const isLast = idx === paths.length - 1;\n const newValue = isLast ? value : (target[key] ?? {});\n Object.assign(target, { [key]: newValue });\n target = target[key];\n }\n}\n\nexport function getPropStrict(target: NonNullable<unknown>, path: string): any {\n if (!target || !(path in target)) {\n throw new TypeError(`Target does not contain key \"${path}\"`);\n }\n return target[path as keyof typeof target];\n}\n\nexport function getProp(\n target: unknown,\n paths: readonly (keyof any)[],\n defaultValue: any = undefined,\n) {\n let value: any = target;\n if (!value) {\n return undefined;\n }\n\n for (const key of paths) {\n if (!hasProp(value, key)) {\n return defaultValue;\n }\n value = value[key];\n }\n return value;\n}\n\nexport function deleteProps<T, K extends keyof T>(target: T, keys: readonly K[]) {\n keys.forEach((key) => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete target[key];\n });\n}\n\nexport function updateObject<T extends object, L extends object>(\n old: T,\n update: L,\n): asserts old is T & L {\n for (const [key, val] of Object.entries(update)) {\n const existing = old[key as keyof T];\n if (existing !== undefined && existing !== null) {\n throw new FrameworkError(\n `Cannot update object. Key '${key}' already exists and is defined.`,\n [],\n {\n context: {\n existing,\n update: val,\n },\n },\n );\n }\n old[key as keyof T] = val;\n }\n}\n\nexport function customMerge<T extends NonNullable<unknown>>(\n results: T[],\n processors: {\n [K in keyof T]: (value: T[K], oldValue: T[K]) => T[K];\n },\n) {\n if (results.length === 0) {\n throw new TypeError(\"Cannot merge content of an empty array!\");\n }\n\n const finalResult = {} as T;\n for (const next of results) {\n for (const [key, value] of R.entries(next)) {\n const oldValue = finalResult[key as keyof T];\n // @ts-expect-error weak typing due to generated types\n finalResult[key] = (processors[key] ?? R.takeFirstBy(1))(value, oldValue);\n }\n }\n return finalResult;\n}\n\nexport function mapObj<T extends object>(obj: T) {\n return function <K extends keyof T, R = T[K]>(\n fn: (key: K, value: T[K]) => R,\n ): Record<keyof T, R> {\n const updated = {} as Record<keyof T, R>;\n for (const pair of Object.entries(obj)) {\n const [key, value] = pair as [K, T[K]];\n updated[key] = fn(key, value);\n }\n return updated;\n };\n}\n"]}
1
+ {"version":3,"sources":["object.ts"],"names":["assignFactory","target","source","Object","assign","a","b","omitEmptyValues","R","pickBy","isTruthy","omitUndefined","isDefined","hasProp","key","Boolean","prototype","hasOwnProperty","call","hasProps","keys","every","setProp","paths","value","entry","entries","idx","isPlainObject","isArray","TypeError","isLast","length","newValue","getPropStrict","path","getProp","defaultValue","undefined","deleteProps","forEach","updateObject","old","update","val","existing","FrameworkError","context","customMerge","results","processors","finalResult","next","oldValue","takeFirstBy","mapObj","obj","fn","updated","pair"],"mappings":"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","file":"object.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\nimport { FrameworkError } from \"@/errors.js\";\n\nexport type Override<T, T2 extends Partial<T>> = {\n [K in keyof T2]: K extends keyof T ? T2[K] : never;\n};\n\nexport function assignFactory<T extends NonNullable<unknown>, T2 extends Partial<T>>(target: T) {\n return (source: NonNullable<Override<T, T2>>) => {\n Object.assign(target, source);\n };\n}\n\nexport const assign = <T extends NonNullable<unknown>, T2 extends Partial<T>>(\n a: T,\n b: NonNullable<Override<T, T2>>,\n) => assignFactory(a)(b);\nexport const omitEmptyValues = R.pickBy(R.isTruthy);\nexport const omitUndefined = R.pickBy(R.isDefined);\n\nexport function hasProp<T>(target: T | undefined, key: keyof T): key is keyof T {\n return Boolean(target) && Object.prototype.hasOwnProperty.call(target, key);\n}\n\nexport function hasProps<T>(keys: (keyof T)[]) {\n return (target: T | undefined) => keys.every((key) => hasProp(target, key));\n}\n\nexport function setProp(target: unknown, paths: readonly (keyof any)[], value: unknown) {\n for (const entry of paths.entries()) {\n const [idx, key] = entry as [number, keyof object];\n if (!R.isPlainObject(target) && !R.isArray(target)) {\n throw new TypeError(\"Only plain objects and arrays are supported!\");\n }\n\n const isLast = idx === paths.length - 1;\n const newValue = isLast ? value : (target[key] ?? {});\n Object.assign(target, { [key]: newValue });\n target = target[key];\n }\n}\n\nexport function getPropStrict(target: NonNullable<unknown>, path: string): any {\n if (!target || !(path in target)) {\n throw new TypeError(`Target does not contain key \"${path}\"`);\n }\n return target[path as keyof typeof target];\n}\n\nexport function getProp(\n target: unknown,\n paths: readonly (keyof any)[],\n defaultValue: any = undefined,\n) {\n let value: any = target;\n if (!value) {\n return undefined;\n }\n\n for (const key of paths) {\n if (!hasProp(value, key)) {\n return defaultValue;\n }\n value = value[key];\n }\n return value;\n}\n\nexport function deleteProps<T, K extends keyof T>(target: T, keys: readonly K[]) {\n keys.forEach((key) => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete target[key];\n });\n}\n\nexport function updateObject<T extends object, L extends object>(\n old: T,\n update: L,\n): asserts old is T & L {\n for (const [key, val] of Object.entries(update)) {\n const existing = old[key as keyof T];\n if (existing !== undefined && existing !== null) {\n throw new FrameworkError(\n `Cannot update object. Key '${key}' already exists and is defined.`,\n [],\n {\n context: {\n existing,\n update: val,\n },\n },\n );\n }\n old[key as keyof T] = val;\n }\n}\n\nexport function customMerge<T extends NonNullable<unknown>>(\n results: T[],\n processors: {\n [K in keyof T]: (value: T[K], oldValue: T[K]) => T[K];\n },\n) {\n if (results.length === 0) {\n throw new TypeError(\"Cannot merge content of an empty array!\");\n }\n\n const finalResult = {} as T;\n for (const next of results) {\n for (const [key, value] of R.entries(next)) {\n const oldValue = finalResult[key as keyof T];\n // @ts-expect-error weak typing due to generated types\n finalResult[key] = (processors[key] ?? R.takeFirstBy(1))(value, oldValue);\n }\n }\n return finalResult;\n}\n\nexport function mapObj<T extends object>(obj: T) {\n return function <K extends keyof T, R = T[K]>(\n fn: (key: K, value: T[K]) => R,\n ): Record<keyof T, R> {\n const updated = {} as Record<keyof T, R>;\n for (const pair of Object.entries(obj)) {\n const [key, value] = pair as [K, T[K]];\n updated[key] = fn(key, value);\n }\n return updated;\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/object.ts"],"names":["assignFactory","target","source","Object","assign","a","b","omitEmptyValues","R","pickBy","isTruthy","omitUndefined","isDefined","hasProp","key","Boolean","prototype","hasOwnProperty","call","hasProps","keys","every","setProp","paths","value","entry","entries","idx","isPlainObject","isArray","TypeError","isLast","length","newValue","getPropStrict","path","getProp","defaultValue","undefined","deleteProps","forEach","updateObject","old","update","val","existing","FrameworkError","context","customMerge","results","processors","finalResult","next","oldValue","takeFirstBy","mapObj","obj","fn","updated","pair"],"mappings":"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","file":"object.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\nimport { FrameworkError } from \"@/errors.js\";\n\nexport type Override<T, T2 extends Partial<T>> = {\n [K in keyof T2]: K extends keyof T ? T2[K] : never;\n};\n\nexport function assignFactory<T extends NonNullable<unknown>, T2 extends Partial<T>>(target: T) {\n return (source: NonNullable<Override<T, T2>>) => {\n Object.assign(target, source);\n };\n}\n\nexport const assign = <T extends NonNullable<unknown>, T2 extends Partial<T>>(\n a: T,\n b: NonNullable<Override<T, T2>>,\n) => assignFactory(a)(b);\nexport const omitEmptyValues = R.pickBy(R.isTruthy);\nexport const omitUndefined = R.pickBy(R.isDefined);\n\nexport function hasProp<T>(target: T | undefined, key: keyof T): key is keyof T {\n return Boolean(target) && Object.prototype.hasOwnProperty.call(target, key);\n}\n\nexport function hasProps<T>(keys: (keyof T)[]) {\n return (target: T | undefined) => keys.every((key) => hasProp(target, key));\n}\n\nexport function setProp(target: unknown, paths: readonly (keyof any)[], value: unknown) {\n for (const entry of paths.entries()) {\n const [idx, key] = entry as [number, keyof object];\n if (!R.isPlainObject(target) && !R.isArray(target)) {\n throw new TypeError(\"Only plain objects and arrays are supported!\");\n }\n\n const isLast = idx === paths.length - 1;\n const newValue = isLast ? value : (target[key] ?? {});\n Object.assign(target, { [key]: newValue });\n target = target[key];\n }\n}\n\nexport function getPropStrict(target: NonNullable<unknown>, path: string): any {\n if (!target || !(path in target)) {\n throw new TypeError(`Target does not contain key \"${path}\"`);\n }\n return target[path as keyof typeof target];\n}\n\nexport function getProp(\n target: unknown,\n paths: readonly (keyof any)[],\n defaultValue: any = undefined,\n) {\n let value: any = target;\n if (!value) {\n return undefined;\n }\n\n for (const key of paths) {\n if (!hasProp(value, key)) {\n return defaultValue;\n }\n value = value[key];\n }\n return value;\n}\n\nexport function deleteProps<T, K extends keyof T>(target: T, keys: readonly K[]) {\n keys.forEach((key) => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete target[key];\n });\n}\n\nexport function updateObject<T extends object, L extends object>(\n old: T,\n update: L,\n): asserts old is T & L {\n for (const [key, val] of Object.entries(update)) {\n const existing = old[key as keyof T];\n if (existing !== undefined && existing !== null) {\n throw new FrameworkError(\n `Cannot update object. Key '${key}' already exists and is defined.`,\n [],\n {\n context: {\n existing,\n update: val,\n },\n },\n );\n }\n old[key as keyof T] = val;\n }\n}\n\nexport function customMerge<T extends NonNullable<unknown>>(\n results: T[],\n processors: {\n [K in keyof T]: (value: T[K], oldValue: T[K]) => T[K];\n },\n) {\n if (results.length === 0) {\n throw new TypeError(\"Cannot merge content of an empty array!\");\n }\n\n const finalResult = {} as T;\n for (const next of results) {\n for (const [key, value] of R.entries(next)) {\n const oldValue = finalResult[key as keyof T];\n // @ts-expect-error weak typing due to generated types\n finalResult[key] = (processors[key] ?? R.takeFirstBy(1))(value, oldValue);\n }\n }\n return finalResult;\n}\n\nexport function mapObj<T extends object>(obj: T) {\n return function <K extends keyof T, R = T[K]>(\n fn: (key: K, value: T[K]) => R,\n ): Record<keyof T, R> {\n const updated = {} as Record<keyof T, R>;\n for (const pair of Object.entries(obj)) {\n const [key, value] = pair as [K, T[K]];\n updated[key] = fn(key, value);\n }\n return updated;\n };\n}\n"]}
1
+ {"version":3,"sources":["object.ts"],"names":["assignFactory","target","source","Object","assign","a","b","omitEmptyValues","R","pickBy","isTruthy","omitUndefined","isDefined","hasProp","key","Boolean","prototype","hasOwnProperty","call","hasProps","keys","every","setProp","paths","value","entry","entries","idx","isPlainObject","isArray","TypeError","isLast","length","newValue","getPropStrict","path","getProp","defaultValue","undefined","deleteProps","forEach","updateObject","old","update","val","existing","FrameworkError","context","customMerge","results","processors","finalResult","next","oldValue","takeFirstBy","mapObj","obj","fn","updated","pair"],"mappings":"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","file":"object.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\nimport { FrameworkError } from \"@/errors.js\";\n\nexport type Override<T, T2 extends Partial<T>> = {\n [K in keyof T2]: K extends keyof T ? T2[K] : never;\n};\n\nexport function assignFactory<T extends NonNullable<unknown>, T2 extends Partial<T>>(target: T) {\n return (source: NonNullable<Override<T, T2>>) => {\n Object.assign(target, source);\n };\n}\n\nexport const assign = <T extends NonNullable<unknown>, T2 extends Partial<T>>(\n a: T,\n b: NonNullable<Override<T, T2>>,\n) => assignFactory(a)(b);\nexport const omitEmptyValues = R.pickBy(R.isTruthy);\nexport const omitUndefined = R.pickBy(R.isDefined);\n\nexport function hasProp<T>(target: T | undefined, key: keyof T): key is keyof T {\n return Boolean(target) && Object.prototype.hasOwnProperty.call(target, key);\n}\n\nexport function hasProps<T>(keys: (keyof T)[]) {\n return (target: T | undefined) => keys.every((key) => hasProp(target, key));\n}\n\nexport function setProp(target: unknown, paths: readonly (keyof any)[], value: unknown) {\n for (const entry of paths.entries()) {\n const [idx, key] = entry as [number, keyof object];\n if (!R.isPlainObject(target) && !R.isArray(target)) {\n throw new TypeError(\"Only plain objects and arrays are supported!\");\n }\n\n const isLast = idx === paths.length - 1;\n const newValue = isLast ? value : (target[key] ?? {});\n Object.assign(target, { [key]: newValue });\n target = target[key];\n }\n}\n\nexport function getPropStrict(target: NonNullable<unknown>, path: string): any {\n if (!target || !(path in target)) {\n throw new TypeError(`Target does not contain key \"${path}\"`);\n }\n return target[path as keyof typeof target];\n}\n\nexport function getProp(\n target: unknown,\n paths: readonly (keyof any)[],\n defaultValue: any = undefined,\n) {\n let value: any = target;\n if (!value) {\n return undefined;\n }\n\n for (const key of paths) {\n if (!hasProp(value, key)) {\n return defaultValue;\n }\n value = value[key];\n }\n return value;\n}\n\nexport function deleteProps<T, K extends keyof T>(target: T, keys: readonly K[]) {\n keys.forEach((key) => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete target[key];\n });\n}\n\nexport function updateObject<T extends object, L extends object>(\n old: T,\n update: L,\n): asserts old is T & L {\n for (const [key, val] of Object.entries(update)) {\n const existing = old[key as keyof T];\n if (existing !== undefined && existing !== null) {\n throw new FrameworkError(\n `Cannot update object. Key '${key}' already exists and is defined.`,\n [],\n {\n context: {\n existing,\n update: val,\n },\n },\n );\n }\n old[key as keyof T] = val;\n }\n}\n\nexport function customMerge<T extends NonNullable<unknown>>(\n results: T[],\n processors: {\n [K in keyof T]: (value: T[K], oldValue: T[K]) => T[K];\n },\n) {\n if (results.length === 0) {\n throw new TypeError(\"Cannot merge content of an empty array!\");\n }\n\n const finalResult = {} as T;\n for (const next of results) {\n for (const [key, value] of R.entries(next)) {\n const oldValue = finalResult[key as keyof T];\n // @ts-expect-error weak typing due to generated types\n finalResult[key] = (processors[key] ?? R.takeFirstBy(1))(value, oldValue);\n }\n }\n return finalResult;\n}\n\nexport function mapObj<T extends object>(obj: T) {\n return function <K extends keyof T, R = T[K]>(\n fn: (key: K, value: T[K]) => R,\n ): Record<keyof T, R> {\n const updated = {} as Record<keyof T, R>;\n for (const pair of Object.entries(obj)) {\n const [key, value] = pair as [K, T[K]];\n updated[key] = fn(key, value);\n }\n return updated;\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/paginate.ts"],"names":["paginate","input","acc","cursor","undefined","length","size","data","nextCursor","handler","limit","push"],"mappings":";;;;AAqBA,eAAsBA,SAAwBC,KAA0B,EAAA;AACtE,EAAA,MAAMC,MAAW,EAAA;AACjB,EAAA,IAAIC,MAAwBC,GAAAA,KAAAA,CAAAA;AAC5B,EAAOF,OAAAA,GAAAA,CAAIG,MAASJ,GAAAA,KAAAA,CAAMK,IAAM,EAAA;AAC9B,IAAA,MAAM,EAAEC,IAAMC,EAAAA,UAAAA,EAAe,GAAA,MAAMP,MAAMQ,OAAQ,CAAA;AAC/CN,MAAAA,MAAAA;MACAO,KAAOT,EAAAA,KAAAA,CAAMK,OAAOJ,GAAIG,CAAAA;KAC1B,CAAA;AACAH,IAAIS,GAAAA,CAAAA,IAAAA,CAAI,GAAIJ,IAAAA,CAAAA;AAEZ,IAAA,IAAIC,UAAeJ,KAAAA,KAAAA,CAAAA,IAAaG,IAAKF,CAAAA,MAAAA,KAAW,CAAG,EAAA;AACjD,MAAA;AACF;AACAF,IAASK,MAAAA,GAAAA,UAAAA;AACX;AAEA,EAAIN,IAAAA,GAAAA,CAAIG,MAASJ,GAAAA,KAAAA,CAAMK,IAAM,EAAA;AAC3BJ,IAAAA,GAAAA,CAAIG,SAASJ,KAAMK,CAAAA,IAAAA;AACrB;AAEA,EAAOJ,OAAAA,GAAAA;AACT;AArBsBF,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA","file":"paginate.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface PaginateInput<T, C> {\n size: number;\n handler: (data: { cursor?: C; limit: number }) => Promise<{ data: T[]; nextCursor?: C }>;\n}\n\nexport async function paginate<T, C = number>(input: PaginateInput<T, C>): Promise<T[]> {\n const acc: T[] = [];\n let cursor: C | undefined = undefined;\n while (acc.length < input.size) {\n const { data, nextCursor } = await input.handler({\n cursor,\n limit: input.size - acc.length,\n });\n acc.push(...data);\n\n if (nextCursor === undefined || data.length === 0) {\n break;\n }\n cursor = nextCursor;\n }\n\n if (acc.length > input.size) {\n acc.length = input.size;\n }\n\n return acc;\n}\n"]}
1
+ {"version":3,"sources":["paginate.ts"],"names":["paginate","input","acc","cursor","undefined","length","size","data","nextCursor","handler","limit","push"],"mappings":";;;;AAqBA,eAAsBA,SAAwBC,KAA0B,EAAA;AACtE,EAAA,MAAMC,MAAW,EAAA;AACjB,EAAA,IAAIC,MAAwBC,GAAAA,MAAAA;AAC5B,EAAOF,OAAAA,GAAAA,CAAIG,MAASJ,GAAAA,KAAAA,CAAMK,IAAM,EAAA;AAC9B,IAAA,MAAM,EAAEC,IAAMC,EAAAA,UAAAA,EAAe,GAAA,MAAMP,MAAMQ,OAAQ,CAAA;AAC/CN,MAAAA,MAAAA;MACAO,KAAOT,EAAAA,KAAAA,CAAMK,OAAOJ,GAAIG,CAAAA;KAC1B,CAAA;AACAH,IAAIS,GAAAA,CAAAA,IAAAA,CAAI,GAAIJ,IAAAA,CAAAA;AAEZ,IAAA,IAAIC,UAAeJ,KAAAA,MAAAA,IAAaG,IAAKF,CAAAA,MAAAA,KAAW,CAAG,EAAA;AACjD,MAAA;AACF;AACAF,IAASK,MAAAA,GAAAA,UAAAA;AACX;AAEA,EAAIN,IAAAA,GAAAA,CAAIG,MAASJ,GAAAA,KAAAA,CAAMK,IAAM,EAAA;AAC3BJ,IAAAA,GAAAA,CAAIG,SAASJ,KAAMK,CAAAA,IAAAA;AACrB;AAEA,EAAOJ,OAAAA,GAAAA;AACT;AArBsBF,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA","file":"paginate.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface PaginateInput<T, C> {\n size: number;\n handler: (data: { cursor?: C; limit: number }) => Promise<{ data: T[]; nextCursor?: C }>;\n}\n\nexport async function paginate<T, C = number>(input: PaginateInput<T, C>): Promise<T[]> {\n const acc: T[] = [];\n let cursor: C | undefined = undefined;\n while (acc.length < input.size) {\n const { data, nextCursor } = await input.handler({\n cursor,\n limit: input.size - acc.length,\n });\n acc.push(...data);\n\n if (nextCursor === undefined || data.length === 0) {\n break;\n }\n cursor = nextCursor;\n }\n\n if (acc.length > input.size) {\n acc.length = input.size;\n }\n\n return acc;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/paginate.ts"],"names":["paginate","input","acc","cursor","undefined","length","size","data","nextCursor","handler","limit","push"],"mappings":";;AAqBA,eAAsBA,SAAwBC,KAA0B,EAAA;AACtE,EAAA,MAAMC,MAAW,EAAA;AACjB,EAAA,IAAIC,MAAwBC,GAAAA,KAAAA,CAAAA;AAC5B,EAAOF,OAAAA,GAAAA,CAAIG,MAASJ,GAAAA,KAAAA,CAAMK,IAAM,EAAA;AAC9B,IAAA,MAAM,EAAEC,IAAMC,EAAAA,UAAAA,EAAe,GAAA,MAAMP,MAAMQ,OAAQ,CAAA;AAC/CN,MAAAA,MAAAA;MACAO,KAAOT,EAAAA,KAAAA,CAAMK,OAAOJ,GAAIG,CAAAA;KAC1B,CAAA;AACAH,IAAIS,GAAAA,CAAAA,IAAAA,CAAI,GAAIJ,IAAAA,CAAAA;AAEZ,IAAA,IAAIC,UAAeJ,KAAAA,KAAAA,CAAAA,IAAaG,IAAKF,CAAAA,MAAAA,KAAW,CAAG,EAAA;AACjD,MAAA;AACF;AACAF,IAASK,MAAAA,GAAAA,UAAAA;AACX;AAEA,EAAIN,IAAAA,GAAAA,CAAIG,MAASJ,GAAAA,KAAAA,CAAMK,IAAM,EAAA;AAC3BJ,IAAAA,GAAAA,CAAIG,SAASJ,KAAMK,CAAAA,IAAAA;AACrB;AAEA,EAAOJ,OAAAA,GAAAA;AACT;AArBsBF,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA","file":"paginate.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface PaginateInput<T, C> {\n size: number;\n handler: (data: { cursor?: C; limit: number }) => Promise<{ data: T[]; nextCursor?: C }>;\n}\n\nexport async function paginate<T, C = number>(input: PaginateInput<T, C>): Promise<T[]> {\n const acc: T[] = [];\n let cursor: C | undefined = undefined;\n while (acc.length < input.size) {\n const { data, nextCursor } = await input.handler({\n cursor,\n limit: input.size - acc.length,\n });\n acc.push(...data);\n\n if (nextCursor === undefined || data.length === 0) {\n break;\n }\n cursor = nextCursor;\n }\n\n if (acc.length > input.size) {\n acc.length = input.size;\n }\n\n return acc;\n}\n"]}
1
+ {"version":3,"sources":["paginate.ts"],"names":["paginate","input","acc","cursor","undefined","length","size","data","nextCursor","handler","limit","push"],"mappings":";;AAqBA,eAAsBA,SAAwBC,KAA0B,EAAA;AACtE,EAAA,MAAMC,MAAW,EAAA;AACjB,EAAA,IAAIC,MAAwBC,GAAAA,MAAAA;AAC5B,EAAOF,OAAAA,GAAAA,CAAIG,MAASJ,GAAAA,KAAAA,CAAMK,IAAM,EAAA;AAC9B,IAAA,MAAM,EAAEC,IAAMC,EAAAA,UAAAA,EAAe,GAAA,MAAMP,MAAMQ,OAAQ,CAAA;AAC/CN,MAAAA,MAAAA;MACAO,KAAOT,EAAAA,KAAAA,CAAMK,OAAOJ,GAAIG,CAAAA;KAC1B,CAAA;AACAH,IAAIS,GAAAA,CAAAA,IAAAA,CAAI,GAAIJ,IAAAA,CAAAA;AAEZ,IAAA,IAAIC,UAAeJ,KAAAA,MAAAA,IAAaG,IAAKF,CAAAA,MAAAA,KAAW,CAAG,EAAA;AACjD,MAAA;AACF;AACAF,IAASK,MAAAA,GAAAA,UAAAA;AACX;AAEA,EAAIN,IAAAA,GAAAA,CAAIG,MAASJ,GAAAA,KAAAA,CAAMK,IAAM,EAAA;AAC3BJ,IAAAA,GAAAA,CAAIG,SAASJ,KAAMK,CAAAA,IAAAA;AACrB;AAEA,EAAOJ,OAAAA,GAAAA;AACT;AArBsBF,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA","file":"paginate.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface PaginateInput<T, C> {\n size: number;\n handler: (data: { cursor?: C; limit: number }) => Promise<{ data: T[]; nextCursor?: C }>;\n}\n\nexport async function paginate<T, C = number>(input: PaginateInput<T, C>): Promise<T[]> {\n const acc: T[] = [];\n let cursor: C | undefined = undefined;\n while (acc.length < input.size) {\n const { data, nextCursor } = await input.handler({\n cursor,\n limit: input.size - acc.length,\n });\n acc.push(...data);\n\n if (nextCursor === undefined || data.length === 0) {\n break;\n }\n cursor = nextCursor;\n }\n\n if (acc.length > input.size) {\n acc.length = input.size;\n }\n\n return acc;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/promise.ts"],"names":["isPromiseLike","value","isPromise","isFunction","getProp","arrayFromAsync","generator","limit","Infinity","results","chunk","length","push","emitterToGenerator","fn","queue","emit","data","then","done","catch","error","Promise","resolve","setImmediate","shift","asyncProperties","obj","Object","fromEntries","all","entries","map","key","safeExecute","handler","onError","onSuccess","result","err","e","asyncExecute","LazyPromise","constructor","Symbol","toStringTag","before","onfulfilled","onrejected","undefined","finally","onfinally","signalRace","signal","onAbort","reject","aborted","reason","signalFn","addEventListener","removeEventListener","executeSequentially","tasks","task","toAsyncGenerator","promise"],"mappings":"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","file":"promise.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isFunction, isPromise } from \"remeda\";\nimport { getProp } from \"@/internals/helpers/object.js\";\n\nexport function isPromiseLike<T>(value: unknown): value is PromiseLike<T> {\n return isPromise(value) || isFunction(getProp(value, [\"then\"]));\n}\n\nexport async function arrayFromAsync<A, B>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A> | AsyncIterable<A>,\n limit?: number,\n) {\n limit = limit ?? Infinity;\n const results: A[] = [];\n for await (const chunk of generator) {\n if (results.length >= limit) {\n break;\n }\n results.push(chunk);\n }\n return results;\n}\n\nexport type EmitterToGeneratorFn<T, R> = (data: { emit: (data: T) => void }) => Promise<R>;\nexport async function* emitterToGenerator<T, R>(fn: EmitterToGeneratorFn<T, R>) {\n interface Data {\n data?: T;\n error?: Error;\n done?: boolean;\n }\n\n const queue: Data[] = [];\n void fn({\n emit: (data: T) => queue.push({ data }),\n })\n .then(() => queue.push({ done: true }))\n .catch((error) => queue.push({ error, done: true }));\n\n while (true) {\n while (queue.length === 0) {\n await new Promise((resolve) => setImmediate(resolve));\n }\n\n const { data, done, error } = queue.shift()!;\n if (error) {\n throw error;\n }\n if (done) {\n break;\n }\n yield data!;\n }\n}\n\nexport async function asyncProperties<T extends NonNullable<unknown>>(\n obj: T,\n): Promise<{ [K in keyof T]: Awaited<T[K]> }> {\n return Object.fromEntries(\n await Promise.all(Object.entries(obj).map(async ([key, value]) => [key, await value])),\n );\n}\n\ninterface SafeExecuteOptions<T> {\n handler: () => T;\n onSuccess?: (result: T) => void;\n onError?: (err: Error) => void;\n}\n\nexport function safeExecute<T>({ handler, onError, onSuccess }: SafeExecuteOptions<T>): void {\n try {\n const result = handler();\n if (isPromiseLike<T>(result)) {\n result.then(\n (result) => onSuccess?.(result),\n (err) => onError?.(err),\n );\n } else {\n onSuccess?.(result);\n }\n } catch (e) {\n onError?.(e);\n }\n}\n\nexport function asyncExecute<R>(handler: () => R): Promise<R> {\n return new Promise((onSuccess, onError) => {\n safeExecute({\n handler,\n onSuccess,\n onError,\n });\n });\n}\n\nexport class LazyPromise<R> implements Promise<R> {\n constructor(protected readonly handler: () => Promise<R>) {}\n\n readonly [Symbol.toStringTag] = \"Promise\";\n\n protected async before(): Promise<void> {}\n\n then<TResult1 = R, TResult2 = never>(\n onfulfilled?: ((value: R) => PromiseLike<TResult1> | TResult1) | undefined | null,\n onrejected?: ((reason: any) => PromiseLike<TResult2> | TResult2) | undefined | null,\n ): Promise<TResult1 | TResult2> {\n return this.before().then(this.handler).then(onfulfilled).catch(onrejected);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: any) => PromiseLike<TResult> | TResult) | undefined | null,\n ): Promise<R | TResult> {\n return this.before().then(this.handler).then(undefined).catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | undefined | null): Promise<R> {\n return this.before().then(this.handler).finally(onfinally);\n }\n}\n\nexport async function signalRace<R>(\n fn: () => Promise<R>,\n signal?: AbortSignal,\n onAbort?: () => void,\n): Promise<R> {\n return new Promise<R>((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason);\n return;\n }\n\n const signalFn = () => {\n onAbort?.();\n reject(signal?.reason);\n };\n signal?.addEventListener?.(\"abort\", signalFn);\n fn()\n .then(resolve)\n .catch(reject)\n .finally(() => signal?.removeEventListener?.(\"abort\", signalFn));\n });\n}\n\nexport async function executeSequentially(tasks: (() => Promise<any>)[]): Promise<void> {\n for (const task of tasks) {\n await task();\n }\n}\n\nexport async function* toAsyncGenerator<T>(promise: T): AsyncGenerator<Awaited<T>> {\n yield await promise;\n}\n"]}
1
+ {"version":3,"sources":["promise.ts"],"names":["isPromiseLike","value","isPromise","isFunction","getProp","arrayFromAsync","generator","limit","Infinity","results","chunk","length","push","emitterToGenerator","fn","queue","emit","data","then","done","catch","error","Promise","resolve","setImmediate","shift","asyncProperties","obj","Object","fromEntries","all","entries","map","key","safeExecute","handler","onError","onSuccess","result","err","e","asyncExecute","LazyPromise","constructor","Symbol","toStringTag","before","onfulfilled","onrejected","undefined","finally","onfinally","signalRace","signal","onAbort","reject","aborted","reason","signalFn","addEventListener","removeEventListener","executeSequentially","tasks","task","toAsyncGenerator","promise"],"mappings":"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","file":"promise.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isFunction, isPromise } from \"remeda\";\nimport { getProp } from \"@/internals/helpers/object.js\";\n\nexport function isPromiseLike<T>(value: unknown): value is PromiseLike<T> {\n return isPromise(value) || isFunction(getProp(value, [\"then\"]));\n}\n\nexport async function arrayFromAsync<A, B>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A> | AsyncIterable<A>,\n limit?: number,\n) {\n limit = limit ?? Infinity;\n const results: A[] = [];\n for await (const chunk of generator) {\n if (results.length >= limit) {\n break;\n }\n results.push(chunk);\n }\n return results;\n}\n\nexport type EmitterToGeneratorFn<T, R> = (data: { emit: (data: T) => void }) => Promise<R>;\nexport async function* emitterToGenerator<T, R>(fn: EmitterToGeneratorFn<T, R>) {\n interface Data {\n data?: T;\n error?: Error;\n done?: boolean;\n }\n\n const queue: Data[] = [];\n void fn({\n emit: (data: T) => queue.push({ data }),\n })\n .then(() => queue.push({ done: true }))\n .catch((error) => queue.push({ error, done: true }));\n\n while (true) {\n while (queue.length === 0) {\n await new Promise((resolve) => setImmediate(resolve));\n }\n\n const { data, done, error } = queue.shift()!;\n if (error) {\n throw error;\n }\n if (done) {\n break;\n }\n yield data!;\n }\n}\n\nexport async function asyncProperties<T extends NonNullable<unknown>>(\n obj: T,\n): Promise<{ [K in keyof T]: Awaited<T[K]> }> {\n return Object.fromEntries(\n await Promise.all(Object.entries(obj).map(async ([key, value]) => [key, await value])),\n );\n}\n\ninterface SafeExecuteOptions<T> {\n handler: () => T;\n onSuccess?: (result: T) => void;\n onError?: (err: Error) => void;\n}\n\nexport function safeExecute<T>({ handler, onError, onSuccess }: SafeExecuteOptions<T>): void {\n try {\n const result = handler();\n if (isPromiseLike<T>(result)) {\n result.then(\n (result) => onSuccess?.(result),\n (err) => onError?.(err),\n );\n } else {\n onSuccess?.(result);\n }\n } catch (e) {\n onError?.(e);\n }\n}\n\nexport function asyncExecute<R>(handler: () => R): Promise<R> {\n return new Promise((onSuccess, onError) => {\n safeExecute({\n handler,\n onSuccess,\n onError,\n });\n });\n}\n\nexport class LazyPromise<R> implements Promise<R> {\n constructor(protected readonly handler: () => Promise<R>) {}\n\n readonly [Symbol.toStringTag] = \"Promise\";\n\n protected async before(): Promise<void> {}\n\n then<TResult1 = R, TResult2 = never>(\n onfulfilled?: ((value: R) => PromiseLike<TResult1> | TResult1) | undefined | null,\n onrejected?: ((reason: any) => PromiseLike<TResult2> | TResult2) | undefined | null,\n ): Promise<TResult1 | TResult2> {\n return this.before().then(this.handler).then(onfulfilled).catch(onrejected);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: any) => PromiseLike<TResult> | TResult) | undefined | null,\n ): Promise<R | TResult> {\n return this.before().then(this.handler).then(undefined).catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | undefined | null): Promise<R> {\n return this.before().then(this.handler).finally(onfinally);\n }\n}\n\nexport async function signalRace<R>(\n fn: () => Promise<R>,\n signal?: AbortSignal,\n onAbort?: () => void,\n): Promise<R> {\n return new Promise<R>((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason);\n return;\n }\n\n const signalFn = () => {\n onAbort?.();\n reject(signal?.reason);\n };\n signal?.addEventListener?.(\"abort\", signalFn);\n fn()\n .then(resolve)\n .catch(reject)\n .finally(() => signal?.removeEventListener?.(\"abort\", signalFn));\n });\n}\n\nexport async function executeSequentially(tasks: (() => Promise<any>)[]): Promise<void> {\n for (const task of tasks) {\n await task();\n }\n}\n\nexport async function* toAsyncGenerator<T>(promise: T): AsyncGenerator<Awaited<T>> {\n yield await promise;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/promise.ts"],"names":["isPromiseLike","value","isPromise","isFunction","getProp","arrayFromAsync","generator","limit","Infinity","results","chunk","length","push","emitterToGenerator","fn","queue","emit","data","then","done","catch","error","Promise","resolve","setImmediate","shift","asyncProperties","obj","Object","fromEntries","all","entries","map","key","safeExecute","handler","onError","onSuccess","result","err","e","asyncExecute","LazyPromise","constructor","Symbol","toStringTag","before","onfulfilled","onrejected","undefined","finally","onfinally","signalRace","signal","onAbort","reject","aborted","reason","signalFn","addEventListener","removeEventListener","executeSequentially","tasks","task","toAsyncGenerator","promise"],"mappings":"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","file":"promise.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isFunction, isPromise } from \"remeda\";\nimport { getProp } from \"@/internals/helpers/object.js\";\n\nexport function isPromiseLike<T>(value: unknown): value is PromiseLike<T> {\n return isPromise(value) || isFunction(getProp(value, [\"then\"]));\n}\n\nexport async function arrayFromAsync<A, B>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A> | AsyncIterable<A>,\n limit?: number,\n) {\n limit = limit ?? Infinity;\n const results: A[] = [];\n for await (const chunk of generator) {\n if (results.length >= limit) {\n break;\n }\n results.push(chunk);\n }\n return results;\n}\n\nexport type EmitterToGeneratorFn<T, R> = (data: { emit: (data: T) => void }) => Promise<R>;\nexport async function* emitterToGenerator<T, R>(fn: EmitterToGeneratorFn<T, R>) {\n interface Data {\n data?: T;\n error?: Error;\n done?: boolean;\n }\n\n const queue: Data[] = [];\n void fn({\n emit: (data: T) => queue.push({ data }),\n })\n .then(() => queue.push({ done: true }))\n .catch((error) => queue.push({ error, done: true }));\n\n while (true) {\n while (queue.length === 0) {\n await new Promise((resolve) => setImmediate(resolve));\n }\n\n const { data, done, error } = queue.shift()!;\n if (error) {\n throw error;\n }\n if (done) {\n break;\n }\n yield data!;\n }\n}\n\nexport async function asyncProperties<T extends NonNullable<unknown>>(\n obj: T,\n): Promise<{ [K in keyof T]: Awaited<T[K]> }> {\n return Object.fromEntries(\n await Promise.all(Object.entries(obj).map(async ([key, value]) => [key, await value])),\n );\n}\n\ninterface SafeExecuteOptions<T> {\n handler: () => T;\n onSuccess?: (result: T) => void;\n onError?: (err: Error) => void;\n}\n\nexport function safeExecute<T>({ handler, onError, onSuccess }: SafeExecuteOptions<T>): void {\n try {\n const result = handler();\n if (isPromiseLike<T>(result)) {\n result.then(\n (result) => onSuccess?.(result),\n (err) => onError?.(err),\n );\n } else {\n onSuccess?.(result);\n }\n } catch (e) {\n onError?.(e);\n }\n}\n\nexport function asyncExecute<R>(handler: () => R): Promise<R> {\n return new Promise((onSuccess, onError) => {\n safeExecute({\n handler,\n onSuccess,\n onError,\n });\n });\n}\n\nexport class LazyPromise<R> implements Promise<R> {\n constructor(protected readonly handler: () => Promise<R>) {}\n\n readonly [Symbol.toStringTag] = \"Promise\";\n\n protected async before(): Promise<void> {}\n\n then<TResult1 = R, TResult2 = never>(\n onfulfilled?: ((value: R) => PromiseLike<TResult1> | TResult1) | undefined | null,\n onrejected?: ((reason: any) => PromiseLike<TResult2> | TResult2) | undefined | null,\n ): Promise<TResult1 | TResult2> {\n return this.before().then(this.handler).then(onfulfilled).catch(onrejected);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: any) => PromiseLike<TResult> | TResult) | undefined | null,\n ): Promise<R | TResult> {\n return this.before().then(this.handler).then(undefined).catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | undefined | null): Promise<R> {\n return this.before().then(this.handler).finally(onfinally);\n }\n}\n\nexport async function signalRace<R>(\n fn: () => Promise<R>,\n signal?: AbortSignal,\n onAbort?: () => void,\n): Promise<R> {\n return new Promise<R>((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason);\n return;\n }\n\n const signalFn = () => {\n onAbort?.();\n reject(signal?.reason);\n };\n signal?.addEventListener?.(\"abort\", signalFn);\n fn()\n .then(resolve)\n .catch(reject)\n .finally(() => signal?.removeEventListener?.(\"abort\", signalFn));\n });\n}\n\nexport async function executeSequentially(tasks: (() => Promise<any>)[]): Promise<void> {\n for (const task of tasks) {\n await task();\n }\n}\n\nexport async function* toAsyncGenerator<T>(promise: T): AsyncGenerator<Awaited<T>> {\n yield await promise;\n}\n"]}
1
+ {"version":3,"sources":["promise.ts"],"names":["isPromiseLike","value","isPromise","isFunction","getProp","arrayFromAsync","generator","limit","Infinity","results","chunk","length","push","emitterToGenerator","fn","queue","emit","data","then","done","catch","error","Promise","resolve","setImmediate","shift","asyncProperties","obj","Object","fromEntries","all","entries","map","key","safeExecute","handler","onError","onSuccess","result","err","e","asyncExecute","LazyPromise","constructor","Symbol","toStringTag","before","onfulfilled","onrejected","undefined","finally","onfinally","signalRace","signal","onAbort","reject","aborted","reason","signalFn","addEventListener","removeEventListener","executeSequentially","tasks","task","toAsyncGenerator","promise"],"mappings":"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","file":"promise.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isFunction, isPromise } from \"remeda\";\nimport { getProp } from \"@/internals/helpers/object.js\";\n\nexport function isPromiseLike<T>(value: unknown): value is PromiseLike<T> {\n return isPromise(value) || isFunction(getProp(value, [\"then\"]));\n}\n\nexport async function arrayFromAsync<A, B>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A> | AsyncIterable<A>,\n limit?: number,\n) {\n limit = limit ?? Infinity;\n const results: A[] = [];\n for await (const chunk of generator) {\n if (results.length >= limit) {\n break;\n }\n results.push(chunk);\n }\n return results;\n}\n\nexport type EmitterToGeneratorFn<T, R> = (data: { emit: (data: T) => void }) => Promise<R>;\nexport async function* emitterToGenerator<T, R>(fn: EmitterToGeneratorFn<T, R>) {\n interface Data {\n data?: T;\n error?: Error;\n done?: boolean;\n }\n\n const queue: Data[] = [];\n void fn({\n emit: (data: T) => queue.push({ data }),\n })\n .then(() => queue.push({ done: true }))\n .catch((error) => queue.push({ error, done: true }));\n\n while (true) {\n while (queue.length === 0) {\n await new Promise((resolve) => setImmediate(resolve));\n }\n\n const { data, done, error } = queue.shift()!;\n if (error) {\n throw error;\n }\n if (done) {\n break;\n }\n yield data!;\n }\n}\n\nexport async function asyncProperties<T extends NonNullable<unknown>>(\n obj: T,\n): Promise<{ [K in keyof T]: Awaited<T[K]> }> {\n return Object.fromEntries(\n await Promise.all(Object.entries(obj).map(async ([key, value]) => [key, await value])),\n );\n}\n\ninterface SafeExecuteOptions<T> {\n handler: () => T;\n onSuccess?: (result: T) => void;\n onError?: (err: Error) => void;\n}\n\nexport function safeExecute<T>({ handler, onError, onSuccess }: SafeExecuteOptions<T>): void {\n try {\n const result = handler();\n if (isPromiseLike<T>(result)) {\n result.then(\n (result) => onSuccess?.(result),\n (err) => onError?.(err),\n );\n } else {\n onSuccess?.(result);\n }\n } catch (e) {\n onError?.(e);\n }\n}\n\nexport function asyncExecute<R>(handler: () => R): Promise<R> {\n return new Promise((onSuccess, onError) => {\n safeExecute({\n handler,\n onSuccess,\n onError,\n });\n });\n}\n\nexport class LazyPromise<R> implements Promise<R> {\n constructor(protected readonly handler: () => Promise<R>) {}\n\n readonly [Symbol.toStringTag] = \"Promise\";\n\n protected async before(): Promise<void> {}\n\n then<TResult1 = R, TResult2 = never>(\n onfulfilled?: ((value: R) => PromiseLike<TResult1> | TResult1) | undefined | null,\n onrejected?: ((reason: any) => PromiseLike<TResult2> | TResult2) | undefined | null,\n ): Promise<TResult1 | TResult2> {\n return this.before().then(this.handler).then(onfulfilled).catch(onrejected);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: any) => PromiseLike<TResult> | TResult) | undefined | null,\n ): Promise<R | TResult> {\n return this.before().then(this.handler).then(undefined).catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | undefined | null): Promise<R> {\n return this.before().then(this.handler).finally(onfinally);\n }\n}\n\nexport async function signalRace<R>(\n fn: () => Promise<R>,\n signal?: AbortSignal,\n onAbort?: () => void,\n): Promise<R> {\n return new Promise<R>((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason);\n return;\n }\n\n const signalFn = () => {\n onAbort?.();\n reject(signal?.reason);\n };\n signal?.addEventListener?.(\"abort\", signalFn);\n fn()\n .then(resolve)\n .catch(reject)\n .finally(() => signal?.removeEventListener?.(\"abort\", signalFn));\n });\n}\n\nexport async function executeSequentially(tasks: (() => Promise<any>)[]): Promise<void> {\n for (const task of tasks) {\n await task();\n }\n}\n\nexport async function* toAsyncGenerator<T>(promise: T): AsyncGenerator<Awaited<T>> {\n yield await promise;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/prototype.ts"],"names":["traversePrototypeChain","value","excluded","node","undefined","Object","getPrototypeOf","has","isDirectInstanceOf","object","constructor","R","isTruthy","prototype","findDescriptor","target","property","descriptor","getOwnPropertyDescriptor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,UAAUA,sBAAAA,CAAuBC,OAAgBC,QAAmB,EAAA;AACzE,EAAA,IAAIC,IAAOF,GAAAA,KAAAA;AACX,EAAOE,OAAAA,IAAAA,KAAS,IAAQA,IAAAA,IAAAA,KAASC,KAAW,CAAA,EAAA;AAC1CD,IAAOE,IAAAA,GAAAA,MAAAA,CAAOC,eAAeH,IAAAA,CAAAA;AAC7B,IAAA,IAAI,CAACD,QAAAA,EAAUK,GAAMJ,GAAAA,IAAAA,CAAO,EAAA;AAC1B,MAAMA,MAAAA,IAAAA;AACR;AACF;AACF;AARiBH,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAUV,SAASQ,kBAAAA,CACdC,QACAC,WAAgC,EAAA;AAEhC,EAAOC,OAAAA,YAAAA,CAAEC,SAASH,MAAAA,CAAAA,IAAWJ,OAAOC,cAAeG,CAAAA,MAAAA,MAAYC,WAAYG,CAAAA,SAAAA;AAC7E;AALgBL,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAOT,SAASM,cAAAA,CACdC,QACAC,QAAiB,EAAA;AAEjB,EAAWb,KAAAA,MAAAA,IAAAA,IAAQH,sBAAuBe,CAAAA,MAAAA,CAAS,EAAA;AACjD,IAAA,MAAME,UAAaZ,GAAAA,MAAAA,CAAOa,wBAAyBf,CAAAA,IAAAA,EAAMa,QAAAA,CAAAA;AACzD,IAAA,IAAIC,UAAY,EAAA;AACd,MAAOA,OAAAA,UAAAA;AACT;AACF;AACA,EAAO,OAAA,IAAA;AACT;AAXgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA","file":"prototype.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\n\nexport function* traversePrototypeChain(value: unknown, excluded?: Set<any>) {\n let node = value;\n while (node !== null && node !== undefined) {\n node = Object.getPrototypeOf(node);\n if (!excluded?.has?.(node)) {\n yield node;\n }\n }\n}\n\nexport function isDirectInstanceOf<A>(\n object: unknown,\n constructor: ClassConstructor<A>,\n): object is A {\n return R.isTruthy(object) && Object.getPrototypeOf(object) === constructor.prototype;\n}\n\nexport function findDescriptor<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): PropertyDescriptor | null {\n for (const node of traversePrototypeChain(target)) {\n const descriptor = Object.getOwnPropertyDescriptor(node, property);\n if (descriptor) {\n return descriptor;\n }\n }\n return null;\n}\n"]}
1
+ {"version":3,"sources":["prototype.ts"],"names":["traversePrototypeChain","value","excluded","node","undefined","Object","getPrototypeOf","has","isDirectInstanceOf","object","constructor","R","isTruthy","prototype","findDescriptor","target","property","descriptor","getOwnPropertyDescriptor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,UAAUA,sBAAAA,CAAuBC,OAAgBC,QAAmB,EAAA;AACzE,EAAA,IAAIC,IAAOF,GAAAA,KAAAA;AACX,EAAOE,OAAAA,IAAAA,KAAS,IAAQA,IAAAA,IAAAA,KAASC,MAAW,EAAA;AAC1CD,IAAOE,IAAAA,GAAAA,MAAAA,CAAOC,eAAeH,IAAAA,CAAAA;AAC7B,IAAA,IAAI,CAACD,QAAAA,EAAUK,GAAMJ,GAAAA,IAAAA,CAAO,EAAA;AAC1B,MAAMA,MAAAA,IAAAA;AACR;AACF;AACF;AARiBH,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAUV,SAASQ,kBAAAA,CACdC,QACAC,WAAgC,EAAA;AAEhC,EAAOC,OAAAA,YAAAA,CAAEC,SAASH,MAAAA,CAAAA,IAAWJ,OAAOC,cAAeG,CAAAA,MAAAA,MAAYC,WAAYG,CAAAA,SAAAA;AAC7E;AALgBL,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAOT,SAASM,cAAAA,CACdC,QACAC,QAAiB,EAAA;AAEjB,EAAWb,KAAAA,MAAAA,IAAAA,IAAQH,sBAAuBe,CAAAA,MAAAA,CAAS,EAAA;AACjD,IAAA,MAAME,UAAaZ,GAAAA,MAAAA,CAAOa,wBAAyBf,CAAAA,IAAAA,EAAMa,QAAAA,CAAAA;AACzD,IAAA,IAAIC,UAAY,EAAA;AACd,MAAOA,OAAAA,UAAAA;AACT;AACF;AACA,EAAO,OAAA,IAAA;AACT;AAXgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA","file":"prototype.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\n\nexport function* traversePrototypeChain(value: unknown, excluded?: Set<any>) {\n let node = value;\n while (node !== null && node !== undefined) {\n node = Object.getPrototypeOf(node);\n if (!excluded?.has?.(node)) {\n yield node;\n }\n }\n}\n\nexport function isDirectInstanceOf<A>(\n object: unknown,\n constructor: ClassConstructor<A>,\n): object is A {\n return R.isTruthy(object) && Object.getPrototypeOf(object) === constructor.prototype;\n}\n\nexport function findDescriptor<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): PropertyDescriptor | null {\n for (const node of traversePrototypeChain(target)) {\n const descriptor = Object.getOwnPropertyDescriptor(node, property);\n if (descriptor) {\n return descriptor;\n }\n }\n return null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/prototype.ts"],"names":["traversePrototypeChain","value","excluded","node","undefined","Object","getPrototypeOf","has","isDirectInstanceOf","object","constructor","R","isTruthy","prototype","findDescriptor","target","property","descriptor","getOwnPropertyDescriptor"],"mappings":";;;;AAmBO,UAAUA,sBAAAA,CAAuBC,OAAgBC,QAAmB,EAAA;AACzE,EAAA,IAAIC,IAAOF,GAAAA,KAAAA;AACX,EAAOE,OAAAA,IAAAA,KAAS,IAAQA,IAAAA,IAAAA,KAASC,KAAW,CAAA,EAAA;AAC1CD,IAAOE,IAAAA,GAAAA,MAAAA,CAAOC,eAAeH,IAAAA,CAAAA;AAC7B,IAAA,IAAI,CAACD,QAAAA,EAAUK,GAAMJ,GAAAA,IAAAA,CAAO,EAAA;AAC1B,MAAMA,MAAAA,IAAAA;AACR;AACF;AACF;AARiBH,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAUV,SAASQ,kBAAAA,CACdC,QACAC,WAAgC,EAAA;AAEhC,EAAOC,OAAAA,CAAAA,CAAEC,SAASH,MAAAA,CAAAA,IAAWJ,OAAOC,cAAeG,CAAAA,MAAAA,MAAYC,WAAYG,CAAAA,SAAAA;AAC7E;AALgBL,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAOT,SAASM,cAAAA,CACdC,QACAC,QAAiB,EAAA;AAEjB,EAAWb,KAAAA,MAAAA,IAAAA,IAAQH,sBAAuBe,CAAAA,MAAAA,CAAS,EAAA;AACjD,IAAA,MAAME,UAAaZ,GAAAA,MAAAA,CAAOa,wBAAyBf,CAAAA,IAAAA,EAAMa,QAAAA,CAAAA;AACzD,IAAA,IAAIC,UAAY,EAAA;AACd,MAAOA,OAAAA,UAAAA;AACT;AACF;AACA,EAAO,OAAA,IAAA;AACT;AAXgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA","file":"prototype.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\n\nexport function* traversePrototypeChain(value: unknown, excluded?: Set<any>) {\n let node = value;\n while (node !== null && node !== undefined) {\n node = Object.getPrototypeOf(node);\n if (!excluded?.has?.(node)) {\n yield node;\n }\n }\n}\n\nexport function isDirectInstanceOf<A>(\n object: unknown,\n constructor: ClassConstructor<A>,\n): object is A {\n return R.isTruthy(object) && Object.getPrototypeOf(object) === constructor.prototype;\n}\n\nexport function findDescriptor<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): PropertyDescriptor | null {\n for (const node of traversePrototypeChain(target)) {\n const descriptor = Object.getOwnPropertyDescriptor(node, property);\n if (descriptor) {\n return descriptor;\n }\n }\n return null;\n}\n"]}
1
+ {"version":3,"sources":["prototype.ts"],"names":["traversePrototypeChain","value","excluded","node","undefined","Object","getPrototypeOf","has","isDirectInstanceOf","object","constructor","R","isTruthy","prototype","findDescriptor","target","property","descriptor","getOwnPropertyDescriptor"],"mappings":";;;;AAmBO,UAAUA,sBAAAA,CAAuBC,OAAgBC,QAAmB,EAAA;AACzE,EAAA,IAAIC,IAAOF,GAAAA,KAAAA;AACX,EAAOE,OAAAA,IAAAA,KAAS,IAAQA,IAAAA,IAAAA,KAASC,MAAW,EAAA;AAC1CD,IAAOE,IAAAA,GAAAA,MAAAA,CAAOC,eAAeH,IAAAA,CAAAA;AAC7B,IAAA,IAAI,CAACD,QAAAA,EAAUK,GAAMJ,GAAAA,IAAAA,CAAO,EAAA;AAC1B,MAAMA,MAAAA,IAAAA;AACR;AACF;AACF;AARiBH,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAUV,SAASQ,kBAAAA,CACdC,QACAC,WAAgC,EAAA;AAEhC,EAAOC,OAAAA,CAAAA,CAAEC,SAASH,MAAAA,CAAAA,IAAWJ,OAAOC,cAAeG,CAAAA,MAAAA,MAAYC,WAAYG,CAAAA,SAAAA;AAC7E;AALgBL,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAOT,SAASM,cAAAA,CACdC,QACAC,QAAiB,EAAA;AAEjB,EAAWb,KAAAA,MAAAA,IAAAA,IAAQH,sBAAuBe,CAAAA,MAAAA,CAAS,EAAA;AACjD,IAAA,MAAME,UAAaZ,GAAAA,MAAAA,CAAOa,wBAAyBf,CAAAA,IAAAA,EAAMa,QAAAA,CAAAA;AACzD,IAAA,IAAIC,UAAY,EAAA;AACd,MAAOA,OAAAA,UAAAA;AACT;AACF;AACA,EAAO,OAAA,IAAA;AACT;AAXgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA","file":"prototype.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\n\nexport function* traversePrototypeChain(value: unknown, excluded?: Set<any>) {\n let node = value;\n while (node !== null && node !== undefined) {\n node = Object.getPrototypeOf(node);\n if (!excluded?.has?.(node)) {\n yield node;\n }\n }\n}\n\nexport function isDirectInstanceOf<A>(\n object: unknown,\n constructor: ClassConstructor<A>,\n): object is A {\n return R.isTruthy(object) && Object.getPrototypeOf(object) === constructor.prototype;\n}\n\nexport function findDescriptor<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): PropertyDescriptor | null {\n for (const node of traversePrototypeChain(target)) {\n const descriptor = Object.getOwnPropertyDescriptor(node, property);\n if (descriptor) {\n return descriptor;\n }\n }\n return null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/retry.ts"],"names":["pRetry","fn","options","handler","attempt","remaining","factor","ms","Math","round","pow","setTimeout","undefined","signal","e","meta","FrameworkError","isAbortError","cause","onFailedAttempt","shouldRetry","signalRace","retries"],"mappings":";;;;;;;;AAiCA,eAAsBA,MAAAA,CACpBC,IACAC,OAAiB,EAAA;AAEjB,EAAMC,MAAAA,OAAAA,mBAAiBC,MAAAA,CAAAA,OAAAA,OAAAA,EAAiBC,SAAAA,KAAAA;AACtC,IAAI,IAAA;AACF,MAAMC,MAAAA,MAAAA,GAASJ,SAASI,MAAU,IAAA,CAAA;AAClC,MAAA,IAAIF,UAAU,CAAG,EAAA;AACf,QAAMG,MAAAA,EAAAA,GAAKC,KAAKC,KAAMD,CAAAA,IAAAA,CAAKE,IAAIJ,MAAQF,EAAAA,OAAAA,GAAU,CAAA,CAAA,CAAM,GAAA,GAAA;AACvD,QAAMO,MAAAA,mBAAAA,CAAWJ,IAAIK,KAAW,CAAA,EAAA;AAC9BC,UAAAA,MAAAA,EAAQX,OAASW,EAAAA;SACnB,CAAA;AACF;AAEA,MAAO,OAAA,MAAMZ,GAAGG,OAAAA,CAAAA;AAClB,KAAA,CAAA,OAASU,CAAG,EAAA;AACV,MAAA,MAAMC,IAAa,GAAA;AACjBX,QAAAA,OAAAA;AACAC,QAAAA;AACF,OAAA;AAEA,MAAIW,IAAAA,yBAAAA,CAAeC,YAAaH,CAAAA,CAAAA,CAAI,EAAA;AAClC,QAAA,MAAMA,EAAEI,KAASJ,IAAAA,CAAAA;AACnB;AAEA,MAAMZ,MAAAA,OAAAA,EAASiB,eAAkBL,GAAAA,CAAAA,EAAGC,IAAAA,CAAAA;AACpC,MAAA,IAAIV,aAAa,CAAG,EAAA;AAClB,QAAMS,MAAAA,CAAAA;AACR;AAEA,MAAA,IAAK,MAAMZ,OAASkB,EAAAA,WAAAA,GAAcN,CAAGC,EAAAA,IAAAA,MAAW,KAAO,EAAA;AACrD,QAAMD,MAAAA,CAAAA;AACR;AACA,MAAA,OAAO,MAAMX,OAAAA,CAAQC,OAAU,GAAA,CAAA,EAAGC,YAAY,CAAA,CAAA;AAChD;GA9Bc,EAAA,SAAA,CAAA;AAiChB,EAAO,OAAA,MAAMgB,sBAAW,CAAA,MAAMlB,OAAQ,CAAA,CAAA,EAAGD,SAASoB,OAAW,IAAA,CAAA,CAAIpB,EAAAA,OAAAA,EAASW,MAAAA,CAAAA;AAC5E;AAtCsBb,MAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA","file":"retry.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { setTimeout } from \"node:timers/promises\";\nimport { signalRace } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\n\ninterface Meta {\n attempt: number;\n remaining: number;\n}\n\ninterface Options {\n signal?: AbortSignal;\n factor?: number;\n retries?: number;\n shouldRetry?: (e: Error, meta: Meta) => boolean | Promise<boolean>;\n onFailedAttempt?: (e: Error, meta: Meta) => void | Promise<void>;\n}\n\nexport async function pRetry<T>(\n fn: (attempt: number) => Promise<T>,\n options?: Options,\n): Promise<T> {\n const handler = async (attempt: number, remaining: number) => {\n try {\n const factor = options?.factor ?? 2;\n if (attempt > 1) {\n const ms = Math.round(Math.pow(factor, attempt - 1)) * 1000;\n await setTimeout(ms, undefined, {\n signal: options?.signal,\n });\n }\n\n return await fn(attempt);\n } catch (e) {\n const meta: Meta = {\n attempt,\n remaining,\n };\n\n if (FrameworkError.isAbortError(e)) {\n throw e.cause || e;\n }\n\n await options?.onFailedAttempt?.(e, meta);\n if (remaining <= 0) {\n throw e;\n }\n\n if ((await options?.shouldRetry?.(e, meta)) === false) {\n throw e;\n }\n return await handler(attempt + 1, remaining - 1);\n }\n };\n\n return await signalRace(() => handler(1, options?.retries ?? 0), options?.signal);\n}\n"]}
1
+ {"version":3,"sources":["retry.ts"],"names":["pRetry","fn","options","handler","attempt","remaining","factor","ms","Math","round","pow","setTimeout","undefined","signal","e","meta","FrameworkError","isAbortError","cause","onFailedAttempt","shouldRetry","signalRace","retries"],"mappings":";;;;;;;;AAiCA,eAAsBA,MAAAA,CACpBC,IACAC,OAAiB,EAAA;AAEjB,EAAMC,MAAAA,OAAAA,mBAAiBC,MAAAA,CAAAA,OAAAA,OAAAA,EAAiBC,SAAAA,KAAAA;AACtC,IAAI,IAAA;AACF,MAAMC,MAAAA,MAAAA,GAASJ,SAASI,MAAU,IAAA,CAAA;AAClC,MAAA,IAAIF,UAAU,CAAG,EAAA;AACf,QAAMG,MAAAA,EAAAA,GAAKC,KAAKC,KAAMD,CAAAA,IAAAA,CAAKE,IAAIJ,MAAQF,EAAAA,OAAAA,GAAU,CAAA,CAAA,CAAM,GAAA,GAAA;AACvD,QAAMO,MAAAA,mBAAAA,CAAWJ,IAAIK,KAAW,CAAA,EAAA;AAC9BC,UAAAA,MAAAA,EAAQX,OAASW,EAAAA;SACnB,CAAA;AACF;AAEA,MAAO,OAAA,MAAMZ,GAAGG,OAAAA,CAAAA;AAClB,KAAA,CAAA,OAASU,CAAG,EAAA;AACV,MAAA,MAAMC,IAAa,GAAA;AACjBX,QAAAA,OAAAA;AACAC,QAAAA;AACF,OAAA;AAEA,MAAIW,IAAAA,yBAAAA,CAAeC,YAAaH,CAAAA,CAAAA,CAAI,EAAA;AAClC,QAAA,MAAMA,EAAEI,KAASJ,IAAAA,CAAAA;AACnB;AAEA,MAAMZ,MAAAA,OAAAA,EAASiB,eAAkBL,GAAAA,CAAAA,EAAGC,IAAAA,CAAAA;AACpC,MAAA,IAAIV,aAAa,CAAG,EAAA;AAClB,QAAMS,MAAAA,CAAAA;AACR;AAEA,MAAA,IAAK,MAAMZ,OAASkB,EAAAA,WAAAA,GAAcN,CAAGC,EAAAA,IAAAA,MAAW,KAAO,EAAA;AACrD,QAAMD,MAAAA,CAAAA;AACR;AACA,MAAA,OAAO,MAAMX,OAAAA,CAAQC,OAAU,GAAA,CAAA,EAAGC,YAAY,CAAA,CAAA;AAChD;GA9Bc,EAAA,SAAA,CAAA;AAiChB,EAAO,OAAA,MAAMgB,sBAAW,CAAA,MAAMlB,OAAQ,CAAA,CAAA,EAAGD,SAASoB,OAAW,IAAA,CAAA,CAAIpB,EAAAA,OAAAA,EAASW,MAAAA,CAAAA;AAC5E;AAtCsBb,MAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA","file":"retry.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { setTimeout } from \"node:timers/promises\";\nimport { signalRace } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\n\ninterface Meta {\n attempt: number;\n remaining: number;\n}\n\ninterface Options {\n signal?: AbortSignal;\n factor?: number;\n retries?: number;\n shouldRetry?: (e: Error, meta: Meta) => boolean | Promise<boolean>;\n onFailedAttempt?: (e: Error, meta: Meta) => void | Promise<void>;\n}\n\nexport async function pRetry<T>(\n fn: (attempt: number) => Promise<T>,\n options?: Options,\n): Promise<T> {\n const handler = async (attempt: number, remaining: number) => {\n try {\n const factor = options?.factor ?? 2;\n if (attempt > 1) {\n const ms = Math.round(Math.pow(factor, attempt - 1)) * 1000;\n await setTimeout(ms, undefined, {\n signal: options?.signal,\n });\n }\n\n return await fn(attempt);\n } catch (e) {\n const meta: Meta = {\n attempt,\n remaining,\n };\n\n if (FrameworkError.isAbortError(e)) {\n throw e.cause || e;\n }\n\n await options?.onFailedAttempt?.(e, meta);\n if (remaining <= 0) {\n throw e;\n }\n\n if ((await options?.shouldRetry?.(e, meta)) === false) {\n throw e;\n }\n return await handler(attempt + 1, remaining - 1);\n }\n };\n\n return await signalRace(() => handler(1, options?.retries ?? 0), options?.signal);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/retry.ts"],"names":["pRetry","fn","options","handler","attempt","remaining","factor","ms","Math","round","pow","setTimeout","undefined","signal","e","meta","FrameworkError","isAbortError","cause","onFailedAttempt","shouldRetry","signalRace","retries"],"mappings":";;;;;;AAiCA,eAAsBA,MAAAA,CACpBC,IACAC,OAAiB,EAAA;AAEjB,EAAMC,MAAAA,OAAAA,mBAAiBC,MAAAA,CAAAA,OAAAA,OAAAA,EAAiBC,SAAAA,KAAAA;AACtC,IAAI,IAAA;AACF,MAAMC,MAAAA,MAAAA,GAASJ,SAASI,MAAU,IAAA,CAAA;AAClC,MAAA,IAAIF,UAAU,CAAG,EAAA;AACf,QAAMG,MAAAA,EAAAA,GAAKC,KAAKC,KAAMD,CAAAA,IAAAA,CAAKE,IAAIJ,MAAQF,EAAAA,OAAAA,GAAU,CAAA,CAAA,CAAM,GAAA,GAAA;AACvD,QAAMO,MAAAA,UAAAA,CAAWJ,IAAIK,KAAW,CAAA,EAAA;AAC9BC,UAAAA,MAAAA,EAAQX,OAASW,EAAAA;SACnB,CAAA;AACF;AAEA,MAAO,OAAA,MAAMZ,GAAGG,OAAAA,CAAAA;AAClB,KAAA,CAAA,OAASU,CAAG,EAAA;AACV,MAAA,MAAMC,IAAa,GAAA;AACjBX,QAAAA,OAAAA;AACAC,QAAAA;AACF,OAAA;AAEA,MAAIW,IAAAA,cAAAA,CAAeC,YAAaH,CAAAA,CAAAA,CAAI,EAAA;AAClC,QAAA,MAAMA,EAAEI,KAASJ,IAAAA,CAAAA;AACnB;AAEA,MAAMZ,MAAAA,OAAAA,EAASiB,eAAkBL,GAAAA,CAAAA,EAAGC,IAAAA,CAAAA;AACpC,MAAA,IAAIV,aAAa,CAAG,EAAA;AAClB,QAAMS,MAAAA,CAAAA;AACR;AAEA,MAAA,IAAK,MAAMZ,OAASkB,EAAAA,WAAAA,GAAcN,CAAGC,EAAAA,IAAAA,MAAW,KAAO,EAAA;AACrD,QAAMD,MAAAA,CAAAA;AACR;AACA,MAAA,OAAO,MAAMX,OAAAA,CAAQC,OAAU,GAAA,CAAA,EAAGC,YAAY,CAAA,CAAA;AAChD;GA9Bc,EAAA,SAAA,CAAA;AAiChB,EAAO,OAAA,MAAMgB,UAAW,CAAA,MAAMlB,OAAQ,CAAA,CAAA,EAAGD,SAASoB,OAAW,IAAA,CAAA,CAAIpB,EAAAA,OAAAA,EAASW,MAAAA,CAAAA;AAC5E;AAtCsBb,MAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA","file":"retry.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { setTimeout } from \"node:timers/promises\";\nimport { signalRace } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\n\ninterface Meta {\n attempt: number;\n remaining: number;\n}\n\ninterface Options {\n signal?: AbortSignal;\n factor?: number;\n retries?: number;\n shouldRetry?: (e: Error, meta: Meta) => boolean | Promise<boolean>;\n onFailedAttempt?: (e: Error, meta: Meta) => void | Promise<void>;\n}\n\nexport async function pRetry<T>(\n fn: (attempt: number) => Promise<T>,\n options?: Options,\n): Promise<T> {\n const handler = async (attempt: number, remaining: number) => {\n try {\n const factor = options?.factor ?? 2;\n if (attempt > 1) {\n const ms = Math.round(Math.pow(factor, attempt - 1)) * 1000;\n await setTimeout(ms, undefined, {\n signal: options?.signal,\n });\n }\n\n return await fn(attempt);\n } catch (e) {\n const meta: Meta = {\n attempt,\n remaining,\n };\n\n if (FrameworkError.isAbortError(e)) {\n throw e.cause || e;\n }\n\n await options?.onFailedAttempt?.(e, meta);\n if (remaining <= 0) {\n throw e;\n }\n\n if ((await options?.shouldRetry?.(e, meta)) === false) {\n throw e;\n }\n return await handler(attempt + 1, remaining - 1);\n }\n };\n\n return await signalRace(() => handler(1, options?.retries ?? 0), options?.signal);\n}\n"]}
1
+ {"version":3,"sources":["retry.ts"],"names":["pRetry","fn","options","handler","attempt","remaining","factor","ms","Math","round","pow","setTimeout","undefined","signal","e","meta","FrameworkError","isAbortError","cause","onFailedAttempt","shouldRetry","signalRace","retries"],"mappings":";;;;;;AAiCA,eAAsBA,MAAAA,CACpBC,IACAC,OAAiB,EAAA;AAEjB,EAAMC,MAAAA,OAAAA,mBAAiBC,MAAAA,CAAAA,OAAAA,OAAAA,EAAiBC,SAAAA,KAAAA;AACtC,IAAI,IAAA;AACF,MAAMC,MAAAA,MAAAA,GAASJ,SAASI,MAAU,IAAA,CAAA;AAClC,MAAA,IAAIF,UAAU,CAAG,EAAA;AACf,QAAMG,MAAAA,EAAAA,GAAKC,KAAKC,KAAMD,CAAAA,IAAAA,CAAKE,IAAIJ,MAAQF,EAAAA,OAAAA,GAAU,CAAA,CAAA,CAAM,GAAA,GAAA;AACvD,QAAMO,MAAAA,UAAAA,CAAWJ,IAAIK,KAAW,CAAA,EAAA;AAC9BC,UAAAA,MAAAA,EAAQX,OAASW,EAAAA;SACnB,CAAA;AACF;AAEA,MAAO,OAAA,MAAMZ,GAAGG,OAAAA,CAAAA;AAClB,KAAA,CAAA,OAASU,CAAG,EAAA;AACV,MAAA,MAAMC,IAAa,GAAA;AACjBX,QAAAA,OAAAA;AACAC,QAAAA;AACF,OAAA;AAEA,MAAIW,IAAAA,cAAAA,CAAeC,YAAaH,CAAAA,CAAAA,CAAI,EAAA;AAClC,QAAA,MAAMA,EAAEI,KAASJ,IAAAA,CAAAA;AACnB;AAEA,MAAMZ,MAAAA,OAAAA,EAASiB,eAAkBL,GAAAA,CAAAA,EAAGC,IAAAA,CAAAA;AACpC,MAAA,IAAIV,aAAa,CAAG,EAAA;AAClB,QAAMS,MAAAA,CAAAA;AACR;AAEA,MAAA,IAAK,MAAMZ,OAASkB,EAAAA,WAAAA,GAAcN,CAAGC,EAAAA,IAAAA,MAAW,KAAO,EAAA;AACrD,QAAMD,MAAAA,CAAAA;AACR;AACA,MAAA,OAAO,MAAMX,OAAAA,CAAQC,OAAU,GAAA,CAAA,EAAGC,YAAY,CAAA,CAAA;AAChD;GA9Bc,EAAA,SAAA,CAAA;AAiChB,EAAO,OAAA,MAAMgB,UAAW,CAAA,MAAMlB,OAAQ,CAAA,CAAA,EAAGD,SAASoB,OAAW,IAAA,CAAA,CAAIpB,EAAAA,OAAAA,EAASW,MAAAA,CAAAA;AAC5E;AAtCsBb,MAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA","file":"retry.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { setTimeout } from \"node:timers/promises\";\nimport { signalRace } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\n\ninterface Meta {\n attempt: number;\n remaining: number;\n}\n\ninterface Options {\n signal?: AbortSignal;\n factor?: number;\n retries?: number;\n shouldRetry?: (e: Error, meta: Meta) => boolean | Promise<boolean>;\n onFailedAttempt?: (e: Error, meta: Meta) => void | Promise<void>;\n}\n\nexport async function pRetry<T>(\n fn: (attempt: number) => Promise<T>,\n options?: Options,\n): Promise<T> {\n const handler = async (attempt: number, remaining: number) => {\n try {\n const factor = options?.factor ?? 2;\n if (attempt > 1) {\n const ms = Math.round(Math.pow(factor, attempt - 1)) * 1000;\n await setTimeout(ms, undefined, {\n signal: options?.signal,\n });\n }\n\n return await fn(attempt);\n } catch (e) {\n const meta: Meta = {\n attempt,\n remaining,\n };\n\n if (FrameworkError.isAbortError(e)) {\n throw e.cause || e;\n }\n\n await options?.onFailedAttempt?.(e, meta);\n if (remaining <= 0) {\n throw e;\n }\n\n if ((await options?.shouldRetry?.(e, meta)) === false) {\n throw e;\n }\n return await handler(attempt + 1, remaining - 1);\n }\n };\n\n return await signalRace(() => handler(1, options?.retries ?? 0), options?.signal);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/retryable.ts"],"names":["RunStrategy","THROW_IMMEDIATELY","SETTLE_ROUND","SETTLE_ALL","Retryable","constructor","ctx","createRandomHash","executor","onReset","onError","onRetry","config","maxRetries","Math","max","runGroup","strategy","inputs","Promise","all","map","input","get","controller","AbortController","results","allSettled","groupSignal","signal","undefined","catch","err","abort","throwIfAborted","result","value","runSequence","collect","R","values","asyncProperties","mapValues","attempt","executionId","Object","defineProperty","enumerable","isResolved","state","TaskState","RESOLVED","isRejected","REJECTED","_run","task","Task","assertAborted","lastError","pRetry","retries","factor","shouldRetry","e","FrameworkError","isRetryable","aborted","onFailedAttempt","meta","then","x","resolve","reject","resolvedValue","rejectedValue","PENDING","reset"],"mappings":"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","file":"retryable.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\nimport { Task, TaskState } from \"promise-based-task\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { EnumValue } from \"@/internals/types.js\";\nimport { asyncProperties } from \"@/internals/helpers/promise.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { pRetry } from \"@/internals/helpers/retry.js\";\n\nexport interface RetryableConfig {\n maxRetries: number;\n factor?: number;\n signal?: AbortSignal;\n}\n\nexport const RunStrategy = {\n /**\n * Once a single Retryable throws, other retry ables get cancelled immediately.\n */\n THROW_IMMEDIATELY: \"THROW_IMMEDIATELY\",\n\n /**\n * Once a single Retryable throws, wait for other to completes, but prevent further retries.\n */\n SETTLE_ROUND: \"SETTLE_ROUND\",\n\n /**\n * Once a single Retryable throws, other Retryables remains to continue. Error is thrown by the end.\n */\n SETTLE_ALL: \"SETTLE_ALL\",\n} as const;\n\nexport interface RetryableRunConfig {\n groupSignal: AbortSignal;\n}\n\nexport interface RetryableContext {\n executionId: string;\n attempt: number;\n signal?: AbortSignal;\n}\n\nexport type RetryableHandler<T> = (ctx: RetryableContext) => Promise<T>;\nexport type ResetHandler = () => void;\nexport type ErrorHandler = (error: Error, ctx: RetryableContext) => void | Promise<void>;\nexport type RetryHandler = (ctx: RetryableContext, lastError: Error) => void | Promise<void>;\n\nexport class Retryable<T> {\n readonly #id: string;\n #value: Task<T, Error> | null;\n #config: RetryableConfig;\n #handlers;\n\n constructor(ctx: {\n executor: RetryableHandler<T>;\n onReset?: ResetHandler;\n onError?: ErrorHandler;\n onRetry?: RetryHandler;\n config?: Partial<RetryableConfig>;\n }) {\n this.#value = null;\n this.#id = createRandomHash();\n this.#handlers = {\n executor: ctx.executor,\n onReset: ctx.onReset,\n onError: ctx.onError,\n onRetry: ctx.onRetry,\n } as const;\n this.#config = {\n ...ctx.config,\n maxRetries: Math.max(ctx.config?.maxRetries || 0, 0),\n };\n }\n\n static async runGroup<T>(\n strategy: EnumValue<typeof RunStrategy>,\n inputs: Retryable<T>[],\n ): Promise<T[]> {\n if (strategy === RunStrategy.THROW_IMMEDIATELY) {\n return await Promise.all(inputs.map((input) => input.get()));\n }\n\n const controller = new AbortController();\n const results = await Promise.allSettled(\n inputs.map((input) =>\n input\n .get(strategy === RunStrategy.SETTLE_ALL ? { groupSignal: controller.signal } : undefined)\n .catch((err) => {\n controller.abort(err);\n throw err;\n }),\n ),\n );\n controller.signal.throwIfAborted();\n return results.map((result) => (result as PromiseFulfilledResult<T>).value!);\n }\n\n static async *runSequence<T>(inputs: readonly Retryable<T>[]): AsyncGenerator<T> {\n for (const input of inputs) {\n yield await input.get();\n }\n }\n\n static async collect<T>(inputs: T & Record<string, Retryable<any>>) {\n // Solve everything\n await Promise.all(R.values(inputs).map((input) => input.get()));\n\n // Obtain latest values\n return await asyncProperties(\n R.mapValues(inputs, (value) => (value as Retryable<any>).get()) as {\n [K in keyof T]: Promise<T[K] extends Retryable<infer Q> ? Q : never>;\n },\n );\n }\n\n #getContext(attempt: number): RetryableContext {\n const ctx: RetryableContext = {\n attempt,\n executionId: this.#id,\n signal: this.#config.signal,\n };\n Object.defineProperty(ctx, \"signal\", {\n enumerable: false,\n });\n return ctx;\n }\n\n get isResolved(): boolean {\n return this.#value?.state === TaskState.RESOLVED;\n }\n\n get isRejected(): boolean {\n return this.#value?.state === TaskState.REJECTED;\n }\n\n protected _run(config?: RetryableRunConfig) {\n const task = new Task<T, Error>();\n\n const assertAborted = () => {\n this.#config.signal?.throwIfAborted?.();\n config?.groupSignal?.throwIfAborted?.();\n };\n\n let lastError: Error | null = null;\n pRetry(\n async (attempt) => {\n assertAborted();\n\n const ctx = this.#getContext(attempt);\n if (attempt > 1) {\n await this.#handlers.onRetry?.(ctx, lastError!);\n }\n return await this.#handlers.executor(ctx);\n },\n {\n retries: this.#config.maxRetries,\n factor: this.#config.factor,\n signal: this.#config.signal,\n shouldRetry: (e) => {\n if (!FrameworkError.isRetryable(e)) {\n return false;\n }\n return !config?.groupSignal?.aborted && !this.#config.signal?.aborted;\n },\n onFailedAttempt: async (e, meta) => {\n lastError = e;\n await this.#handlers.onError?.(e, this.#getContext(meta.attempt));\n if (!FrameworkError.isRetryable(e)) {\n throw e;\n }\n assertAborted();\n },\n },\n )\n .then((x) => task.resolve(x))\n .catch((x) => task.reject(x));\n\n return task;\n }\n\n async get(config?: RetryableRunConfig): Promise<T> {\n if (this.isResolved) {\n return this.#value!.resolvedValue()!;\n }\n if (this.isRejected) {\n throw this.#value?.rejectedValue();\n }\n\n if (this.#value?.state === TaskState.PENDING && !config) {\n return this.#value;\n }\n\n this.#value?.catch?.(() => {});\n this.#value = this._run(config);\n return this.#value;\n }\n\n reset() {\n this.#value?.catch?.(() => {});\n this.#value = null;\n this.#handlers.onReset?.();\n }\n}\n"]}
1
+ {"version":3,"sources":["retryable.ts"],"names":["RunStrategy","THROW_IMMEDIATELY","SETTLE_ROUND","SETTLE_ALL","Retryable","constructor","ctx","createRandomHash","executor","onReset","onError","onRetry","config","maxRetries","Math","max","runGroup","strategy","inputs","Promise","all","map","input","get","controller","AbortController","results","allSettled","groupSignal","signal","undefined","catch","err","abort","throwIfAborted","result","value","runSequence","collect","R","values","asyncProperties","mapValues","attempt","executionId","Object","defineProperty","enumerable","isResolved","state","TaskState","RESOLVED","isRejected","REJECTED","_run","task","Task","assertAborted","lastError","pRetry","retries","factor","shouldRetry","e","FrameworkError","isRetryable","aborted","onFailedAttempt","meta","then","x","resolve","reject","resolvedValue","rejectedValue","PENDING","reset"],"mappings":"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","file":"retryable.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as R from \"remeda\";\nimport { Task, TaskState } from \"promise-based-task\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { EnumValue } from \"@/internals/types.js\";\nimport { asyncProperties } from \"@/internals/helpers/promise.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { pRetry } from \"@/internals/helpers/retry.js\";\n\nexport interface RetryableConfig {\n maxRetries: number;\n factor?: number;\n signal?: AbortSignal;\n}\n\nexport const RunStrategy = {\n /**\n * Once a single Retryable throws, other retry ables get cancelled immediately.\n */\n THROW_IMMEDIATELY: \"THROW_IMMEDIATELY\",\n\n /**\n * Once a single Retryable throws, wait for other to completes, but prevent further retries.\n */\n SETTLE_ROUND: \"SETTLE_ROUND\",\n\n /**\n * Once a single Retryable throws, other Retryables remains to continue. Error is thrown by the end.\n */\n SETTLE_ALL: \"SETTLE_ALL\",\n} as const;\n\nexport interface RetryableRunConfig {\n groupSignal: AbortSignal;\n}\n\nexport interface RetryableContext {\n executionId: string;\n attempt: number;\n signal?: AbortSignal;\n}\n\nexport type RetryableHandler<T> = (ctx: RetryableContext) => Promise<T>;\nexport type ResetHandler = () => void;\nexport type ErrorHandler = (error: Error, ctx: RetryableContext) => void | Promise<void>;\nexport type RetryHandler = (ctx: RetryableContext, lastError: Error) => void | Promise<void>;\n\nexport class Retryable<T> {\n readonly #id: string;\n #value: Task<T, Error> | null;\n #config: RetryableConfig;\n #handlers;\n\n constructor(ctx: {\n executor: RetryableHandler<T>;\n onReset?: ResetHandler;\n onError?: ErrorHandler;\n onRetry?: RetryHandler;\n config?: Partial<RetryableConfig>;\n }) {\n this.#value = null;\n this.#id = createRandomHash();\n this.#handlers = {\n executor: ctx.executor,\n onReset: ctx.onReset,\n onError: ctx.onError,\n onRetry: ctx.onRetry,\n } as const;\n this.#config = {\n ...ctx.config,\n maxRetries: Math.max(ctx.config?.maxRetries || 0, 0),\n };\n }\n\n static async runGroup<T>(\n strategy: EnumValue<typeof RunStrategy>,\n inputs: Retryable<T>[],\n ): Promise<T[]> {\n if (strategy === RunStrategy.THROW_IMMEDIATELY) {\n return await Promise.all(inputs.map((input) => input.get()));\n }\n\n const controller = new AbortController();\n const results = await Promise.allSettled(\n inputs.map((input) =>\n input\n .get(strategy === RunStrategy.SETTLE_ALL ? { groupSignal: controller.signal } : undefined)\n .catch((err) => {\n controller.abort(err);\n throw err;\n }),\n ),\n );\n controller.signal.throwIfAborted();\n return results.map((result) => (result as PromiseFulfilledResult<T>).value!);\n }\n\n static async *runSequence<T>(inputs: readonly Retryable<T>[]): AsyncGenerator<T> {\n for (const input of inputs) {\n yield await input.get();\n }\n }\n\n static async collect<T>(inputs: T & Record<string, Retryable<any>>) {\n // Solve everything\n await Promise.all(R.values(inputs).map((input) => input.get()));\n\n // Obtain latest values\n return await asyncProperties(\n R.mapValues(inputs, (value) => (value as Retryable<any>).get()) as {\n [K in keyof T]: Promise<T[K] extends Retryable<infer Q> ? Q : never>;\n },\n );\n }\n\n #getContext(attempt: number): RetryableContext {\n const ctx: RetryableContext = {\n attempt,\n executionId: this.#id,\n signal: this.#config.signal,\n };\n Object.defineProperty(ctx, \"signal\", {\n enumerable: false,\n });\n return ctx;\n }\n\n get isResolved(): boolean {\n return this.#value?.state === TaskState.RESOLVED;\n }\n\n get isRejected(): boolean {\n return this.#value?.state === TaskState.REJECTED;\n }\n\n protected _run(config?: RetryableRunConfig) {\n const task = new Task<T, Error>();\n\n const assertAborted = () => {\n this.#config.signal?.throwIfAborted?.();\n config?.groupSignal?.throwIfAborted?.();\n };\n\n let lastError: Error | null = null;\n pRetry(\n async (attempt) => {\n assertAborted();\n\n const ctx = this.#getContext(attempt);\n if (attempt > 1) {\n await this.#handlers.onRetry?.(ctx, lastError!);\n }\n return await this.#handlers.executor(ctx);\n },\n {\n retries: this.#config.maxRetries,\n factor: this.#config.factor,\n signal: this.#config.signal,\n shouldRetry: (e) => {\n if (!FrameworkError.isRetryable(e)) {\n return false;\n }\n return !config?.groupSignal?.aborted && !this.#config.signal?.aborted;\n },\n onFailedAttempt: async (e, meta) => {\n lastError = e;\n await this.#handlers.onError?.(e, this.#getContext(meta.attempt));\n if (!FrameworkError.isRetryable(e)) {\n throw e;\n }\n assertAborted();\n },\n },\n )\n .then((x) => task.resolve(x))\n .catch((x) => task.reject(x));\n\n return task;\n }\n\n async get(config?: RetryableRunConfig): Promise<T> {\n if (this.isResolved) {\n return this.#value!.resolvedValue()!;\n }\n if (this.isRejected) {\n throw this.#value?.rejectedValue();\n }\n\n if (this.#value?.state === TaskState.PENDING && !config) {\n return this.#value;\n }\n\n this.#value?.catch?.(() => {});\n this.#value = this._run(config);\n return this.#value;\n }\n\n reset() {\n this.#value?.catch?.(() => {});\n this.#value = null;\n this.#handlers.onReset?.();\n }\n}\n"]}