langwatch 0.22.0 → 0.23.0

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 (433) hide show
  1. package/dist/{add-EJSXUSD6.js → add-DVFVWTYU.js} +8 -8
  2. package/dist/{add-EJSXUSD6.js.map → add-DVFVWTYU.js.map} +1 -1
  3. package/dist/{add-7QFHK67E.mjs → add-TCJZAPWG.mjs} +5 -5
  4. package/dist/{assign-JCCQ5D7I.mjs → assign-VH54CNRX.mjs} +5 -5
  5. package/dist/{assign-5UEB6AJU.js → assign-WY4UY33D.js} +6 -6
  6. package/dist/{assign-5UEB6AJU.js.map → assign-WY4UY33D.js.map} +1 -1
  7. package/dist/{chunk-7FD7BEJP.mjs → chunk-2KPA2FK7.mjs} +6 -2
  8. package/dist/{chunk-7FD7BEJP.mjs.map → chunk-2KPA2FK7.mjs.map} +1 -1
  9. package/dist/{chunk-DUG35J5N.js → chunk-2VWQGGRZ.js} +14 -14
  10. package/dist/{chunk-DUG35J5N.js.map → chunk-2VWQGGRZ.js.map} +1 -1
  11. package/dist/{chunk-ILLEMTW3.mjs → chunk-3CRFCUOQ.mjs} +2 -2
  12. package/dist/{chunk-ESGWN42J.mjs → chunk-4K2OMMLS.mjs} +2 -2
  13. package/dist/{chunk-I2LDJPTG.mjs → chunk-7FCVMMAW.mjs} +2 -2
  14. package/dist/{chunk-KJSFJ5Z3.js → chunk-7U52CTSJ.js} +3 -3
  15. package/dist/{chunk-KJSFJ5Z3.js.map → chunk-7U52CTSJ.js.map} +1 -1
  16. package/dist/{chunk-X7QBE6AA.js → chunk-BBCZ4LXG.js} +9 -9
  17. package/dist/{chunk-X7QBE6AA.js.map → chunk-BBCZ4LXG.js.map} +1 -1
  18. package/dist/{chunk-D2FHOR76.js → chunk-BLCVVN6P.js} +2 -2
  19. package/dist/{chunk-D2FHOR76.js.map → chunk-BLCVVN6P.js.map} +1 -1
  20. package/dist/{chunk-WLMXMXHE.js → chunk-BOL5DI7B.js} +3 -3
  21. package/dist/chunk-BOL5DI7B.js.map +1 -0
  22. package/dist/{chunk-2BJPLPLU.js → chunk-CKYNUZLA.js} +8 -8
  23. package/dist/{chunk-2BJPLPLU.js.map → chunk-CKYNUZLA.js.map} +1 -1
  24. package/dist/{chunk-Z6MQQXMS.js → chunk-DBUA35L3.js} +4 -4
  25. package/dist/{chunk-Z6MQQXMS.js.map → chunk-DBUA35L3.js.map} +1 -1
  26. package/dist/{chunk-HPQFHP6K.js → chunk-EAVYXXJX.js} +4 -4
  27. package/dist/{chunk-HPQFHP6K.js.map → chunk-EAVYXXJX.js.map} +1 -1
  28. package/dist/{chunk-AK4YCKWK.js → chunk-EDEAR2QX.js} +5 -5
  29. package/dist/{chunk-AK4YCKWK.js.map → chunk-EDEAR2QX.js.map} +1 -1
  30. package/dist/{chunk-AMPLL3EP.js → chunk-FXCSXFDY.js} +3 -3
  31. package/dist/chunk-FXCSXFDY.js.map +1 -0
  32. package/dist/{chunk-L3IOXWDG.mjs → chunk-GSZ4QKFH.mjs} +3 -3
  33. package/dist/{chunk-VMDYRBQ7.js → chunk-GXRQEJ6D.js} +3 -3
  34. package/dist/chunk-GXRQEJ6D.js.map +1 -0
  35. package/dist/{chunk-TQYUM3WH.mjs → chunk-HJARRXXA.mjs} +2 -2
  36. package/dist/chunk-HJARRXXA.mjs.map +1 -0
  37. package/dist/{chunk-NIW2SFZZ.mjs → chunk-IFCABR3D.mjs} +2 -2
  38. package/dist/chunk-IFCABR3D.mjs.map +1 -0
  39. package/dist/{chunk-CYRJSLKD.js → chunk-JIIQDBF2.js} +3 -3
  40. package/dist/chunk-JIIQDBF2.js.map +1 -0
  41. package/dist/{chunk-TV6ZXLE5.mjs → chunk-LIUQYWHM.mjs} +2 -2
  42. package/dist/{chunk-LN33ZL4Z.mjs → chunk-LUBBPBV3.mjs} +2 -2
  43. package/dist/{chunk-LN33ZL4Z.mjs.map → chunk-LUBBPBV3.mjs.map} +1 -1
  44. package/dist/{chunk-47F7UDHN.js → chunk-MAI4B2ZR.js} +3 -3
  45. package/dist/{chunk-47F7UDHN.js.map → chunk-MAI4B2ZR.js.map} +1 -1
  46. package/dist/{chunk-COKOLKOR.mjs → chunk-N6O7634G.mjs} +3 -3
  47. package/dist/{chunk-DWHR6QJK.mjs → chunk-NZLR6K3R.mjs} +4 -4
  48. package/dist/{chunk-WE2PHCFS.js → chunk-PFDDSWCH.js} +3 -3
  49. package/dist/{chunk-WE2PHCFS.js.map → chunk-PFDDSWCH.js.map} +1 -1
  50. package/dist/{chunk-LULJYN3P.mjs → chunk-PWBHSOGK.mjs} +2 -2
  51. package/dist/{chunk-TCO73AV5.mjs → chunk-QJQMCRLL.mjs} +2 -2
  52. package/dist/{chunk-QH3WUSKF.mjs → chunk-SAR52TH6.mjs} +2 -2
  53. package/dist/{chunk-CGFG5FCC.js → chunk-SB3SAGAO.js} +3 -3
  54. package/dist/{chunk-CGFG5FCC.js.map → chunk-SB3SAGAO.js.map} +1 -1
  55. package/dist/{chunk-5PMWRY5J.js → chunk-SJTBEIRG.js} +3 -3
  56. package/dist/{chunk-5PMWRY5J.js.map → chunk-SJTBEIRG.js.map} +1 -1
  57. package/dist/{chunk-HHRXMHVH.js → chunk-V6PD6N4K.js} +3 -3
  58. package/dist/{chunk-HHRXMHVH.js.map → chunk-V6PD6N4K.js.map} +1 -1
  59. package/dist/{chunk-YTR56IZO.mjs → chunk-VTLTVATI.mjs} +2 -2
  60. package/dist/{chunk-JYR4TXSB.mjs → chunk-VUVLYTWK.mjs} +2 -2
  61. package/dist/{chunk-KH64V3CL.mjs → chunk-WF54BYWA.mjs} +2 -2
  62. package/dist/chunk-WF54BYWA.mjs.map +1 -0
  63. package/dist/{chunk-GLCAOVJA.js → chunk-WTRZLGRP.js} +3 -3
  64. package/dist/{chunk-GLCAOVJA.js.map → chunk-WTRZLGRP.js.map} +1 -1
  65. package/dist/chunk-XIHOAUIU.mjs +42 -0
  66. package/dist/chunk-XIHOAUIU.mjs.map +1 -0
  67. package/dist/{chunk-PO6XRHYW.mjs → chunk-Y5PPNQXM.mjs} +2 -2
  68. package/dist/{chunk-2OHGLTXZ.mjs → chunk-YD7SA3ZL.mjs} +2 -2
  69. package/dist/{chunk-NMACMKQN.mjs → chunk-YDRETRB6.mjs} +2 -2
  70. package/dist/chunk-YDRETRB6.mjs.map +1 -0
  71. package/dist/chunk-YEDCQTZY.js +42 -0
  72. package/dist/chunk-YEDCQTZY.js.map +1 -0
  73. package/dist/{chunk-JWF5KHWM.js → chunk-YNIDOE6Q.js} +11 -11
  74. package/dist/{chunk-JWF5KHWM.js.map → chunk-YNIDOE6Q.js.map} +1 -1
  75. package/dist/{chunk-FKIH4XCX.js → chunk-Z76KL7SX.js} +8 -4
  76. package/dist/chunk-Z76KL7SX.js.map +1 -0
  77. package/dist/cli/index.js +72 -72
  78. package/dist/cli/index.mjs +72 -72
  79. package/dist/{create-RPHO5TZX.js → create-22AV5FP2.js} +8 -6
  80. package/dist/create-22AV5FP2.js.map +1 -0
  81. package/dist/{create-4OA73B7I.mjs → create-7FIIBI4T.mjs} +6 -4
  82. package/dist/create-7FIIBI4T.mjs.map +1 -0
  83. package/dist/{create-KAPF2AOL.js → create-7LFWJ235.js} +8 -6
  84. package/dist/create-7LFWJ235.js.map +1 -0
  85. package/dist/{create-CQ7W2OAA.js → create-AZ3PHE5K.js} +4 -1
  86. package/dist/create-AZ3PHE5K.js.map +1 -0
  87. package/dist/{create-XGD3GULQ.js → create-BEG4EIHW.js} +8 -6
  88. package/dist/create-BEG4EIHW.js.map +1 -0
  89. package/dist/{create-NFYHBFF5.mjs → create-GPP6BM66.mjs} +6 -4
  90. package/dist/create-GPP6BM66.mjs.map +1 -0
  91. package/dist/{create-LWG7ZHEW.mjs → create-IKDIMLMS.mjs} +4 -1
  92. package/dist/create-IKDIMLMS.mjs.map +1 -0
  93. package/dist/{create-XZXVGMKU.js → create-O4UEDGLZ.js} +6 -6
  94. package/dist/{create-XZXVGMKU.js.map → create-O4UEDGLZ.js.map} +1 -1
  95. package/dist/{create-45FMHT6B.mjs → create-OZ7Z2AES.mjs} +4 -1
  96. package/dist/create-OZ7Z2AES.mjs.map +1 -0
  97. package/dist/{create-4U5BPFCT.mjs → create-PS2NZEMT.mjs} +6 -4
  98. package/dist/create-PS2NZEMT.mjs.map +1 -0
  99. package/dist/{create-RRI5ZTMI.mjs → create-PWWOD5ET.mjs} +6 -4
  100. package/dist/create-PWWOD5ET.mjs.map +1 -0
  101. package/dist/{create-MXYMAFMF.js → create-Q2VNDJVM.js} +4 -1
  102. package/dist/create-Q2VNDJVM.js.map +1 -0
  103. package/dist/create-QEKYWQHD.js +18 -0
  104. package/dist/{create-Z2XFL2HX.js.map → create-QEKYWQHD.js.map} +1 -1
  105. package/dist/{create-UZ5NDYPV.js → create-SSYLJSGF.js} +9 -6
  106. package/dist/create-SSYLJSGF.js.map +1 -0
  107. package/dist/{create-ZU4L3XOF.mjs → create-TVQPOM22.mjs} +7 -4
  108. package/dist/create-TVQPOM22.mjs.map +1 -0
  109. package/dist/{create-Z7DUMMQ4.mjs → create-UJNSUW4A.mjs} +5 -5
  110. package/dist/{create-ARJEJDYU.mjs → create-VBHJZCM5.mjs} +6 -6
  111. package/dist/{create-FYLUSZTP.js → create-WF3XYRRQ.js} +6 -6
  112. package/dist/{create-FYLUSZTP.js.map → create-WF3XYRRQ.js.map} +1 -1
  113. package/dist/{create-OSAXTSUC.js → create-WIMFK6DS.js} +8 -6
  114. package/dist/create-WIMFK6DS.js.map +1 -0
  115. package/dist/{create-GGYYU5KM.mjs → create-XPIBPXZI.mjs} +4 -4
  116. package/dist/{delete-5NINT2KV.mjs → delete-2R62572G.mjs} +4 -4
  117. package/dist/{delete-QVE52G3Q.mjs → delete-5ENFR4LN.mjs} +4 -4
  118. package/dist/{delete-2S67GS6A.mjs → delete-5K4CLCFU.mjs} +5 -5
  119. package/dist/{delete-L3SU34X6.mjs → delete-5QY2NINK.mjs} +4 -4
  120. package/dist/{delete-CTE3RNKB.mjs → delete-63PUL37J.mjs} +4 -4
  121. package/dist/{delete-XKF7KO4Y.js → delete-7JQTLLAD.js} +7 -7
  122. package/dist/{delete-XKF7KO4Y.js.map → delete-7JQTLLAD.js.map} +1 -1
  123. package/dist/{delete-22LDMLNG.mjs → delete-ALUMMULI.mjs} +4 -4
  124. package/dist/{delete-I36NLS2V.mjs → delete-BSWXG6TJ.mjs} +4 -4
  125. package/dist/{delete-ZY2UCN3W.js → delete-FVCS3V2N.js} +6 -6
  126. package/dist/{delete-ZY2UCN3W.js.map → delete-FVCS3V2N.js.map} +1 -1
  127. package/dist/{delete-PXGB35PF.js → delete-HUHP4UXY.js} +7 -7
  128. package/dist/{delete-PXGB35PF.js.map → delete-HUHP4UXY.js.map} +1 -1
  129. package/dist/{delete-555RUBQA.js → delete-I522RDQH.js} +6 -6
  130. package/dist/{delete-555RUBQA.js.map → delete-I522RDQH.js.map} +1 -1
  131. package/dist/{delete-N6OZW65U.js → delete-ML353B46.js} +6 -6
  132. package/dist/{delete-N6OZW65U.js.map → delete-ML353B46.js.map} +1 -1
  133. package/dist/{delete-BLTSYYZQ.js → delete-MMN2V7S7.js} +7 -7
  134. package/dist/{delete-BLTSYYZQ.js.map → delete-MMN2V7S7.js.map} +1 -1
  135. package/dist/{delete-6ZD3ARMB.js → delete-PMQGPBO7.js} +7 -7
  136. package/dist/{delete-6ZD3ARMB.js.map → delete-PMQGPBO7.js.map} +1 -1
  137. package/dist/{delete-PPEXA2V4.js → delete-QSDZF66A.js} +6 -6
  138. package/dist/{delete-PPEXA2V4.js.map → delete-QSDZF66A.js.map} +1 -1
  139. package/dist/{delete-J2P2Y2BW.mjs → delete-QT27YCTA.mjs} +4 -4
  140. package/dist/{delete-R5TSAZOU.js → delete-RFNKZHBB.js} +6 -6
  141. package/dist/{delete-R5TSAZOU.js.map → delete-RFNKZHBB.js.map} +1 -1
  142. package/dist/{delete-RIHVCQ6G.mjs → delete-TCTLTE3Q.mjs} +5 -5
  143. package/dist/{download-7RBJ3GZM.mjs → download-67ZES3AB.mjs} +5 -5
  144. package/dist/{download-2Q5T4WW2.js → download-MHKH6RCM.js} +7 -7
  145. package/dist/{download-2Q5T4WW2.js.map → download-MHKH6RCM.js.map} +1 -1
  146. package/dist/{duplicate-7N6B5PJD.mjs → duplicate-2KHC6FOH.mjs} +4 -4
  147. package/dist/{duplicate-HZGUFROD.js → duplicate-X3XQ53D2.js} +6 -6
  148. package/dist/{duplicate-HZGUFROD.js.map → duplicate-X3XQ53D2.js.map} +1 -1
  149. package/dist/{get-PM5HD5BJ.js → get-73GUKSK3.js} +4 -1
  150. package/dist/get-73GUKSK3.js.map +1 -0
  151. package/dist/{get-SBMD2X2P.js → get-CF34ZSPN.js} +9 -6
  152. package/dist/get-CF34ZSPN.js.map +1 -0
  153. package/dist/{get-7V7OBWY5.js → get-FOFTVMFV.js} +11 -7
  154. package/dist/get-FOFTVMFV.js.map +1 -0
  155. package/dist/{get-6UQYEENU.mjs → get-FSTX64UH.mjs} +4 -4
  156. package/dist/{get-MHGIJVZ5.js → get-IB6M6ATH.js} +10 -6
  157. package/dist/get-IB6M6ATH.js.map +1 -0
  158. package/dist/{get-S7MFACWM.js → get-K32PRLNO.js} +10 -6
  159. package/dist/get-K32PRLNO.js.map +1 -0
  160. package/dist/{get-PYWLY7QQ.mjs → get-KQSOHGJQ.mjs} +4 -4
  161. package/dist/{get-E2RIDN65.mjs → get-KUG6O53D.mjs} +8 -4
  162. package/dist/get-KUG6O53D.mjs.map +1 -0
  163. package/dist/{get-NIA7XUS2.mjs → get-LHDIDP3V.mjs} +7 -4
  164. package/dist/{get-NIA7XUS2.mjs.map → get-LHDIDP3V.mjs.map} +1 -1
  165. package/dist/{get-JAWJ5RIB.mjs → get-M3H4S5DC.mjs} +7 -4
  166. package/dist/{get-JAWJ5RIB.mjs.map → get-M3H4S5DC.mjs.map} +1 -1
  167. package/dist/{get-GQTPK2MW.mjs → get-N7C2SLH7.mjs} +7 -4
  168. package/dist/get-N7C2SLH7.mjs.map +1 -0
  169. package/dist/{get-7JYKMJXV.mjs → get-OE5YA7ZA.mjs} +7 -4
  170. package/dist/get-OE5YA7ZA.mjs.map +1 -0
  171. package/dist/{get-IDYGZX5O.mjs → get-P74XQGCD.mjs} +8 -4
  172. package/dist/get-P74XQGCD.mjs.map +1 -0
  173. package/dist/{get-T754IOEI.js → get-Q2LPBIMN.js} +9 -6
  174. package/dist/get-Q2LPBIMN.js.map +1 -0
  175. package/dist/{get-ZEUJA3KA.js → get-R7ZFJVYU.js} +9 -6
  176. package/dist/get-R7ZFJVYU.js.map +1 -0
  177. package/dist/{get-PR65PTQ5.mjs → get-RY2GI2C2.mjs} +9 -5
  178. package/dist/get-RY2GI2C2.mjs.map +1 -0
  179. package/dist/{get-73K7EOMU.mjs → get-SXE4EFVR.mjs} +4 -1
  180. package/dist/get-SXE4EFVR.mjs.map +1 -0
  181. package/dist/{get-EN3CQXA7.js → get-TY2Z4NUQ.js} +9 -6
  182. package/dist/get-TY2Z4NUQ.js.map +1 -0
  183. package/dist/{get-Y22XVMEO.js → get-URZC7GB6.js} +6 -6
  184. package/dist/{get-Y22XVMEO.js.map → get-URZC7GB6.js.map} +1 -1
  185. package/dist/{get-CBNUMPUN.mjs → get-V6EGHO7N.mjs} +4 -1
  186. package/dist/get-V6EGHO7N.mjs.map +1 -0
  187. package/dist/{get-TOXTYIN5.js → get-XEIEWQX5.js} +6 -6
  188. package/dist/{get-TOXTYIN5.js.map → get-XEIEWQX5.js.map} +1 -1
  189. package/dist/{get-JYN765FP.js → get-XHTTHKOB.js} +4 -1
  190. package/dist/get-XHTTHKOB.js.map +1 -0
  191. package/dist/{implementation-BbuGM8_W.d.mts → implementation-DXEHmcUG.d.mts} +1 -1
  192. package/dist/{implementation-7POf4yX4.d.ts → implementation-pWh-26jw.d.ts} +1 -1
  193. package/dist/index.d.mts +369 -46
  194. package/dist/index.d.ts +369 -46
  195. package/dist/index.js +354 -19
  196. package/dist/index.js.map +1 -1
  197. package/dist/index.mjs +345 -10
  198. package/dist/index.mjs.map +1 -1
  199. package/dist/{list-GN3SAZG2.js → list-5VHGKL4O.js} +7 -7
  200. package/dist/{list-GN3SAZG2.js.map → list-5VHGKL4O.js.map} +1 -1
  201. package/dist/{list-6JTFDJAI.mjs → list-76OFVBVA.mjs} +7 -7
  202. package/dist/{list-ARBOOOYN.mjs → list-7GUEO2RV.mjs} +7 -7
  203. package/dist/{list-EPB36Y7W.mjs → list-7I6DVHQM.mjs} +5 -5
  204. package/dist/{list-N7WIOJ5A.mjs → list-AGD6VB73.mjs} +5 -5
  205. package/dist/{list-6BRQWVVV.js → list-CJMCFRTB.js} +7 -7
  206. package/dist/{list-6BRQWVVV.js.map → list-CJMCFRTB.js.map} +1 -1
  207. package/dist/{list-FLTPMAHR.js → list-EV2SFI5Z.js} +7 -7
  208. package/dist/{list-FLTPMAHR.js.map → list-EV2SFI5Z.js.map} +1 -1
  209. package/dist/{list-E7YPBCAF.mjs → list-H72AM4ED.mjs} +4 -4
  210. package/dist/{list-AEX4S72W.mjs → list-HDAXVYSZ.mjs} +5 -5
  211. package/dist/{list-UOTJUE2P.js → list-JLRDBUIK.js} +7 -7
  212. package/dist/{list-UOTJUE2P.js.map → list-JLRDBUIK.js.map} +1 -1
  213. package/dist/{list-RS4QL7NE.mjs → list-KHKK6QLG.mjs} +7 -7
  214. package/dist/{list-BAKCZVTL.mjs → list-LJRNMYC7.mjs} +7 -7
  215. package/dist/{list-ZB53NL6Z.mjs → list-MG2J6OSE.mjs} +7 -7
  216. package/dist/{list-FPIWJ65T.mjs → list-MRT5ZJFV.mjs} +7 -7
  217. package/dist/{list-Z5EEMYRQ.js → list-NMMNVYV2.js} +7 -7
  218. package/dist/{list-Z5EEMYRQ.js.map → list-NMMNVYV2.js.map} +1 -1
  219. package/dist/{list-WYYGGV5V.mjs → list-OXFS5MS3.mjs} +7 -7
  220. package/dist/{list-SDMJ2GJE.js → list-P5LOEVF2.js} +7 -7
  221. package/dist/{list-SDMJ2GJE.js.map → list-P5LOEVF2.js.map} +1 -1
  222. package/dist/{list-7LV6GOZO.js → list-SCDBHVZ3.js} +6 -6
  223. package/dist/{list-7LV6GOZO.js.map → list-SCDBHVZ3.js.map} +1 -1
  224. package/dist/{list-JRWFJU5H.js → list-TMXD7HKD.js} +7 -7
  225. package/dist/{list-JRWFJU5H.js.map → list-TMXD7HKD.js.map} +1 -1
  226. package/dist/{list-C6DPYHQ2.js → list-V2M62TJB.js} +8 -8
  227. package/dist/{list-C6DPYHQ2.js.map → list-V2M62TJB.js.map} +1 -1
  228. package/dist/{list-UKGJOVJE.js → list-X6XMFWC4.js} +6 -6
  229. package/dist/{list-UKGJOVJE.js.map → list-X6XMFWC4.js.map} +1 -1
  230. package/dist/{list-XTOWXYB2.js → list-XROB5YXS.js} +7 -7
  231. package/dist/{list-XTOWXYB2.js.map → list-XROB5YXS.js.map} +1 -1
  232. package/dist/{login-4AX6AOKI.mjs → login-33KFSUDT.mjs} +2 -2
  233. package/dist/{login-H3SQDBT7.js → login-P6NS5HQ3.js} +3 -3
  234. package/dist/{login-H3SQDBT7.js.map → login-P6NS5HQ3.js.map} +1 -1
  235. package/dist/observability-sdk/index.d.mts +3 -3
  236. package/dist/observability-sdk/index.d.ts +3 -3
  237. package/dist/observability-sdk/index.js +3 -3
  238. package/dist/observability-sdk/index.mjs +2 -2
  239. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +1 -1
  240. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +1 -1
  241. package/dist/observability-sdk/setup/node/index.js +4 -4
  242. package/dist/observability-sdk/setup/node/index.mjs +3 -3
  243. package/dist/{pull-64HVVOBC.mjs → pull-SC2QC7KA.mjs} +6 -6
  244. package/dist/{push-I3BJSL6N.js → pull-X5JE4Z3G.js} +7 -7
  245. package/dist/{pull-QIANBELG.js.map → pull-X5JE4Z3G.js.map} +1 -1
  246. package/dist/{push-GXLGORLM.mjs → push-732VUFS5.mjs} +6 -6
  247. package/dist/{pull-QIANBELG.js → push-HC5IC3BV.js} +7 -7
  248. package/dist/{push-I3BJSL6N.js.map → push-HC5IC3BV.js.map} +1 -1
  249. package/dist/{query-UF2LDBR4.js → query-3WIPNLUZ.js} +8 -41
  250. package/dist/query-3WIPNLUZ.js.map +1 -0
  251. package/dist/{query-ZI7HJSIY.mjs → query-U4YAOT4T.mjs} +7 -40
  252. package/dist/query-U4YAOT4T.mjs.map +1 -0
  253. package/dist/{records-add-WTIGBJV4.js → records-add-CQDMYR7E.js} +7 -7
  254. package/dist/{records-add-WTIGBJV4.js.map → records-add-CQDMYR7E.js.map} +1 -1
  255. package/dist/{records-add-4LX4JHLO.mjs → records-add-LVMGWT2E.mjs} +5 -5
  256. package/dist/{records-delete-IY37NWPN.mjs → records-delete-DTFPYDNS.mjs} +5 -5
  257. package/dist/{records-delete-MLOG4DM4.js → records-delete-FEGZXSF6.js} +7 -7
  258. package/dist/{records-delete-MLOG4DM4.js.map → records-delete-FEGZXSF6.js.map} +1 -1
  259. package/dist/{records-list-RIDOAE2V.mjs → records-list-7ZUIOAUK.mjs} +5 -5
  260. package/dist/{records-list-EP6OCFH5.js → records-list-TZ63FXGK.js} +7 -7
  261. package/dist/{records-list-EP6OCFH5.js.map → records-list-TZ63FXGK.js.map} +1 -1
  262. package/dist/{records-update-5QZBDYUJ.js → records-update-AQQ3XV4Y.js} +7 -7
  263. package/dist/{records-update-5QZBDYUJ.js.map → records-update-AQQ3XV4Y.js.map} +1 -1
  264. package/dist/{records-update-JINO26IA.mjs → records-update-FFPA33GL.mjs} +5 -5
  265. package/dist/{remove-HLVK7VUB.mjs → remove-GRPHB3UQ.mjs} +5 -5
  266. package/dist/{remove-LDX2BSUH.js → remove-SQ4HATMB.js} +7 -7
  267. package/dist/{remove-LDX2BSUH.js.map → remove-SQ4HATMB.js.map} +1 -1
  268. package/dist/{rename-PUSZYLZ7.js → rename-NR4UOXSM.js} +6 -6
  269. package/dist/{rename-PUSZYLZ7.js.map → rename-NR4UOXSM.js.map} +1 -1
  270. package/dist/{rename-FP7X3GJJ.mjs → rename-WDO4KRS4.mjs} +5 -5
  271. package/dist/{run-QW2HL4EK.mjs → run-25RB32H2.mjs} +4 -4
  272. package/dist/{run-UZVJBWGG.js → run-GIDKJP6G.js} +6 -6
  273. package/dist/{run-UZVJBWGG.js.map → run-GIDKJP6G.js.map} +1 -1
  274. package/dist/{run-GUSPWLCC.mjs → run-IHQ73OJ7.mjs} +4 -4
  275. package/dist/{run-FJDOSV5E.js → run-MI2CU2VM.js} +6 -6
  276. package/dist/{run-FJDOSV5E.js.map → run-MI2CU2VM.js.map} +1 -1
  277. package/dist/{run-KNCB7OEA.js → run-PJIUCPMU.js} +6 -6
  278. package/dist/{run-KNCB7OEA.js.map → run-PJIUCPMU.js.map} +1 -1
  279. package/dist/{run-AIGCDUDF.mjs → run-SGJRPI4Z.mjs} +4 -4
  280. package/dist/{run-WZ4CSMTP.mjs → run-SQEOVBHK.mjs} +4 -4
  281. package/dist/{run-CKZ6VNKK.js → run-UC6OFJZZ.js} +6 -6
  282. package/dist/{run-CKZ6VNKK.js.map → run-UC6OFJZZ.js.map} +1 -1
  283. package/dist/{search-J5GDX5JK.js → search-FIUSFX36.js} +7 -7
  284. package/dist/{search-J5GDX5JK.js.map → search-FIUSFX36.js.map} +1 -1
  285. package/dist/{search-5B32YGSP.mjs → search-ZFATW43M.mjs} +7 -7
  286. package/dist/{set-S5L5QSYZ.js → set-JQJABXPR.js} +6 -6
  287. package/dist/{set-S5L5QSYZ.js.map → set-JQJABXPR.js.map} +1 -1
  288. package/dist/{set-2DYJNVS5.mjs → set-Z34CUN2N.mjs} +4 -4
  289. package/dist/{status-QRK56VLF.js → status-AK5C6GIB.js} +6 -6
  290. package/dist/{status-QRK56VLF.js.map → status-AK5C6GIB.js.map} +1 -1
  291. package/dist/{status-T7NOWM4X.js → status-KF5WI6U5.js} +4 -4
  292. package/dist/{status-T7NOWM4X.js.map → status-KF5WI6U5.js.map} +1 -1
  293. package/dist/{status-Q2PEMYJT.mjs → status-QLEH2TD4.mjs} +4 -4
  294. package/dist/{status-OIXOYFH4.mjs → status-ZG374FIY.mjs} +3 -3
  295. package/dist/{sync-IDSAYUGO.js → sync-2RTTXX5T.js} +11 -11
  296. package/dist/{sync-IDSAYUGO.js.map → sync-2RTTXX5T.js.map} +1 -1
  297. package/dist/{sync-LA27E4UB.mjs → sync-A73OUY3S.mjs} +7 -7
  298. package/dist/{types-CWY5yQki.d.mts → types-7LPyG10b.d.mts} +1 -1
  299. package/dist/{types-B4TSe7JR.d.ts → types-CyB5AQ9u.d.ts} +1 -1
  300. package/dist/{update-4FC4YPW7.mjs → update-5ZUMCEDT.mjs} +4 -4
  301. package/dist/{update-VLY6LJVM.js → update-6UVK6NCS.js} +6 -6
  302. package/dist/{update-VLY6LJVM.js.map → update-6UVK6NCS.js.map} +1 -1
  303. package/dist/{update-EG6BZOLC.mjs → update-7CDKATAQ.mjs} +4 -4
  304. package/dist/{update-4YMVL4UT.mjs → update-BWB4XG3Y.mjs} +4 -4
  305. package/dist/{update-YMWBN55I.js → update-GAXW53JM.js} +7 -7
  306. package/dist/{update-YMWBN55I.js.map → update-GAXW53JM.js.map} +1 -1
  307. package/dist/{update-DLFJBCI2.js → update-IUSPDA2P.js} +12 -9
  308. package/dist/update-IUSPDA2P.js.map +1 -0
  309. package/dist/{update-PSY46JJD.mjs → update-J6SLRCFT.mjs} +9 -6
  310. package/dist/{update-PSY46JJD.mjs.map → update-J6SLRCFT.mjs.map} +1 -1
  311. package/dist/{update-MFZOMTRJ.mjs → update-JHGDZHGT.mjs} +4 -4
  312. package/dist/{update-RCZ47II5.js → update-OPASDCEJ.js} +6 -6
  313. package/dist/{update-RCZ47II5.js.map → update-OPASDCEJ.js.map} +1 -1
  314. package/dist/{update-7ZEJO5SB.js → update-RDD7CKDE.js} +6 -6
  315. package/dist/{update-7ZEJO5SB.js.map → update-RDD7CKDE.js.map} +1 -1
  316. package/dist/{update-RPD2OXXQ.js → update-VDDM7HDM.js} +6 -6
  317. package/dist/{update-RPD2OXXQ.js.map → update-VDDM7HDM.js.map} +1 -1
  318. package/dist/{update-WQK5Q34V.mjs → update-WKI762BB.mjs} +4 -4
  319. package/dist/{upload-QWAITH5R.mjs → upload-2V2F6QYK.mjs} +8 -5
  320. package/dist/{upload-QWAITH5R.mjs.map → upload-2V2F6QYK.mjs.map} +1 -1
  321. package/dist/{upload-6LF5GVLP.js → upload-AZIWHQFL.js} +10 -7
  322. package/dist/upload-AZIWHQFL.js.map +1 -0
  323. package/package.json +1 -1
  324. package/dist/chunk-AMPLL3EP.js.map +0 -1
  325. package/dist/chunk-CYRJSLKD.js.map +0 -1
  326. package/dist/chunk-FKIH4XCX.js.map +0 -1
  327. package/dist/chunk-KH64V3CL.mjs.map +0 -1
  328. package/dist/chunk-NIW2SFZZ.mjs.map +0 -1
  329. package/dist/chunk-NMACMKQN.mjs.map +0 -1
  330. package/dist/chunk-TQYUM3WH.mjs.map +0 -1
  331. package/dist/chunk-VMDYRBQ7.js.map +0 -1
  332. package/dist/chunk-WLMXMXHE.js.map +0 -1
  333. package/dist/create-45FMHT6B.mjs.map +0 -1
  334. package/dist/create-4OA73B7I.mjs.map +0 -1
  335. package/dist/create-4U5BPFCT.mjs.map +0 -1
  336. package/dist/create-CQ7W2OAA.js.map +0 -1
  337. package/dist/create-KAPF2AOL.js.map +0 -1
  338. package/dist/create-LWG7ZHEW.mjs.map +0 -1
  339. package/dist/create-MXYMAFMF.js.map +0 -1
  340. package/dist/create-NFYHBFF5.mjs.map +0 -1
  341. package/dist/create-OSAXTSUC.js.map +0 -1
  342. package/dist/create-RPHO5TZX.js.map +0 -1
  343. package/dist/create-RRI5ZTMI.mjs.map +0 -1
  344. package/dist/create-UZ5NDYPV.js.map +0 -1
  345. package/dist/create-XGD3GULQ.js.map +0 -1
  346. package/dist/create-Z2XFL2HX.js +0 -18
  347. package/dist/create-ZU4L3XOF.mjs.map +0 -1
  348. package/dist/get-73K7EOMU.mjs.map +0 -1
  349. package/dist/get-7JYKMJXV.mjs.map +0 -1
  350. package/dist/get-7V7OBWY5.js.map +0 -1
  351. package/dist/get-CBNUMPUN.mjs.map +0 -1
  352. package/dist/get-E2RIDN65.mjs.map +0 -1
  353. package/dist/get-EN3CQXA7.js.map +0 -1
  354. package/dist/get-GQTPK2MW.mjs.map +0 -1
  355. package/dist/get-IDYGZX5O.mjs.map +0 -1
  356. package/dist/get-JYN765FP.js.map +0 -1
  357. package/dist/get-MHGIJVZ5.js.map +0 -1
  358. package/dist/get-PM5HD5BJ.js.map +0 -1
  359. package/dist/get-PR65PTQ5.mjs.map +0 -1
  360. package/dist/get-S7MFACWM.js.map +0 -1
  361. package/dist/get-SBMD2X2P.js.map +0 -1
  362. package/dist/get-T754IOEI.js.map +0 -1
  363. package/dist/get-ZEUJA3KA.js.map +0 -1
  364. package/dist/query-UF2LDBR4.js.map +0 -1
  365. package/dist/query-ZI7HJSIY.mjs.map +0 -1
  366. package/dist/update-DLFJBCI2.js.map +0 -1
  367. package/dist/upload-6LF5GVLP.js.map +0 -1
  368. /package/dist/{add-7QFHK67E.mjs.map → add-TCJZAPWG.mjs.map} +0 -0
  369. /package/dist/{assign-JCCQ5D7I.mjs.map → assign-VH54CNRX.mjs.map} +0 -0
  370. /package/dist/{chunk-ILLEMTW3.mjs.map → chunk-3CRFCUOQ.mjs.map} +0 -0
  371. /package/dist/{chunk-ESGWN42J.mjs.map → chunk-4K2OMMLS.mjs.map} +0 -0
  372. /package/dist/{chunk-I2LDJPTG.mjs.map → chunk-7FCVMMAW.mjs.map} +0 -0
  373. /package/dist/{chunk-L3IOXWDG.mjs.map → chunk-GSZ4QKFH.mjs.map} +0 -0
  374. /package/dist/{chunk-TV6ZXLE5.mjs.map → chunk-LIUQYWHM.mjs.map} +0 -0
  375. /package/dist/{chunk-COKOLKOR.mjs.map → chunk-N6O7634G.mjs.map} +0 -0
  376. /package/dist/{chunk-DWHR6QJK.mjs.map → chunk-NZLR6K3R.mjs.map} +0 -0
  377. /package/dist/{chunk-LULJYN3P.mjs.map → chunk-PWBHSOGK.mjs.map} +0 -0
  378. /package/dist/{chunk-TCO73AV5.mjs.map → chunk-QJQMCRLL.mjs.map} +0 -0
  379. /package/dist/{chunk-QH3WUSKF.mjs.map → chunk-SAR52TH6.mjs.map} +0 -0
  380. /package/dist/{chunk-YTR56IZO.mjs.map → chunk-VTLTVATI.mjs.map} +0 -0
  381. /package/dist/{chunk-JYR4TXSB.mjs.map → chunk-VUVLYTWK.mjs.map} +0 -0
  382. /package/dist/{chunk-PO6XRHYW.mjs.map → chunk-Y5PPNQXM.mjs.map} +0 -0
  383. /package/dist/{chunk-2OHGLTXZ.mjs.map → chunk-YD7SA3ZL.mjs.map} +0 -0
  384. /package/dist/{create-Z7DUMMQ4.mjs.map → create-UJNSUW4A.mjs.map} +0 -0
  385. /package/dist/{create-ARJEJDYU.mjs.map → create-VBHJZCM5.mjs.map} +0 -0
  386. /package/dist/{create-GGYYU5KM.mjs.map → create-XPIBPXZI.mjs.map} +0 -0
  387. /package/dist/{delete-5NINT2KV.mjs.map → delete-2R62572G.mjs.map} +0 -0
  388. /package/dist/{delete-QVE52G3Q.mjs.map → delete-5ENFR4LN.mjs.map} +0 -0
  389. /package/dist/{delete-2S67GS6A.mjs.map → delete-5K4CLCFU.mjs.map} +0 -0
  390. /package/dist/{delete-L3SU34X6.mjs.map → delete-5QY2NINK.mjs.map} +0 -0
  391. /package/dist/{delete-CTE3RNKB.mjs.map → delete-63PUL37J.mjs.map} +0 -0
  392. /package/dist/{delete-22LDMLNG.mjs.map → delete-ALUMMULI.mjs.map} +0 -0
  393. /package/dist/{delete-I36NLS2V.mjs.map → delete-BSWXG6TJ.mjs.map} +0 -0
  394. /package/dist/{delete-J2P2Y2BW.mjs.map → delete-QT27YCTA.mjs.map} +0 -0
  395. /package/dist/{delete-RIHVCQ6G.mjs.map → delete-TCTLTE3Q.mjs.map} +0 -0
  396. /package/dist/{download-7RBJ3GZM.mjs.map → download-67ZES3AB.mjs.map} +0 -0
  397. /package/dist/{duplicate-7N6B5PJD.mjs.map → duplicate-2KHC6FOH.mjs.map} +0 -0
  398. /package/dist/{get-6UQYEENU.mjs.map → get-FSTX64UH.mjs.map} +0 -0
  399. /package/dist/{get-PYWLY7QQ.mjs.map → get-KQSOHGJQ.mjs.map} +0 -0
  400. /package/dist/{list-6JTFDJAI.mjs.map → list-76OFVBVA.mjs.map} +0 -0
  401. /package/dist/{list-ARBOOOYN.mjs.map → list-7GUEO2RV.mjs.map} +0 -0
  402. /package/dist/{list-EPB36Y7W.mjs.map → list-7I6DVHQM.mjs.map} +0 -0
  403. /package/dist/{list-N7WIOJ5A.mjs.map → list-AGD6VB73.mjs.map} +0 -0
  404. /package/dist/{list-E7YPBCAF.mjs.map → list-H72AM4ED.mjs.map} +0 -0
  405. /package/dist/{list-AEX4S72W.mjs.map → list-HDAXVYSZ.mjs.map} +0 -0
  406. /package/dist/{list-RS4QL7NE.mjs.map → list-KHKK6QLG.mjs.map} +0 -0
  407. /package/dist/{list-BAKCZVTL.mjs.map → list-LJRNMYC7.mjs.map} +0 -0
  408. /package/dist/{list-ZB53NL6Z.mjs.map → list-MG2J6OSE.mjs.map} +0 -0
  409. /package/dist/{list-FPIWJ65T.mjs.map → list-MRT5ZJFV.mjs.map} +0 -0
  410. /package/dist/{list-WYYGGV5V.mjs.map → list-OXFS5MS3.mjs.map} +0 -0
  411. /package/dist/{login-4AX6AOKI.mjs.map → login-33KFSUDT.mjs.map} +0 -0
  412. /package/dist/{pull-64HVVOBC.mjs.map → pull-SC2QC7KA.mjs.map} +0 -0
  413. /package/dist/{push-GXLGORLM.mjs.map → push-732VUFS5.mjs.map} +0 -0
  414. /package/dist/{records-add-4LX4JHLO.mjs.map → records-add-LVMGWT2E.mjs.map} +0 -0
  415. /package/dist/{records-delete-IY37NWPN.mjs.map → records-delete-DTFPYDNS.mjs.map} +0 -0
  416. /package/dist/{records-list-RIDOAE2V.mjs.map → records-list-7ZUIOAUK.mjs.map} +0 -0
  417. /package/dist/{records-update-JINO26IA.mjs.map → records-update-FFPA33GL.mjs.map} +0 -0
  418. /package/dist/{remove-HLVK7VUB.mjs.map → remove-GRPHB3UQ.mjs.map} +0 -0
  419. /package/dist/{rename-FP7X3GJJ.mjs.map → rename-WDO4KRS4.mjs.map} +0 -0
  420. /package/dist/{run-QW2HL4EK.mjs.map → run-25RB32H2.mjs.map} +0 -0
  421. /package/dist/{run-GUSPWLCC.mjs.map → run-IHQ73OJ7.mjs.map} +0 -0
  422. /package/dist/{run-AIGCDUDF.mjs.map → run-SGJRPI4Z.mjs.map} +0 -0
  423. /package/dist/{run-WZ4CSMTP.mjs.map → run-SQEOVBHK.mjs.map} +0 -0
  424. /package/dist/{search-5B32YGSP.mjs.map → search-ZFATW43M.mjs.map} +0 -0
  425. /package/dist/{set-2DYJNVS5.mjs.map → set-Z34CUN2N.mjs.map} +0 -0
  426. /package/dist/{status-Q2PEMYJT.mjs.map → status-QLEH2TD4.mjs.map} +0 -0
  427. /package/dist/{status-OIXOYFH4.mjs.map → status-ZG374FIY.mjs.map} +0 -0
  428. /package/dist/{sync-LA27E4UB.mjs.map → sync-A73OUY3S.mjs.map} +0 -0
  429. /package/dist/{update-4FC4YPW7.mjs.map → update-5ZUMCEDT.mjs.map} +0 -0
  430. /package/dist/{update-EG6BZOLC.mjs.map → update-7CDKATAQ.mjs.map} +0 -0
  431. /package/dist/{update-4YMVL4UT.mjs.map → update-BWB4XG3Y.mjs.map} +0 -0
  432. /package/dist/{update-MFZOMTRJ.mjs.map → update-JHGDZHGT.mjs.map} +0 -0
  433. /package/dist/{update-WQK5Q34V.mjs.map → update-WKI762BB.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-47F7UDHN.js","../src/client-sdk/services/scenarios/errors.ts","../src/client-sdk/services/scenarios/scenarios-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJO,IAAM,kBAAA,EAAN,MAAA,QAAgC,MAAM;AAAA,EAC3C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,mBAAA;AAAA,EACd;AACF,CAAA;ADIA;AACA;AEDO,IAAM,oBAAA,EAAN,MAA0B;AAAA,EAG/B,WAAA,CAAY,MAAA,EAAqD;AAhBnE,IAAA,IAAA,EAAA;AAiBI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AApBnE,IAAA,IAAA,EAAA;AAqBI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,iBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAE4C,EAAA;AACP,IAAA;AACJ,IAAA;AACxB,IAAA;AACT,EAAA;AAEiD,EAAA;AACZ,IAAA;AACV,MAAA;AACxB,IAAA;AACG,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAEoE,EAAA;AAC/B,IAAA;AAC3B,MAAA;AACP,IAAA;AAC8B,IAAA;AACxB,IAAA;AACT,EAAA;AAEgF,EAAA;AAC3C,IAAA;AACV,MAAA;AACjB,MAAA;AACP,IAAA;AACG,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAE0D,EAAA;AACrB,IAAA;AACjC,MAAA;AACA,MAAA;AACyB,QAAA;AACzB,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AACF;AFjB8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-47F7UDHN.js","sourcesContent":[null,"export class ScenariosApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"ScenariosApiError\";\n }\n}\n","import type {\n CreateScenarioBody,\n DeleteScenarioResponse,\n ScenarioResponse,\n UpdateScenarioBody,\n} from \"./types\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\nimport { ScenariosApiError } from \"./errors\";\n\nexport class ScenariosApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new ScenariosApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n async getAll(): Promise<ScenarioResponse[]> {\n const { data, error } = await this.apiClient.GET(\"/api/scenarios\");\n if (error) this.handleApiError(\"fetch all scenarios\", error);\n return data;\n }\n\n async get(id: string): Promise<ScenarioResponse> {\n const { data, error } = await this.apiClient.GET(\"/api/scenarios/{id}\", {\n params: { path: { id } },\n });\n if (error)\n this.handleApiError(`fetch scenario with ID \"${id}\"`, error);\n return data;\n }\n\n async create(params: CreateScenarioBody): Promise<ScenarioResponse> {\n const { data, error } = await this.apiClient.POST(\"/api/scenarios\", {\n body: params,\n });\n if (error) this.handleApiError(\"create scenario\", error);\n return data;\n }\n\n async update(id: string, params: UpdateScenarioBody): Promise<ScenarioResponse> {\n const { data, error } = await this.apiClient.PUT(\"/api/scenarios/{id}\", {\n params: { path: { id } },\n body: params,\n });\n if (error)\n this.handleApiError(`update scenario with ID \"${id}\"`, error);\n return data;\n }\n\n async delete(id: string): Promise<DeleteScenarioResponse> {\n const { data, error } = await this.apiClient.DELETE(\n \"/api/scenarios/{id}\",\n {\n params: { path: { id } },\n },\n );\n if (error)\n this.handleApiError(`delete scenario with ID \"${id}\"`, error);\n return data;\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-MAI4B2ZR.js","../src/client-sdk/services/scenarios/errors.ts","../src/client-sdk/services/scenarios/scenarios-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJO,IAAM,kBAAA,EAAN,MAAA,QAAgC,MAAM;AAAA,EAC3C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,mBAAA;AAAA,EACd;AACF,CAAA;ADIA;AACA;AEDO,IAAM,oBAAA,EAAN,MAA0B;AAAA,EAG/B,WAAA,CAAY,MAAA,EAAqD;AAhBnE,IAAA,IAAA,EAAA;AAiBI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AApBnE,IAAA,IAAA,EAAA;AAqBI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,iBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAE4C,EAAA;AACP,IAAA;AACJ,IAAA;AACxB,IAAA;AACT,EAAA;AAEiD,EAAA;AACZ,IAAA;AACV,MAAA;AACxB,IAAA;AACG,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAEoE,EAAA;AAC/B,IAAA;AAC3B,MAAA;AACP,IAAA;AAC8B,IAAA;AACxB,IAAA;AACT,EAAA;AAEgF,EAAA;AAC3C,IAAA;AACV,MAAA;AACjB,MAAA;AACP,IAAA;AACG,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAE0D,EAAA;AACrB,IAAA;AACjC,MAAA;AACA,MAAA;AACyB,QAAA;AACzB,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AACF;AFjB8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-MAI4B2ZR.js","sourcesContent":[null,"export class ScenariosApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"ScenariosApiError\";\n }\n}\n","import type {\n CreateScenarioBody,\n DeleteScenarioResponse,\n ScenarioResponse,\n UpdateScenarioBody,\n} from \"./types\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\nimport { ScenariosApiError } from \"./errors\";\n\nexport class ScenariosApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new ScenariosApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n async getAll(): Promise<ScenarioResponse[]> {\n const { data, error } = await this.apiClient.GET(\"/api/scenarios\");\n if (error) this.handleApiError(\"fetch all scenarios\", error);\n return data;\n }\n\n async get(id: string): Promise<ScenarioResponse> {\n const { data, error } = await this.apiClient.GET(\"/api/scenarios/{id}\", {\n params: { path: { id } },\n });\n if (error)\n this.handleApiError(`fetch scenario with ID \"${id}\"`, error);\n return data;\n }\n\n async create(params: CreateScenarioBody): Promise<ScenarioResponse> {\n const { data, error } = await this.apiClient.POST(\"/api/scenarios\", {\n body: params,\n });\n if (error) this.handleApiError(\"create scenario\", error);\n return data;\n }\n\n async update(id: string, params: UpdateScenarioBody): Promise<ScenarioResponse> {\n const { data, error } = await this.apiClient.PUT(\"/api/scenarios/{id}\", {\n params: { path: { id } },\n body: params,\n });\n if (error)\n this.handleApiError(`update scenario with ID \"${id}\"`, error);\n return data;\n }\n\n async delete(id: string): Promise<DeleteScenarioResponse> {\n const { data, error } = await this.apiClient.DELETE(\n \"/api/scenarios/{id}\",\n {\n params: { path: { id } },\n },\n );\n if (error)\n this.handleApiError(`delete scenario with ID \"${id}\"`, error);\n return data;\n }\n}\n"]}
