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/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.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 { 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.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 { 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 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/schema.ts"],"names":["validateSchema","schema","errorOptions","ZodEffects","ValueError","toJsonSchema","options","ZodType","zodToJsonSchema","createSchemaValidator","jsonSchema","ajv","Ajv","coerceTypes","useDefaults","strict","strictSchema","strictTuples","strictNumbers","strictTypes","strictRequired","parseDate","allowDate","allowUnionTypes","addFormats","default","compile","parseBrokenJson","input","trim","JSON","parse","pair","outer","findFirstPair","jsonrepair"],"mappings":";;;;;;;;;;;;;;;;AA4BO,SAASA,cAAAA,CACdC,QACAC,YAAoC,EAAA;AAEpC,EAAID,IAAAA,MAAAA,IAAUA,kBAAkBE,cAAY,EAAA;AAC1C,IAAA,MAAM,IAAIC,qBAAAA,CACR,sFACA,EAAA,IACAF,YAAAA,CAAAA;AAEJ;AACF;AAXgBF,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAaT,SAASK,YAAAA,CACdJ,QACAK,OAA0B,EAAA;AAE1BN,EAAAA,cAAAA,CAAeC,MAAAA,CAAAA;AACf,EAAA,IAAIA,kBAAkBM,WAAS,EAAA;AAC7B,IAAOC,OAAAA,+BAAAA,CAAgBP,QAAQK,OAAAA,CAAAA;AACjC;AACA,EAAOL,OAAAA,MAAAA;AACT;AATgBI,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAWT,SAASI,qBAAAA,CACdR,QACAK,OAAoB,EAAA;AAEpB,EAAMI,MAAAA,UAAAA,GAAaL,aAAaJ,MAAAA,CAAAA;AAEhC,EAAMU,MAAAA,KAAAA,GAAM,IAAIC,OAAI,CAAA;IAClBC,WAAa,EAAA,OAAA;IACbC,WAAa,EAAA,IAAA;IACbC,MAAQ,EAAA,KAAA;IACRC,YAAc,EAAA,KAAA;IACdC,YAAc,EAAA,IAAA;IACdC,aAAe,EAAA,IAAA;IACfC,WAAa,EAAA,IAAA;IACbC,cAAgB,EAAA,IAAA;IAChBC,SAAW,EAAA,IAAA;IACXC,SAAW,EAAA,IAAA;IACXC,eAAiB,EAAA,IAAA;IACjB,GAAGjB;GACL,CAAA;AACAkB,EAAAA,2BAAAA,CAAWC,QAAQd,KAAAA,CAAAA;AACnB,EAAOA,OAAAA,KAAAA,CAAIe,QAA2BhB,UAAAA,CAAAA;AACxC;AAtBgBD,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AA2BT,SAASkB,eAAAA,CAAgBC,OAA2BtB,OAAgC,EAAA;AACzFsB,EAASA,KAAAA,GAAAA,CAAAA,KAAAA,IAAS,KAAKC,IAAAA,EAAAA;AAEvB,EAAI,IAAA;AACF,IAAI,IAAA;AACF,MAAOC,OAAAA,IAAAA,CAAKC,MAAMH,KAAAA,CAAAA;KACZ,CAAA,MAAA;AACN,MAAA,MAAMI,OAAO1B,OAAS0B,EAAAA,IAAAA;AACtB,MAAA,IAAIA,IAAM,EAAA;AACR,QAAA,MAAM,EAAEC,KAAK,EAAA,GAAKC,wBAAcN,CAAAA,KAAAA,EAAOI,IAAAA,CAAS,IAAA;UAAEC,KAAOL,EAAAA;AAAM,SAAA;AAC/D,QAAA,OAAOE,IAAKC,CAAAA,KAAAA,CAAMI,qBAAWF,CAAAA,KAAAA,CAAAA,CAAAA;OACxB,MAAA;AACL,QAAA,OAAOH,IAAKC,CAAAA,KAAAA,CAAMI,qBAAWP,CAAAA,KAAAA,CAAAA,CAAAA;AAC/B;AACF;GACM,CAAA,MAAA;AACN,IAAO,OAAA,IAAA;AACT;AACF;AAlBgBD,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"schema.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 { TypeOf, ZodType, ZodEffects, ZodTypeAny, AnyZodObject, input } from \"zod\";\nimport { zodToJsonSchema, Options } from \"zod-to-json-schema\";\nimport { Ajv, SchemaObject, ValidateFunction, Options as AjvOptions } from \"ajv\";\nimport addFormats from \"ajv-formats\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\nimport { FrameworkErrorOptions, ValueError } from \"@/errors.js\";\nimport { jsonrepair } from \"jsonrepair\";\nexport type AnyToolSchemaLike = AnyZodObject | SchemaObject;\nexport type AnySchemaLike = ZodTypeAny | SchemaObject;\nexport type FromSchemaLike<T> = T extends ZodTypeAny ? TypeOf<T> : unknown;\nexport type FromSchemaLikeRaw<T> = T extends ZodTypeAny ? input<T> : unknown;\n\nexport function validateSchema<T extends AnySchemaLike>(\n schema: T | ZodEffects<any>,\n errorOptions?: FrameworkErrorOptions,\n): asserts schema is T {\n if (schema && schema instanceof ZodEffects) {\n throw new ValueError(\n \"zod effects (refine, superRefine, transform, ...) cannot be converted to JSONSchema!\",\n [],\n errorOptions,\n );\n }\n}\n\nexport function toJsonSchema<T extends AnySchemaLike>(\n schema: T,\n options?: Partial<Options>,\n): SchemaObject {\n validateSchema(schema);\n if (schema instanceof ZodType) {\n return zodToJsonSchema(schema, options);\n }\n return schema;\n}\n\nexport function createSchemaValidator<T extends AnySchemaLike>(\n schema: T,\n options?: AjvOptions,\n): ValidateFunction<FromSchemaLike<T>> {\n const jsonSchema = toJsonSchema(schema);\n\n const ajv = new Ajv({\n coerceTypes: \"array\",\n useDefaults: true,\n strict: false,\n strictSchema: false,\n strictTuples: true,\n strictNumbers: true,\n strictTypes: true,\n strictRequired: true,\n parseDate: true,\n allowDate: true,\n allowUnionTypes: true,\n ...options,\n });\n addFormats.default(ajv);\n return ajv.compile<FromSchemaLike<T>>(jsonSchema);\n}\n\ninterface ParseBrokenJsonOptions {\n pair?: [string, string] | null;\n}\nexport function parseBrokenJson(input: string | undefined, options?: ParseBrokenJsonOptions) {\n input = (input ?? \"\")?.trim();\n\n try {\n try {\n return JSON.parse(input);\n } catch {\n const pair = options?.pair;\n if (pair) {\n const { outer } = findFirstPair(input, pair) ?? { outer: input };\n return JSON.parse(jsonrepair(outer));\n } else {\n return JSON.parse(jsonrepair(input));\n }\n }\n } catch {\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["schema.ts"],"names":["validateSchema","schema","errorOptions","ZodEffects","ValueError","toJsonSchema","options","ZodType","zodToJsonSchema","createSchemaValidator","jsonSchema","ajv","Ajv","coerceTypes","useDefaults","strict","strictSchema","strictTuples","strictNumbers","strictTypes","strictRequired","parseDate","allowDate","allowUnionTypes","addFormats","default","compile","parseBrokenJson","input","trim","JSON","parse","pair","outer","findFirstPair","jsonrepair"],"mappings":";;;;;;;;;;;;;;;;AA4BO,SAASA,cAAAA,CACdC,QACAC,YAAoC,EAAA;AAEpC,EAAID,IAAAA,MAAAA,IAAUA,kBAAkBE,cAAY,EAAA;AAC1C,IAAA,MAAM,IAAIC,qBAAAA,CACR,sFACA,EAAA,IACAF,YAAAA,CAAAA;AAEJ;AACF;AAXgBF,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAaT,SAASK,YAAAA,CACdJ,QACAK,OAA0B,EAAA;AAE1BN,EAAAA,cAAAA,CAAeC,MAAAA,CAAAA;AACf,EAAA,IAAIA,kBAAkBM,WAAS,EAAA;AAC7B,IAAOC,OAAAA,+BAAAA,CAAgBP,QAAQK,OAAAA,CAAAA;AACjC;AACA,EAAOL,OAAAA,MAAAA;AACT;AATgBI,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAWT,SAASI,qBAAAA,CACdR,QACAK,OAAoB,EAAA;AAEpB,EAAMI,MAAAA,UAAAA,GAAaL,aAAaJ,MAAAA,CAAAA;AAEhC,EAAMU,MAAAA,KAAAA,GAAM,IAAIC,OAAI,CAAA;IAClBC,WAAa,EAAA,OAAA;IACbC,WAAa,EAAA,IAAA;IACbC,MAAQ,EAAA,KAAA;IACRC,YAAc,EAAA,KAAA;IACdC,YAAc,EAAA,IAAA;IACdC,aAAe,EAAA,IAAA;IACfC,WAAa,EAAA,IAAA;IACbC,cAAgB,EAAA,IAAA;IAChBC,SAAW,EAAA,IAAA;IACXC,SAAW,EAAA,IAAA;IACXC,eAAiB,EAAA,IAAA;IACjB,GAAGjB;GACL,CAAA;AACAkB,EAAAA,2BAAAA,CAAWC,QAAQd,KAAAA,CAAAA;AACnB,EAAOA,OAAAA,KAAAA,CAAIe,QAA2BhB,UAAAA,CAAAA;AACxC;AAtBgBD,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AA2BT,SAASkB,eAAAA,CAAgBC,OAA2BtB,OAAgC,EAAA;AACzFsB,EAASA,KAAAA,GAAAA,CAAAA,KAAAA,IAAS,KAAKC,IAAAA,EAAAA;AAEvB,EAAI,IAAA;AACF,IAAI,IAAA;AACF,MAAOC,OAAAA,IAAAA,CAAKC,MAAMH,KAAAA,CAAAA;KACZ,CAAA,MAAA;AACN,MAAA,MAAMI,OAAO1B,OAAS0B,EAAAA,IAAAA;AACtB,MAAA,IAAIA,IAAM,EAAA;AACR,QAAA,MAAM,EAAEC,KAAK,EAAA,GAAKC,wBAAcN,CAAAA,KAAAA,EAAOI,IAAAA,CAAS,IAAA;UAAEC,KAAOL,EAAAA;AAAM,SAAA;AAC/D,QAAA,OAAOE,IAAKC,CAAAA,KAAAA,CAAMI,qBAAWF,CAAAA,KAAAA,CAAAA,CAAAA;OACxB,MAAA;AACL,QAAA,OAAOH,IAAKC,CAAAA,KAAAA,CAAMI,qBAAWP,CAAAA,KAAAA,CAAAA,CAAAA;AAC/B;AACF;GACM,CAAA,MAAA;AACN,IAAO,OAAA,IAAA;AACT;AACF;AAlBgBD,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"schema.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 { TypeOf, ZodType, ZodEffects, ZodTypeAny, AnyZodObject, input } from \"zod\";\nimport { zodToJsonSchema, Options } from \"zod-to-json-schema\";\nimport { Ajv, SchemaObject, ValidateFunction, Options as AjvOptions } from \"ajv\";\nimport addFormats from \"ajv-formats\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\nimport { FrameworkErrorOptions, ValueError } from \"@/errors.js\";\nimport { jsonrepair } from \"jsonrepair\";\nexport type AnyToolSchemaLike = AnyZodObject | SchemaObject;\nexport type AnySchemaLike = ZodTypeAny | SchemaObject;\nexport type FromSchemaLike<T> = T extends ZodTypeAny ? TypeOf<T> : unknown;\nexport type FromSchemaLikeRaw<T> = T extends ZodTypeAny ? input<T> : unknown;\n\nexport function validateSchema<T extends AnySchemaLike>(\n schema: T | ZodEffects<any>,\n errorOptions?: FrameworkErrorOptions,\n): asserts schema is T {\n if (schema && schema instanceof ZodEffects) {\n throw new ValueError(\n \"zod effects (refine, superRefine, transform, ...) cannot be converted to JSONSchema!\",\n [],\n errorOptions,\n );\n }\n}\n\nexport function toJsonSchema<T extends AnySchemaLike>(\n schema: T,\n options?: Partial<Options>,\n): SchemaObject {\n validateSchema(schema);\n if (schema instanceof ZodType) {\n return zodToJsonSchema(schema, options);\n }\n return schema;\n}\n\nexport function createSchemaValidator<T extends AnySchemaLike>(\n schema: T,\n options?: AjvOptions,\n): ValidateFunction<FromSchemaLike<T>> {\n const jsonSchema = toJsonSchema(schema);\n\n const ajv = new Ajv({\n coerceTypes: \"array\",\n useDefaults: true,\n strict: false,\n strictSchema: false,\n strictTuples: true,\n strictNumbers: true,\n strictTypes: true,\n strictRequired: true,\n parseDate: true,\n allowDate: true,\n allowUnionTypes: true,\n ...options,\n });\n addFormats.default(ajv);\n return ajv.compile<FromSchemaLike<T>>(jsonSchema);\n}\n\ninterface ParseBrokenJsonOptions {\n pair?: [string, string] | null;\n}\nexport function parseBrokenJson(input: string | undefined, options?: ParseBrokenJsonOptions) {\n input = (input ?? \"\")?.trim();\n\n try {\n try {\n return JSON.parse(input);\n } catch {\n const pair = options?.pair;\n if (pair) {\n const { outer } = findFirstPair(input, pair) ?? { outer: input };\n return JSON.parse(jsonrepair(outer));\n } else {\n return JSON.parse(jsonrepair(input));\n }\n }\n } catch {\n return null;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { AnyZodObject, ZodTypeAny, TypeOf, input, ZodEffects } from 'zod';
1
+ import { AnyZodObject, ZodTypeAny, input, TypeOf, ZodEffects } from 'zod';
2
2
  import { Options } from 'zod-to-json-schema';
3
3
  import { SchemaObject, Options as Options$1, ValidateFunction } from 'ajv';
4
4
  import { FrameworkErrorOptions } from '../../errors.cjs';
@@ -1,4 +1,4 @@
1
- import { AnyZodObject, ZodTypeAny, TypeOf, input, ZodEffects } from 'zod';
1
+ import { AnyZodObject, ZodTypeAny, input, TypeOf, ZodEffects } from 'zod';
2
2
  import { Options } from 'zod-to-json-schema';
3
3
  import { SchemaObject, Options as Options$1, ValidateFunction } from 'ajv';
4
4
  import { FrameworkErrorOptions } from '../../errors.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/schema.ts"],"names":["validateSchema","schema","errorOptions","ZodEffects","ValueError","toJsonSchema","options","ZodType","zodToJsonSchema","createSchemaValidator","jsonSchema","ajv","Ajv","coerceTypes","useDefaults","strict","strictSchema","strictTuples","strictNumbers","strictTypes","strictRequired","parseDate","allowDate","allowUnionTypes","addFormats","default","compile","parseBrokenJson","input","trim","JSON","parse","pair","outer","findFirstPair","jsonrepair"],"mappings":";;;;;;;;;;AA4BO,SAASA,cAAAA,CACdC,QACAC,YAAoC,EAAA;AAEpC,EAAID,IAAAA,MAAAA,IAAUA,kBAAkBE,UAAY,EAAA;AAC1C,IAAA,MAAM,IAAIC,UAAAA,CACR,sFACA,EAAA,IACAF,YAAAA,CAAAA;AAEJ;AACF;AAXgBF,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAaT,SAASK,YAAAA,CACdJ,QACAK,OAA0B,EAAA;AAE1BN,EAAAA,cAAAA,CAAeC,MAAAA,CAAAA;AACf,EAAA,IAAIA,kBAAkBM,OAAS,EAAA;AAC7B,IAAOC,OAAAA,eAAAA,CAAgBP,QAAQK,OAAAA,CAAAA;AACjC;AACA,EAAOL,OAAAA,MAAAA;AACT;AATgBI,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAWT,SAASI,qBAAAA,CACdR,QACAK,OAAoB,EAAA;AAEpB,EAAMI,MAAAA,UAAAA,GAAaL,aAAaJ,MAAAA,CAAAA;AAEhC,EAAMU,MAAAA,GAAAA,GAAM,IAAIC,GAAI,CAAA;IAClBC,WAAa,EAAA,OAAA;IACbC,WAAa,EAAA,IAAA;IACbC,MAAQ,EAAA,KAAA;IACRC,YAAc,EAAA,KAAA;IACdC,YAAc,EAAA,IAAA;IACdC,aAAe,EAAA,IAAA;IACfC,WAAa,EAAA,IAAA;IACbC,cAAgB,EAAA,IAAA;IAChBC,SAAW,EAAA,IAAA;IACXC,SAAW,EAAA,IAAA;IACXC,eAAiB,EAAA,IAAA;IACjB,GAAGjB;GACL,CAAA;AACAkB,EAAAA,UAAAA,CAAWC,QAAQd,GAAAA,CAAAA;AACnB,EAAOA,OAAAA,GAAAA,CAAIe,QAA2BhB,UAAAA,CAAAA;AACxC;AAtBgBD,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AA2BT,SAASkB,eAAAA,CAAgBC,OAA2BtB,OAAgC,EAAA;AACzFsB,EAASA,KAAAA,GAAAA,CAAAA,KAAAA,IAAS,KAAKC,IAAAA,EAAAA;AAEvB,EAAI,IAAA;AACF,IAAI,IAAA;AACF,MAAOC,OAAAA,IAAAA,CAAKC,MAAMH,KAAAA,CAAAA;KACZ,CAAA,MAAA;AACN,MAAA,MAAMI,OAAO1B,OAAS0B,EAAAA,IAAAA;AACtB,MAAA,IAAIA,IAAM,EAAA;AACR,QAAA,MAAM,EAAEC,KAAK,EAAA,GAAKC,aAAcN,CAAAA,KAAAA,EAAOI,IAAAA,CAAS,IAAA;UAAEC,KAAOL,EAAAA;AAAM,SAAA;AAC/D,QAAA,OAAOE,IAAKC,CAAAA,KAAAA,CAAMI,UAAWF,CAAAA,KAAAA,CAAAA,CAAAA;OACxB,MAAA;AACL,QAAA,OAAOH,IAAKC,CAAAA,KAAAA,CAAMI,UAAWP,CAAAA,KAAAA,CAAAA,CAAAA;AAC/B;AACF;GACM,CAAA,MAAA;AACN,IAAO,OAAA,IAAA;AACT;AACF;AAlBgBD,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"schema.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 { TypeOf, ZodType, ZodEffects, ZodTypeAny, AnyZodObject, input } from \"zod\";\nimport { zodToJsonSchema, Options } from \"zod-to-json-schema\";\nimport { Ajv, SchemaObject, ValidateFunction, Options as AjvOptions } from \"ajv\";\nimport addFormats from \"ajv-formats\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\nimport { FrameworkErrorOptions, ValueError } from \"@/errors.js\";\nimport { jsonrepair } from \"jsonrepair\";\nexport type AnyToolSchemaLike = AnyZodObject | SchemaObject;\nexport type AnySchemaLike = ZodTypeAny | SchemaObject;\nexport type FromSchemaLike<T> = T extends ZodTypeAny ? TypeOf<T> : unknown;\nexport type FromSchemaLikeRaw<T> = T extends ZodTypeAny ? input<T> : unknown;\n\nexport function validateSchema<T extends AnySchemaLike>(\n schema: T | ZodEffects<any>,\n errorOptions?: FrameworkErrorOptions,\n): asserts schema is T {\n if (schema && schema instanceof ZodEffects) {\n throw new ValueError(\n \"zod effects (refine, superRefine, transform, ...) cannot be converted to JSONSchema!\",\n [],\n errorOptions,\n );\n }\n}\n\nexport function toJsonSchema<T extends AnySchemaLike>(\n schema: T,\n options?: Partial<Options>,\n): SchemaObject {\n validateSchema(schema);\n if (schema instanceof ZodType) {\n return zodToJsonSchema(schema, options);\n }\n return schema;\n}\n\nexport function createSchemaValidator<T extends AnySchemaLike>(\n schema: T,\n options?: AjvOptions,\n): ValidateFunction<FromSchemaLike<T>> {\n const jsonSchema = toJsonSchema(schema);\n\n const ajv = new Ajv({\n coerceTypes: \"array\",\n useDefaults: true,\n strict: false,\n strictSchema: false,\n strictTuples: true,\n strictNumbers: true,\n strictTypes: true,\n strictRequired: true,\n parseDate: true,\n allowDate: true,\n allowUnionTypes: true,\n ...options,\n });\n addFormats.default(ajv);\n return ajv.compile<FromSchemaLike<T>>(jsonSchema);\n}\n\ninterface ParseBrokenJsonOptions {\n pair?: [string, string] | null;\n}\nexport function parseBrokenJson(input: string | undefined, options?: ParseBrokenJsonOptions) {\n input = (input ?? \"\")?.trim();\n\n try {\n try {\n return JSON.parse(input);\n } catch {\n const pair = options?.pair;\n if (pair) {\n const { outer } = findFirstPair(input, pair) ?? { outer: input };\n return JSON.parse(jsonrepair(outer));\n } else {\n return JSON.parse(jsonrepair(input));\n }\n }\n } catch {\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["schema.ts"],"names":["validateSchema","schema","errorOptions","ZodEffects","ValueError","toJsonSchema","options","ZodType","zodToJsonSchema","createSchemaValidator","jsonSchema","ajv","Ajv","coerceTypes","useDefaults","strict","strictSchema","strictTuples","strictNumbers","strictTypes","strictRequired","parseDate","allowDate","allowUnionTypes","addFormats","default","compile","parseBrokenJson","input","trim","JSON","parse","pair","outer","findFirstPair","jsonrepair"],"mappings":";;;;;;;;;;AA4BO,SAASA,cAAAA,CACdC,QACAC,YAAoC,EAAA;AAEpC,EAAID,IAAAA,MAAAA,IAAUA,kBAAkBE,UAAY,EAAA;AAC1C,IAAA,MAAM,IAAIC,UAAAA,CACR,sFACA,EAAA,IACAF,YAAAA,CAAAA;AAEJ;AACF;AAXgBF,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAaT,SAASK,YAAAA,CACdJ,QACAK,OAA0B,EAAA;AAE1BN,EAAAA,cAAAA,CAAeC,MAAAA,CAAAA;AACf,EAAA,IAAIA,kBAAkBM,OAAS,EAAA;AAC7B,IAAOC,OAAAA,eAAAA,CAAgBP,QAAQK,OAAAA,CAAAA;AACjC;AACA,EAAOL,OAAAA,MAAAA;AACT;AATgBI,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAWT,SAASI,qBAAAA,CACdR,QACAK,OAAoB,EAAA;AAEpB,EAAMI,MAAAA,UAAAA,GAAaL,aAAaJ,MAAAA,CAAAA;AAEhC,EAAMU,MAAAA,GAAAA,GAAM,IAAIC,GAAI,CAAA;IAClBC,WAAa,EAAA,OAAA;IACbC,WAAa,EAAA,IAAA;IACbC,MAAQ,EAAA,KAAA;IACRC,YAAc,EAAA,KAAA;IACdC,YAAc,EAAA,IAAA;IACdC,aAAe,EAAA,IAAA;IACfC,WAAa,EAAA,IAAA;IACbC,cAAgB,EAAA,IAAA;IAChBC,SAAW,EAAA,IAAA;IACXC,SAAW,EAAA,IAAA;IACXC,eAAiB,EAAA,IAAA;IACjB,GAAGjB;GACL,CAAA;AACAkB,EAAAA,UAAAA,CAAWC,QAAQd,GAAAA,CAAAA;AACnB,EAAOA,OAAAA,GAAAA,CAAIe,QAA2BhB,UAAAA,CAAAA;AACxC;AAtBgBD,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AA2BT,SAASkB,eAAAA,CAAgBC,OAA2BtB,OAAgC,EAAA;AACzFsB,EAASA,KAAAA,GAAAA,CAAAA,KAAAA,IAAS,KAAKC,IAAAA,EAAAA;AAEvB,EAAI,IAAA;AACF,IAAI,IAAA;AACF,MAAOC,OAAAA,IAAAA,CAAKC,MAAMH,KAAAA,CAAAA;KACZ,CAAA,MAAA;AACN,MAAA,MAAMI,OAAO1B,OAAS0B,EAAAA,IAAAA;AACtB,MAAA,IAAIA,IAAM,EAAA;AACR,QAAA,MAAM,EAAEC,KAAK,EAAA,GAAKC,aAAcN,CAAAA,KAAAA,EAAOI,IAAAA,CAAS,IAAA;UAAEC,KAAOL,EAAAA;AAAM,SAAA;AAC/D,QAAA,OAAOE,IAAKC,CAAAA,KAAAA,CAAMI,UAAWF,CAAAA,KAAAA,CAAAA,CAAAA;OACxB,MAAA;AACL,QAAA,OAAOH,IAAKC,CAAAA,KAAAA,CAAMI,UAAWP,CAAAA,KAAAA,CAAAA,CAAAA;AAC/B;AACF;GACM,CAAA,MAAA;AACN,IAAO,OAAA,IAAA;AACT;AACF;AAlBgBD,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"schema.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 { TypeOf, ZodType, ZodEffects, ZodTypeAny, AnyZodObject, input } from \"zod\";\nimport { zodToJsonSchema, Options } from \"zod-to-json-schema\";\nimport { Ajv, SchemaObject, ValidateFunction, Options as AjvOptions } from \"ajv\";\nimport addFormats from \"ajv-formats\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\nimport { FrameworkErrorOptions, ValueError } from \"@/errors.js\";\nimport { jsonrepair } from \"jsonrepair\";\nexport type AnyToolSchemaLike = AnyZodObject | SchemaObject;\nexport type AnySchemaLike = ZodTypeAny | SchemaObject;\nexport type FromSchemaLike<T> = T extends ZodTypeAny ? TypeOf<T> : unknown;\nexport type FromSchemaLikeRaw<T> = T extends ZodTypeAny ? input<T> : unknown;\n\nexport function validateSchema<T extends AnySchemaLike>(\n schema: T | ZodEffects<any>,\n errorOptions?: FrameworkErrorOptions,\n): asserts schema is T {\n if (schema && schema instanceof ZodEffects) {\n throw new ValueError(\n \"zod effects (refine, superRefine, transform, ...) cannot be converted to JSONSchema!\",\n [],\n errorOptions,\n );\n }\n}\n\nexport function toJsonSchema<T extends AnySchemaLike>(\n schema: T,\n options?: Partial<Options>,\n): SchemaObject {\n validateSchema(schema);\n if (schema instanceof ZodType) {\n return zodToJsonSchema(schema, options);\n }\n return schema;\n}\n\nexport function createSchemaValidator<T extends AnySchemaLike>(\n schema: T,\n options?: AjvOptions,\n): ValidateFunction<FromSchemaLike<T>> {\n const jsonSchema = toJsonSchema(schema);\n\n const ajv = new Ajv({\n coerceTypes: \"array\",\n useDefaults: true,\n strict: false,\n strictSchema: false,\n strictTuples: true,\n strictNumbers: true,\n strictTypes: true,\n strictRequired: true,\n parseDate: true,\n allowDate: true,\n allowUnionTypes: true,\n ...options,\n });\n addFormats.default(ajv);\n return ajv.compile<FromSchemaLike<T>>(jsonSchema);\n}\n\ninterface ParseBrokenJsonOptions {\n pair?: [string, string] | null;\n}\nexport function parseBrokenJson(input: string | undefined, options?: ParseBrokenJsonOptions) {\n input = (input ?? \"\")?.trim();\n\n try {\n try {\n return JSON.parse(input);\n } catch {\n const pair = options?.pair;\n if (pair) {\n const { outer } = findFirstPair(input, pair) ?? { outer: input };\n return JSON.parse(jsonrepair(outer));\n } else {\n return JSON.parse(jsonrepair(input));\n }\n }\n } catch {\n return null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/stream.ts"],"names":["transformAsyncIterable","generator","transformer","next","done","value","isAsyncIterable","Boolean","Symbol","asyncIterator"],"mappings":";;;;AAgBA,gBAAuBA,sBAAAA,CACrBC,WACAC,WAA2B,EAAA;AAE3B,EAAIC,IAAAA,IAAAA;AACJ,EAAA,OAAO,EAAEA,IAAO,GAAA,MAAMF,SAAUE,CAAAA,IAAAA,IAAQC,IAAM,EAAA;AAC5C,IAAMF,MAAAA,WAAAA,CAAYC,KAAKE,KAAK,CAAA;AAC9B;AACA,EAAA,OAAOF,IAAKE,CAAAA,KAAAA;AACd;AATuBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAWhB,SAASM,gBAAmBD,KAAU,EAAA;AAC3C,EAAA,OAAOE,OAAQF,CAAAA,KAAAA,IAASG,MAAOC,CAAAA,aAAAA,IAAiBJ,KAAAA,CAAAA;AAClD;AAFgBC,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"stream.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 async function* transformAsyncIterable<A, B, A2>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>,\n transformer: (old: A) => A2,\n): AsyncGenerator<A2, B> {\n let next: IteratorResult<A, B>;\n while (!(next = await generator.next()).done) {\n yield transformer(next.value);\n }\n return next.value;\n}\n\nexport function isAsyncIterable<T>(value: any): value is AsyncIterable<T> {\n return Boolean(value && Symbol.asyncIterator in value);\n}\n"]}
1
+ {"version":3,"sources":["stream.ts"],"names":["transformAsyncIterable","generator","transformer","next","done","value","isAsyncIterable","Boolean","Symbol","asyncIterator"],"mappings":";;;;AAgBA,gBAAuBA,sBAAAA,CACrBC,WACAC,WAA2B,EAAA;AAE3B,EAAIC,IAAAA,IAAAA;AACJ,EAAA,OAAO,EAAEA,IAAO,GAAA,MAAMF,SAAUE,CAAAA,IAAAA,IAAQC,IAAM,EAAA;AAC5C,IAAMF,MAAAA,WAAAA,CAAYC,KAAKE,KAAK,CAAA;AAC9B;AACA,EAAA,OAAOF,IAAKE,CAAAA,KAAAA;AACd;AATuBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAWhB,SAASM,gBAAmBD,KAAU,EAAA;AAC3C,EAAA,OAAOE,OAAQF,CAAAA,KAAAA,IAASG,MAAOC,CAAAA,aAAAA,IAAiBJ,KAAAA,CAAAA;AAClD;AAFgBC,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"stream.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 async function* transformAsyncIterable<A, B, A2>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>,\n transformer: (old: A) => A2,\n): AsyncGenerator<A2, B> {\n let next: IteratorResult<A, B>;\n while (!(next = await generator.next()).done) {\n yield transformer(next.value);\n }\n return next.value;\n}\n\nexport function isAsyncIterable<T>(value: any): value is AsyncIterable<T> {\n return Boolean(value && Symbol.asyncIterator in value);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/stream.ts"],"names":["transformAsyncIterable","generator","transformer","next","done","value","isAsyncIterable","Boolean","Symbol","asyncIterator"],"mappings":";;AAgBA,gBAAuBA,sBAAAA,CACrBC,WACAC,WAA2B,EAAA;AAE3B,EAAIC,IAAAA,IAAAA;AACJ,EAAA,OAAO,EAAEA,IAAO,GAAA,MAAMF,SAAUE,CAAAA,IAAAA,IAAQC,IAAM,EAAA;AAC5C,IAAMF,MAAAA,WAAAA,CAAYC,KAAKE,KAAK,CAAA;AAC9B;AACA,EAAA,OAAOF,IAAKE,CAAAA,KAAAA;AACd;AATuBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAWhB,SAASM,gBAAmBD,KAAU,EAAA;AAC3C,EAAA,OAAOE,OAAQF,CAAAA,KAAAA,IAASG,MAAOC,CAAAA,aAAAA,IAAiBJ,KAAAA,CAAAA;AAClD;AAFgBC,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"stream.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 async function* transformAsyncIterable<A, B, A2>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>,\n transformer: (old: A) => A2,\n): AsyncGenerator<A2, B> {\n let next: IteratorResult<A, B>;\n while (!(next = await generator.next()).done) {\n yield transformer(next.value);\n }\n return next.value;\n}\n\nexport function isAsyncIterable<T>(value: any): value is AsyncIterable<T> {\n return Boolean(value && Symbol.asyncIterator in value);\n}\n"]}
1
+ {"version":3,"sources":["stream.ts"],"names":["transformAsyncIterable","generator","transformer","next","done","value","isAsyncIterable","Boolean","Symbol","asyncIterator"],"mappings":";;AAgBA,gBAAuBA,sBAAAA,CACrBC,WACAC,WAA2B,EAAA;AAE3B,EAAIC,IAAAA,IAAAA;AACJ,EAAA,OAAO,EAAEA,IAAO,GAAA,MAAMF,SAAUE,CAAAA,IAAAA,IAAQC,IAAM,EAAA;AAC5C,IAAMF,MAAAA,WAAAA,CAAYC,KAAKE,KAAK,CAAA;AAC9B;AACA,EAAA,OAAOF,IAAKE,CAAAA,KAAAA;AACd;AATuBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAWhB,SAASM,gBAAmBD,KAAU,EAAA;AAC3C,EAAA,OAAOE,OAAQF,CAAAA,KAAAA,IAASG,MAAOC,CAAAA,aAAAA,IAAiBJ,KAAAA,CAAAA;AAClD;AAFgBC,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"stream.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 async function* transformAsyncIterable<A, B, A2>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>,\n transformer: (old: A) => A2,\n): AsyncGenerator<A2, B> {\n let next: IteratorResult<A, B>;\n while (!(next = await generator.next()).done) {\n yield transformer(next.value);\n }\n return next.value;\n}\n\nexport function isAsyncIterable<T>(value: any): value is AsyncIterable<T> {\n return Boolean(value && Symbol.asyncIterator in value);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/string.ts"],"names":["splitString","text","options","recursiveSplitString","trim","separators","mergeStrings","chunks","sep","tmpChunks","tmpOverlap","toDoc","parts","join","chunk","length","size","doc","overlap","tmp","shift","push","Error","goodSplits","separator","remainingSeparators","unique","split","filter","Boolean","Comparator","EQ","GT","GTE","LT","LTE","compareVersion","a","comparator","b","diff","replace","localeCompare","undefined","numeric","sensitivity","diffNormalized","Math","min","max","R","isIncludedIn","isJsonLikeString","value","startsWith","endsWith","halveString","seq","includeSeq","index","indexOf","slice","countSharedStartEndLetters","isString","ValueError","minLength","i","at","findFirstPair","pair","opening","closing","balance","startIndex","pairOverlap","allowOverlap","isSame","substring","inner","start","end","innerEnd","innerSize","outer"],"mappings":"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","file":"string.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 { ValueOf } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString, unique } from \"remeda\";\n\nexport function* splitString(\n text: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n yield* recursiveSplitString(text, { ...options, trim: options?.trim ?? false, separators: [] });\n}\n\nexport function* mergeStrings(\n chunks: string[],\n sep: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n const tmpChunks: string[] = [];\n let tmpOverlap = 0;\n\n const toDoc = (parts: string[]) => {\n const text = parts.join(sep);\n return options.trim ? text.trim() : text;\n };\n\n for (const chunk of chunks) {\n if (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size) {\n if (tmpChunks.length > 0) {\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n\n while (\n tmpOverlap > options.overlap ||\n (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size &&\n tmpOverlap > 0)\n ) {\n const tmp = tmpChunks.shift()!;\n tmpOverlap -= tmp.length;\n }\n }\n }\n tmpChunks.push(chunk);\n tmpOverlap += chunk.length;\n }\n\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n}\n\nexport function* recursiveSplitString(\n text: string,\n options: { size: number; overlap: number; separators: string[]; trim?: boolean },\n): Generator<string> {\n if (options.size <= 0 || options.overlap < 0) {\n throw new Error(\"size must be positive and overlap must be non-negative\");\n }\n if (options.overlap >= options.size) {\n throw new Error(\"overlap must be less than size\");\n }\n\n const goodSplits: string[] = [];\n const [separator, ...remainingSeparators] = unique([...(options.separators ?? []), \"\"]);\n\n for (const chunk of text.split(separator).filter(Boolean)) {\n if (chunk.length < options.size) {\n goodSplits.push(chunk);\n continue;\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n goodSplits.length = 0;\n }\n\n if (remainingSeparators.length === 0) {\n yield chunk;\n } else {\n yield* recursiveSplitString(chunk, { ...options, separators: remainingSeparators });\n }\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n }\n}\n\nexport const Comparator = {\n EQ: [0] as const,\n GT: [1] as const,\n GTE: [0, 1] as const,\n LT: [-1] as const,\n LTE: [-1, 0] as const,\n} as const;\n\nexport function compareVersion(\n a: string,\n comparator: ValueOf<typeof Comparator>,\n b: string,\n): boolean {\n const diff = a.replace(\"v\", \"\").trim().localeCompare(b.replace(\"v\", \"\").trim(), undefined, {\n numeric: true,\n sensitivity: \"base\",\n });\n const diffNormalized = Math.min(1, Math.max(-1, diff));\n return R.isIncludedIn(diffNormalized, comparator);\n}\n\nexport function isJsonLikeString(value: string | undefined): value is string {\n if (!value) {\n return false;\n }\n return value.startsWith(\"{\") && value.endsWith(\"}\");\n}\n\nexport function halveString(\n value: string,\n seq: string,\n includeSeq = false,\n): [string] | [string, string] {\n if (seq === \"\") {\n return [value];\n }\n\n const index = value.indexOf(seq);\n if (index === -1) {\n return [value];\n } else {\n return [value.slice(0, index), value.slice(index + (includeSeq ? 0 : seq.length))];\n }\n}\n\nexport function countSharedStartEndLetters(a: string, b: string): number {\n if (!isString(a) || !isString(b)) {\n throw new ValueError(\"Provided values must be all strings.\");\n }\n\n const minLength = Math.min(a.length, b.length);\n for (let i = 0; i < minLength; i++) {\n if (a.at((i + 1) * -1) !== b.at(i)) {\n return i;\n }\n }\n return minLength;\n}\n\nexport function findFirstPair(\n text: string,\n pair: [string, string],\n options: { allowOverlap?: boolean } = {},\n) {\n const [opening, closing] = pair || [];\n if (!pair || !opening || !closing) {\n throw new ValueError(`The \"pair\" parameter is required and must be non-empty!`);\n }\n\n let balance = 0;\n let startIndex = -1;\n const pairOverlap = options.allowOverlap ? countSharedStartEndLetters(opening, closing) : 0;\n\n const isSame = opening === closing;\n for (let index = 0; index < text.length; index++) {\n if (text.substring(index, index + opening.length) === opening && (!isSame || balance === 0)) {\n if (balance === 0) {\n startIndex = index;\n }\n balance++;\n if (!options.allowOverlap) {\n index += opening.length - 1;\n }\n } else if (text.substring(index, index + closing.length) === closing) {\n if (balance > 0) {\n balance--;\n if (balance === 0) {\n const inner = {\n start: startIndex + opening.length,\n get end() {\n let innerEnd = index;\n const innerSize = innerEnd - this.start;\n\n if (innerSize < 0) {\n innerEnd = this.start;\n } else {\n innerEnd += pairOverlap;\n }\n\n return innerEnd;\n },\n };\n\n return {\n start: startIndex,\n end: index + closing.length,\n pair,\n inner: text.substring(inner.start, inner.end),\n outer: text.substring(startIndex, index + closing.length),\n };\n }\n }\n if (!options.allowOverlap) {\n index += closing.length - 1;\n }\n }\n }\n\n return null;\n}\n"]}
1
+ {"version":3,"sources":["string.ts"],"names":["splitString","text","options","recursiveSplitString","trim","separators","mergeStrings","chunks","sep","tmpChunks","tmpOverlap","toDoc","parts","join","chunk","length","size","doc","overlap","tmp","shift","push","Error","goodSplits","separator","remainingSeparators","unique","split","filter","Boolean","Comparator","EQ","GT","GTE","LT","LTE","compareVersion","a","comparator","b","diff","replace","localeCompare","undefined","numeric","sensitivity","diffNormalized","Math","min","max","R","isIncludedIn","isJsonLikeString","value","startsWith","endsWith","halveString","seq","includeSeq","index","indexOf","slice","countSharedStartEndLetters","isString","ValueError","minLength","i","at","findFirstPair","pair","opening","closing","balance","startIndex","pairOverlap","allowOverlap","isSame","substring","inner","start","end","innerEnd","innerSize","outer"],"mappings":"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","file":"string.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 { ValueOf } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString, unique } from \"remeda\";\n\nexport function* splitString(\n text: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n yield* recursiveSplitString(text, { ...options, trim: options?.trim ?? false, separators: [] });\n}\n\nexport function* mergeStrings(\n chunks: string[],\n sep: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n const tmpChunks: string[] = [];\n let tmpOverlap = 0;\n\n const toDoc = (parts: string[]) => {\n const text = parts.join(sep);\n return options.trim ? text.trim() : text;\n };\n\n for (const chunk of chunks) {\n if (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size) {\n if (tmpChunks.length > 0) {\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n\n while (\n tmpOverlap > options.overlap ||\n (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size &&\n tmpOverlap > 0)\n ) {\n const tmp = tmpChunks.shift()!;\n tmpOverlap -= tmp.length;\n }\n }\n }\n tmpChunks.push(chunk);\n tmpOverlap += chunk.length;\n }\n\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n}\n\nexport function* recursiveSplitString(\n text: string,\n options: { size: number; overlap: number; separators: string[]; trim?: boolean },\n): Generator<string> {\n if (options.size <= 0 || options.overlap < 0) {\n throw new Error(\"size must be positive and overlap must be non-negative\");\n }\n if (options.overlap >= options.size) {\n throw new Error(\"overlap must be less than size\");\n }\n\n const goodSplits: string[] = [];\n const [separator, ...remainingSeparators] = unique([...(options.separators ?? []), \"\"]);\n\n for (const chunk of text.split(separator).filter(Boolean)) {\n if (chunk.length < options.size) {\n goodSplits.push(chunk);\n continue;\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n goodSplits.length = 0;\n }\n\n if (remainingSeparators.length === 0) {\n yield chunk;\n } else {\n yield* recursiveSplitString(chunk, { ...options, separators: remainingSeparators });\n }\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n }\n}\n\nexport const Comparator = {\n EQ: [0] as const,\n GT: [1] as const,\n GTE: [0, 1] as const,\n LT: [-1] as const,\n LTE: [-1, 0] as const,\n} as const;\n\nexport function compareVersion(\n a: string,\n comparator: ValueOf<typeof Comparator>,\n b: string,\n): boolean {\n const diff = a.replace(\"v\", \"\").trim().localeCompare(b.replace(\"v\", \"\").trim(), undefined, {\n numeric: true,\n sensitivity: \"base\",\n });\n const diffNormalized = Math.min(1, Math.max(-1, diff));\n return R.isIncludedIn(diffNormalized, comparator);\n}\n\nexport function isJsonLikeString(value: string | undefined): value is string {\n if (!value) {\n return false;\n }\n return value.startsWith(\"{\") && value.endsWith(\"}\");\n}\n\nexport function halveString(\n value: string,\n seq: string,\n includeSeq = false,\n): [string] | [string, string] {\n if (seq === \"\") {\n return [value];\n }\n\n const index = value.indexOf(seq);\n if (index === -1) {\n return [value];\n } else {\n return [value.slice(0, index), value.slice(index + (includeSeq ? 0 : seq.length))];\n }\n}\n\nexport function countSharedStartEndLetters(a: string, b: string): number {\n if (!isString(a) || !isString(b)) {\n throw new ValueError(\"Provided values must be all strings.\");\n }\n\n const minLength = Math.min(a.length, b.length);\n for (let i = 0; i < minLength; i++) {\n if (a.at((i + 1) * -1) !== b.at(i)) {\n return i;\n }\n }\n return minLength;\n}\n\nexport function findFirstPair(\n text: string,\n pair: [string, string],\n options: { allowOverlap?: boolean } = {},\n) {\n const [opening, closing] = pair || [];\n if (!pair || !opening || !closing) {\n throw new ValueError(`The \"pair\" parameter is required and must be non-empty!`);\n }\n\n let balance = 0;\n let startIndex = -1;\n const pairOverlap = options.allowOverlap ? countSharedStartEndLetters(opening, closing) : 0;\n\n const isSame = opening === closing;\n for (let index = 0; index < text.length; index++) {\n if (text.substring(index, index + opening.length) === opening && (!isSame || balance === 0)) {\n if (balance === 0) {\n startIndex = index;\n }\n balance++;\n if (!options.allowOverlap) {\n index += opening.length - 1;\n }\n } else if (text.substring(index, index + closing.length) === closing) {\n if (balance > 0) {\n balance--;\n if (balance === 0) {\n const inner = {\n start: startIndex + opening.length,\n get end() {\n let innerEnd = index;\n const innerSize = innerEnd - this.start;\n\n if (innerSize < 0) {\n innerEnd = this.start;\n } else {\n innerEnd += pairOverlap;\n }\n\n return innerEnd;\n },\n };\n\n return {\n start: startIndex,\n end: index + closing.length,\n pair,\n inner: text.substring(inner.start, inner.end),\n outer: text.substring(startIndex, index + closing.length),\n };\n }\n }\n if (!options.allowOverlap) {\n index += closing.length - 1;\n }\n }\n }\n\n return null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/string.ts"],"names":["splitString","text","options","recursiveSplitString","trim","separators","mergeStrings","chunks","sep","tmpChunks","tmpOverlap","toDoc","parts","join","chunk","length","size","doc","overlap","tmp","shift","push","Error","goodSplits","separator","remainingSeparators","unique","split","filter","Boolean","Comparator","EQ","GT","GTE","LT","LTE","compareVersion","a","comparator","b","diff","replace","localeCompare","undefined","numeric","sensitivity","diffNormalized","Math","min","max","R","isIncludedIn","isJsonLikeString","value","startsWith","endsWith","halveString","seq","includeSeq","index","indexOf","slice","countSharedStartEndLetters","isString","ValueError","minLength","i","at","findFirstPair","pair","opening","closing","balance","startIndex","pairOverlap","allowOverlap","isSame","substring","inner","start","end","innerEnd","innerSize","outer"],"mappings":"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","file":"string.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 { ValueOf } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString, unique } from \"remeda\";\n\nexport function* splitString(\n text: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n yield* recursiveSplitString(text, { ...options, trim: options?.trim ?? false, separators: [] });\n}\n\nexport function* mergeStrings(\n chunks: string[],\n sep: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n const tmpChunks: string[] = [];\n let tmpOverlap = 0;\n\n const toDoc = (parts: string[]) => {\n const text = parts.join(sep);\n return options.trim ? text.trim() : text;\n };\n\n for (const chunk of chunks) {\n if (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size) {\n if (tmpChunks.length > 0) {\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n\n while (\n tmpOverlap > options.overlap ||\n (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size &&\n tmpOverlap > 0)\n ) {\n const tmp = tmpChunks.shift()!;\n tmpOverlap -= tmp.length;\n }\n }\n }\n tmpChunks.push(chunk);\n tmpOverlap += chunk.length;\n }\n\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n}\n\nexport function* recursiveSplitString(\n text: string,\n options: { size: number; overlap: number; separators: string[]; trim?: boolean },\n): Generator<string> {\n if (options.size <= 0 || options.overlap < 0) {\n throw new Error(\"size must be positive and overlap must be non-negative\");\n }\n if (options.overlap >= options.size) {\n throw new Error(\"overlap must be less than size\");\n }\n\n const goodSplits: string[] = [];\n const [separator, ...remainingSeparators] = unique([...(options.separators ?? []), \"\"]);\n\n for (const chunk of text.split(separator).filter(Boolean)) {\n if (chunk.length < options.size) {\n goodSplits.push(chunk);\n continue;\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n goodSplits.length = 0;\n }\n\n if (remainingSeparators.length === 0) {\n yield chunk;\n } else {\n yield* recursiveSplitString(chunk, { ...options, separators: remainingSeparators });\n }\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n }\n}\n\nexport const Comparator = {\n EQ: [0] as const,\n GT: [1] as const,\n GTE: [0, 1] as const,\n LT: [-1] as const,\n LTE: [-1, 0] as const,\n} as const;\n\nexport function compareVersion(\n a: string,\n comparator: ValueOf<typeof Comparator>,\n b: string,\n): boolean {\n const diff = a.replace(\"v\", \"\").trim().localeCompare(b.replace(\"v\", \"\").trim(), undefined, {\n numeric: true,\n sensitivity: \"base\",\n });\n const diffNormalized = Math.min(1, Math.max(-1, diff));\n return R.isIncludedIn(diffNormalized, comparator);\n}\n\nexport function isJsonLikeString(value: string | undefined): value is string {\n if (!value) {\n return false;\n }\n return value.startsWith(\"{\") && value.endsWith(\"}\");\n}\n\nexport function halveString(\n value: string,\n seq: string,\n includeSeq = false,\n): [string] | [string, string] {\n if (seq === \"\") {\n return [value];\n }\n\n const index = value.indexOf(seq);\n if (index === -1) {\n return [value];\n } else {\n return [value.slice(0, index), value.slice(index + (includeSeq ? 0 : seq.length))];\n }\n}\n\nexport function countSharedStartEndLetters(a: string, b: string): number {\n if (!isString(a) || !isString(b)) {\n throw new ValueError(\"Provided values must be all strings.\");\n }\n\n const minLength = Math.min(a.length, b.length);\n for (let i = 0; i < minLength; i++) {\n if (a.at((i + 1) * -1) !== b.at(i)) {\n return i;\n }\n }\n return minLength;\n}\n\nexport function findFirstPair(\n text: string,\n pair: [string, string],\n options: { allowOverlap?: boolean } = {},\n) {\n const [opening, closing] = pair || [];\n if (!pair || !opening || !closing) {\n throw new ValueError(`The \"pair\" parameter is required and must be non-empty!`);\n }\n\n let balance = 0;\n let startIndex = -1;\n const pairOverlap = options.allowOverlap ? countSharedStartEndLetters(opening, closing) : 0;\n\n const isSame = opening === closing;\n for (let index = 0; index < text.length; index++) {\n if (text.substring(index, index + opening.length) === opening && (!isSame || balance === 0)) {\n if (balance === 0) {\n startIndex = index;\n }\n balance++;\n if (!options.allowOverlap) {\n index += opening.length - 1;\n }\n } else if (text.substring(index, index + closing.length) === closing) {\n if (balance > 0) {\n balance--;\n if (balance === 0) {\n const inner = {\n start: startIndex + opening.length,\n get end() {\n let innerEnd = index;\n const innerSize = innerEnd - this.start;\n\n if (innerSize < 0) {\n innerEnd = this.start;\n } else {\n innerEnd += pairOverlap;\n }\n\n return innerEnd;\n },\n };\n\n return {\n start: startIndex,\n end: index + closing.length,\n pair,\n inner: text.substring(inner.start, inner.end),\n outer: text.substring(startIndex, index + closing.length),\n };\n }\n }\n if (!options.allowOverlap) {\n index += closing.length - 1;\n }\n }\n }\n\n return null;\n}\n"]}
1
+ {"version":3,"sources":["string.ts"],"names":["splitString","text","options","recursiveSplitString","trim","separators","mergeStrings","chunks","sep","tmpChunks","tmpOverlap","toDoc","parts","join","chunk","length","size","doc","overlap","tmp","shift","push","Error","goodSplits","separator","remainingSeparators","unique","split","filter","Boolean","Comparator","EQ","GT","GTE","LT","LTE","compareVersion","a","comparator","b","diff","replace","localeCompare","undefined","numeric","sensitivity","diffNormalized","Math","min","max","R","isIncludedIn","isJsonLikeString","value","startsWith","endsWith","halveString","seq","includeSeq","index","indexOf","slice","countSharedStartEndLetters","isString","ValueError","minLength","i","at","findFirstPair","pair","opening","closing","balance","startIndex","pairOverlap","allowOverlap","isSame","substring","inner","start","end","innerEnd","innerSize","outer"],"mappings":"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","file":"string.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 { ValueOf } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString, unique } from \"remeda\";\n\nexport function* splitString(\n text: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n yield* recursiveSplitString(text, { ...options, trim: options?.trim ?? false, separators: [] });\n}\n\nexport function* mergeStrings(\n chunks: string[],\n sep: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n const tmpChunks: string[] = [];\n let tmpOverlap = 0;\n\n const toDoc = (parts: string[]) => {\n const text = parts.join(sep);\n return options.trim ? text.trim() : text;\n };\n\n for (const chunk of chunks) {\n if (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size) {\n if (tmpChunks.length > 0) {\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n\n while (\n tmpOverlap > options.overlap ||\n (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size &&\n tmpOverlap > 0)\n ) {\n const tmp = tmpChunks.shift()!;\n tmpOverlap -= tmp.length;\n }\n }\n }\n tmpChunks.push(chunk);\n tmpOverlap += chunk.length;\n }\n\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n}\n\nexport function* recursiveSplitString(\n text: string,\n options: { size: number; overlap: number; separators: string[]; trim?: boolean },\n): Generator<string> {\n if (options.size <= 0 || options.overlap < 0) {\n throw new Error(\"size must be positive and overlap must be non-negative\");\n }\n if (options.overlap >= options.size) {\n throw new Error(\"overlap must be less than size\");\n }\n\n const goodSplits: string[] = [];\n const [separator, ...remainingSeparators] = unique([...(options.separators ?? []), \"\"]);\n\n for (const chunk of text.split(separator).filter(Boolean)) {\n if (chunk.length < options.size) {\n goodSplits.push(chunk);\n continue;\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n goodSplits.length = 0;\n }\n\n if (remainingSeparators.length === 0) {\n yield chunk;\n } else {\n yield* recursiveSplitString(chunk, { ...options, separators: remainingSeparators });\n }\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n }\n}\n\nexport const Comparator = {\n EQ: [0] as const,\n GT: [1] as const,\n GTE: [0, 1] as const,\n LT: [-1] as const,\n LTE: [-1, 0] as const,\n} as const;\n\nexport function compareVersion(\n a: string,\n comparator: ValueOf<typeof Comparator>,\n b: string,\n): boolean {\n const diff = a.replace(\"v\", \"\").trim().localeCompare(b.replace(\"v\", \"\").trim(), undefined, {\n numeric: true,\n sensitivity: \"base\",\n });\n const diffNormalized = Math.min(1, Math.max(-1, diff));\n return R.isIncludedIn(diffNormalized, comparator);\n}\n\nexport function isJsonLikeString(value: string | undefined): value is string {\n if (!value) {\n return false;\n }\n return value.startsWith(\"{\") && value.endsWith(\"}\");\n}\n\nexport function halveString(\n value: string,\n seq: string,\n includeSeq = false,\n): [string] | [string, string] {\n if (seq === \"\") {\n return [value];\n }\n\n const index = value.indexOf(seq);\n if (index === -1) {\n return [value];\n } else {\n return [value.slice(0, index), value.slice(index + (includeSeq ? 0 : seq.length))];\n }\n}\n\nexport function countSharedStartEndLetters(a: string, b: string): number {\n if (!isString(a) || !isString(b)) {\n throw new ValueError(\"Provided values must be all strings.\");\n }\n\n const minLength = Math.min(a.length, b.length);\n for (let i = 0; i < minLength; i++) {\n if (a.at((i + 1) * -1) !== b.at(i)) {\n return i;\n }\n }\n return minLength;\n}\n\nexport function findFirstPair(\n text: string,\n pair: [string, string],\n options: { allowOverlap?: boolean } = {},\n) {\n const [opening, closing] = pair || [];\n if (!pair || !opening || !closing) {\n throw new ValueError(`The \"pair\" parameter is required and must be non-empty!`);\n }\n\n let balance = 0;\n let startIndex = -1;\n const pairOverlap = options.allowOverlap ? countSharedStartEndLetters(opening, closing) : 0;\n\n const isSame = opening === closing;\n for (let index = 0; index < text.length; index++) {\n if (text.substring(index, index + opening.length) === opening && (!isSame || balance === 0)) {\n if (balance === 0) {\n startIndex = index;\n }\n balance++;\n if (!options.allowOverlap) {\n index += opening.length - 1;\n }\n } else if (text.substring(index, index + closing.length) === closing) {\n if (balance > 0) {\n balance--;\n if (balance === 0) {\n const inner = {\n start: startIndex + opening.length,\n get end() {\n let innerEnd = index;\n const innerSize = innerEnd - this.start;\n\n if (innerSize < 0) {\n innerEnd = this.start;\n } else {\n innerEnd += pairOverlap;\n }\n\n return innerEnd;\n },\n };\n\n return {\n start: startIndex,\n end: index + closing.length,\n pair,\n inner: text.substring(inner.start, inner.end),\n outer: text.substring(startIndex, index + closing.length),\n };\n }\n }\n if (!options.allowOverlap) {\n index += closing.length - 1;\n }\n }\n }\n\n return null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/weakRef.ts"],"names":["isWeakKey","value","SafeWeakSet","WeakSet","has","add","delete","SafeWeakMap","WeakMap","get","key","set"],"mappings":";;;;AAgBO,SAASA,UAAUC,KAAc,EAAA;AACtC,EAAOA,OAAAA,KAAAA,IAAS,IAAQ,IAAA,OAAOA,KAAU,KAAA,QAAA;AAC3C;AAFgBD,MAAAA,CAAAA,SAAAA,EAAAA,WAAAA,CAAAA;AAIT,MAAME,oBAAoBC,OAAAA,CAAAA;EApBjC;;;AAqBEC,EAAAA,GAAAA,CAAIH,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMG,IAAIH,KAAAA,CAAAA;AACnB;AACA,IAAO,OAAA,KAAA;AACT;AAEAI,EAAAA,GAAAA,CAAIJ,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAA,KAAA,CAAMI,IAAIJ,KAAAA,CAAAA;AACZ;AACA,IAAO,OAAA,IAAA;AACT;AAEAK,EAAAA,MAAAA,CAAOL,KAAgB,EAAA;AACrB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMK,OAAOL,KAAAA,CAAAA;AACtB;AACA,IAAO,OAAA,KAAA;AACT;AACF;AAEO,MAAMM,oBAAuBC,OAAAA,CAAAA;EA3CpC;;;AA4CEJ,EAAAA,GAAAA,CAAIH,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMG,IAAIH,KAAAA,CAAAA;AACnB;AACA,IAAO,OAAA,KAAA;AACT;AAEAQ,EAAAA,GAAAA,CAAIC,GAAc,EAAA;AAChB,IAAIV,IAAAA,SAAAA,CAAUU,GAAAA,CAAM,EAAA;AAClB,MAAO,OAAA,KAAA,CAAMD,IAAIC,GAAAA,CAAAA;AACnB;AACF;AAEAC,EAAAA,GAAAA,CAAID,KAAcT,KAAU,EAAA;AAC1B,IAAID,IAAAA,SAAAA,CAAUU,GAAAA,CAAM,EAAA;AAClB,MAAMC,KAAAA,CAAAA,GAAAA,CAAID,KAAKT,KAAAA,CAAAA;AACjB;AACA,IAAO,OAAA,IAAA;AACT;AAEAK,EAAAA,MAAAA,CAAOL,KAAgB,EAAA;AACrB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMK,OAAOL,KAAAA,CAAAA;AACtB;AACA,IAAO,OAAA,KAAA;AACT;AACF","file":"weakRef.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 isWeakKey(value: unknown): value is WeakKey {\n return value != null && typeof value === \"object\";\n}\n\nexport class SafeWeakSet extends WeakSet {\n has(value: unknown) {\n if (isWeakKey(value)) {\n return super.has(value);\n }\n return false;\n }\n\n add(value: unknown) {\n if (isWeakKey(value)) {\n super.add(value);\n }\n return this;\n }\n\n delete(value: unknown) {\n if (isWeakKey(value)) {\n return super.delete(value);\n }\n return false;\n }\n}\n\nexport class SafeWeakMap<T> extends WeakMap<WeakKey, T> {\n has(value: unknown) {\n if (isWeakKey(value)) {\n return super.has(value);\n }\n return false;\n }\n\n get(key: unknown) {\n if (isWeakKey(key)) {\n return super.get(key);\n }\n }\n\n set(key: unknown, value: T) {\n if (isWeakKey(key)) {\n super.set(key, value);\n }\n return this;\n }\n\n delete(value: unknown) {\n if (isWeakKey(value)) {\n return super.delete(value);\n }\n return false;\n }\n}\n"]}
1
+ {"version":3,"sources":["weakRef.ts"],"names":["isWeakKey","value","SafeWeakSet","WeakSet","has","add","delete","SafeWeakMap","WeakMap","get","key","set"],"mappings":";;;;AAgBO,SAASA,UAAUC,KAAc,EAAA;AACtC,EAAOA,OAAAA,KAAAA,IAAS,IAAQ,IAAA,OAAOA,KAAU,KAAA,QAAA;AAC3C;AAFgBD,MAAAA,CAAAA,SAAAA,EAAAA,WAAAA,CAAAA;AAIT,MAAME,oBAAoBC,OAAAA,CAAAA;EApBjC;;;AAqBEC,EAAAA,GAAAA,CAAIH,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMG,IAAIH,KAAAA,CAAAA;AACnB;AACA,IAAO,OAAA,KAAA;AACT;AAEAI,EAAAA,GAAAA,CAAIJ,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAA,KAAA,CAAMI,IAAIJ,KAAAA,CAAAA;AACZ;AACA,IAAO,OAAA,IAAA;AACT;AAEAK,EAAAA,MAAAA,CAAOL,KAAgB,EAAA;AACrB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMK,OAAOL,KAAAA,CAAAA;AACtB;AACA,IAAO,OAAA,KAAA;AACT;AACF;AAEO,MAAMM,oBAAuBC,OAAAA,CAAAA;EA3CpC;;;AA4CEJ,EAAAA,GAAAA,CAAIH,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMG,IAAIH,KAAAA,CAAAA;AACnB;AACA,IAAO,OAAA,KAAA;AACT;AAEAQ,EAAAA,GAAAA,CAAIC,GAAc,EAAA;AAChB,IAAIV,IAAAA,SAAAA,CAAUU,GAAAA,CAAM,EAAA;AAClB,MAAO,OAAA,KAAA,CAAMD,IAAIC,GAAAA,CAAAA;AACnB;AACF;AAEAC,EAAAA,GAAAA,CAAID,KAAcT,KAAU,EAAA;AAC1B,IAAID,IAAAA,SAAAA,CAAUU,GAAAA,CAAM,EAAA;AAClB,MAAMC,KAAAA,CAAAA,GAAAA,CAAID,KAAKT,KAAAA,CAAAA;AACjB;AACA,IAAO,OAAA,IAAA;AACT;AAEAK,EAAAA,MAAAA,CAAOL,KAAgB,EAAA;AACrB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMK,OAAOL,KAAAA,CAAAA;AACtB;AACA,IAAO,OAAA,KAAA;AACT;AACF","file":"weakRef.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 isWeakKey(value: unknown): value is WeakKey {\n return value != null && typeof value === \"object\";\n}\n\nexport class SafeWeakSet extends WeakSet {\n has(value: unknown) {\n if (isWeakKey(value)) {\n return super.has(value);\n }\n return false;\n }\n\n add(value: unknown) {\n if (isWeakKey(value)) {\n super.add(value);\n }\n return this;\n }\n\n delete(value: unknown) {\n if (isWeakKey(value)) {\n return super.delete(value);\n }\n return false;\n }\n}\n\nexport class SafeWeakMap<T> extends WeakMap<WeakKey, T> {\n has(value: unknown) {\n if (isWeakKey(value)) {\n return super.has(value);\n }\n return false;\n }\n\n get(key: unknown) {\n if (isWeakKey(key)) {\n return super.get(key);\n }\n }\n\n set(key: unknown, value: T) {\n if (isWeakKey(key)) {\n super.set(key, value);\n }\n return this;\n }\n\n delete(value: unknown) {\n if (isWeakKey(value)) {\n return super.delete(value);\n }\n return false;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/internals/helpers/weakRef.ts"],"names":["isWeakKey","value","SafeWeakSet","WeakSet","has","add","delete","SafeWeakMap","WeakMap","get","key","set"],"mappings":";;AAgBO,SAASA,UAAUC,KAAc,EAAA;AACtC,EAAOA,OAAAA,KAAAA,IAAS,IAAQ,IAAA,OAAOA,KAAU,KAAA,QAAA;AAC3C;AAFgBD,MAAAA,CAAAA,SAAAA,EAAAA,WAAAA,CAAAA;AAIT,MAAME,oBAAoBC,OAAAA,CAAAA;EApBjC;;;AAqBEC,EAAAA,GAAAA,CAAIH,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMG,IAAIH,KAAAA,CAAAA;AACnB;AACA,IAAO,OAAA,KAAA;AACT;AAEAI,EAAAA,GAAAA,CAAIJ,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAA,KAAA,CAAMI,IAAIJ,KAAAA,CAAAA;AACZ;AACA,IAAO,OAAA,IAAA;AACT;AAEAK,EAAAA,MAAAA,CAAOL,KAAgB,EAAA;AACrB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMK,OAAOL,KAAAA,CAAAA;AACtB;AACA,IAAO,OAAA,KAAA;AACT;AACF;AAEO,MAAMM,oBAAuBC,OAAAA,CAAAA;EA3CpC;;;AA4CEJ,EAAAA,GAAAA,CAAIH,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMG,IAAIH,KAAAA,CAAAA;AACnB;AACA,IAAO,OAAA,KAAA;AACT;AAEAQ,EAAAA,GAAAA,CAAIC,GAAc,EAAA;AAChB,IAAIV,IAAAA,SAAAA,CAAUU,GAAAA,CAAM,EAAA;AAClB,MAAO,OAAA,KAAA,CAAMD,IAAIC,GAAAA,CAAAA;AACnB;AACF;AAEAC,EAAAA,GAAAA,CAAID,KAAcT,KAAU,EAAA;AAC1B,IAAID,IAAAA,SAAAA,CAAUU,GAAAA,CAAM,EAAA;AAClB,MAAMC,KAAAA,CAAAA,GAAAA,CAAID,KAAKT,KAAAA,CAAAA;AACjB;AACA,IAAO,OAAA,IAAA;AACT;AAEAK,EAAAA,MAAAA,CAAOL,KAAgB,EAAA;AACrB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMK,OAAOL,KAAAA,CAAAA;AACtB;AACA,IAAO,OAAA,KAAA;AACT;AACF","file":"weakRef.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 isWeakKey(value: unknown): value is WeakKey {\n return value != null && typeof value === \"object\";\n}\n\nexport class SafeWeakSet extends WeakSet {\n has(value: unknown) {\n if (isWeakKey(value)) {\n return super.has(value);\n }\n return false;\n }\n\n add(value: unknown) {\n if (isWeakKey(value)) {\n super.add(value);\n }\n return this;\n }\n\n delete(value: unknown) {\n if (isWeakKey(value)) {\n return super.delete(value);\n }\n return false;\n }\n}\n\nexport class SafeWeakMap<T> extends WeakMap<WeakKey, T> {\n has(value: unknown) {\n if (isWeakKey(value)) {\n return super.has(value);\n }\n return false;\n }\n\n get(key: unknown) {\n if (isWeakKey(key)) {\n return super.get(key);\n }\n }\n\n set(key: unknown, value: T) {\n if (isWeakKey(key)) {\n super.set(key, value);\n }\n return this;\n }\n\n delete(value: unknown) {\n if (isWeakKey(value)) {\n return super.delete(value);\n }\n return false;\n }\n}\n"]}
1
+ {"version":3,"sources":["weakRef.ts"],"names":["isWeakKey","value","SafeWeakSet","WeakSet","has","add","delete","SafeWeakMap","WeakMap","get","key","set"],"mappings":";;AAgBO,SAASA,UAAUC,KAAc,EAAA;AACtC,EAAOA,OAAAA,KAAAA,IAAS,IAAQ,IAAA,OAAOA,KAAU,KAAA,QAAA;AAC3C;AAFgBD,MAAAA,CAAAA,SAAAA,EAAAA,WAAAA,CAAAA;AAIT,MAAME,oBAAoBC,OAAAA,CAAAA;EApBjC;;;AAqBEC,EAAAA,GAAAA,CAAIH,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMG,IAAIH,KAAAA,CAAAA;AACnB;AACA,IAAO,OAAA,KAAA;AACT;AAEAI,EAAAA,GAAAA,CAAIJ,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAA,KAAA,CAAMI,IAAIJ,KAAAA,CAAAA;AACZ;AACA,IAAO,OAAA,IAAA;AACT;AAEAK,EAAAA,MAAAA,CAAOL,KAAgB,EAAA;AACrB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMK,OAAOL,KAAAA,CAAAA;AACtB;AACA,IAAO,OAAA,KAAA;AACT;AACF;AAEO,MAAMM,oBAAuBC,OAAAA,CAAAA;EA3CpC;;;AA4CEJ,EAAAA,GAAAA,CAAIH,KAAgB,EAAA;AAClB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMG,IAAIH,KAAAA,CAAAA;AACnB;AACA,IAAO,OAAA,KAAA;AACT;AAEAQ,EAAAA,GAAAA,CAAIC,GAAc,EAAA;AAChB,IAAIV,IAAAA,SAAAA,CAAUU,GAAAA,CAAM,EAAA;AAClB,MAAO,OAAA,KAAA,CAAMD,IAAIC,GAAAA,CAAAA;AACnB;AACF;AAEAC,EAAAA,GAAAA,CAAID,KAAcT,KAAU,EAAA;AAC1B,IAAID,IAAAA,SAAAA,CAAUU,GAAAA,CAAM,EAAA;AAClB,MAAMC,KAAAA,CAAAA,GAAAA,CAAID,KAAKT,KAAAA,CAAAA;AACjB;AACA,IAAO,OAAA,IAAA;AACT;AAEAK,EAAAA,MAAAA,CAAOL,KAAgB,EAAA;AACrB,IAAID,IAAAA,SAAAA,CAAUC,KAAAA,CAAQ,EAAA;AACpB,MAAO,OAAA,KAAA,CAAMK,OAAOL,KAAAA,CAAAA;AACtB;AACA,IAAO,OAAA,KAAA;AACT;AACF","file":"weakRef.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 isWeakKey(value: unknown): value is WeakKey {\n return value != null && typeof value === \"object\";\n}\n\nexport class SafeWeakSet extends WeakSet {\n has(value: unknown) {\n if (isWeakKey(value)) {\n return super.has(value);\n }\n return false;\n }\n\n add(value: unknown) {\n if (isWeakKey(value)) {\n super.add(value);\n }\n return this;\n }\n\n delete(value: unknown) {\n if (isWeakKey(value)) {\n return super.delete(value);\n }\n return false;\n }\n}\n\nexport class SafeWeakMap<T> extends WeakMap<WeakKey, T> {\n has(value: unknown) {\n if (isWeakKey(value)) {\n return super.has(value);\n }\n return false;\n }\n\n get(key: unknown) {\n if (isWeakKey(key)) {\n return super.get(key);\n }\n }\n\n set(key: unknown, value: T) {\n if (isWeakKey(key)) {\n super.set(key, value);\n }\n return this;\n }\n\n delete(value: unknown) {\n if (isWeakKey(value)) {\n return super.delete(value);\n }\n return false;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internals/serializable.ts"],"names":["Serializable","constructor","Object","getPrototypeOf","register","Cache","init","aliases","Serializer","registerSerializable","undefined","clone","snapshot","createSnapshot","target","create","prototype","loadSnapshot","serialize","extractClassName","deserialize","value","options","__root","deserializeWithMeta","extraClasses","console","warn","current","SerializerError","fromSnapshot","state","fromSerialized","serialized"],"mappings":";;;;;;;;;AAkCO,MAAeA,YAAAA,CAAAA;EAlCtB;;;EAsCEC,WAAc,GAAA;AACZC,IAAAA,MAAAA,CAAOC,cAAe,CAAA,IAAI,CAAEF,CAAAA,WAAAA,CAAYG,QAAQ,EAAA;AAChDC,IAAAA,wBAAAA,CAAMC,KAAK,IAAI,CAAA;AACjB;AAEA,EAAA,OAAcF,SAAwCG,OAAoB,EAAA;AACxEC,IAAWC,yBAAAA,CAAAA,oBAAAA,CAAqB,IAAMC,EAAAA,KAAAA,CAAAA,EAAWH,OAAAA,CAAAA;AACnD;AAEA,EAAA,MAAMI,KAAmD,GAAA;AACvD,IAAMC,MAAAA,QAAAA,GAAW,MAAM,IAAA,CAAKC,cAAc,EAAA;AAE1C,IAAA,MAAMC,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKd,YAAYe,SAAS,CAAA;AACvD,IAAMF,MAAAA,MAAAA,CAAOG,aAAaL,QAAAA,CAAAA;AAC1B,IAAOE,OAAAA,MAAAA;AACT;AAEA,EAAA,MAAMI,SAA6B,GAAA;AACjC,IAAMN,MAAAA,QAAAA,GAAW,MAAM,IAAA,CAAKC,cAAc,EAAA;AAC1C,IAAO,OAAA,MAAML,0BAAWU,SAAoC,CAAA;AAC1DJ,MAAAA,MAAAA,EAAQK,2BAAiB,IAAI,CAAA;AAC7BP,MAAAA;KACF,CAAA;AACF;EAEA,MAAgBQ,WAAAA,CAAYC,OAAeC,OAA0C,EAAA;AACnF,IAAM,MAAA,EAAEC,QAAW,GAAA,MAAMf,0BAAWgB,mBAClCH,CAAAA,KAAAA,EACAC,SAASG,YAAAA,CAAAA;AAEX,IAAI,IAAA,CAACF,OAAOT,MAAQ,EAAA;AAElBY,MAAAA,OAAAA,CAAQC,KACN,CAAwI,sIAAA,CAAA,CAAA;AAE1I,MAAOJ,OAAAA,MAAAA;AACT;AAEA,IAAMK,MAAAA,OAAAA,GAAUT,2BAAiB,IAAI,CAAA;AACrC,IAAIS,IAAAA,OAAAA,KAAYL,OAAOT,MAAQ,EAAA;AAC7B,MAAA,MAAM,IAAIe,yBACR,CAAA,CAAA,qCAAA,EAAwCN,OAAOT,MAAM,CAAA,oCAAA,EAAuCc,OAAAA,CAAW,EAAA,CAAA,CAAA;AAE3G;AACA,IAAA,OAAOL,MAAOX,CAAAA,QAAAA;AAChB;AAEA,EAAA,aAAakB,aAEXC,KACY,EAAA;AACZ,IAAA,MAAMjB,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKC,SAAS,CAAA;AAC3C,IAAMF,MAAAA,MAAAA,CAAOG,aAAac,KAAAA,CAAAA;AAC1B1B,IAAAA,wBAAAA,CAAMC,KAAKQ,MAAAA,CAAAA;AACX,IAAOA,OAAAA,MAAAA;AACT;AAEA,EAAA,aAAakB,cAEXC,CAAAA,UAAAA,EACAX,OAA8B,GAAA,EAClB,EAAA;AACZ,IAAA,MAAMR,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKC,SAAS,CAAA;AAC3C,IAAA,MAAMe,KAAQ,GAAA,MAAMjB,MAAOM,CAAAA,WAAAA,CAAYa,YAAYX,OAAAA,CAAAA;AACnD,IAAMR,MAAAA,MAAAA,CAAOG,aAAac,KAAAA,CAAAA;AAC1B1B,IAAAA,wBAAAA,CAAMC,KAAKQ,MAAAA,CAAAA;AACX,IAAOA,OAAAA,MAAAA;AACT;AACF","file":"serializable.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 { Serializer } from \"@/serializer/serializer.js\";\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport { extractClassName } from \"@/serializer/utils.js\";\nimport { SerializerError } from \"@/serializer/error.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\nexport type SerializableClass<T> = ClassConstructor<Serializable<T>> &\n Pick<typeof Serializable<T>, \"fromSnapshot\" | \"fromSerialized\">;\n\ninterface SerializableStructure<T> {\n target: string;\n snapshot: T;\n}\n\nexport interface DeserializeOptions {\n extraClasses?: SerializableClass<unknown>[];\n}\n\nexport abstract class Serializable<T = unknown> {\n abstract createSnapshot(): T | Promise<T>;\n abstract loadSnapshot(snapshot: T): void | Promise<void>;\n\n constructor() {\n Object.getPrototypeOf(this).constructor.register();\n Cache.init(this);\n }\n\n public static register<T>(this: SerializableClass<T>, aliases?: string[]) {\n Serializer.registerSerializable(this, undefined, aliases);\n }\n\n async clone<T extends Serializable>(this: T): Promise<T> {\n const snapshot = await this.createSnapshot();\n\n const target = Object.create(this.constructor.prototype) as T;\n await target.loadSnapshot(snapshot);\n return target;\n }\n\n async serialize(): Promise<string> {\n const snapshot = await this.createSnapshot();\n return await Serializer.serialize<SerializableStructure<T>>({\n target: extractClassName(this),\n snapshot,\n });\n }\n\n protected async deserialize(value: string, options?: DeserializeOptions): Promise<T> {\n const { __root } = await Serializer.deserializeWithMeta<SerializableStructure<T>>(\n value,\n options?.extraClasses,\n );\n if (!__root.target) {\n // eslint-disable-next-line\n console.warn(\n `Serializable class must be serialized via \"serialize\" method and not via Serializer class. This may lead to incorrect deserialization.`,\n );\n return __root as T;\n }\n\n const current = extractClassName(this);\n if (current !== __root.target) {\n throw new SerializerError(\n `Snapshot has been created for class '${__root.target}' but you want to use it for class '${current}'.`,\n );\n }\n return __root.snapshot;\n }\n\n static async fromSnapshot<P, T extends Serializable<P>>(\n this: new (...args: any[]) => T,\n state: P,\n ): Promise<T> {\n const target = Object.create(this.prototype);\n await target.loadSnapshot(state);\n Cache.init(target);\n return target;\n }\n\n static async fromSerialized<T extends Serializable>(\n this: abstract new (...args: any[]) => T,\n serialized: string,\n options: DeserializeOptions = {},\n ): Promise<T> {\n const target = Object.create(this.prototype) as T;\n const state = await target.deserialize(serialized, options);\n await target.loadSnapshot(state);\n Cache.init(target);\n return target;\n }\n}\n"]}
1
+ {"version":3,"sources":["serializable.ts"],"names":["Serializable","constructor","Object","getPrototypeOf","register","Cache","init","aliases","Serializer","registerSerializable","undefined","clone","snapshot","createSnapshot","target","create","prototype","loadSnapshot","serialize","extractClassName","deserialize","value","options","__root","deserializeWithMeta","extraClasses","console","warn","current","SerializerError","fromSnapshot","state","fromSerialized","serialized"],"mappings":";;;;;;;;;AAkCO,MAAeA,YAAAA,CAAAA;EAlCtB;;;EAsCEC,WAAc,GAAA;AACZC,IAAAA,MAAAA,CAAOC,cAAe,CAAA,IAAI,CAAEF,CAAAA,WAAAA,CAAYG,QAAQ,EAAA;AAChDC,IAAAA,wBAAAA,CAAMC,KAAK,IAAI,CAAA;AACjB;AAEA,EAAA,OAAcF,SAAwCG,OAAoB,EAAA;AACxEC,IAAWC,yBAAAA,CAAAA,oBAAAA,CAAqB,IAAMC,EAAAA,MAAAA,EAAWH,OAAAA,CAAAA;AACnD;AAEA,EAAA,MAAMI,KAAmD,GAAA;AACvD,IAAMC,MAAAA,QAAAA,GAAW,MAAM,IAAA,CAAKC,cAAc,EAAA;AAE1C,IAAA,MAAMC,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKd,YAAYe,SAAS,CAAA;AACvD,IAAMF,MAAAA,MAAAA,CAAOG,aAAaL,QAAAA,CAAAA;AAC1B,IAAOE,OAAAA,MAAAA;AACT;AAEA,EAAA,MAAMI,SAA6B,GAAA;AACjC,IAAMN,MAAAA,QAAAA,GAAW,MAAM,IAAA,CAAKC,cAAc,EAAA;AAC1C,IAAO,OAAA,MAAML,0BAAWU,SAAoC,CAAA;AAC1DJ,MAAAA,MAAAA,EAAQK,2BAAiB,IAAI,CAAA;AAC7BP,MAAAA;KACF,CAAA;AACF;EAEA,MAAgBQ,WAAAA,CAAYC,OAAeC,OAA0C,EAAA;AACnF,IAAM,MAAA,EAAEC,QAAW,GAAA,MAAMf,0BAAWgB,mBAClCH,CAAAA,KAAAA,EACAC,SAASG,YAAAA,CAAAA;AAEX,IAAI,IAAA,CAACF,OAAOT,MAAQ,EAAA;AAElBY,MAAAA,OAAAA,CAAQC,KACN,CAAwI,sIAAA,CAAA,CAAA;AAE1I,MAAOJ,OAAAA,MAAAA;AACT;AAEA,IAAMK,MAAAA,OAAAA,GAAUT,2BAAiB,IAAI,CAAA;AACrC,IAAIS,IAAAA,OAAAA,KAAYL,OAAOT,MAAQ,EAAA;AAC7B,MAAA,MAAM,IAAIe,yBACR,CAAA,CAAA,qCAAA,EAAwCN,OAAOT,MAAM,CAAA,oCAAA,EAAuCc,OAAAA,CAAW,EAAA,CAAA,CAAA;AAE3G;AACA,IAAA,OAAOL,MAAOX,CAAAA,QAAAA;AAChB;AAEA,EAAA,aAAakB,aAEXC,KACY,EAAA;AACZ,IAAA,MAAMjB,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKC,SAAS,CAAA;AAC3C,IAAMF,MAAAA,MAAAA,CAAOG,aAAac,KAAAA,CAAAA;AAC1B1B,IAAAA,wBAAAA,CAAMC,KAAKQ,MAAAA,CAAAA;AACX,IAAOA,OAAAA,MAAAA;AACT;AAEA,EAAA,aAAakB,cAEXC,CAAAA,UAAAA,EACAX,OAA8B,GAAA,EAClB,EAAA;AACZ,IAAA,MAAMR,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKC,SAAS,CAAA;AAC3C,IAAA,MAAMe,KAAQ,GAAA,MAAMjB,MAAOM,CAAAA,WAAAA,CAAYa,YAAYX,OAAAA,CAAAA;AACnD,IAAMR,MAAAA,MAAAA,CAAOG,aAAac,KAAAA,CAAAA;AAC1B1B,IAAAA,wBAAAA,CAAMC,KAAKQ,MAAAA,CAAAA;AACX,IAAOA,OAAAA,MAAAA;AACT;AACF","file":"serializable.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 { Serializer } from \"@/serializer/serializer.js\";\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport { extractClassName } from \"@/serializer/utils.js\";\nimport { SerializerError } from \"@/serializer/error.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\nexport type SerializableClass<T> = ClassConstructor<Serializable<T>> &\n Pick<typeof Serializable<T>, \"fromSnapshot\" | \"fromSerialized\">;\n\ninterface SerializableStructure<T> {\n target: string;\n snapshot: T;\n}\n\nexport interface DeserializeOptions {\n extraClasses?: SerializableClass<unknown>[];\n}\n\nexport abstract class Serializable<T = unknown> {\n abstract createSnapshot(): T | Promise<T>;\n abstract loadSnapshot(snapshot: T): void | Promise<void>;\n\n constructor() {\n Object.getPrototypeOf(this).constructor.register();\n Cache.init(this);\n }\n\n public static register<T>(this: SerializableClass<T>, aliases?: string[]) {\n Serializer.registerSerializable(this, undefined, aliases);\n }\n\n async clone<T extends Serializable>(this: T): Promise<T> {\n const snapshot = await this.createSnapshot();\n\n const target = Object.create(this.constructor.prototype) as T;\n await target.loadSnapshot(snapshot);\n return target;\n }\n\n async serialize(): Promise<string> {\n const snapshot = await this.createSnapshot();\n return await Serializer.serialize<SerializableStructure<T>>({\n target: extractClassName(this),\n snapshot,\n });\n }\n\n protected async deserialize(value: string, options?: DeserializeOptions): Promise<T> {\n const { __root } = await Serializer.deserializeWithMeta<SerializableStructure<T>>(\n value,\n options?.extraClasses,\n );\n if (!__root.target) {\n // eslint-disable-next-line\n console.warn(\n `Serializable class must be serialized via \"serialize\" method and not via Serializer class. This may lead to incorrect deserialization.`,\n );\n return __root as T;\n }\n\n const current = extractClassName(this);\n if (current !== __root.target) {\n throw new SerializerError(\n `Snapshot has been created for class '${__root.target}' but you want to use it for class '${current}'.`,\n );\n }\n return __root.snapshot;\n }\n\n static async fromSnapshot<P, T extends Serializable<P>>(\n this: new (...args: any[]) => T,\n state: P,\n ): Promise<T> {\n const target = Object.create(this.prototype);\n await target.loadSnapshot(state);\n Cache.init(target);\n return target;\n }\n\n static async fromSerialized<T extends Serializable>(\n this: abstract new (...args: any[]) => T,\n serialized: string,\n options: DeserializeOptions = {},\n ): Promise<T> {\n const target = Object.create(this.prototype) as T;\n const state = await target.deserialize(serialized, options);\n await target.loadSnapshot(state);\n Cache.init(target);\n return target;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internals/serializable.ts"],"names":["Serializable","constructor","Object","getPrototypeOf","register","Cache","init","aliases","Serializer","registerSerializable","undefined","clone","snapshot","createSnapshot","target","create","prototype","loadSnapshot","serialize","extractClassName","deserialize","value","options","__root","deserializeWithMeta","extraClasses","console","warn","current","SerializerError","fromSnapshot","state","fromSerialized","serialized"],"mappings":";;;;;;;AAkCO,MAAeA,YAAAA,CAAAA;EAlCtB;;;EAsCEC,WAAc,GAAA;AACZC,IAAAA,MAAAA,CAAOC,cAAe,CAAA,IAAI,CAAEF,CAAAA,WAAAA,CAAYG,QAAQ,EAAA;AAChDC,IAAAA,KAAAA,CAAMC,KAAK,IAAI,CAAA;AACjB;AAEA,EAAA,OAAcF,SAAwCG,OAAoB,EAAA;AACxEC,IAAWC,UAAAA,CAAAA,oBAAAA,CAAqB,IAAMC,EAAAA,KAAAA,CAAAA,EAAWH,OAAAA,CAAAA;AACnD;AAEA,EAAA,MAAMI,KAAmD,GAAA;AACvD,IAAMC,MAAAA,QAAAA,GAAW,MAAM,IAAA,CAAKC,cAAc,EAAA;AAE1C,IAAA,MAAMC,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKd,YAAYe,SAAS,CAAA;AACvD,IAAMF,MAAAA,MAAAA,CAAOG,aAAaL,QAAAA,CAAAA;AAC1B,IAAOE,OAAAA,MAAAA;AACT;AAEA,EAAA,MAAMI,SAA6B,GAAA;AACjC,IAAMN,MAAAA,QAAAA,GAAW,MAAM,IAAA,CAAKC,cAAc,EAAA;AAC1C,IAAO,OAAA,MAAML,WAAWU,SAAoC,CAAA;AAC1DJ,MAAAA,MAAAA,EAAQK,iBAAiB,IAAI,CAAA;AAC7BP,MAAAA;KACF,CAAA;AACF;EAEA,MAAgBQ,WAAAA,CAAYC,OAAeC,OAA0C,EAAA;AACnF,IAAM,MAAA,EAAEC,QAAW,GAAA,MAAMf,WAAWgB,mBAClCH,CAAAA,KAAAA,EACAC,SAASG,YAAAA,CAAAA;AAEX,IAAI,IAAA,CAACF,OAAOT,MAAQ,EAAA;AAElBY,MAAAA,OAAAA,CAAQC,KACN,CAAwI,sIAAA,CAAA,CAAA;AAE1I,MAAOJ,OAAAA,MAAAA;AACT;AAEA,IAAMK,MAAAA,OAAAA,GAAUT,iBAAiB,IAAI,CAAA;AACrC,IAAIS,IAAAA,OAAAA,KAAYL,OAAOT,MAAQ,EAAA;AAC7B,MAAA,MAAM,IAAIe,eACR,CAAA,CAAA,qCAAA,EAAwCN,OAAOT,MAAM,CAAA,oCAAA,EAAuCc,OAAAA,CAAW,EAAA,CAAA,CAAA;AAE3G;AACA,IAAA,OAAOL,MAAOX,CAAAA,QAAAA;AAChB;AAEA,EAAA,aAAakB,aAEXC,KACY,EAAA;AACZ,IAAA,MAAMjB,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKC,SAAS,CAAA;AAC3C,IAAMF,MAAAA,MAAAA,CAAOG,aAAac,KAAAA,CAAAA;AAC1B1B,IAAAA,KAAAA,CAAMC,KAAKQ,MAAAA,CAAAA;AACX,IAAOA,OAAAA,MAAAA;AACT;AAEA,EAAA,aAAakB,cAEXC,CAAAA,UAAAA,EACAX,OAA8B,GAAA,EAClB,EAAA;AACZ,IAAA,MAAMR,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKC,SAAS,CAAA;AAC3C,IAAA,MAAMe,KAAQ,GAAA,MAAMjB,MAAOM,CAAAA,WAAAA,CAAYa,YAAYX,OAAAA,CAAAA;AACnD,IAAMR,MAAAA,MAAAA,CAAOG,aAAac,KAAAA,CAAAA;AAC1B1B,IAAAA,KAAAA,CAAMC,KAAKQ,MAAAA,CAAAA;AACX,IAAOA,OAAAA,MAAAA;AACT;AACF","file":"serializable.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 { Serializer } from \"@/serializer/serializer.js\";\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport { extractClassName } from \"@/serializer/utils.js\";\nimport { SerializerError } from \"@/serializer/error.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\nexport type SerializableClass<T> = ClassConstructor<Serializable<T>> &\n Pick<typeof Serializable<T>, \"fromSnapshot\" | \"fromSerialized\">;\n\ninterface SerializableStructure<T> {\n target: string;\n snapshot: T;\n}\n\nexport interface DeserializeOptions {\n extraClasses?: SerializableClass<unknown>[];\n}\n\nexport abstract class Serializable<T = unknown> {\n abstract createSnapshot(): T | Promise<T>;\n abstract loadSnapshot(snapshot: T): void | Promise<void>;\n\n constructor() {\n Object.getPrototypeOf(this).constructor.register();\n Cache.init(this);\n }\n\n public static register<T>(this: SerializableClass<T>, aliases?: string[]) {\n Serializer.registerSerializable(this, undefined, aliases);\n }\n\n async clone<T extends Serializable>(this: T): Promise<T> {\n const snapshot = await this.createSnapshot();\n\n const target = Object.create(this.constructor.prototype) as T;\n await target.loadSnapshot(snapshot);\n return target;\n }\n\n async serialize(): Promise<string> {\n const snapshot = await this.createSnapshot();\n return await Serializer.serialize<SerializableStructure<T>>({\n target: extractClassName(this),\n snapshot,\n });\n }\n\n protected async deserialize(value: string, options?: DeserializeOptions): Promise<T> {\n const { __root } = await Serializer.deserializeWithMeta<SerializableStructure<T>>(\n value,\n options?.extraClasses,\n );\n if (!__root.target) {\n // eslint-disable-next-line\n console.warn(\n `Serializable class must be serialized via \"serialize\" method and not via Serializer class. This may lead to incorrect deserialization.`,\n );\n return __root as T;\n }\n\n const current = extractClassName(this);\n if (current !== __root.target) {\n throw new SerializerError(\n `Snapshot has been created for class '${__root.target}' but you want to use it for class '${current}'.`,\n );\n }\n return __root.snapshot;\n }\n\n static async fromSnapshot<P, T extends Serializable<P>>(\n this: new (...args: any[]) => T,\n state: P,\n ): Promise<T> {\n const target = Object.create(this.prototype);\n await target.loadSnapshot(state);\n Cache.init(target);\n return target;\n }\n\n static async fromSerialized<T extends Serializable>(\n this: abstract new (...args: any[]) => T,\n serialized: string,\n options: DeserializeOptions = {},\n ): Promise<T> {\n const target = Object.create(this.prototype) as T;\n const state = await target.deserialize(serialized, options);\n await target.loadSnapshot(state);\n Cache.init(target);\n return target;\n }\n}\n"]}
1
+ {"version":3,"sources":["serializable.ts"],"names":["Serializable","constructor","Object","getPrototypeOf","register","Cache","init","aliases","Serializer","registerSerializable","undefined","clone","snapshot","createSnapshot","target","create","prototype","loadSnapshot","serialize","extractClassName","deserialize","value","options","__root","deserializeWithMeta","extraClasses","console","warn","current","SerializerError","fromSnapshot","state","fromSerialized","serialized"],"mappings":";;;;;;;AAkCO,MAAeA,YAAAA,CAAAA;EAlCtB;;;EAsCEC,WAAc,GAAA;AACZC,IAAAA,MAAAA,CAAOC,cAAe,CAAA,IAAI,CAAEF,CAAAA,WAAAA,CAAYG,QAAQ,EAAA;AAChDC,IAAAA,KAAAA,CAAMC,KAAK,IAAI,CAAA;AACjB;AAEA,EAAA,OAAcF,SAAwCG,OAAoB,EAAA;AACxEC,IAAWC,UAAAA,CAAAA,oBAAAA,CAAqB,IAAMC,EAAAA,MAAAA,EAAWH,OAAAA,CAAAA;AACnD;AAEA,EAAA,MAAMI,KAAmD,GAAA;AACvD,IAAMC,MAAAA,QAAAA,GAAW,MAAM,IAAA,CAAKC,cAAc,EAAA;AAE1C,IAAA,MAAMC,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKd,YAAYe,SAAS,CAAA;AACvD,IAAMF,MAAAA,MAAAA,CAAOG,aAAaL,QAAAA,CAAAA;AAC1B,IAAOE,OAAAA,MAAAA;AACT;AAEA,EAAA,MAAMI,SAA6B,GAAA;AACjC,IAAMN,MAAAA,QAAAA,GAAW,MAAM,IAAA,CAAKC,cAAc,EAAA;AAC1C,IAAO,OAAA,MAAML,WAAWU,SAAoC,CAAA;AAC1DJ,MAAAA,MAAAA,EAAQK,iBAAiB,IAAI,CAAA;AAC7BP,MAAAA;KACF,CAAA;AACF;EAEA,MAAgBQ,WAAAA,CAAYC,OAAeC,OAA0C,EAAA;AACnF,IAAM,MAAA,EAAEC,QAAW,GAAA,MAAMf,WAAWgB,mBAClCH,CAAAA,KAAAA,EACAC,SAASG,YAAAA,CAAAA;AAEX,IAAI,IAAA,CAACF,OAAOT,MAAQ,EAAA;AAElBY,MAAAA,OAAAA,CAAQC,KACN,CAAwI,sIAAA,CAAA,CAAA;AAE1I,MAAOJ,OAAAA,MAAAA;AACT;AAEA,IAAMK,MAAAA,OAAAA,GAAUT,iBAAiB,IAAI,CAAA;AACrC,IAAIS,IAAAA,OAAAA,KAAYL,OAAOT,MAAQ,EAAA;AAC7B,MAAA,MAAM,IAAIe,eACR,CAAA,CAAA,qCAAA,EAAwCN,OAAOT,MAAM,CAAA,oCAAA,EAAuCc,OAAAA,CAAW,EAAA,CAAA,CAAA;AAE3G;AACA,IAAA,OAAOL,MAAOX,CAAAA,QAAAA;AAChB;AAEA,EAAA,aAAakB,aAEXC,KACY,EAAA;AACZ,IAAA,MAAMjB,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKC,SAAS,CAAA;AAC3C,IAAMF,MAAAA,MAAAA,CAAOG,aAAac,KAAAA,CAAAA;AAC1B1B,IAAAA,KAAAA,CAAMC,KAAKQ,MAAAA,CAAAA;AACX,IAAOA,OAAAA,MAAAA;AACT;AAEA,EAAA,aAAakB,cAEXC,CAAAA,UAAAA,EACAX,OAA8B,GAAA,EAClB,EAAA;AACZ,IAAA,MAAMR,MAASZ,GAAAA,MAAAA,CAAOa,MAAO,CAAA,IAAA,CAAKC,SAAS,CAAA;AAC3C,IAAA,MAAMe,KAAQ,GAAA,MAAMjB,MAAOM,CAAAA,WAAAA,CAAYa,YAAYX,OAAAA,CAAAA;AACnD,IAAMR,MAAAA,MAAAA,CAAOG,aAAac,KAAAA,CAAAA;AAC1B1B,IAAAA,KAAAA,CAAMC,KAAKQ,MAAAA,CAAAA;AACX,IAAOA,OAAAA,MAAAA;AACT;AACF","file":"serializable.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 { Serializer } from \"@/serializer/serializer.js\";\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport { extractClassName } from \"@/serializer/utils.js\";\nimport { SerializerError } from \"@/serializer/error.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\nexport type SerializableClass<T> = ClassConstructor<Serializable<T>> &\n Pick<typeof Serializable<T>, \"fromSnapshot\" | \"fromSerialized\">;\n\ninterface SerializableStructure<T> {\n target: string;\n snapshot: T;\n}\n\nexport interface DeserializeOptions {\n extraClasses?: SerializableClass<unknown>[];\n}\n\nexport abstract class Serializable<T = unknown> {\n abstract createSnapshot(): T | Promise<T>;\n abstract loadSnapshot(snapshot: T): void | Promise<void>;\n\n constructor() {\n Object.getPrototypeOf(this).constructor.register();\n Cache.init(this);\n }\n\n public static register<T>(this: SerializableClass<T>, aliases?: string[]) {\n Serializer.registerSerializable(this, undefined, aliases);\n }\n\n async clone<T extends Serializable>(this: T): Promise<T> {\n const snapshot = await this.createSnapshot();\n\n const target = Object.create(this.constructor.prototype) as T;\n await target.loadSnapshot(snapshot);\n return target;\n }\n\n async serialize(): Promise<string> {\n const snapshot = await this.createSnapshot();\n return await Serializer.serialize<SerializableStructure<T>>({\n target: extractClassName(this),\n snapshot,\n });\n }\n\n protected async deserialize(value: string, options?: DeserializeOptions): Promise<T> {\n const { __root } = await Serializer.deserializeWithMeta<SerializableStructure<T>>(\n value,\n options?.extraClasses,\n );\n if (!__root.target) {\n // eslint-disable-next-line\n console.warn(\n `Serializable class must be serialized via \"serialize\" method and not via Serializer class. This may lead to incorrect deserialization.`,\n );\n return __root as T;\n }\n\n const current = extractClassName(this);\n if (current !== __root.target) {\n throw new SerializerError(\n `Snapshot has been created for class '${__root.target}' but you want to use it for class '${current}'.`,\n );\n }\n return __root.snapshot;\n }\n\n static async fromSnapshot<P, T extends Serializable<P>>(\n this: new (...args: any[]) => T,\n state: P,\n ): Promise<T> {\n const target = Object.create(this.prototype);\n await target.loadSnapshot(state);\n Cache.init(target);\n return target;\n }\n\n static async fromSerialized<T extends Serializable>(\n this: abstract new (...args: any[]) => T,\n serialized: string,\n options: DeserializeOptions = {},\n ): Promise<T> {\n const target = Object.create(this.prototype) as T;\n const state = await target.deserialize(serialized, options);\n await target.loadSnapshot(state);\n Cache.init(target);\n return target;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internals/types.ts"],"names":["narrowTo","value","fn"],"mappings":";;;;AAmGO,SAASA,QAAAA,CAAYC,OAAgBC,EAAqC,EAAA;AAC/E,EAAI,IAAA,OAAOA,OAAO,UAAY,EAAA;AAC5B,IAAA,OAAOA,GAAGD,KAAAA,CAAAA;AACZ;AACA,EAAOC,OAAAA,EAAAA;AACT;AALgBF,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA","file":"types.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 type { Primitive } from \"@/internals/helpers/guards.js\";\ntype ExcludeArrayLike<T> = object & Exclude<T, any[]>;\nexport type ObjectLike<K extends keyof any = string, V = any> = Record<K, V>;\nexport type PlainObject<K extends string = string, V = Primitive> = Exclude<\n ExcludeArrayLike<Record<K & string, any extends V ? never : V>>,\n any[]\n>;\n\nexport type ExcludeNonStringIndex<T> = {\n [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];\n};\n\nexport type AnyFn = (...args: any[]) => any;\n\nexport type Enum<T> = Readonly<{\n [K in keyof T]: K;\n}>;\nexport type EnumFromUnion<T extends string> = Readonly<{\n [K in T as Uppercase<K>]: K;\n}>;\nexport type EnumValue<T> = T extends Enum<infer P> ? P[keyof P] : never;\nexport type EnumLowerCaseValue<T> = Readonly<{\n [K in keyof T]: K extends string ? Lowercase<K> : never;\n}>[keyof T];\nexport type EmptyObject = Record<string, never>;\n\nexport type OmitType<T, O = never> = { [K in keyof T as T[K] extends O ? never : K]: T[K] };\n\nexport type Class<T = any> = new (...args: any[]) => T;\n\ntype TupleUnion<U extends string, R extends any[] = []> = {\n [S in U]: Exclude<U, S> extends never ? [...R, S] : TupleUnion<Exclude<U, S>, [...R, S]>;\n}[U];\nexport type ArrayKeys<T> = TupleUnion<Extract<keyof T, string>>;\nexport type Common<A, B> = {\n [P in keyof A & keyof B]: A[P] | B[P];\n};\nexport type ValueOf<T extends NonNullable<unknown>> = T[keyof T];\n\nexport type Head<T> = T extends [infer A, ...any] ? A : never;\nexport type Tail<T> = T extends [any, ...infer B] ? B : never;\nexport type RequiredExcept<T, K extends keyof T> = Omit<Required<T>, K> & Pick<Partial<T>, K>;\nexport type OptionalExcept<T, K extends keyof T> = Pick<Required<T>, K> & Omit<Partial<T>, K>;\nexport type NonUndefined<T, K extends keyof T = keyof T> = Pick<Required<T>, K> & Omit<T, K>;\n\nexport type RequiredAll<T> = {\n [P in keyof T]-?: NonNullable<T[P]>;\n};\n\nexport type RequiredNested<T> = {\n [P in keyof T]-?: Required<T[P]>;\n};\n\nexport type OmitEmpty<T> = OmitType<T, never | void>;\nexport type NonEmptyArray<T> = [T, ...T[]];\nexport type Unwrap<T> = T extends (infer X)[] ? X : T;\nexport type Constructable<T> = new (...args: any[]) => T;\nexport type AbstractConstructable = abstract new (...args: any[]) => any;\nexport type AnyConstructable = Constructable<any>;\n\nexport type Constructor<T extends new (...args: any) => any> = T extends new (\n ...args: infer A\n) => infer R\n ? new (...args: A) => R\n : never;\n\nexport interface ClassConstructor<T = any> {\n name: string;\n new (...args: any[]): T;\n}\nexport type AbstractClassConstructor<T = any> = abstract new (...args: any[]) => T;\nexport interface NamedFunction<T = any> {\n name: string;\n (...args: any[]): T;\n}\n\nexport type PromiseOrPlain<T, Decider extends AnyFn> =\n ReturnType<Decider> extends Promise<unknown> ? Promise<T> : T;\n\nexport type NoPromise<T> = T extends Promise<unknown> ? never : T;\n\nexport type TypedFn<P extends any[], R> = (...args: P) => R;\n\nexport function narrowTo<T>(value: unknown, fn: boolean | ((value: T) => boolean)): value is T {\n if (typeof fn === \"function\") {\n return fn(value as T);\n }\n return fn;\n}\n\ntype Without<T, U> = Partial<Record<Exclude<keyof T, keyof U>, never>>;\nexport type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\nexport type OneOf<T extends any[]> = T extends [infer Only]\n ? Only\n : T extends [infer A, infer B, ...infer Rest]\n ? OneOf<[XOR<A, B>, ...Rest]>\n : never;\n\nexport type AnyVoid = Promise<unknown> | unknown;\n\nexport type OmitPrivateKeys<T> = {\n [K in keyof T as K extends `_${string}` ? never : K]: T[K];\n};\n\ntype MergeElements<A, B> = A extends never ? B : B extends never ? A : A | B;\nexport type MergeArrays<A extends any[], B extends any[]> = A extends []\n ? B\n : B extends []\n ? A\n : [MergeElements<Head<A>, Head<B>>, ...MergeArrays<Tail<A>, Tail<B>>];\n\nexport type MergeFunctions<A extends AnyFn, B extends AnyFn> = (\n ...args: MergeArrays<Parameters<A>, Parameters<B>>\n) => MergeElements<ReturnType<B>, ReturnType<A>>;\n\nexport type WithoutLast<T> = T extends [...infer A, any] ? A : [];\n"]}
1
+ {"version":3,"sources":["types.ts"],"names":["narrowTo","value","fn"],"mappings":";;;;AAmGO,SAASA,QAAAA,CAAYC,OAAgBC,EAAqC,EAAA;AAC/E,EAAI,IAAA,OAAOA,OAAO,UAAY,EAAA;AAC5B,IAAA,OAAOA,GAAGD,KAAAA,CAAAA;AACZ;AACA,EAAOC,OAAAA,EAAAA;AACT;AALgBF,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA","file":"types.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 type { Primitive } from \"@/internals/helpers/guards.js\";\ntype ExcludeArrayLike<T> = object & Exclude<T, any[]>;\nexport type ObjectLike<K extends keyof any = string, V = any> = Record<K, V>;\nexport type PlainObject<K extends string = string, V = Primitive> = Exclude<\n ExcludeArrayLike<Record<K & string, any extends V ? never : V>>,\n any[]\n>;\n\nexport type ExcludeNonStringIndex<T> = {\n [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];\n};\n\nexport type AnyFn = (...args: any[]) => any;\n\nexport type Enum<T> = Readonly<{\n [K in keyof T]: K;\n}>;\nexport type EnumFromUnion<T extends string> = Readonly<{\n [K in T as Uppercase<K>]: K;\n}>;\nexport type EnumValue<T> = T extends Enum<infer P> ? P[keyof P] : never;\nexport type EnumLowerCaseValue<T> = Readonly<{\n [K in keyof T]: K extends string ? Lowercase<K> : never;\n}>[keyof T];\nexport type EmptyObject = Record<string, never>;\n\nexport type OmitType<T, O = never> = { [K in keyof T as T[K] extends O ? never : K]: T[K] };\n\nexport type Class<T = any> = new (...args: any[]) => T;\n\ntype TupleUnion<U extends string, R extends any[] = []> = {\n [S in U]: Exclude<U, S> extends never ? [...R, S] : TupleUnion<Exclude<U, S>, [...R, S]>;\n}[U];\nexport type ArrayKeys<T> = TupleUnion<Extract<keyof T, string>>;\nexport type Common<A, B> = {\n [P in keyof A & keyof B]: A[P] | B[P];\n};\nexport type ValueOf<T extends NonNullable<unknown>> = T[keyof T];\n\nexport type Head<T> = T extends [infer A, ...any] ? A : never;\nexport type Tail<T> = T extends [any, ...infer B] ? B : never;\nexport type RequiredExcept<T, K extends keyof T> = Omit<Required<T>, K> & Pick<Partial<T>, K>;\nexport type OptionalExcept<T, K extends keyof T> = Pick<Required<T>, K> & Omit<Partial<T>, K>;\nexport type NonUndefined<T, K extends keyof T = keyof T> = Pick<Required<T>, K> & Omit<T, K>;\n\nexport type RequiredAll<T> = {\n [P in keyof T]-?: NonNullable<T[P]>;\n};\n\nexport type RequiredNested<T> = {\n [P in keyof T]-?: Required<T[P]>;\n};\n\nexport type OmitEmpty<T> = OmitType<T, never | void>;\nexport type NonEmptyArray<T> = [T, ...T[]];\nexport type Unwrap<T> = T extends (infer X)[] ? X : T;\nexport type Constructable<T> = new (...args: any[]) => T;\nexport type AbstractConstructable = abstract new (...args: any[]) => any;\nexport type AnyConstructable = Constructable<any>;\n\nexport type Constructor<T extends new (...args: any) => any> = T extends new (\n ...args: infer A\n) => infer R\n ? new (...args: A) => R\n : never;\n\nexport interface ClassConstructor<T = any> {\n name: string;\n new (...args: any[]): T;\n}\nexport type AbstractClassConstructor<T = any> = abstract new (...args: any[]) => T;\nexport interface NamedFunction<T = any> {\n name: string;\n (...args: any[]): T;\n}\n\nexport type PromiseOrPlain<T, Decider extends AnyFn> =\n ReturnType<Decider> extends Promise<unknown> ? Promise<T> : T;\n\nexport type NoPromise<T> = T extends Promise<unknown> ? never : T;\n\nexport type TypedFn<P extends any[], R> = (...args: P) => R;\n\nexport function narrowTo<T>(value: unknown, fn: boolean | ((value: T) => boolean)): value is T {\n if (typeof fn === \"function\") {\n return fn(value as T);\n }\n return fn;\n}\n\ntype Without<T, U> = Partial<Record<Exclude<keyof T, keyof U>, never>>;\nexport type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\nexport type OneOf<T extends any[]> = T extends [infer Only]\n ? Only\n : T extends [infer A, infer B, ...infer Rest]\n ? OneOf<[XOR<A, B>, ...Rest]>\n : never;\n\nexport type AnyVoid = Promise<unknown> | unknown;\n\nexport type OmitPrivateKeys<T> = {\n [K in keyof T as K extends `_${string}` ? never : K]: T[K];\n};\n\ntype MergeElements<A, B> = A extends never ? B : B extends never ? A : A | B;\nexport type MergeArrays<A extends any[], B extends any[]> = A extends []\n ? B\n : B extends []\n ? A\n : [MergeElements<Head<A>, Head<B>>, ...MergeArrays<Tail<A>, Tail<B>>];\n\nexport type MergeFunctions<A extends AnyFn, B extends AnyFn> = (\n ...args: MergeArrays<Parameters<A>, Parameters<B>>\n) => MergeElements<ReturnType<B>, ReturnType<A>>;\n\nexport type WithoutLast<T> = T extends [...infer A, any] ? A : [];\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internals/types.ts"],"names":["narrowTo","value","fn"],"mappings":";;AAmGO,SAASA,QAAAA,CAAYC,OAAgBC,EAAqC,EAAA;AAC/E,EAAI,IAAA,OAAOA,OAAO,UAAY,EAAA;AAC5B,IAAA,OAAOA,GAAGD,KAAAA,CAAAA;AACZ;AACA,EAAOC,OAAAA,EAAAA;AACT;AALgBF,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA","file":"types.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 type { Primitive } from \"@/internals/helpers/guards.js\";\ntype ExcludeArrayLike<T> = object & Exclude<T, any[]>;\nexport type ObjectLike<K extends keyof any = string, V = any> = Record<K, V>;\nexport type PlainObject<K extends string = string, V = Primitive> = Exclude<\n ExcludeArrayLike<Record<K & string, any extends V ? never : V>>,\n any[]\n>;\n\nexport type ExcludeNonStringIndex<T> = {\n [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];\n};\n\nexport type AnyFn = (...args: any[]) => any;\n\nexport type Enum<T> = Readonly<{\n [K in keyof T]: K;\n}>;\nexport type EnumFromUnion<T extends string> = Readonly<{\n [K in T as Uppercase<K>]: K;\n}>;\nexport type EnumValue<T> = T extends Enum<infer P> ? P[keyof P] : never;\nexport type EnumLowerCaseValue<T> = Readonly<{\n [K in keyof T]: K extends string ? Lowercase<K> : never;\n}>[keyof T];\nexport type EmptyObject = Record<string, never>;\n\nexport type OmitType<T, O = never> = { [K in keyof T as T[K] extends O ? never : K]: T[K] };\n\nexport type Class<T = any> = new (...args: any[]) => T;\n\ntype TupleUnion<U extends string, R extends any[] = []> = {\n [S in U]: Exclude<U, S> extends never ? [...R, S] : TupleUnion<Exclude<U, S>, [...R, S]>;\n}[U];\nexport type ArrayKeys<T> = TupleUnion<Extract<keyof T, string>>;\nexport type Common<A, B> = {\n [P in keyof A & keyof B]: A[P] | B[P];\n};\nexport type ValueOf<T extends NonNullable<unknown>> = T[keyof T];\n\nexport type Head<T> = T extends [infer A, ...any] ? A : never;\nexport type Tail<T> = T extends [any, ...infer B] ? B : never;\nexport type RequiredExcept<T, K extends keyof T> = Omit<Required<T>, K> & Pick<Partial<T>, K>;\nexport type OptionalExcept<T, K extends keyof T> = Pick<Required<T>, K> & Omit<Partial<T>, K>;\nexport type NonUndefined<T, K extends keyof T = keyof T> = Pick<Required<T>, K> & Omit<T, K>;\n\nexport type RequiredAll<T> = {\n [P in keyof T]-?: NonNullable<T[P]>;\n};\n\nexport type RequiredNested<T> = {\n [P in keyof T]-?: Required<T[P]>;\n};\n\nexport type OmitEmpty<T> = OmitType<T, never | void>;\nexport type NonEmptyArray<T> = [T, ...T[]];\nexport type Unwrap<T> = T extends (infer X)[] ? X : T;\nexport type Constructable<T> = new (...args: any[]) => T;\nexport type AbstractConstructable = abstract new (...args: any[]) => any;\nexport type AnyConstructable = Constructable<any>;\n\nexport type Constructor<T extends new (...args: any) => any> = T extends new (\n ...args: infer A\n) => infer R\n ? new (...args: A) => R\n : never;\n\nexport interface ClassConstructor<T = any> {\n name: string;\n new (...args: any[]): T;\n}\nexport type AbstractClassConstructor<T = any> = abstract new (...args: any[]) => T;\nexport interface NamedFunction<T = any> {\n name: string;\n (...args: any[]): T;\n}\n\nexport type PromiseOrPlain<T, Decider extends AnyFn> =\n ReturnType<Decider> extends Promise<unknown> ? Promise<T> : T;\n\nexport type NoPromise<T> = T extends Promise<unknown> ? never : T;\n\nexport type TypedFn<P extends any[], R> = (...args: P) => R;\n\nexport function narrowTo<T>(value: unknown, fn: boolean | ((value: T) => boolean)): value is T {\n if (typeof fn === \"function\") {\n return fn(value as T);\n }\n return fn;\n}\n\ntype Without<T, U> = Partial<Record<Exclude<keyof T, keyof U>, never>>;\nexport type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\nexport type OneOf<T extends any[]> = T extends [infer Only]\n ? Only\n : T extends [infer A, infer B, ...infer Rest]\n ? OneOf<[XOR<A, B>, ...Rest]>\n : never;\n\nexport type AnyVoid = Promise<unknown> | unknown;\n\nexport type OmitPrivateKeys<T> = {\n [K in keyof T as K extends `_${string}` ? never : K]: T[K];\n};\n\ntype MergeElements<A, B> = A extends never ? B : B extends never ? A : A | B;\nexport type MergeArrays<A extends any[], B extends any[]> = A extends []\n ? B\n : B extends []\n ? A\n : [MergeElements<Head<A>, Head<B>>, ...MergeArrays<Tail<A>, Tail<B>>];\n\nexport type MergeFunctions<A extends AnyFn, B extends AnyFn> = (\n ...args: MergeArrays<Parameters<A>, Parameters<B>>\n) => MergeElements<ReturnType<B>, ReturnType<A>>;\n\nexport type WithoutLast<T> = T extends [...infer A, any] ? A : [];\n"]}
1
+ {"version":3,"sources":["types.ts"],"names":["narrowTo","value","fn"],"mappings":";;AAmGO,SAASA,QAAAA,CAAYC,OAAgBC,EAAqC,EAAA;AAC/E,EAAI,IAAA,OAAOA,OAAO,UAAY,EAAA;AAC5B,IAAA,OAAOA,GAAGD,KAAAA,CAAAA;AACZ;AACA,EAAOC,OAAAA,EAAAA;AACT;AALgBF,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA","file":"types.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 type { Primitive } from \"@/internals/helpers/guards.js\";\ntype ExcludeArrayLike<T> = object & Exclude<T, any[]>;\nexport type ObjectLike<K extends keyof any = string, V = any> = Record<K, V>;\nexport type PlainObject<K extends string = string, V = Primitive> = Exclude<\n ExcludeArrayLike<Record<K & string, any extends V ? never : V>>,\n any[]\n>;\n\nexport type ExcludeNonStringIndex<T> = {\n [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];\n};\n\nexport type AnyFn = (...args: any[]) => any;\n\nexport type Enum<T> = Readonly<{\n [K in keyof T]: K;\n}>;\nexport type EnumFromUnion<T extends string> = Readonly<{\n [K in T as Uppercase<K>]: K;\n}>;\nexport type EnumValue<T> = T extends Enum<infer P> ? P[keyof P] : never;\nexport type EnumLowerCaseValue<T> = Readonly<{\n [K in keyof T]: K extends string ? Lowercase<K> : never;\n}>[keyof T];\nexport type EmptyObject = Record<string, never>;\n\nexport type OmitType<T, O = never> = { [K in keyof T as T[K] extends O ? never : K]: T[K] };\n\nexport type Class<T = any> = new (...args: any[]) => T;\n\ntype TupleUnion<U extends string, R extends any[] = []> = {\n [S in U]: Exclude<U, S> extends never ? [...R, S] : TupleUnion<Exclude<U, S>, [...R, S]>;\n}[U];\nexport type ArrayKeys<T> = TupleUnion<Extract<keyof T, string>>;\nexport type Common<A, B> = {\n [P in keyof A & keyof B]: A[P] | B[P];\n};\nexport type ValueOf<T extends NonNullable<unknown>> = T[keyof T];\n\nexport type Head<T> = T extends [infer A, ...any] ? A : never;\nexport type Tail<T> = T extends [any, ...infer B] ? B : never;\nexport type RequiredExcept<T, K extends keyof T> = Omit<Required<T>, K> & Pick<Partial<T>, K>;\nexport type OptionalExcept<T, K extends keyof T> = Pick<Required<T>, K> & Omit<Partial<T>, K>;\nexport type NonUndefined<T, K extends keyof T = keyof T> = Pick<Required<T>, K> & Omit<T, K>;\n\nexport type RequiredAll<T> = {\n [P in keyof T]-?: NonNullable<T[P]>;\n};\n\nexport type RequiredNested<T> = {\n [P in keyof T]-?: Required<T[P]>;\n};\n\nexport type OmitEmpty<T> = OmitType<T, never | void>;\nexport type NonEmptyArray<T> = [T, ...T[]];\nexport type Unwrap<T> = T extends (infer X)[] ? X : T;\nexport type Constructable<T> = new (...args: any[]) => T;\nexport type AbstractConstructable = abstract new (...args: any[]) => any;\nexport type AnyConstructable = Constructable<any>;\n\nexport type Constructor<T extends new (...args: any) => any> = T extends new (\n ...args: infer A\n) => infer R\n ? new (...args: A) => R\n : never;\n\nexport interface ClassConstructor<T = any> {\n name: string;\n new (...args: any[]): T;\n}\nexport type AbstractClassConstructor<T = any> = abstract new (...args: any[]) => T;\nexport interface NamedFunction<T = any> {\n name: string;\n (...args: any[]): T;\n}\n\nexport type PromiseOrPlain<T, Decider extends AnyFn> =\n ReturnType<Decider> extends Promise<unknown> ? Promise<T> : T;\n\nexport type NoPromise<T> = T extends Promise<unknown> ? never : T;\n\nexport type TypedFn<P extends any[], R> = (...args: P) => R;\n\nexport function narrowTo<T>(value: unknown, fn: boolean | ((value: T) => boolean)): value is T {\n if (typeof fn === \"function\") {\n return fn(value as T);\n }\n return fn;\n}\n\ntype Without<T, U> = Partial<Record<Exclude<keyof T, keyof U>, never>>;\nexport type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\nexport type OneOf<T extends any[]> = T extends [infer Only]\n ? Only\n : T extends [infer A, infer B, ...infer Rest]\n ? OneOf<[XOR<A, B>, ...Rest]>\n : never;\n\nexport type AnyVoid = Promise<unknown> | unknown;\n\nexport type OmitPrivateKeys<T> = {\n [K in keyof T as K extends `_${string}` ? never : K]: T[K];\n};\n\ntype MergeElements<A, B> = A extends never ? B : B extends never ? A : A | B;\nexport type MergeArrays<A extends any[], B extends any[]> = A extends []\n ? B\n : B extends []\n ? A\n : [MergeElements<Head<A>, Head<B>>, ...MergeArrays<Tail<A>, Tail<B>>];\n\nexport type MergeFunctions<A extends AnyFn, B extends AnyFn> = (\n ...args: MergeArrays<Parameters<A>, Parameters<B>>\n) => MergeElements<ReturnType<B>, ReturnType<A>>;\n\nexport type WithoutLast<T> = T extends [...infer A, any] ? A : [];\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/tsup/assets/cjs_shims.js","../../src/logger/logger.ts"],"names":["getImportMetaUrl","document","URL","__filename","href","currentScript","src","baseURI","importMetaUrl","__dirname","path","dirname","url","fileURLToPath","LoggerError","FrameworkError","LoggerLevel","DEBUG","ERROR","FATAL","INFO","TRACE","WARN","SILENT","Logger","Serializable","raw","info","warn","fatal","error","debug","trace","silent","register","level","value","constructor","input","init","of","parent","root","instance","child","bindings","name","bind","defaults","createRaw","undefined","pretty","parseEnv","asBoolean","z","nativeEnum","default","filter","isTruthy","join","createSnapshot","shallowCopy","loadSnapshot","extra","Object","assign","options","stream","isPretty","targetStream","pinoLogger","destination","stdout","transport","target","messageKey","nestedKey","errorKey","colorize","sync","singleLine","timestamp","formatters","pid","_","hostname","__","others","log","record","label","toUpperCase"],"mappings":"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","file":"logger.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","/**\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 { pino as pinoLogger, ChildLoggerOptions, LoggerOptions, DestinationStream } from \"pino\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { EnumFromUnion, ValueOf } from \"@/internals/types.js\";\nimport { parseEnv } from \"@/internals/env.js\";\nimport { z } from \"zod\";\nimport { isTruthy } from \"remeda\";\nimport { PrettyOptions } from \"pino-pretty\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { stdout } from \"node:process\";\nimport * as url from \"node:url\";\nimport path from \"node:path\";\n\nconst __dirname = path.dirname(url.fileURLToPath(import.meta.url));\n\nexport interface LoggerBindings extends Record<string, any> {}\n\nexport class LoggerError extends FrameworkError {}\n\nexport const LoggerLevel: EnumFromUnion<pinoLogger.LevelWithSilent> = {\n DEBUG: \"debug\",\n ERROR: \"error\",\n FATAL: \"fatal\",\n INFO: \"info\",\n TRACE: \"trace\",\n WARN: \"warn\",\n SILENT: \"silent\",\n} as const;\nexport type LoggerLevelType = ValueOf<typeof LoggerLevel>;\n\nexport interface LoggerInput {\n name?: string;\n bindings?: LoggerBindings;\n level?: LoggerLevelType;\n raw?: ChildLoggerOptions;\n}\n\nexport class Logger extends Serializable implements pinoLogger.BaseLogger {\n protected raw!: pinoLogger.Logger;\n\n info!: pinoLogger.LogFn;\n warn!: pinoLogger.LogFn;\n fatal!: pinoLogger.LogFn;\n error!: pinoLogger.LogFn;\n debug!: pinoLogger.LogFn;\n trace!: pinoLogger.LogFn;\n silent!: pinoLogger.LogFn;\n\n static {\n this.register();\n }\n\n get level(): LoggerLevelType {\n return this.raw.level as LoggerLevelType;\n }\n\n set level(value: LoggerLevelType) {\n this.raw.level = value;\n }\n\n constructor(\n public readonly input: LoggerInput,\n raw?: pinoLogger.Logger,\n ) {\n super();\n this.raw = raw!;\n this.init();\n }\n\n static of(input: LoggerInput) {\n return new Logger(input);\n }\n\n private init() {\n const parent = this.raw || Logger.root.raw;\n const instance = parent.child(\n {\n ...this.input.bindings,\n name: this.input.name ?? this.input.bindings?.name,\n },\n {\n ...this.input.raw,\n level: this.input.level ?? this.input.raw?.level,\n },\n );\n\n this.raw = instance;\n this.info = instance.info.bind(instance);\n this.warn = instance.warn.bind(instance);\n this.fatal = instance.fatal.bind(instance);\n this.error = instance.error.bind(instance);\n this.debug = instance.debug.bind(instance);\n this.trace = instance.trace.bind(instance);\n this.silent = instance.silent.bind(instance);\n }\n\n @Cache()\n static get root() {\n return new Logger(Logger.defaults, Logger.createRaw(Logger.defaults));\n }\n\n @Cache()\n static get defaults(): Omit<LoggerInput, \"raw\"> & { pretty: boolean } {\n return {\n name: undefined,\n pretty: parseEnv.asBoolean(\"BEE_FRAMEWORK_LOG_PRETTY\", false),\n bindings: {},\n level: parseEnv(\n \"BEE_FRAMEWORK_LOG_LEVEL\",\n z.nativeEnum(LoggerLevel).default(LoggerLevel.INFO),\n ),\n };\n }\n\n child(input?: LoggerInput) {\n const name = [this.input.name, input?.name].filter(isTruthy).join(\".\");\n\n return new Logger(\n {\n ...this.input,\n level: this.level,\n ...input,\n name,\n bindings: {\n name,\n },\n },\n this.raw,\n );\n }\n\n createSnapshot() {\n return {\n input: shallowCopy(this.input),\n level: this.raw.level,\n };\n }\n\n loadSnapshot({ level, ...extra }: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, extra);\n this.init();\n this.raw.level = level;\n }\n\n public static createRaw(options?: LoggerOptions, stream?: DestinationStream | undefined) {\n const defaults = Logger.defaults;\n const isPretty = defaults.pretty;\n\n const targetStream = stream ?? (isPretty ? pinoLogger.destination(stdout) : undefined);\n\n return pinoLogger(\n {\n ...(isPretty && {\n transport: {\n target: path.join(__dirname, \"pretty.js\"),\n options: {\n messageKey: \"message\",\n nestedKey: undefined,\n errorKey: \"error\",\n colorize: true,\n sync: true,\n singleLine: parseEnv.asBoolean(\"BEE_FRAMEWORK_LOG_SINGLE_LINE\", false),\n } as PrettyOptions,\n },\n }),\n messageKey: \"message\",\n nestedKey: defaults.pretty ? undefined : \"payload\",\n errorKey: \"error\",\n timestamp: true,\n name: defaults.name,\n level: defaults.level,\n ...options,\n formatters: {\n bindings: ({ pid: _, hostname: __, ...others }) => {\n return others;\n },\n log: (record) => {\n return record;\n },\n level: (label) => {\n return { level: label.toUpperCase() };\n },\n ...options?.formatters,\n },\n },\n targetStream,\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["cjs_shims.js","logger.ts"],"names":["getImportMetaUrl","document","URL","__filename","href","currentScript","src","baseURI","importMetaUrl","__dirname","path","dirname","url","fileURLToPath","LoggerError","FrameworkError","LoggerLevel","DEBUG","ERROR","FATAL","INFO","TRACE","WARN","SILENT","Logger","Serializable","raw","info","warn","fatal","error","debug","trace","silent","register","level","value","constructor","input","init","of","parent","root","instance","child","bindings","name","bind","defaults","createRaw","undefined","pretty","parseEnv","asBoolean","z","nativeEnum","default","filter","isTruthy","join","createSnapshot","shallowCopy","loadSnapshot","extra","Object","assign","options","stream","isPretty","targetStream","pinoLogger","destination","stdout","transport","target","messageKey","nestedKey","errorKey","colorize","sync","singleLine","timestamp","formatters","pid","_","hostname","__","others","log","record","label","toUpperCase"],"mappings":"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","file":"logger.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","/**\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 { pino as pinoLogger, ChildLoggerOptions, LoggerOptions, DestinationStream } from \"pino\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { EnumFromUnion, ValueOf } from \"@/internals/types.js\";\nimport { parseEnv } from \"@/internals/env.js\";\nimport { z } from \"zod\";\nimport { isTruthy } from \"remeda\";\nimport { PrettyOptions } from \"pino-pretty\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { stdout } from \"node:process\";\nimport * as url from \"node:url\";\nimport path from \"node:path\";\n\nconst __dirname = path.dirname(url.fileURLToPath(import.meta.url));\n\nexport interface LoggerBindings extends Record<string, any> {}\n\nexport class LoggerError extends FrameworkError {}\n\nexport const LoggerLevel: EnumFromUnion<pinoLogger.LevelWithSilent> = {\n DEBUG: \"debug\",\n ERROR: \"error\",\n FATAL: \"fatal\",\n INFO: \"info\",\n TRACE: \"trace\",\n WARN: \"warn\",\n SILENT: \"silent\",\n} as const;\nexport type LoggerLevelType = ValueOf<typeof LoggerLevel>;\n\nexport interface LoggerInput {\n name?: string;\n bindings?: LoggerBindings;\n level?: LoggerLevelType;\n raw?: ChildLoggerOptions;\n}\n\nexport class Logger extends Serializable implements pinoLogger.BaseLogger {\n protected raw!: pinoLogger.Logger;\n\n info!: pinoLogger.LogFn;\n warn!: pinoLogger.LogFn;\n fatal!: pinoLogger.LogFn;\n error!: pinoLogger.LogFn;\n debug!: pinoLogger.LogFn;\n trace!: pinoLogger.LogFn;\n silent!: pinoLogger.LogFn;\n\n static {\n this.register();\n }\n\n get level(): LoggerLevelType {\n return this.raw.level as LoggerLevelType;\n }\n\n set level(value: LoggerLevelType) {\n this.raw.level = value;\n }\n\n constructor(\n public readonly input: LoggerInput,\n raw?: pinoLogger.Logger,\n ) {\n super();\n this.raw = raw!;\n this.init();\n }\n\n static of(input: LoggerInput) {\n return new Logger(input);\n }\n\n private init() {\n const parent = this.raw || Logger.root.raw;\n const instance = parent.child(\n {\n ...this.input.bindings,\n name: this.input.name ?? this.input.bindings?.name,\n },\n {\n ...this.input.raw,\n level: this.input.level ?? this.input.raw?.level,\n },\n );\n\n this.raw = instance;\n this.info = instance.info.bind(instance);\n this.warn = instance.warn.bind(instance);\n this.fatal = instance.fatal.bind(instance);\n this.error = instance.error.bind(instance);\n this.debug = instance.debug.bind(instance);\n this.trace = instance.trace.bind(instance);\n this.silent = instance.silent.bind(instance);\n }\n\n @Cache()\n static get root() {\n return new Logger(Logger.defaults, Logger.createRaw(Logger.defaults));\n }\n\n @Cache()\n static get defaults(): Omit<LoggerInput, \"raw\"> & { pretty: boolean } {\n return {\n name: undefined,\n pretty: parseEnv.asBoolean(\"BEE_FRAMEWORK_LOG_PRETTY\", false),\n bindings: {},\n level: parseEnv(\n \"BEE_FRAMEWORK_LOG_LEVEL\",\n z.nativeEnum(LoggerLevel).default(LoggerLevel.INFO),\n ),\n };\n }\n\n child(input?: LoggerInput) {\n const name = [this.input.name, input?.name].filter(isTruthy).join(\".\");\n\n return new Logger(\n {\n ...this.input,\n level: this.level,\n ...input,\n name,\n bindings: {\n name,\n },\n },\n this.raw,\n );\n }\n\n createSnapshot() {\n return {\n input: shallowCopy(this.input),\n level: this.raw.level,\n };\n }\n\n loadSnapshot({ level, ...extra }: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, extra);\n this.init();\n this.raw.level = level;\n }\n\n public static createRaw(options?: LoggerOptions, stream?: DestinationStream | undefined) {\n const defaults = Logger.defaults;\n const isPretty = defaults.pretty;\n\n const targetStream = stream ?? (isPretty ? pinoLogger.destination(stdout) : undefined);\n\n return pinoLogger(\n {\n ...(isPretty && {\n transport: {\n target: path.join(__dirname, \"pretty.js\"),\n options: {\n messageKey: \"message\",\n nestedKey: undefined,\n errorKey: \"error\",\n colorize: true,\n sync: true,\n singleLine: parseEnv.asBoolean(\"BEE_FRAMEWORK_LOG_SINGLE_LINE\", false),\n } as PrettyOptions,\n },\n }),\n messageKey: \"message\",\n nestedKey: defaults.pretty ? undefined : \"payload\",\n errorKey: \"error\",\n timestamp: true,\n name: defaults.name,\n level: defaults.level,\n ...options,\n formatters: {\n bindings: ({ pid: _, hostname: __, ...others }) => {\n return others;\n },\n log: (record) => {\n return record;\n },\n level: (label) => {\n return { level: label.toUpperCase() };\n },\n ...options?.formatters,\n },\n },\n targetStream,\n );\n }\n}\n"]}