@@ -2,14 +2,14 @@ import {
2
2
  LangWatchLogsExporter,
3
3
  LangWatchTraceExporter,
4
4
  setLangWatchLoggerProvider
5
- } from "./chunk-LULJYN3P.mjs";
5
+ } from "./chunk-PWBHSOGK.mjs";
6
6
  import {
7
7
  DEFAULT_ENDPOINT,
8
8
  DEFAULT_SERVICE_NAME,
9
9
  LANGWATCH_SDK_LANGUAGE,
10
10
  LANGWATCH_SDK_NAME_OBSERVABILITY,
11
11
  LANGWATCH_SDK_VERSION
12
- } from "./chunk-LN33ZL4Z.mjs";
12
+ } from "./chunk-LUBBPBV3.mjs";
13
13
  import {
14
14
  initializeObservabilitySdkConfig
15
15
  } from "./chunk-RKJDDUGQ.mjs";
@@ -331,4 +331,4 @@ export {
331
331
  setupObservability,
332
332
  ensureSetup
333
333
  };
334
- //# sourceMappingURL=chunk-COKOLKOR.mjs.map
334
+ //# sourceMappingURL=chunk-N6O7634G.mjs.map
@@ -2,13 +2,13 @@ import {
2
2
  DatasetApiError,
3
3
  DatasetNotFoundError,
4
4
  DatasetService
5
- } from "./chunk-ILLEMTW3.mjs";
5
+ } from "./chunk-3CRFCUOQ.mjs";
6
6
  import {
7
7
  createLangWatchApiClient
8
- } from "./chunk-QH3WUSKF.mjs";
8
+ } from "./chunk-SAR52TH6.mjs";
9
9
  import {
10
10
  DEFAULT_ENDPOINT
11
- } from "./chunk-LN33ZL4Z.mjs";
11
+ } from "./chunk-LUBBPBV3.mjs";
12
12
  import {
13
13
  NoOpLogger
14
14
  } from "./chunk-M4IBRWUC.mjs";
@@ -43,4 +43,4 @@ export {
43
43
  createDatasetService,
44
44
  handleDatasetCommandError
45
45
  };
46
- //# sourceMappingURL=chunk-DWHR6QJK.mjs.map
46
+ //# sourceMappingURL=chunk-NZLR6K3R.mjs.map
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk2BJPLPLUjs = require('./chunk-2BJPLPLU.js');
3
+ var _chunkCKYNUZLAjs = require('./chunk-CKYNUZLA.js');
4
4
 
5
5
  // src/client-sdk/services/workflows/workflows-api.service.ts
6
6
  var WorkflowsApiError = class extends Error {
@@ -14,7 +14,7 @@ var WorkflowsApiError = class extends Error {
14
14
  var WorkflowsApiService = class {
15
15
  constructor(config) {
16
16
  var _a;
17
- this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunk2BJPLPLUjs.createLangWatchApiClient.call(void 0, );
17
+ this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunkCKYNUZLAjs.createLangWatchApiClient.call(void 0, );
18
18
  }
19
19
  handleApiError(operation, error) {
20
20
  var _a;
@@ -50,4 +50,4 @@ var WorkflowsApiService = class {
50
50
 
51
51
 
52
52
  exports.WorkflowsApiError = WorkflowsApiError; exports.WorkflowsApiService = WorkflowsApiService;
53
- //# sourceMappingURL=chunk-WE2PHCFS.js.map
53
+ //# sourceMappingURL=chunk-PFDDSWCH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-WE2PHCFS.js","../src/client-sdk/services/workflows/workflows-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACUO,IAAM,kBAAA,EAAN,MAAA,QAAgC,MAAM;AAAA,EAC3C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,mBAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,oBAAA,EAAN,MAA0B;AAAA,EAG/B,WAAA,CAAY,MAAA,EAAqD;AA5BnE,IAAA,IAAA,EAAA;AA6BI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AAhCnE,IAAA,IAAA,EAAA;AAiCI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,iBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAE4C,EAAA;AACP,IAAA;AACJ,IAAA;AACxB,IAAA;AACT,EAAA;AAEiD,EAAA;AACZ,IAAA;AACV,MAAA;AACxB,IAAA;AAC8B,IAAA;AACxB,IAAA;AACT,EAAA;AAE0D,EAAA;AACrB,IAAA;AACV,MAAA;AACxB,IAAA;AAC8B,IAAA;AACxB,IAAA;AACT,EAAA;AACF;AD7B8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-WE2PHCFS.js","sourcesContent":[null,"import type { paths } from \"@/internal/generated/openapi/api-client\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\n\nexport type WorkflowResponse = NonNullable<\n paths[\"/api/workflows\"][\"get\"][\"responses\"][\"200\"][\"content\"][\"application/json\"]\n>[number];\n\nexport type WorkflowDeleteResponse =\n paths[\"/api/workflows/{id}\"][\"delete\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\nexport class WorkflowsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"WorkflowsApiError\";\n }\n}\n\nexport class WorkflowsApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new WorkflowsApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n async getAll(): Promise<WorkflowResponse[]> {\n const { data, error } = await this.apiClient.GET(\"/api/workflows\");\n if (error) this.handleApiError(\"list workflows\", error);\n return data;\n }\n\n async get(id: string): Promise<WorkflowResponse> {\n const { data, error } = await this.apiClient.GET(\"/api/workflows/{id}\", {\n params: { path: { id } },\n });\n if (error) this.handleApiError(`get workflow \"${id}\"`, error);\n return data;\n }\n\n async delete(id: string): Promise<WorkflowDeleteResponse> {\n const { data, error } = await this.apiClient.DELETE(\"/api/workflows/{id}\", {\n params: { path: { id } },\n });\n if (error) this.handleApiError(`delete workflow \"${id}\"`, error);\n return data;\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-PFDDSWCH.js","../src/client-sdk/services/workflows/workflows-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACUO,IAAM,kBAAA,EAAN,MAAA,QAAgC,MAAM;AAAA,EAC3C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,mBAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,oBAAA,EAAN,MAA0B;AAAA,EAG/B,WAAA,CAAY,MAAA,EAAqD;AA5BnE,IAAA,IAAA,EAAA;AA6BI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AAhCnE,IAAA,IAAA,EAAA;AAiCI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,iBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAE4C,EAAA;AACP,IAAA;AACJ,IAAA;AACxB,IAAA;AACT,EAAA;AAEiD,EAAA;AACZ,IAAA;AACV,MAAA;AACxB,IAAA;AAC8B,IAAA;AACxB,IAAA;AACT,EAAA;AAE0D,EAAA;AACrB,IAAA;AACV,MAAA;AACxB,IAAA;AAC8B,IAAA;AACxB,IAAA;AACT,EAAA;AACF;AD7B8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-PFDDSWCH.js","sourcesContent":[null,"import type { paths } from \"@/internal/generated/openapi/api-client\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\n\nexport type WorkflowResponse = NonNullable<\n paths[\"/api/workflows\"][\"get\"][\"responses\"][\"200\"][\"content\"][\"application/json\"]\n>[number];\n\nexport type WorkflowDeleteResponse =\n paths[\"/api/workflows/{id}\"][\"delete\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\nexport class WorkflowsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"WorkflowsApiError\";\n }\n}\n\nexport class WorkflowsApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new WorkflowsApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n async getAll(): Promise<WorkflowResponse[]> {\n const { data, error } = await this.apiClient.GET(\"/api/workflows\");\n if (error) this.handleApiError(\"list workflows\", error);\n return data;\n }\n\n async get(id: string): Promise<WorkflowResponse> {\n const { data, error } = await this.apiClient.GET(\"/api/workflows/{id}\", {\n params: { path: { id } },\n });\n if (error) this.handleApiError(`get workflow \"${id}\"`, error);\n return data;\n }\n\n async delete(id: string): Promise<WorkflowDeleteResponse> {\n const { data, error } = await this.apiClient.DELETE(\"/api/workflows/{id}\", {\n params: { path: { id } },\n });\n if (error) this.handleApiError(`delete workflow \"${id}\"`, error);\n return data;\n }\n}\n"]}
@@ -6,7 +6,7 @@ import {
6
6
  LANGWATCH_SDK_VERSION,
7
7
  LOGS_PATH,
8
8
  TRACES_PATH
9
- } from "./chunk-LN33ZL4Z.mjs";
9
+ } from "./chunk-LUBBPBV3.mjs";
10
10
  import {
11
11
  shouldCaptureOutput
12
12
  } from "./chunk-RKJDDUGQ.mjs";
@@ -293,4 +293,4 @@ export {
293
293
  getLangWatchLogger,
294
294
  getLangWatchLoggerFromProvider
295
295
  };
296
- //# sourceMappingURL=chunk-LULJYN3P.mjs.map
296
+ //# sourceMappingURL=chunk-PWBHSOGK.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createLangWatchApiClient
3
- } from "./chunk-QH3WUSKF.mjs";
3
+ } from "./chunk-SAR52TH6.mjs";
4
4
 
5
5
  // src/client-sdk/services/workflows/workflows-api.service.ts
6
6
  var WorkflowsApiError = class extends Error {
@@ -50,4 +50,4 @@ export {
50
50
  WorkflowsApiError,
51
51
  WorkflowsApiService
52
52
  };
53
- //# sourceMappingURL=chunk-TCO73AV5.mjs.map
53
+ //# sourceMappingURL=chunk-QJQMCRLL.mjs.map
@@ -5,7 +5,7 @@ import {
5
5
  LANGWATCH_SDK_RUNTIME,
6
6
  LANGWATCH_SDK_VERSION,
7
7
  version
8
- } from "./chunk-LN33ZL4Z.mjs";
8
+ } from "./chunk-LUBBPBV3.mjs";
9
9
  import {
10
10
  __spreadProps,
11
11
  __spreadValues
@@ -30,4 +30,4 @@ var createLangWatchApiClient = (apiKey = ((_a) => (_a = process.env.LANGWATCH_AP
30
30
  export {
31
31
  createLangWatchApiClient
32
32
  };
33
- //# sourceMappingURL=chunk-QH3WUSKF.mjs.map
33
+ //# sourceMappingURL=chunk-SAR52TH6.mjs.map
@@ -7,7 +7,7 @@ var _chunkH6F5OGSLjs = require('./chunk-H6F5OGSL.js');
7
7
 
8
8
 
9
9
 
10
- var _chunkD2FHOR76js = require('./chunk-D2FHOR76.js');
10
+ var _chunkBLCVVN6Pjs = require('./chunk-BLCVVN6P.js');
11
11
 
12
12
 
13
13
 
@@ -58,7 +58,7 @@ var DatasetPlanLimitError = class extends DatasetError {
58
58
  };
59
59
 
60
60
  // src/client-sdk/services/datasets/tracing/tracer.ts
61
- var tracer = _chunkH6F5OGSLjs.getLangWatchTracer.call(void 0, `${_chunkD2FHOR76js.LANGWATCH_SDK_NAME_CLIENT}.datasets`, _chunkD2FHOR76js.LANGWATCH_SDK_VERSION);
61
+ var tracer = _chunkH6F5OGSLjs.getLangWatchTracer.call(void 0, `${_chunkBLCVVN6Pjs.LANGWATCH_SDK_NAME_CLIENT}.datasets`, _chunkBLCVVN6Pjs.LANGWATCH_SDK_VERSION);
62
62
 
63
63
  // src/client-sdk/services/datasets/dataset.service.ts
64
64
  var DatasetService = class {
@@ -671,4 +671,4 @@ _datasetService = new WeakMap();
671
671
 
672
672
 
673
673
  exports.DatasetError = DatasetError; exports.DatasetNotFoundError = DatasetNotFoundError; exports.DatasetApiError = DatasetApiError; exports.DatasetValidationError = DatasetValidationError; exports.DatasetPlanLimitError = DatasetPlanLimitError; exports.DatasetService = DatasetService; exports.DatasetsFacade = DatasetsFacade;
674
- //# sourceMappingURL=chunk-CGFG5FCC.js.map
674
+ //# sourceMappingURL=chunk-SB3SAGAO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-CGFG5FCC.js","../src/client-sdk/services/datasets/errors.ts","../src/client-sdk/services/datasets/tracing/tracer.ts","../src/client-sdk/services/datasets/dataset.service.ts","../src/client-sdk/services/datasets/datasets.facade.ts"],"names":["errorMessage"],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-CGFG5FCC.js","sourcesContent":[null,"/**\n * Errors for the Dataset API\n */\n\n/**\n * Base error for all dataset operations.\n */\nexport class DatasetError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"DatasetError\";\n }\n}\n\n/**\n * Thrown when a dataset is not found (404).\n */\nexport class DatasetNotFoundError extends DatasetError {\n constructor(slugOrId: string) {\n super(`Dataset not found: ${slugOrId}`);\n this.name = \"DatasetNotFoundError\";\n }\n}\n\n/**\n * Error from the Dataset API with operation context.\n * Aligns with PromptsApiError pattern: includes operation and originalError fields.\n */\nexport class DatasetApiError extends DatasetError {\n readonly status: number;\n readonly operation: string;\n readonly originalError?: unknown;\n\n constructor(message: string, status: number, operation: string, originalError?: unknown) {\n super(message);\n this.name = \"DatasetApiError\";\n this.status = status;\n this.operation = operation;\n this.originalError = originalError;\n }\n}\n\n/**\n * Thrown for client-side validation failures (e.g. empty name, no update fields, empty entries).\n * Distinguished from DatasetApiError which represents server-side errors.\n */\nexport class DatasetValidationError extends DatasetError {\n constructor(message: string) {\n super(message);\n this.name = \"DatasetValidationError\";\n }\n}\n\n/**\n * Thrown when a dataset operation exceeds the plan limit (403).\n * The message includes the upgrade/subscription URL from the server.\n */\nexport class DatasetPlanLimitError extends DatasetError {\n readonly limitType: string;\n readonly current?: number;\n readonly max?: number;\n\n constructor(message: string, originalError?: unknown) {\n super(message);\n this.name = \"DatasetPlanLimitError\";\n\n if (originalError != null && typeof originalError === \"object\") {\n const err = originalError as Record<string, unknown>;\n this.limitType = typeof err.limitType === \"string\" ? err.limitType : \"datasets\";\n this.current = typeof err.current === \"number\" ? err.current : undefined;\n this.max = typeof err.max === \"number\" ? err.max : undefined;\n } else {\n this.limitType = \"datasets\";\n }\n }\n}\n","import { LANGWATCH_SDK_NAME_CLIENT, LANGWATCH_SDK_VERSION } from \"@/internal/constants\";\nimport { getLangWatchTracer } from \"@/observability-sdk/tracer\";\n\nexport const tracer = getLangWatchTracer(`${LANGWATCH_SDK_NAME_CLIENT}.datasets`, LANGWATCH_SDK_VERSION);\n","import { type LangwatchApiClient } from \"@/internal/api/client\";\nimport { type Logger } from \"@/logger\";\nimport {\n type Dataset,\n type DatasetEntry,\n type DatasetMetadata,\n type GetDatasetApiResponse,\n type GetDatasetOptions,\n type ListDatasetsOptions,\n type ListDatasetsApiResponse,\n type ListRecordsOptions,\n type ListRecordsApiResponse,\n type CreateDatasetOptions,\n type UpdateDatasetOptions,\n type CreateFromUploadOptions,\n type CreateFromUploadResponse,\n type BatchCreateRecordsResponse,\n type DeleteRecordsResponse,\n type UploadResponse,\n type DatasetRecordResponse,\n} from \"./types\";\nimport { DatasetApiError, DatasetNotFoundError, DatasetPlanLimitError } from \"./errors\";\nimport { createTracingProxy } from \"@/client-sdk/tracing/create-tracing-proxy\";\nimport { tracer } from \"./tracing\";\n\ntype DatasetServiceConfig = {\n langwatchApiClient: LangwatchApiClient;\n logger: Logger;\n endpoint: string;\n apiKey: string;\n};\n\n/**\n * Service for managing dataset resources via the LangWatch API.\n *\n * Responsibilities:\n * - CRUD operations for datasets\n * - Record management (create, update, delete)\n * - File upload\n * - Error handling with contextual information\n */\nexport class DatasetService {\n private readonly config: DatasetServiceConfig;\n\n constructor(config: DatasetServiceConfig) {\n this.config = config;\n\n /**\n * Wraps the service in a tracing proxy that automatically creates\n * OpenTelemetry spans for all public methods.\n */\n return createTracingProxy(this as DatasetService, tracer);\n }\n\n /**\n * Handles API errors by mapping status codes to appropriate error types.\n * @param operation - Description of the operation being performed\n * @param error - The error object from the API response\n * @param status - The HTTP status code\n * @param slugOrId - The dataset identifier (only passed for operations targeting an existing resource)\n */\n private handleApiError(operation: string, error: unknown, status: number, slugOrId?: string): never {\n if (status === 404 && slugOrId) {\n throw new DatasetNotFoundError(slugOrId);\n }\n\n if (status === 403) {\n const errorMessage = this.extractErrorMessage(error, status);\n throw new DatasetPlanLimitError(errorMessage, error);\n }\n\n const errorMessage = this.extractErrorMessage(error, status);\n\n throw new DatasetApiError(\n `Failed to ${operation}: ${errorMessage}`,\n status,\n operation,\n error,\n );\n }\n\n /**\n * Extracts a human-readable error message from an API error response.\n */\n private extractErrorMessage(error: unknown, status: number): string {\n if (typeof error === \"string\") return error;\n\n if (error != null && typeof error === \"object\") {\n if (\"message\" in error && typeof (error as { message: unknown }).message === \"string\") {\n return (error as { message: string }).message;\n }\n if (\"error\" in error) {\n const inner = (error as { error: unknown }).error;\n if (typeof inner === \"string\") return inner;\n if (inner != null && typeof inner === \"object\" && \"message\" in inner) {\n return (inner as { message: string }).message ?? JSON.stringify(inner);\n }\n }\n }\n\n return `HTTP ${status}`;\n }\n\n /**\n * Wrapper for API calls to endpoints not yet in the generated OpenAPI types.\n * Quarantines `as any` casts to a single location.\n */\n private untypedRequest<M extends 'GET' | 'POST' | 'PATCH' | 'DELETE'>(\n method: M,\n path: string,\n options?: Record<string, unknown>,\n ) {\n return (this.config.langwatchApiClient[method] as any)(path, options);\n }\n\n /**\n * Unwraps an API response, throwing a mapped error if the response contains an error.\n * Centralizes the repeated `if (error) handleApiError; return data` pattern.\n */\n private unwrapResponse<T>(\n response: { data?: unknown; error?: unknown; response: { status: number } },\n operation: string,\n slugOrId?: string,\n ): T {\n if (response.error) {\n this.handleApiError(operation, response.error, response.response.status, slugOrId);\n }\n return response.data as T;\n }\n\n /**\n * Fetches a dataset by its slug or ID, returning metadata and entries.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param _options - Optional configuration\n * @returns The dataset with metadata and entries\n */\n async getDataset<T extends Record<string, unknown> = Record<string, unknown>>(\n slugOrId: string,\n _options?: GetDatasetOptions\n ): Promise<Dataset<T>> {\n this.config.logger.debug(`Fetching dataset: ${slugOrId}`);\n\n const response = await this.config.langwatchApiClient.GET(\n \"/api/dataset/{slugOrId}\",\n {\n params: {\n path: {\n slugOrId,\n },\n },\n }\n );\n\n const data = this.unwrapResponse<GetDatasetApiResponse>(\n response,\n `fetch dataset \"${slugOrId}\"`,\n slugOrId,\n );\n\n const entries: DatasetEntry<T>[] = data.data.map((item) => ({\n id: item.id,\n datasetId: item.datasetId,\n projectId: item.projectId,\n entry: item.entry as T,\n createdAt: item.createdAt,\n updatedAt: item.updatedAt,\n }));\n\n this.config.logger.debug(\n `Fetched dataset ${slugOrId} with ${entries.length} entries`\n );\n\n return {\n id: data.id,\n name: data.name,\n slug: data.slug,\n columnTypes: data.columnTypes,\n createdAt: data.createdAt,\n updatedAt: data.updatedAt,\n entries,\n };\n }\n\n /**\n * Lists all datasets for the project, with optional pagination.\n */\n async listDatasets(options?: ListDatasetsOptions): Promise<ListDatasetsApiResponse> {\n this.config.logger.debug(\"Listing datasets\");\n\n const response = await this.untypedRequest('GET', '/api/dataset', {\n params: {\n query: {\n page: options?.page,\n limit: options?.limit,\n },\n },\n });\n\n return this.unwrapResponse<ListDatasetsApiResponse>(\n response,\n \"list datasets\",\n );\n }\n\n /**\n * Creates a new dataset.\n */\n async createDataset(options: CreateDatasetOptions): Promise<DatasetMetadata> {\n this.config.logger.debug(`Creating dataset: ${options.name}`);\n\n const response = await this.untypedRequest('POST', '/api/dataset', {\n body: {\n name: options.name,\n columnTypes: options.columnTypes ?? [],\n },\n });\n\n return this.unwrapResponse<DatasetMetadata>(\n response,\n `create dataset \"${options.name}\"`,\n );\n }\n\n /**\n * Updates a dataset by its slug or ID.\n */\n async updateDataset(slugOrId: string, options: UpdateDatasetOptions): Promise<DatasetMetadata> {\n this.config.logger.debug(`Updating dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('PATCH', '/api/dataset/{slugOrId}', {\n params: {\n path: { slugOrId },\n },\n body: options,\n });\n\n return this.unwrapResponse<DatasetMetadata>(\n response,\n `update dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Deletes (archives) a dataset by its slug or ID.\n */\n async deleteDataset(slugOrId: string): Promise<DatasetMetadata> {\n this.config.logger.debug(`Deleting dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('DELETE', '/api/dataset/{slugOrId}', {\n params: {\n path: { slugOrId },\n },\n });\n\n return this.unwrapResponse<DatasetMetadata>(\n response,\n `delete dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Creates records in a dataset in batch.\n */\n async createRecords(\n slugOrId: string,\n entries: Record<string, unknown>[],\n ): Promise<BatchCreateRecordsResponse> {\n this.config.logger.debug(`Creating ${entries.length} records in dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('POST', '/api/dataset/{slugOrId}/records', {\n params: {\n path: { slugOrId },\n },\n body: { entries },\n });\n\n return this.unwrapResponse<BatchCreateRecordsResponse>(\n response,\n `create records in dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Updates a single record in a dataset.\n */\n async updateRecord(\n slugOrId: string,\n recordId: string,\n entry: Record<string, unknown>,\n ): Promise<DatasetRecordResponse> {\n this.config.logger.debug(`Updating record ${recordId} in dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('PATCH', '/api/dataset/{slugOrId}/records/{recordId}', {\n params: {\n path: { slugOrId, recordId },\n },\n body: { entry },\n });\n\n return this.unwrapResponse<DatasetRecordResponse>(\n response,\n `update record \"${recordId}\" in dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Deletes records from a dataset by IDs.\n */\n async deleteRecords(\n slugOrId: string,\n recordIds: string[],\n ): Promise<DeleteRecordsResponse> {\n this.config.logger.debug(`Deleting ${recordIds.length} records from dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('DELETE', '/api/dataset/{slugOrId}/records', {\n params: {\n path: { slugOrId },\n },\n body: { recordIds },\n });\n\n return this.unwrapResponse<DeleteRecordsResponse>(\n response,\n `delete records from dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Lists records in a dataset with optional pagination.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param options - Pagination options (page, limit)\n * @returns Paginated list of records\n */\n async listRecords(\n slugOrId: string,\n options?: ListRecordsOptions,\n ): Promise<ListRecordsApiResponse> {\n this.config.logger.debug(`Listing records for dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('GET', '/api/dataset/{slugOrId}/records', {\n params: {\n path: { slugOrId },\n query: {\n page: options?.page,\n limit: options?.limit,\n },\n },\n });\n\n return this.unwrapResponse<ListRecordsApiResponse>(\n response,\n `list records in dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Sends a multipart/form-data request using raw fetch.\n * openapi-fetch hardcodes content-type: application/json, so file uploads\n * must bypass it. This helper centralizes URL building, auth headers,\n * error parsing, and response unwrapping.\n *\n * @param path - The API path (appended to the endpoint)\n * @param formData - The FormData payload\n * @param operation - Human-readable operation name for error messages\n * @param slugOrId - Optional dataset identifier (passed to handleApiError for 404 mapping)\n */\n private async fetchMultipart<T>(\n path: string,\n formData: FormData,\n operation: string,\n slugOrId?: string,\n ): Promise<T> {\n const { endpoint, apiKey } = this.config;\n const url = `${endpoint.replace(/\\/$/, \"\")}${path}`;\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"X-Auth-Token\": apiKey,\n authorization: `Bearer ${apiKey}`,\n },\n body: formData,\n });\n\n if (!response.ok) {\n const rawBody = await response.text();\n let errorBody: unknown = rawBody;\n if (rawBody) {\n try {\n errorBody = JSON.parse(rawBody);\n } catch {\n // Keep the plain-text body.\n }\n }\n\n this.handleApiError(operation, errorBody, response.status, slugOrId);\n }\n\n return (await response.json()) as T;\n }\n\n /**\n * Creates a new dataset from a file upload.\n *\n * @param options - The dataset name and file to upload\n * @returns The created dataset metadata with record count\n */\n async createDatasetFromUpload(\n options: CreateFromUploadOptions,\n ): Promise<CreateFromUploadResponse> {\n this.config.logger.debug(`Creating dataset from upload: ${options.name}`);\n\n const formData = new FormData();\n formData.append(\"name\", options.name);\n formData.append(\"file\", options.file);\n\n return this.fetchMultipart<CreateFromUploadResponse>(\n \"/api/dataset/upload\",\n formData,\n `create dataset from upload \"${options.name}\"`,\n );\n }\n\n /**\n * Uploads a file with a strategy for handling existing datasets.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param file - The file to upload (File or Blob)\n * @param ifExists - Strategy when dataset exists: \"append\" (default), \"replace\", or \"error\"\n * @returns The upload result\n */\n async uploadWithStrategy(\n slugOrId: string,\n file: File | Blob,\n ifExists: \"append\" | \"replace\" | \"error\" = \"append\",\n ): Promise<UploadResponse> {\n switch (ifExists) {\n case \"append\":\n return this._uploadAppend(slugOrId, file);\n case \"replace\":\n return this._uploadReplace(slugOrId, file);\n case \"error\":\n return this._uploadError(slugOrId, file);\n }\n }\n\n /**\n * Converts a CreateFromUploadResponse to the unified UploadResponse shape.\n */\n private toUploadResponse(result: CreateFromUploadResponse): UploadResponse {\n return {\n dataset: {\n id: result.id,\n name: result.name,\n slug: result.slug,\n columnTypes: result.columnTypes,\n createdAt: result.createdAt,\n updatedAt: result.updatedAt,\n },\n recordsCreated: result.recordsCreated,\n datasetId: result.id,\n };\n }\n\n /**\n * Append strategy: try uploading to existing dataset; if not found, create from file.\n */\n private async _uploadAppend(slugOrId: string, file: File | Blob): Promise<UploadResponse> {\n try {\n return await this.uploadFile(slugOrId, file);\n } catch (error) {\n if (error instanceof DatasetNotFoundError) {\n return this.toUploadResponse(await this.createDatasetFromUpload({ name: slugOrId, file }));\n }\n throw error;\n }\n }\n\n /**\n * Replace strategy: if dataset exists, delete all records then upload; if not found, create from file.\n */\n private async _uploadReplace(slugOrId: string, file: File | Blob): Promise<UploadResponse> {\n try {\n await this.getDataset(slugOrId);\n await this._deleteAllRecords(slugOrId);\n return await this.uploadFile(slugOrId, file);\n } catch (error) {\n if (error instanceof DatasetNotFoundError) {\n return this.toUploadResponse(await this.createDatasetFromUpload({ name: slugOrId, file }));\n }\n throw error;\n }\n }\n\n /**\n * Error strategy: if dataset exists, throw 409; if not found, create from file.\n */\n private async _uploadError(slugOrId: string, file: File | Blob): Promise<UploadResponse> {\n let datasetExists = false;\n try {\n await this.getDataset(slugOrId);\n datasetExists = true;\n } catch (error) {\n if (!(error instanceof DatasetNotFoundError)) {\n throw error;\n }\n }\n\n if (datasetExists) {\n throw new DatasetApiError(\n `Dataset already exists: ${slugOrId}`,\n 409,\n \"upload\",\n );\n }\n\n return this.toUploadResponse(await this.createDatasetFromUpload({ name: slugOrId, file }));\n }\n\n /**\n * Deletes all records from a dataset by iterating through pages.\n * Always fetches page 1 since records shift after deletion.\n * Includes a safety valve to prevent infinite loops.\n */\n private async _deleteAllRecords(slugOrId: string): Promise<void> {\n const BATCH_SIZE = 1000;\n const MAX_DELETE_ITERATIONS = 100;\n\n let iteration = 0;\n while (iteration < MAX_DELETE_ITERATIONS) {\n const page = await this.listRecords(slugOrId, { page: 1, limit: BATCH_SIZE });\n if (page.data.length === 0) {\n return;\n }\n\n const ids = page.data.map((record) => record.id);\n await this.deleteRecords(slugOrId, ids);\n iteration++;\n }\n\n throw new DatasetApiError(\n `Failed to delete all records from dataset \"${slugOrId}\": exceeded ${MAX_DELETE_ITERATIONS} iterations`,\n 0,\n `delete all records from dataset \"${slugOrId}\"`,\n );\n }\n\n /**\n * Uploads a file to an existing dataset.\n */\n async uploadFile(\n slugOrId: string,\n file: File | Blob,\n ): Promise<UploadResponse> {\n this.config.logger.debug(`Uploading file to dataset: ${slugOrId}`);\n\n const formData = new FormData();\n formData.append(\"file\", file);\n\n return this.fetchMultipart<UploadResponse>(\n `/api/dataset/${encodeURIComponent(slugOrId)}/upload`,\n formData,\n `upload file to dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n}\n","import { type LangwatchApiClient } from \"@/internal/api/client\";\nimport { type Logger } from \"@/logger\";\nimport { DatasetService } from \"./dataset.service\";\nimport { DatasetValidationError } from \"./errors\";\nimport {\n type Dataset,\n type DatasetMetadata,\n type GetDatasetOptions,\n type ListDatasetsOptions,\n type ListDatasetsApiResponse,\n type ListRecordsOptions,\n type ListRecordsApiResponse,\n type CreateDatasetOptions,\n type UpdateDatasetOptions,\n type BatchCreateRecordsResponse,\n type DeleteRecordsResponse,\n type UploadResponse,\n type DatasetRecordResponse,\n} from \"./types\";\n\ntype DatasetsFacadeConfig = {\n langwatchApiClient: LangwatchApiClient;\n logger: Logger;\n endpoint: string;\n apiKey: string;\n};\n\n/**\n * Facade for dataset operations in the LangWatch SDK.\n * Provides a simplified interface for managing datasets, records, and file uploads.\n *\n * @example\n * ```typescript\n * const langwatch = new LangWatch({ apiKey: \"your-api-key\" });\n *\n * // List all datasets\n * const datasets = await langwatch.datasets.list();\n *\n * // Get a dataset by slug or ID\n * const dataset = await langwatch.datasets.get(\"my-dataset\");\n *\n * // Create a new dataset\n * const newDataset = await langwatch.datasets.create({\n * name: \"my-dataset\",\n * columnTypes: [{ name: \"input\", type: \"string\" }],\n * });\n *\n * // Update a dataset\n * const updated = await langwatch.datasets.update(\"my-dataset\", { name: \"new-name\" });\n *\n * // Delete a dataset\n * const archived = await langwatch.datasets.delete(\"my-dataset\");\n *\n * // Create records\n * const records = await langwatch.datasets.createRecords(\"my-dataset\", [\n * { input: \"hello\", output: \"world\" },\n * ]);\n *\n * // Update a record\n * const record = await langwatch.datasets.updateRecord(\"my-dataset\", \"rec-1\", { input: \"updated\" });\n *\n * // Delete records\n * const result = await langwatch.datasets.deleteRecords(\"my-dataset\", [\"rec-1\", \"rec-2\"]);\n *\n * // Upload a file (append to existing or create new)\n * const uploadResult = await langwatch.datasets.upload(\"my-dataset\", file);\n *\n * // Upload with replace strategy (delete all records first)\n * await langwatch.datasets.upload(\"my-dataset\", file, { ifExists: \"replace\" });\n * ```\n */\nexport class DatasetsFacade {\n readonly #datasetService: DatasetService;\n\n constructor(config: DatasetsFacadeConfig) {\n this.#datasetService = new DatasetService(config);\n }\n\n /**\n * Lists all datasets for the project, with optional pagination.\n *\n * @param options - Pagination options (page, limit)\n * @returns Paginated list of datasets with metadata\n */\n list = (options?: ListDatasetsOptions): Promise<ListDatasetsApiResponse> => {\n return this.#datasetService.listDatasets(options);\n };\n\n /**\n * Creates a new dataset.\n *\n * @param options - Dataset creation options (name, columnTypes)\n * @returns The created dataset metadata\n */\n create = (options: CreateDatasetOptions): Promise<DatasetMetadata> => {\n if (!options.name || options.name.trim().length === 0) {\n throw new DatasetValidationError(\"Dataset name must not be empty\");\n }\n return this.#datasetService.createDataset(options);\n };\n\n /**\n * Fetches a dataset by its slug or ID, returning metadata and entries.\n *\n * @param slugOrId - The slug or ID of the dataset to fetch\n * @param options - Optional configuration\n * @returns The dataset with metadata and entries\n *\n * @example\n * ```typescript\n * // Get dataset by slug\n * const dataset = await langwatch.datasets.get(\"product-qa\");\n *\n * // Typed dataset\n * type MyDatasetEntry = { input: string; expected_output: string; };\n * const dataset = await langwatch.datasets.get<MyDatasetEntry>(\"my-dataset\");\n *\n * // Iterate over entries\n * for (const entry of dataset.entries) {\n * console.log(entry.entry.input);\n * }\n * ```\n */\n get = <T extends Record<string, unknown> = Record<string, unknown>>(\n slugOrId: string,\n options?: GetDatasetOptions\n ): Promise<Dataset<T>> => {\n return this.#datasetService.getDataset<T>(slugOrId, options);\n };\n\n /**\n * Updates a dataset by its slug or ID.\n *\n * @param slugOrId - The slug or ID of the dataset to update\n * @param options - Fields to update (name, columnTypes)\n * @returns The updated dataset metadata\n */\n update = (slugOrId: string, options: UpdateDatasetOptions): Promise<DatasetMetadata> => {\n if (options.name == null && options.columnTypes == null) {\n throw new DatasetValidationError(\n \"At least one field (name or columnTypes) must be provided for update\",\n );\n }\n return this.#datasetService.updateDataset(slugOrId, options);\n };\n\n /**\n * Deletes (archives) a dataset by its slug or ID.\n *\n * @param slugOrId - The slug or ID of the dataset to delete\n * @returns The archived dataset metadata\n */\n delete = (slugOrId: string): Promise<DatasetMetadata> => {\n return this.#datasetService.deleteDataset(slugOrId);\n };\n\n /**\n * Creates records in a dataset in batch.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param entries - Array of record entries to create\n * @returns The created records with IDs\n */\n createRecords = (\n slugOrId: string,\n entries: Record<string, unknown>[],\n ): Promise<BatchCreateRecordsResponse> => {\n if (!entries || entries.length === 0) {\n throw new DatasetValidationError(\"Entries must not be empty\");\n }\n return this.#datasetService.createRecords(slugOrId, entries);\n };\n\n /**\n * Updates a single record in a dataset.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param recordId - The ID of the record to update\n * @param entry - The updated entry data\n * @returns The updated record\n */\n updateRecord = (\n slugOrId: string,\n recordId: string,\n entry: Record<string, unknown>,\n ): Promise<DatasetRecordResponse> => {\n return this.#datasetService.updateRecord(slugOrId, recordId, entry);\n };\n\n /**\n * Deletes records from a dataset by IDs.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param recordIds - Array of record IDs to delete\n * @returns Object with the count of deleted records\n */\n deleteRecords = (\n slugOrId: string,\n recordIds: string[],\n ): Promise<DeleteRecordsResponse> => {\n return this.#datasetService.deleteRecords(slugOrId, recordIds);\n };\n\n /**\n * Lists records in a dataset with optional pagination.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param options - Pagination options (page, limit)\n * @returns Paginated list of records\n *\n * @example\n * ```typescript\n * // List first page of records\n * const result = await langwatch.datasets.listRecords(\"my-dataset\");\n *\n * // With pagination\n * const page2 = await langwatch.datasets.listRecords(\"my-dataset\", { page: 2, limit: 25 });\n * ```\n */\n listRecords = (\n slugOrId: string,\n options?: ListRecordsOptions,\n ): Promise<ListRecordsApiResponse> => {\n return this.#datasetService.listRecords(slugOrId, options);\n };\n\n /**\n * Uploads a file to a dataset with a configurable strategy for handling existing datasets.\n *\n * Strategies:\n * - `\"append\"` (default): Upload to existing dataset; if not found, create a new one.\n * - `\"replace\"`: Delete all existing records, then upload; if not found, create a new one.\n * - `\"error\"`: Throw a 409 error if the dataset already exists; if not found, create a new one.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param file - The file to upload (File or Blob)\n * @param options - Upload options including the ifExists strategy\n * @returns The upload result\n *\n * @example\n * ```typescript\n * const file = new File([\"input,output\\nhello,world\"], \"data.csv\", { type: \"text/csv\" });\n *\n * // Append to existing or create new\n * await langwatch.datasets.upload(\"my-dataset\", file);\n *\n * // Replace all records\n * await langwatch.datasets.upload(\"my-dataset\", file, { ifExists: \"replace\" });\n *\n * // Fail if dataset already exists\n * await langwatch.datasets.upload(\"my-dataset\", file, { ifExists: \"error\" });\n * ```\n */\n upload = (\n slugOrId: string,\n file: File | Blob,\n options?: {\n ifExists?: \"append\" | \"replace\" | \"error\";\n },\n ): Promise<UploadResponse> => {\n if (!file) {\n throw new DatasetValidationError(\"File must be provided for upload\");\n }\n return this.#datasetService.uploadWithStrategy(\n slugOrId,\n file,\n options?.ifExists ?? \"append\",\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-SB3SAGAO.js","../src/client-sdk/services/datasets/errors.ts","../src/client-sdk/services/datasets/tracing/tracer.ts","../src/client-sdk/services/datasets/dataset.service.ts","../src/client-sdk/services/datasets/datasets.facade.ts"],"names":["errorMessage"],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-SB3SAGAO.js","sourcesContent":[null,"/**\n * Errors for the Dataset API\n */\n\n/**\n * Base error for all dataset operations.\n */\nexport class DatasetError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"DatasetError\";\n }\n}\n\n/**\n * Thrown when a dataset is not found (404).\n */\nexport class DatasetNotFoundError extends DatasetError {\n constructor(slugOrId: string) {\n super(`Dataset not found: ${slugOrId}`);\n this.name = \"DatasetNotFoundError\";\n }\n}\n\n/**\n * Error from the Dataset API with operation context.\n * Aligns with PromptsApiError pattern: includes operation and originalError fields.\n */\nexport class DatasetApiError extends DatasetError {\n readonly status: number;\n readonly operation: string;\n readonly originalError?: unknown;\n\n constructor(message: string, status: number, operation: string, originalError?: unknown) {\n super(message);\n this.name = \"DatasetApiError\";\n this.status = status;\n this.operation = operation;\n this.originalError = originalError;\n }\n}\n\n/**\n * Thrown for client-side validation failures (e.g. empty name, no update fields, empty entries).\n * Distinguished from DatasetApiError which represents server-side errors.\n */\nexport class DatasetValidationError extends DatasetError {\n constructor(message: string) {\n super(message);\n this.name = \"DatasetValidationError\";\n }\n}\n\n/**\n * Thrown when a dataset operation exceeds the plan limit (403).\n * The message includes the upgrade/subscription URL from the server.\n */\nexport class DatasetPlanLimitError extends DatasetError {\n readonly limitType: string;\n readonly current?: number;\n readonly max?: number;\n\n constructor(message: string, originalError?: unknown) {\n super(message);\n this.name = \"DatasetPlanLimitError\";\n\n if (originalError != null && typeof originalError === \"object\") {\n const err = originalError as Record<string, unknown>;\n this.limitType = typeof err.limitType === \"string\" ? err.limitType : \"datasets\";\n this.current = typeof err.current === \"number\" ? err.current : undefined;\n this.max = typeof err.max === \"number\" ? err.max : undefined;\n } else {\n this.limitType = \"datasets\";\n }\n }\n}\n","import { LANGWATCH_SDK_NAME_CLIENT, LANGWATCH_SDK_VERSION } from \"@/internal/constants\";\nimport { getLangWatchTracer } from \"@/observability-sdk/tracer\";\n\nexport const tracer = getLangWatchTracer(`${LANGWATCH_SDK_NAME_CLIENT}.datasets`, LANGWATCH_SDK_VERSION);\n","import { type LangwatchApiClient } from \"@/internal/api/client\";\nimport { type Logger } from \"@/logger\";\nimport {\n type Dataset,\n type DatasetEntry,\n type DatasetMetadata,\n type GetDatasetApiResponse,\n type GetDatasetOptions,\n type ListDatasetsOptions,\n type ListDatasetsApiResponse,\n type ListRecordsOptions,\n type ListRecordsApiResponse,\n type CreateDatasetOptions,\n type UpdateDatasetOptions,\n type CreateFromUploadOptions,\n type CreateFromUploadResponse,\n type BatchCreateRecordsResponse,\n type DeleteRecordsResponse,\n type UploadResponse,\n type DatasetRecordResponse,\n} from \"./types\";\nimport { DatasetApiError, DatasetNotFoundError, DatasetPlanLimitError } from \"./errors\";\nimport { createTracingProxy } from \"@/client-sdk/tracing/create-tracing-proxy\";\nimport { tracer } from \"./tracing\";\n\ntype DatasetServiceConfig = {\n langwatchApiClient: LangwatchApiClient;\n logger: Logger;\n endpoint: string;\n apiKey: string;\n};\n\n/**\n * Service for managing dataset resources via the LangWatch API.\n *\n * Responsibilities:\n * - CRUD operations for datasets\n * - Record management (create, update, delete)\n * - File upload\n * - Error handling with contextual information\n */\nexport class DatasetService {\n private readonly config: DatasetServiceConfig;\n\n constructor(config: DatasetServiceConfig) {\n this.config = config;\n\n /**\n * Wraps the service in a tracing proxy that automatically creates\n * OpenTelemetry spans for all public methods.\n */\n return createTracingProxy(this as DatasetService, tracer);\n }\n\n /**\n * Handles API errors by mapping status codes to appropriate error types.\n * @param operation - Description of the operation being performed\n * @param error - The error object from the API response\n * @param status - The HTTP status code\n * @param slugOrId - The dataset identifier (only passed for operations targeting an existing resource)\n */\n private handleApiError(operation: string, error: unknown, status: number, slugOrId?: string): never {\n if (status === 404 && slugOrId) {\n throw new DatasetNotFoundError(slugOrId);\n }\n\n if (status === 403) {\n const errorMessage = this.extractErrorMessage(error, status);\n throw new DatasetPlanLimitError(errorMessage, error);\n }\n\n const errorMessage = this.extractErrorMessage(error, status);\n\n throw new DatasetApiError(\n `Failed to ${operation}: ${errorMessage}`,\n status,\n operation,\n error,\n );\n }\n\n /**\n * Extracts a human-readable error message from an API error response.\n */\n private extractErrorMessage(error: unknown, status: number): string {\n if (typeof error === \"string\") return error;\n\n if (error != null && typeof error === \"object\") {\n if (\"message\" in error && typeof (error as { message: unknown }).message === \"string\") {\n return (error as { message: string }).message;\n }\n if (\"error\" in error) {\n const inner = (error as { error: unknown }).error;\n if (typeof inner === \"string\") return inner;\n if (inner != null && typeof inner === \"object\" && \"message\" in inner) {\n return (inner as { message: string }).message ?? JSON.stringify(inner);\n }\n }\n }\n\n return `HTTP ${status}`;\n }\n\n /**\n * Wrapper for API calls to endpoints not yet in the generated OpenAPI types.\n * Quarantines `as any` casts to a single location.\n */\n private untypedRequest<M extends 'GET' | 'POST' | 'PATCH' | 'DELETE'>(\n method: M,\n path: string,\n options?: Record<string, unknown>,\n ) {\n return (this.config.langwatchApiClient[method] as any)(path, options);\n }\n\n /**\n * Unwraps an API response, throwing a mapped error if the response contains an error.\n * Centralizes the repeated `if (error) handleApiError; return data` pattern.\n */\n private unwrapResponse<T>(\n response: { data?: unknown; error?: unknown; response: { status: number } },\n operation: string,\n slugOrId?: string,\n ): T {\n if (response.error) {\n this.handleApiError(operation, response.error, response.response.status, slugOrId);\n }\n return response.data as T;\n }\n\n /**\n * Fetches a dataset by its slug or ID, returning metadata and entries.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param _options - Optional configuration\n * @returns The dataset with metadata and entries\n */\n async getDataset<T extends Record<string, unknown> = Record<string, unknown>>(\n slugOrId: string,\n _options?: GetDatasetOptions\n ): Promise<Dataset<T>> {\n this.config.logger.debug(`Fetching dataset: ${slugOrId}`);\n\n const response = await this.config.langwatchApiClient.GET(\n \"/api/dataset/{slugOrId}\",\n {\n params: {\n path: {\n slugOrId,\n },\n },\n }\n );\n\n const data = this.unwrapResponse<GetDatasetApiResponse>(\n response,\n `fetch dataset \"${slugOrId}\"`,\n slugOrId,\n );\n\n const entries: DatasetEntry<T>[] = data.data.map((item) => ({\n id: item.id,\n datasetId: item.datasetId,\n projectId: item.projectId,\n entry: item.entry as T,\n createdAt: item.createdAt,\n updatedAt: item.updatedAt,\n }));\n\n this.config.logger.debug(\n `Fetched dataset ${slugOrId} with ${entries.length} entries`\n );\n\n return {\n id: data.id,\n name: data.name,\n slug: data.slug,\n columnTypes: data.columnTypes,\n createdAt: data.createdAt,\n updatedAt: data.updatedAt,\n entries,\n };\n }\n\n /**\n * Lists all datasets for the project, with optional pagination.\n */\n async listDatasets(options?: ListDatasetsOptions): Promise<ListDatasetsApiResponse> {\n this.config.logger.debug(\"Listing datasets\");\n\n const response = await this.untypedRequest('GET', '/api/dataset', {\n params: {\n query: {\n page: options?.page,\n limit: options?.limit,\n },\n },\n });\n\n return this.unwrapResponse<ListDatasetsApiResponse>(\n response,\n \"list datasets\",\n );\n }\n\n /**\n * Creates a new dataset.\n */\n async createDataset(options: CreateDatasetOptions): Promise<DatasetMetadata> {\n this.config.logger.debug(`Creating dataset: ${options.name}`);\n\n const response = await this.untypedRequest('POST', '/api/dataset', {\n body: {\n name: options.name,\n columnTypes: options.columnTypes ?? [],\n },\n });\n\n return this.unwrapResponse<DatasetMetadata>(\n response,\n `create dataset \"${options.name}\"`,\n );\n }\n\n /**\n * Updates a dataset by its slug or ID.\n */\n async updateDataset(slugOrId: string, options: UpdateDatasetOptions): Promise<DatasetMetadata> {\n this.config.logger.debug(`Updating dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('PATCH', '/api/dataset/{slugOrId}', {\n params: {\n path: { slugOrId },\n },\n body: options,\n });\n\n return this.unwrapResponse<DatasetMetadata>(\n response,\n `update dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Deletes (archives) a dataset by its slug or ID.\n */\n async deleteDataset(slugOrId: string): Promise<DatasetMetadata> {\n this.config.logger.debug(`Deleting dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('DELETE', '/api/dataset/{slugOrId}', {\n params: {\n path: { slugOrId },\n },\n });\n\n return this.unwrapResponse<DatasetMetadata>(\n response,\n `delete dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Creates records in a dataset in batch.\n */\n async createRecords(\n slugOrId: string,\n entries: Record<string, unknown>[],\n ): Promise<BatchCreateRecordsResponse> {\n this.config.logger.debug(`Creating ${entries.length} records in dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('POST', '/api/dataset/{slugOrId}/records', {\n params: {\n path: { slugOrId },\n },\n body: { entries },\n });\n\n return this.unwrapResponse<BatchCreateRecordsResponse>(\n response,\n `create records in dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Updates a single record in a dataset.\n */\n async updateRecord(\n slugOrId: string,\n recordId: string,\n entry: Record<string, unknown>,\n ): Promise<DatasetRecordResponse> {\n this.config.logger.debug(`Updating record ${recordId} in dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('PATCH', '/api/dataset/{slugOrId}/records/{recordId}', {\n params: {\n path: { slugOrId, recordId },\n },\n body: { entry },\n });\n\n return this.unwrapResponse<DatasetRecordResponse>(\n response,\n `update record \"${recordId}\" in dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Deletes records from a dataset by IDs.\n */\n async deleteRecords(\n slugOrId: string,\n recordIds: string[],\n ): Promise<DeleteRecordsResponse> {\n this.config.logger.debug(`Deleting ${recordIds.length} records from dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('DELETE', '/api/dataset/{slugOrId}/records', {\n params: {\n path: { slugOrId },\n },\n body: { recordIds },\n });\n\n return this.unwrapResponse<DeleteRecordsResponse>(\n response,\n `delete records from dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Lists records in a dataset with optional pagination.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param options - Pagination options (page, limit)\n * @returns Paginated list of records\n */\n async listRecords(\n slugOrId: string,\n options?: ListRecordsOptions,\n ): Promise<ListRecordsApiResponse> {\n this.config.logger.debug(`Listing records for dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('GET', '/api/dataset/{slugOrId}/records', {\n params: {\n path: { slugOrId },\n query: {\n page: options?.page,\n limit: options?.limit,\n },\n },\n });\n\n return this.unwrapResponse<ListRecordsApiResponse>(\n response,\n `list records in dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Sends a multipart/form-data request using raw fetch.\n * openapi-fetch hardcodes content-type: application/json, so file uploads\n * must bypass it. This helper centralizes URL building, auth headers,\n * error parsing, and response unwrapping.\n *\n * @param path - The API path (appended to the endpoint)\n * @param formData - The FormData payload\n * @param operation - Human-readable operation name for error messages\n * @param slugOrId - Optional dataset identifier (passed to handleApiError for 404 mapping)\n */\n private async fetchMultipart<T>(\n path: string,\n formData: FormData,\n operation: string,\n slugOrId?: string,\n ): Promise<T> {\n const { endpoint, apiKey } = this.config;\n const url = `${endpoint.replace(/\\/$/, \"\")}${path}`;\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"X-Auth-Token\": apiKey,\n authorization: `Bearer ${apiKey}`,\n },\n body: formData,\n });\n\n if (!response.ok) {\n const rawBody = await response.text();\n let errorBody: unknown = rawBody;\n if (rawBody) {\n try {\n errorBody = JSON.parse(rawBody);\n } catch {\n // Keep the plain-text body.\n }\n }\n\n this.handleApiError(operation, errorBody, response.status, slugOrId);\n }\n\n return (await response.json()) as T;\n }\n\n /**\n * Creates a new dataset from a file upload.\n *\n * @param options - The dataset name and file to upload\n * @returns The created dataset metadata with record count\n */\n async createDatasetFromUpload(\n options: CreateFromUploadOptions,\n ): Promise<CreateFromUploadResponse> {\n this.config.logger.debug(`Creating dataset from upload: ${options.name}`);\n\n const formData = new FormData();\n formData.append(\"name\", options.name);\n formData.append(\"file\", options.file);\n\n return this.fetchMultipart<CreateFromUploadResponse>(\n \"/api/dataset/upload\",\n formData,\n `create dataset from upload \"${options.name}\"`,\n );\n }\n\n /**\n * Uploads a file with a strategy for handling existing datasets.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param file - The file to upload (File or Blob)\n * @param ifExists - Strategy when dataset exists: \"append\" (default), \"replace\", or \"error\"\n * @returns The upload result\n */\n async uploadWithStrategy(\n slugOrId: string,\n file: File | Blob,\n ifExists: \"append\" | \"replace\" | \"error\" = \"append\",\n ): Promise<UploadResponse> {\n switch (ifExists) {\n case \"append\":\n return this._uploadAppend(slugOrId, file);\n case \"replace\":\n return this._uploadReplace(slugOrId, file);\n case \"error\":\n return this._uploadError(slugOrId, file);\n }\n }\n\n /**\n * Converts a CreateFromUploadResponse to the unified UploadResponse shape.\n */\n private toUploadResponse(result: CreateFromUploadResponse): UploadResponse {\n return {\n dataset: {\n id: result.id,\n name: result.name,\n slug: result.slug,\n columnTypes: result.columnTypes,\n createdAt: result.createdAt,\n updatedAt: result.updatedAt,\n },\n recordsCreated: result.recordsCreated,\n datasetId: result.id,\n };\n }\n\n /**\n * Append strategy: try uploading to existing dataset; if not found, create from file.\n */\n private async _uploadAppend(slugOrId: string, file: File | Blob): Promise<UploadResponse> {\n try {\n return await this.uploadFile(slugOrId, file);\n } catch (error) {\n if (error instanceof DatasetNotFoundError) {\n return this.toUploadResponse(await this.createDatasetFromUpload({ name: slugOrId, file }));\n }\n throw error;\n }\n }\n\n /**\n * Replace strategy: if dataset exists, delete all records then upload; if not found, create from file.\n */\n private async _uploadReplace(slugOrId: string, file: File | Blob): Promise<UploadResponse> {\n try {\n await this.getDataset(slugOrId);\n await this._deleteAllRecords(slugOrId);\n return await this.uploadFile(slugOrId, file);\n } catch (error) {\n if (error instanceof DatasetNotFoundError) {\n return this.toUploadResponse(await this.createDatasetFromUpload({ name: slugOrId, file }));\n }\n throw error;\n }\n }\n\n /**\n * Error strategy: if dataset exists, throw 409; if not found, create from file.\n */\n private async _uploadError(slugOrId: string, file: File | Blob): Promise<UploadResponse> {\n let datasetExists = false;\n try {\n await this.getDataset(slugOrId);\n datasetExists = true;\n } catch (error) {\n if (!(error instanceof DatasetNotFoundError)) {\n throw error;\n }\n }\n\n if (datasetExists) {\n throw new DatasetApiError(\n `Dataset already exists: ${slugOrId}`,\n 409,\n \"upload\",\n );\n }\n\n return this.toUploadResponse(await this.createDatasetFromUpload({ name: slugOrId, file }));\n }\n\n /**\n * Deletes all records from a dataset by iterating through pages.\n * Always fetches page 1 since records shift after deletion.\n * Includes a safety valve to prevent infinite loops.\n */\n private async _deleteAllRecords(slugOrId: string): Promise<void> {\n const BATCH_SIZE = 1000;\n const MAX_DELETE_ITERATIONS = 100;\n\n let iteration = 0;\n while (iteration < MAX_DELETE_ITERATIONS) {\n const page = await this.listRecords(slugOrId, { page: 1, limit: BATCH_SIZE });\n if (page.data.length === 0) {\n return;\n }\n\n const ids = page.data.map((record) => record.id);\n await this.deleteRecords(slugOrId, ids);\n iteration++;\n }\n\n throw new DatasetApiError(\n `Failed to delete all records from dataset \"${slugOrId}\": exceeded ${MAX_DELETE_ITERATIONS} iterations`,\n 0,\n `delete all records from dataset \"${slugOrId}\"`,\n );\n }\n\n /**\n * Uploads a file to an existing dataset.\n */\n async uploadFile(\n slugOrId: string,\n file: File | Blob,\n ): Promise<UploadResponse> {\n this.config.logger.debug(`Uploading file to dataset: ${slugOrId}`);\n\n const formData = new FormData();\n formData.append(\"file\", file);\n\n return this.fetchMultipart<UploadResponse>(\n `/api/dataset/${encodeURIComponent(slugOrId)}/upload`,\n formData,\n `upload file to dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n}\n","import { type LangwatchApiClient } from \"@/internal/api/client\";\nimport { type Logger } from \"@/logger\";\nimport { DatasetService } from \"./dataset.service\";\nimport { DatasetValidationError } from \"./errors\";\nimport {\n type Dataset,\n type DatasetMetadata,\n type GetDatasetOptions,\n type ListDatasetsOptions,\n type ListDatasetsApiResponse,\n type ListRecordsOptions,\n type ListRecordsApiResponse,\n type CreateDatasetOptions,\n type UpdateDatasetOptions,\n type BatchCreateRecordsResponse,\n type DeleteRecordsResponse,\n type UploadResponse,\n type DatasetRecordResponse,\n} from \"./types\";\n\ntype DatasetsFacadeConfig = {\n langwatchApiClient: LangwatchApiClient;\n logger: Logger;\n endpoint: string;\n apiKey: string;\n};\n\n/**\n * Facade for dataset operations in the LangWatch SDK.\n * Provides a simplified interface for managing datasets, records, and file uploads.\n *\n * @example\n * ```typescript\n * const langwatch = new LangWatch({ apiKey: \"your-api-key\" });\n *\n * // List all datasets\n * const datasets = await langwatch.datasets.list();\n *\n * // Get a dataset by slug or ID\n * const dataset = await langwatch.datasets.get(\"my-dataset\");\n *\n * // Create a new dataset\n * const newDataset = await langwatch.datasets.create({\n * name: \"my-dataset\",\n * columnTypes: [{ name: \"input\", type: \"string\" }],\n * });\n *\n * // Update a dataset\n * const updated = await langwatch.datasets.update(\"my-dataset\", { name: \"new-name\" });\n *\n * // Delete a dataset\n * const archived = await langwatch.datasets.delete(\"my-dataset\");\n *\n * // Create records\n * const records = await langwatch.datasets.createRecords(\"my-dataset\", [\n * { input: \"hello\", output: \"world\" },\n * ]);\n *\n * // Update a record\n * const record = await langwatch.datasets.updateRecord(\"my-dataset\", \"rec-1\", { input: \"updated\" });\n *\n * // Delete records\n * const result = await langwatch.datasets.deleteRecords(\"my-dataset\", [\"rec-1\", \"rec-2\"]);\n *\n * // Upload a file (append to existing or create new)\n * const uploadResult = await langwatch.datasets.upload(\"my-dataset\", file);\n *\n * // Upload with replace strategy (delete all records first)\n * await langwatch.datasets.upload(\"my-dataset\", file, { ifExists: \"replace\" });\n * ```\n */\nexport class DatasetsFacade {\n readonly #datasetService: DatasetService;\n\n constructor(config: DatasetsFacadeConfig) {\n this.#datasetService = new DatasetService(config);\n }\n\n /**\n * Lists all datasets for the project, with optional pagination.\n *\n * @param options - Pagination options (page, limit)\n * @returns Paginated list of datasets with metadata\n */\n list = (options?: ListDatasetsOptions): Promise<ListDatasetsApiResponse> => {\n return this.#datasetService.listDatasets(options);\n };\n\n /**\n * Creates a new dataset.\n *\n * @param options - Dataset creation options (name, columnTypes)\n * @returns The created dataset metadata\n */\n create = (options: CreateDatasetOptions): Promise<DatasetMetadata> => {\n if (!options.name || options.name.trim().length === 0) {\n throw new DatasetValidationError(\"Dataset name must not be empty\");\n }\n return this.#datasetService.createDataset(options);\n };\n\n /**\n * Fetches a dataset by its slug or ID, returning metadata and entries.\n *\n * @param slugOrId - The slug or ID of the dataset to fetch\n * @param options - Optional configuration\n * @returns The dataset with metadata and entries\n *\n * @example\n * ```typescript\n * // Get dataset by slug\n * const dataset = await langwatch.datasets.get(\"product-qa\");\n *\n * // Typed dataset\n * type MyDatasetEntry = { input: string; expected_output: string; };\n * const dataset = await langwatch.datasets.get<MyDatasetEntry>(\"my-dataset\");\n *\n * // Iterate over entries\n * for (const entry of dataset.entries) {\n * console.log(entry.entry.input);\n * }\n * ```\n */\n get = <T extends Record<string, unknown> = Record<string, unknown>>(\n slugOrId: string,\n options?: GetDatasetOptions\n ): Promise<Dataset<T>> => {\n return this.#datasetService.getDataset<T>(slugOrId, options);\n };\n\n /**\n * Updates a dataset by its slug or ID.\n *\n * @param slugOrId - The slug or ID of the dataset to update\n * @param options - Fields to update (name, columnTypes)\n * @returns The updated dataset metadata\n */\n update = (slugOrId: string, options: UpdateDatasetOptions): Promise<DatasetMetadata> => {\n if (options.name == null && options.columnTypes == null) {\n throw new DatasetValidationError(\n \"At least one field (name or columnTypes) must be provided for update\",\n );\n }\n return this.#datasetService.updateDataset(slugOrId, options);\n };\n\n /**\n * Deletes (archives) a dataset by its slug or ID.\n *\n * @param slugOrId - The slug or ID of the dataset to delete\n * @returns The archived dataset metadata\n */\n delete = (slugOrId: string): Promise<DatasetMetadata> => {\n return this.#datasetService.deleteDataset(slugOrId);\n };\n\n /**\n * Creates records in a dataset in batch.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param entries - Array of record entries to create\n * @returns The created records with IDs\n */\n createRecords = (\n slugOrId: string,\n entries: Record<string, unknown>[],\n ): Promise<BatchCreateRecordsResponse> => {\n if (!entries || entries.length === 0) {\n throw new DatasetValidationError(\"Entries must not be empty\");\n }\n return this.#datasetService.createRecords(slugOrId, entries);\n };\n\n /**\n * Updates a single record in a dataset.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param recordId - The ID of the record to update\n * @param entry - The updated entry data\n * @returns The updated record\n */\n updateRecord = (\n slugOrId: string,\n recordId: string,\n entry: Record<string, unknown>,\n ): Promise<DatasetRecordResponse> => {\n return this.#datasetService.updateRecord(slugOrId, recordId, entry);\n };\n\n /**\n * Deletes records from a dataset by IDs.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param recordIds - Array of record IDs to delete\n * @returns Object with the count of deleted records\n */\n deleteRecords = (\n slugOrId: string,\n recordIds: string[],\n ): Promise<DeleteRecordsResponse> => {\n return this.#datasetService.deleteRecords(slugOrId, recordIds);\n };\n\n /**\n * Lists records in a dataset with optional pagination.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param options - Pagination options (page, limit)\n * @returns Paginated list of records\n *\n * @example\n * ```typescript\n * // List first page of records\n * const result = await langwatch.datasets.listRecords(\"my-dataset\");\n *\n * // With pagination\n * const page2 = await langwatch.datasets.listRecords(\"my-dataset\", { page: 2, limit: 25 });\n * ```\n */\n listRecords = (\n slugOrId: string,\n options?: ListRecordsOptions,\n ): Promise<ListRecordsApiResponse> => {\n return this.#datasetService.listRecords(slugOrId, options);\n };\n\n /**\n * Uploads a file to a dataset with a configurable strategy for handling existing datasets.\n *\n * Strategies:\n * - `\"append\"` (default): Upload to existing dataset; if not found, create a new one.\n * - `\"replace\"`: Delete all existing records, then upload; if not found, create a new one.\n * - `\"error\"`: Throw a 409 error if the dataset already exists; if not found, create a new one.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param file - The file to upload (File or Blob)\n * @param options - Upload options including the ifExists strategy\n * @returns The upload result\n *\n * @example\n * ```typescript\n * const file = new File([\"input,output\\nhello,world\"], \"data.csv\", { type: \"text/csv\" });\n *\n * // Append to existing or create new\n * await langwatch.datasets.upload(\"my-dataset\", file);\n *\n * // Replace all records\n * await langwatch.datasets.upload(\"my-dataset\", file, { ifExists: \"replace\" });\n *\n * // Fail if dataset already exists\n * await langwatch.datasets.upload(\"my-dataset\", file, { ifExists: \"error\" });\n * ```\n */\n upload = (\n slugOrId: string,\n file: File | Blob,\n options?: {\n ifExists?: \"append\" | \"replace\" | \"error\";\n },\n ): Promise<UploadResponse> => {\n if (!file) {\n throw new DatasetValidationError(\"File must be provided for upload\");\n }\n return this.#datasetService.uploadWithStrategy(\n slugOrId,\n file,\n options?.ifExists ?? \"append\",\n );\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk2BJPLPLUjs = require('./chunk-2BJPLPLU.js');
3
+ var _chunkCKYNUZLAjs = require('./chunk-CKYNUZLA.js');
4
4
 
5
5
  // src/client-sdk/services/annotations/annotations-api.service.ts
6
6
  var AnnotationsApiError = class extends Error {
@@ -14,7 +14,7 @@ var AnnotationsApiError = class extends Error {
14
14
  var AnnotationsApiService = class {
15
15
  constructor(config) {
16
16
  var _a;
17
- this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunk2BJPLPLUjs.createLangWatchApiClient.call(void 0, );
17
+ this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunkCKYNUZLAjs.createLangWatchApiClient.call(void 0, );
18
18
  }
19
19
  handleApiError(operation, error) {
20
20
  var _a;
@@ -77,4 +77,4 @@ var AnnotationsApiService = class {
77
77
 
78
78
 
79
79
  exports.AnnotationsApiError = AnnotationsApiError; exports.AnnotationsApiService = AnnotationsApiService;
80
- //# sourceMappingURL=chunk-5PMWRY5J.js.map
80
+ //# sourceMappingURL=chunk-SJTBEIRG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-5PMWRY5J.js","../src/client-sdk/services/annotations/annotations-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACSO,IAAM,oBAAA,EAAN,MAAA,QAAkC,MAAM;AAAA,EAC7C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,qBAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,sBAAA,EAAN,MAA4B;AAAA,EAGjC,WAAA,CAAY,MAAA,EAAqD;AA3BnE,IAAA,IAAA,EAAA;AA4BI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AA/BnE,IAAA,IAAA,EAAA;AAgCI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,mBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAE8C,EAAA;AACT,IAAA;AACJ,IAAA;AACxB,IAAA;AACT,EAAA;AAEmD,EAAA;AACd,IAAA;AACV,MAAA;AACxB,IAAA;AACG,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAEiE,EAAA;AAC5B,IAAA;AACjC,MAAA;AACA,MAAA;AACkC,QAAA;AAClC,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAEyF,EAAA;AACpD,IAAA;AACjC,MAAA;AACA,MAAA;AACkC,QAAA;AAC1B,QAAA;AACR,MAAA;AACF,IAAA;AAC+B,IAAA;AACxB,IAAA;AACT,EAAA;AAEyE,EAAA;AACpC,IAAA;AACjC,MAAA;AACA,MAAA;AACyB,QAAA;AACzB,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AACF;AD9B8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-5PMWRY5J.js","sourcesContent":[null,"import type { paths, components } from \"@/internal/generated/openapi/api-client\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\n\nexport type AnnotationResponse = components[\"schemas\"][\"Annotation\"];\n\nexport type CreateAnnotationBody = NonNullable<\n paths[\"/api/annotations/trace/{id}\"][\"post\"][\"requestBody\"]\n>[\"content\"][\"application/json\"];\n\nexport class AnnotationsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"AnnotationsApiError\";\n }\n}\n\nexport class AnnotationsApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new AnnotationsApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n async getAll(): Promise<AnnotationResponse[]> {\n const { data, error } = await this.apiClient.GET(\"/api/annotations\");\n if (error) this.handleApiError(\"fetch all annotations\", error);\n return data;\n }\n\n async get(id: string): Promise<AnnotationResponse> {\n const { data, error } = await this.apiClient.GET(\"/api/annotations/{id}\", {\n params: { path: { id } },\n });\n if (error)\n this.handleApiError(`fetch annotation with ID \"${id}\"`, error);\n return data;\n }\n\n async getByTrace(traceId: string): Promise<AnnotationResponse[]> {\n const { data, error } = await this.apiClient.GET(\n \"/api/annotations/trace/{id}\",\n {\n params: { path: { id: traceId } },\n },\n );\n if (error)\n this.handleApiError(`fetch annotations for trace \"${traceId}\"`, error);\n return data;\n }\n\n async create(traceId: string, params: CreateAnnotationBody): Promise<AnnotationResponse> {\n const { data, error } = await this.apiClient.POST(\n \"/api/annotations/trace/{id}\",\n {\n params: { path: { id: traceId } },\n body: params,\n },\n );\n if (error) this.handleApiError(\"create annotation\", error);\n return data;\n }\n\n async delete(id: string): Promise<{ status?: string; message?: string }> {\n const { data, error } = await this.apiClient.DELETE(\n \"/api/annotations/{id}\",\n {\n params: { path: { id } },\n },\n );\n if (error)\n this.handleApiError(`delete annotation with ID \"${id}\"`, error);\n return data;\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-SJTBEIRG.js","../src/client-sdk/services/annotations/annotations-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACSO,IAAM,oBAAA,EAAN,MAAA,QAAkC,MAAM;AAAA,EAC7C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,qBAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,sBAAA,EAAN,MAA4B;AAAA,EAGjC,WAAA,CAAY,MAAA,EAAqD;AA3BnE,IAAA,IAAA,EAAA;AA4BI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AA/BnE,IAAA,IAAA,EAAA;AAgCI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,mBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAE8C,EAAA;AACT,IAAA;AACJ,IAAA;AACxB,IAAA;AACT,EAAA;AAEmD,EAAA;AACd,IAAA;AACV,MAAA;AACxB,IAAA;AACG,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAEiE,EAAA;AAC5B,IAAA;AACjC,MAAA;AACA,MAAA;AACkC,QAAA;AAClC,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAEyF,EAAA;AACpD,IAAA;AACjC,MAAA;AACA,MAAA;AACkC,QAAA;AAC1B,QAAA;AACR,MAAA;AACF,IAAA;AAC+B,IAAA;AACxB,IAAA;AACT,EAAA;AAEyE,EAAA;AACpC,IAAA;AACjC,MAAA;AACA,MAAA;AACyB,QAAA;AACzB,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AACF;AD9B8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-SJTBEIRG.js","sourcesContent":[null,"import type { paths, components } from \"@/internal/generated/openapi/api-client\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\n\nexport type AnnotationResponse = components[\"schemas\"][\"Annotation\"];\n\nexport type CreateAnnotationBody = NonNullable<\n paths[\"/api/annotations/trace/{id}\"][\"post\"][\"requestBody\"]\n>[\"content\"][\"application/json\"];\n\nexport class AnnotationsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"AnnotationsApiError\";\n }\n}\n\nexport class AnnotationsApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new AnnotationsApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n async getAll(): Promise<AnnotationResponse[]> {\n const { data, error } = await this.apiClient.GET(\"/api/annotations\");\n if (error) this.handleApiError(\"fetch all annotations\", error);\n return data;\n }\n\n async get(id: string): Promise<AnnotationResponse> {\n const { data, error } = await this.apiClient.GET(\"/api/annotations/{id}\", {\n params: { path: { id } },\n });\n if (error)\n this.handleApiError(`fetch annotation with ID \"${id}\"`, error);\n return data;\n }\n\n async getByTrace(traceId: string): Promise<AnnotationResponse[]> {\n const { data, error } = await this.apiClient.GET(\n \"/api/annotations/trace/{id}\",\n {\n params: { path: { id: traceId } },\n },\n );\n if (error)\n this.handleApiError(`fetch annotations for trace \"${traceId}\"`, error);\n return data;\n }\n\n async create(traceId: string, params: CreateAnnotationBody): Promise<AnnotationResponse> {\n const { data, error } = await this.apiClient.POST(\n \"/api/annotations/trace/{id}\",\n {\n params: { path: { id: traceId } },\n body: params,\n },\n );\n if (error) this.handleApiError(\"create annotation\", error);\n return data;\n }\n\n async delete(id: string): Promise<{ status?: string; message?: string }> {\n const { data, error } = await this.apiClient.DELETE(\n \"/api/annotations/{id}\",\n {\n params: { path: { id } },\n },\n );\n if (error)\n this.handleApiError(`delete annotation with ID \"${id}\"`, error);\n return data;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk2BJPLPLUjs = require('./chunk-2BJPLPLU.js');
3
+ var _chunkCKYNUZLAjs = require('./chunk-CKYNUZLA.js');
4
4
 
5
5
  // src/client-sdk/services/evaluations/evaluations-api.service.ts
6
6
  var EvaluationsApiError = class extends Error {
@@ -14,7 +14,7 @@ var EvaluationsApiError = class extends Error {
14
14
  var EvaluationsApiService = class {
15
15
  constructor(config) {
16
16
  var _a;
17
- this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunk2BJPLPLUjs.createLangWatchApiClient.call(void 0, );
17
+ this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunkCKYNUZLAjs.createLangWatchApiClient.call(void 0, );
18
18
  }
19
19
  handleApiError(operation, error) {
20
20
  var _a;
@@ -51,4 +51,4 @@ var EvaluationsApiService = class {
51
51
 
52
52
 
53
53
  exports.EvaluationsApiError = EvaluationsApiError; exports.EvaluationsApiService = EvaluationsApiService;
54
- //# sourceMappingURL=chunk-HHRXMHVH.js.map
54
+ //# sourceMappingURL=chunk-V6PD6N4K.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-HHRXMHVH.js","../src/client-sdk/services/evaluations/evaluations-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACaO,IAAM,oBAAA,EAAN,MAAA,QAAkC,MAAM;AAAA,EAC7C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,qBAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,sBAAA,EAAN,MAA4B;AAAA,EAGjC,WAAA,CAAY,MAAA,EAAqD;AA/BnE,IAAA,IAAA,EAAA;AAgCI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AAnCnE,IAAA,IAAA,EAAA;AAoCI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,mBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEkE,EAAA;AAC7B,IAAA;AACjC,MAAA;AACA,MAAA;AAC2B,QAAA;AAC3B,MAAA;AACF,IAAA;AAC+B,IAAA;AACxB,IAAA;AACT,EAAA;AAEwE,EAAA;AACnC,IAAA;AACjC,MAAA;AACA,MAAA;AAC4B,QAAA;AAC5B,MAAA;AACF,IAAA;AAC+B,IAAA;AACxB,IAAA;AACT,EAAA;AACF;AD/B8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-HHRXMHVH.js","sourcesContent":[null,"import type { paths } from \"@/internal/generated/openapi/api-client\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\n\nexport interface EvaluationRunStartResponse {\n runId: string;\n status: \"running\";\n total: number;\n runUrl?: string;\n}\n\nexport type EvaluationRunStatusResponse =\n paths[\"/api/evaluations/v3/runs/{runId}\"][\"get\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\nexport class EvaluationsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"EvaluationsApiError\";\n }\n}\n\nexport class EvaluationsApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new EvaluationsApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n async startRun(slug: string): Promise<EvaluationRunStartResponse> {\n const { data, error } = await this.apiClient.POST(\n \"/api/evaluations/v3/{slug}/run\",\n {\n params: { path: { slug } },\n },\n );\n if (error) this.handleApiError(`start evaluation run for \"${slug}\"`, error);\n return data as unknown as EvaluationRunStartResponse;\n }\n\n async getRunStatus(runId: string): Promise<EvaluationRunStatusResponse> {\n const { data, error } = await this.apiClient.GET(\n \"/api/evaluations/v3/runs/{runId}\",\n {\n params: { path: { runId } },\n },\n );\n if (error) this.handleApiError(`get run status for \"${runId}\"`, error);\n return data;\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-V6PD6N4K.js","../src/client-sdk/services/evaluations/evaluations-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACaO,IAAM,oBAAA,EAAN,MAAA,QAAkC,MAAM;AAAA,EAC7C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,qBAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,sBAAA,EAAN,MAA4B;AAAA,EAGjC,WAAA,CAAY,MAAA,EAAqD;AA/BnE,IAAA,IAAA,EAAA;AAgCI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AAnCnE,IAAA,IAAA,EAAA;AAoCI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,mBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEkE,EAAA;AAC7B,IAAA;AACjC,MAAA;AACA,MAAA;AAC2B,QAAA;AAC3B,MAAA;AACF,IAAA;AAC+B,IAAA;AACxB,IAAA;AACT,EAAA;AAEwE,EAAA;AACnC,IAAA;AACjC,MAAA;AACA,MAAA;AAC4B,QAAA;AAC5B,MAAA;AACF,IAAA;AAC+B,IAAA;AACxB,IAAA;AACT,EAAA;AACF;AD/B8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-V6PD6N4K.js","sourcesContent":[null,"import type { paths } from \"@/internal/generated/openapi/api-client\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\n\nexport interface EvaluationRunStartResponse {\n runId: string;\n status: \"running\";\n total: number;\n runUrl?: string;\n}\n\nexport type EvaluationRunStatusResponse =\n paths[\"/api/evaluations/v3/runs/{runId}\"][\"get\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\nexport class EvaluationsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"EvaluationsApiError\";\n }\n}\n\nexport class EvaluationsApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new EvaluationsApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n async startRun(slug: string): Promise<EvaluationRunStartResponse> {\n const { data, error } = await this.apiClient.POST(\n \"/api/evaluations/v3/{slug}/run\",\n {\n params: { path: { slug } },\n },\n );\n if (error) this.handleApiError(`start evaluation run for \"${slug}\"`, error);\n return data as unknown as EvaluationRunStartResponse;\n }\n\n async getRunStatus(runId: string): Promise<EvaluationRunStatusResponse> {\n const { data, error } = await this.apiClient.GET(\n \"/api/evaluations/v3/runs/{runId}\",\n {\n params: { path: { runId } },\n },\n );\n if (error) this.handleApiError(`get run status for \"${runId}\"`, error);\n return data;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createLangWatchApiClient
3
- } from "./chunk-QH3WUSKF.mjs";
3
+ } from "./chunk-SAR52TH6.mjs";
4
4
 
5
5
  // src/client-sdk/services/evaluations/evaluations-api.service.ts
6
6
  var EvaluationsApiError = class extends Error {
@@ -51,4 +51,4 @@ export {
51
51
  EvaluationsApiError,
52
52
  EvaluationsApiService
53
53
  };
54
- //# sourceMappingURL=chunk-YTR56IZO.mjs.map
54
+ //# sourceMappingURL=chunk-VTLTVATI.mjs.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  PromptsApiService,
6
6
  PromptsError
7
- } from "./chunk-L3IOXWDG.mjs";
7
+ } from "./chunk-GSZ4QKFH.mjs";
8
8
  import {
9
9
  ensureProjectInitialized
10
10
  } from "./chunk-W3V3NX7P.mjs";
@@ -190,4 +190,4 @@ export {
190
190
  pullPrompts,
191
191
  pullCommand
192
192
  };
193
- //# sourceMappingURL=chunk-JYR4TXSB.mjs.map
193
+ //# sourceMappingURL=chunk-VUVLYTWK.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createLangWatchApiClient
3
- } from "./chunk-QH3WUSKF.mjs";
3
+ } from "./chunk-SAR52TH6.mjs";
4
4
 
5
5
  // src/client-sdk/services/traces/traces-api.service.ts
6
6
  var TracesApiError = class extends Error {
@@ -51,4 +51,4 @@ export {
51
51
  TracesApiError,
52
52
  TracesApiService
53
53
  };
54
- //# sourceMappingURL=chunk-KH64V3CL.mjs.map
54
+ //# sourceMappingURL=chunk-WF54BYWA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/client-sdk/services/traces/traces-api.service.ts"],"sourcesContent":["import type { paths } from \"@/internal/generated/openapi/api-client\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\n\nexport type TraceSearchBody = NonNullable<\n paths[\"/api/traces/search\"][\"post\"][\"requestBody\"]\n>[\"content\"][\"application/json\"];\n\nexport type TraceSearchResponse =\n paths[\"/api/traces/search\"][\"post\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\ntype TraceGetResponseRaw =\n paths[\"/api/traces/{traceId}\"][\"get\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\nexport type TraceGetResponse = TraceGetResponseRaw extends string\n ? TraceGetResponseRaw\n : TraceGetResponseRaw extends object\n ? TraceGetResponseRaw & {\n /** URL to view this trace on the LangWatch platform */\n platformUrl?: string;\n }\n : TraceGetResponseRaw;\n\nexport class TracesApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"TracesApiError\";\n }\n}\n\nexport class TracesApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new TracesApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n async search(params: TraceSearchBody): Promise<TraceSearchResponse> {\n const { data, error } = await this.apiClient.POST(\"/api/traces/search\", {\n body: params,\n });\n if (error) this.handleApiError(\"search traces\", error);\n return data;\n }\n\n async get(traceId: string, options?: { format?: \"digest\" | \"json\" }): Promise<TraceGetResponse> {\n const { data, error } = await this.apiClient.GET(\n \"/api/traces/{traceId}\",\n {\n params: {\n path: { traceId },\n query: options,\n },\n },\n );\n if (error) this.handleApiError(`get trace \"${traceId}\"`, error);\n return data;\n }\n}\n"],"mappings":";;;;;AA0BO,IAAM,iBAAN,cAA6B,MAAM;AAAA,EACxC,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,mBAAN,MAAuB;AAAA,EAG5B,YAAY,QAAqD;AAxCnE;AAyCI,SAAK,aAAY,sCAAQ,uBAAR,YAA8B,yBAAyB;AAAA,EAC1E;AAAA,EAEQ,eAAe,WAAmB,OAAuB;AA5CnE;AA6CI,UAAM,eACJ,OAAO,UAAU,WACb,QACA,SAAS,QACP,OAAO,UAAU,YACjB,WAAW,SACX,MAAM,SAAS,OACf,OAAO,MAAM,UAAU,WACrB,MAAM,SACL,WAAM,MAA+B,YAArC,YACD,KAAK,UAAU,MAAM,KAAK,IAC5B,iBAAiB,QACf,MAAM,UACN;AAEV,UAAM,IAAI;AAAA,MACR,aAAa,SAAS,KAAK,YAAY;AAAA,MACvC;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,QAAuD;AAClE,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,KAAK,sBAAsB;AAAA,MACtE,MAAM;AAAA,IACR,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,iBAAiB,KAAK;AACrD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,SAAiB,SAAqE;AAC9F,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU;AAAA,MAC3C;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,UACN,MAAM,EAAE,QAAQ;AAAA,UAChB,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,QAAI,MAAO,MAAK,eAAe,cAAc,OAAO,KAAK,KAAK;AAC9D,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk2BJPLPLUjs = require('./chunk-2BJPLPLU.js');
3
+ var _chunkCKYNUZLAjs = require('./chunk-CKYNUZLA.js');
4
4
 
5
5
  // src/client-sdk/services/evaluators/errors.ts
6
6
  var EvaluatorsApiError = class extends Error {
@@ -16,7 +16,7 @@ var EvaluatorsApiError = class extends Error {
16
16
  var EvaluatorsApiService = class {
17
17
  constructor(config) {
18
18
  var _a;
19
- this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunk2BJPLPLUjs.createLangWatchApiClient.call(void 0, );
19
+ this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunkCKYNUZLAjs.createLangWatchApiClient.call(void 0, );
20
20
  }
21
21
  handleApiError(operation, error) {
22
22
  var _a;
@@ -97,4 +97,4 @@ var EvaluatorsApiService = class {
97
97
 
98
98
 
99
99
  exports.EvaluatorsApiError = EvaluatorsApiError; exports.EvaluatorsApiService = EvaluatorsApiService;
100
- //# sourceMappingURL=chunk-GLCAOVJA.js.map
100
+ //# sourceMappingURL=chunk-WTRZLGRP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-GLCAOVJA.js","../src/client-sdk/services/evaluators/errors.ts","../src/client-sdk/services/evaluators/evaluators-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJO,IAAM,mBAAA,EAAN,MAAA,QAAiC,MAAM;AAAA,EAC5C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,oBAAA;AAAA,EACd;AACF,CAAA;ADIA;AACA;AEIO,IAAM,qBAAA,EAAN,MAA2B;AAAA,EAGhC,WAAA,CAAY,MAAA,EAAqD;AArBnE,IAAA,IAAA,EAAA;AAsBI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AAzBnE,IAAA,IAAA,EAAA;AA0BI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,kBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAK6C,EAAA;AACR,IAAA;AACJ,IAAA;AACxB,IAAA;AACT,EAAA;AAAA;AAAA;AAAA;AAKwD,EAAA;AACnB,IAAA;AACjC,MAAA;AACA,MAAA;AAC+B,QAAA;AAC/B,MAAA;AACF,IAAA;AACI,IAAA;AACG,MAAA;AACiC,QAAA;AACpC,QAAA;AACF,MAAA;AACK,IAAA;AACT,EAAA;AAAA;AAAA;AAAA;AAKsE,EAAA;AACjC,IAAA;AAC3B,MAAA;AACP,IAAA;AAC8B,IAAA;AACxB,IAAA;AACT,EAAA;AAAA;AAAA;AAAA;AAKkF,EAAA;AAC7C,IAAA;AACjC,MAAA;AACA,MAAA;AACyB,QAAA;AACjB,QAAA;AACR,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAAA;AAAA;AAAA;AAK2D,EAAA;AACtB,IAAA;AACjC,MAAA;AACA,MAAA;AACyB,QAAA;AACzB,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AACF;AFtB8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-GLCAOVJA.js","sourcesContent":[null,"export class EvaluatorsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"EvaluatorsApiError\";\n }\n}\n","import type {\n CreateEvaluatorBody,\n DeleteEvaluatorResponse,\n EvaluatorResponse,\n UpdateEvaluatorBody,\n} from \"./types\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\nimport { EvaluatorsApiError } from \"./errors\";\n\n/**\n * Service for retrieving evaluator resources via the LangWatch API.\n *\n * Provides read-only access to project evaluators with computed fields.\n */\nexport class EvaluatorsApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new EvaluatorsApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n /**\n * Fetches all evaluators for the project.\n */\n async getAll(): Promise<EvaluatorResponse[]> {\n const { data, error } = await this.apiClient.GET(\"/api/evaluators\");\n if (error) this.handleApiError(\"fetch all evaluators\", error);\n return data;\n }\n\n /**\n * Fetches a single evaluator by its ID or slug.\n */\n async get(idOrSlug: string): Promise<EvaluatorResponse> {\n const { data, error } = await this.apiClient.GET(\n \"/api/evaluators/{idOrSlug}\",\n {\n params: { path: { idOrSlug } },\n },\n );\n if (error)\n this.handleApiError(\n `fetch evaluator with ID or slug \"${idOrSlug}\"`,\n error,\n );\n return data;\n }\n\n /**\n * Creates a new evaluator.\n */\n async create(params: CreateEvaluatorBody): Promise<EvaluatorResponse> {\n const { data, error } = await this.apiClient.POST(\"/api/evaluators\", {\n body: params,\n });\n if (error) this.handleApiError(\"create evaluator\", error);\n return data;\n }\n\n /**\n * Updates an evaluator by its ID.\n */\n async update(id: string, params: UpdateEvaluatorBody): Promise<EvaluatorResponse> {\n const { data, error } = await this.apiClient.PUT(\n \"/api/evaluators/{id}\",\n {\n params: { path: { id } },\n body: params,\n },\n );\n if (error)\n this.handleApiError(`update evaluator with ID \"${id}\"`, error);\n return data;\n }\n\n /**\n * Deletes (archives) an evaluator by its ID.\n */\n async delete(id: string): Promise<DeleteEvaluatorResponse> {\n const { data, error } = await this.apiClient.DELETE(\n \"/api/evaluators/{id}\",\n {\n params: { path: { id } },\n },\n );\n if (error)\n this.handleApiError(`delete evaluator with ID \"${id}\"`, error);\n return data;\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-WTRZLGRP.js","../src/client-sdk/services/evaluators/errors.ts","../src/client-sdk/services/evaluators/evaluators-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJO,IAAM,mBAAA,EAAN,MAAA,QAAiC,MAAM;AAAA,EAC5C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,oBAAA;AAAA,EACd;AACF,CAAA;ADIA;AACA;AEIO,IAAM,qBAAA,EAAN,MAA2B;AAAA,EAGhC,WAAA,CAAY,MAAA,EAAqD;AArBnE,IAAA,IAAA,EAAA;AAsBI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AAzBnE,IAAA,IAAA,EAAA;AA0BI,IAAA,MAAM,aAAA,EACJ,OAAO,MAAA,IAAU,SAAA,EACb,MAAA,EACA,MAAA,GAAS,KAAA,GACP,OAAO,MAAA,IAAU,SAAA,GACjB,QAAA,GAAW,MAAA,GACX,KAAA,CAAM,MAAA,GAAS,KAAA,EACf,OAAO,KAAA,CAAM,MAAA,IAAU,SAAA,EACrB,KAAA,CAAM,MAAA,EAAA,CACL,GAAA,EAAA,KAAA,CAAM,KAAA,CAA+B,OAAA,EAAA,GAArC,KAAA,EAAA,GAAA,EACD,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,KAAK,EAAA,EAC5B,MAAA,WAAiB,MAAA,EACf,KAAA,CAAM,QAAA,EACN,wBAAA;AAEV,IAAA,MAAM,IAAI,kBAAA;AAAA,MACR,CAAA,UAAA,EAAa,SAAS,CAAA,EAAA,EAAK,YAAY,CAAA,CAAA;AACvC,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAK6C,EAAA;AACR,IAAA;AACJ,IAAA;AACxB,IAAA;AACT,EAAA;AAAA;AAAA;AAAA;AAKwD,EAAA;AACnB,IAAA;AACjC,MAAA;AACA,MAAA;AAC+B,QAAA;AAC/B,MAAA;AACF,IAAA;AACI,IAAA;AACG,MAAA;AACiC,QAAA;AACpC,QAAA;AACF,MAAA;AACK,IAAA;AACT,EAAA;AAAA;AAAA;AAAA;AAKsE,EAAA;AACjC,IAAA;AAC3B,MAAA;AACP,IAAA;AAC8B,IAAA;AACxB,IAAA;AACT,EAAA;AAAA;AAAA;AAAA;AAKkF,EAAA;AAC7C,IAAA;AACjC,MAAA;AACA,MAAA;AACyB,QAAA;AACjB,QAAA;AACR,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AAAA;AAAA;AAAA;AAK2D,EAAA;AACtB,IAAA;AACjC,MAAA;AACA,MAAA;AACyB,QAAA;AACzB,MAAA;AACF,IAAA;AACI,IAAA;AACkB,MAAA;AACf,IAAA;AACT,EAAA;AACF;AFtB8C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-WTRZLGRP.js","sourcesContent":[null,"export class EvaluatorsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"EvaluatorsApiError\";\n }\n}\n","import type {\n CreateEvaluatorBody,\n DeleteEvaluatorResponse,\n EvaluatorResponse,\n UpdateEvaluatorBody,\n} from \"./types\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\nimport { EvaluatorsApiError } from \"./errors\";\n\n/**\n * Service for retrieving evaluator resources via the LangWatch API.\n *\n * Provides read-only access to project evaluators with computed fields.\n */\nexport class EvaluatorsApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error != null &&\n typeof error === \"object\" &&\n \"error\" in error &&\n error.error != null\n ? typeof error.error === \"string\"\n ? error.error\n : (error.error as { message?: string }).message ??\n JSON.stringify(error.error)\n : error instanceof Error\n ? error.message\n : \"Unknown error occurred\";\n\n throw new EvaluatorsApiError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n /**\n * Fetches all evaluators for the project.\n */\n async getAll(): Promise<EvaluatorResponse[]> {\n const { data, error } = await this.apiClient.GET(\"/api/evaluators\");\n if (error) this.handleApiError(\"fetch all evaluators\", error);\n return data;\n }\n\n /**\n * Fetches a single evaluator by its ID or slug.\n */\n async get(idOrSlug: string): Promise<EvaluatorResponse> {\n const { data, error } = await this.apiClient.GET(\n \"/api/evaluators/{idOrSlug}\",\n {\n params: { path: { idOrSlug } },\n },\n );\n if (error)\n this.handleApiError(\n `fetch evaluator with ID or slug \"${idOrSlug}\"`,\n error,\n );\n return data;\n }\n\n /**\n * Creates a new evaluator.\n */\n async create(params: CreateEvaluatorBody): Promise<EvaluatorResponse> {\n const { data, error } = await this.apiClient.POST(\"/api/evaluators\", {\n body: params,\n });\n if (error) this.handleApiError(\"create evaluator\", error);\n return data;\n }\n\n /**\n * Updates an evaluator by its ID.\n */\n async update(id: string, params: UpdateEvaluatorBody): Promise<EvaluatorResponse> {\n const { data, error } = await this.apiClient.PUT(\n \"/api/evaluators/{id}\",\n {\n params: { path: { id } },\n body: params,\n },\n );\n if (error)\n this.handleApiError(`update evaluator with ID \"${id}\"`, error);\n return data;\n }\n\n /**\n * Deletes (archives) an evaluator by its ID.\n */\n async delete(id: string): Promise<DeleteEvaluatorResponse> {\n const { data, error } = await this.apiClient.DELETE(\n \"/api/evaluators/{id}\",\n {\n params: { path: { id } },\n },\n );\n if (error)\n this.handleApiError(`delete evaluator with ID \"${id}\"`, error);\n return data;\n }\n}\n"]}