@leonardo-ai/sdk 4.6.0 → 4.14.1

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 (449) hide show
  1. package/README.md +132 -44
  2. package/docs/sdks/dataset/README.md +16 -21
  3. package/docs/sdks/{element → elements}/README.md +5 -4
  4. package/docs/sdks/{model → image}/README.md +32 -121
  5. package/docs/sdks/initimages/README.md +182 -0
  6. package/docs/sdks/models/README.md +180 -0
  7. package/docs/sdks/motion/README.md +50 -0
  8. package/docs/sdks/pricingcalculator/README.md +48 -0
  9. package/docs/sdks/prompt/README.md +4 -2
  10. package/docs/sdks/realtimecanvas/README.md +190 -0
  11. package/docs/sdks/texture/README.md +92 -0
  12. package/docs/sdks/{initimage → threedmodelassets}/README.md +17 -62
  13. package/docs/sdks/user/README.md +2 -1
  14. package/docs/sdks/variation/README.md +52 -7
  15. package/hooks/hooks.d.ts +5 -1
  16. package/hooks/hooks.d.ts.map +1 -1
  17. package/hooks/hooks.js +11 -0
  18. package/hooks/hooks.js.map +1 -1
  19. package/hooks/index.d.ts +2 -2
  20. package/hooks/index.d.ts.map +1 -1
  21. package/hooks/index.js +2 -2
  22. package/hooks/index.js.map +1 -1
  23. package/hooks/types.d.ts +29 -16
  24. package/hooks/types.d.ts.map +1 -1
  25. package/index.d.ts +2 -2
  26. package/index.d.ts.map +1 -1
  27. package/index.js +2 -2
  28. package/index.js.map +1 -1
  29. package/lib/config.d.ts +6 -5
  30. package/lib/config.d.ts.map +1 -1
  31. package/lib/config.js +5 -5
  32. package/lib/config.js.map +1 -1
  33. package/lib/encodings.d.ts +16 -1
  34. package/lib/encodings.d.ts.map +1 -1
  35. package/lib/encodings.js +55 -23
  36. package/lib/encodings.js.map +1 -1
  37. package/lib/http.d.ts +66 -3
  38. package/lib/http.d.ts.map +1 -1
  39. package/lib/http.js +216 -17
  40. package/lib/http.js.map +1 -1
  41. package/lib/is-plain-object.d.ts +2 -0
  42. package/lib/is-plain-object.d.ts.map +1 -0
  43. package/lib/is-plain-object.js +42 -0
  44. package/lib/is-plain-object.js.map +1 -0
  45. package/lib/primitives.d.ts +16 -0
  46. package/lib/primitives.d.ts.map +1 -0
  47. package/lib/primitives.js +30 -0
  48. package/lib/primitives.js.map +1 -0
  49. package/lib/schemas.d.ts +4 -0
  50. package/lib/schemas.d.ts.map +1 -1
  51. package/lib/schemas.js +22 -26
  52. package/lib/schemas.js.map +1 -1
  53. package/lib/sdks.d.ts +31 -9
  54. package/lib/sdks.d.ts.map +1 -1
  55. package/lib/sdks.js +66 -32
  56. package/lib/sdks.js.map +1 -1
  57. package/lib/security.d.ts +2 -2
  58. package/lib/security.d.ts.map +1 -1
  59. package/package.json +8 -9
  60. package/sdk/dataset.d.ts +4 -4
  61. package/sdk/dataset.d.ts.map +1 -1
  62. package/sdk/dataset.js +111 -129
  63. package/sdk/dataset.js.map +1 -1
  64. package/sdk/{element.d.ts → elements.d.ts} +5 -5
  65. package/sdk/elements.d.ts.map +1 -0
  66. package/sdk/{element.js → elements.js} +29 -35
  67. package/sdk/elements.js.map +1 -0
  68. package/sdk/image.d.ts +36 -0
  69. package/sdk/image.d.ts.map +1 -0
  70. package/sdk/image.js +316 -0
  71. package/sdk/image.js.map +1 -0
  72. package/sdk/index.d.ts +1 -1
  73. package/sdk/index.d.ts.map +1 -1
  74. package/sdk/index.js +1 -1
  75. package/sdk/index.js.map +1 -1
  76. package/sdk/initimages.d.ts +36 -0
  77. package/sdk/initimages.d.ts.map +1 -0
  78. package/sdk/initimages.js +304 -0
  79. package/sdk/initimages.js.map +1 -0
  80. package/sdk/models/errors/index.d.ts +2 -2
  81. package/sdk/models/errors/index.d.ts.map +1 -1
  82. package/sdk/models/errors/index.js +2 -2
  83. package/sdk/models/errors/index.js.map +1 -1
  84. package/sdk/models/errors/sdkerror.d.ts +1 -0
  85. package/sdk/models/errors/sdkerror.d.ts.map +1 -1
  86. package/sdk/models/errors/sdkerror.js +3 -1
  87. package/sdk/models/errors/sdkerror.js.map +1 -1
  88. package/sdk/models/operations/createdataset.d.ts +72 -40
  89. package/sdk/models/operations/createdataset.d.ts.map +1 -1
  90. package/sdk/models/operations/createdataset.js +100 -95
  91. package/sdk/models/operations/createdataset.js.map +1 -1
  92. package/sdk/models/operations/creategeneration.d.ts +166 -122
  93. package/sdk/models/operations/creategeneration.d.ts.map +1 -1
  94. package/sdk/models/operations/creategeneration.js +219 -279
  95. package/sdk/models/operations/creategeneration.js.map +1 -1
  96. package/sdk/models/operations/createlcmgeneration.d.ts +83 -61
  97. package/sdk/models/operations/createlcmgeneration.d.ts.map +1 -1
  98. package/sdk/models/operations/createlcmgeneration.js +109 -148
  99. package/sdk/models/operations/createlcmgeneration.js.map +1 -1
  100. package/sdk/models/operations/createmodel.d.ts +81 -57
  101. package/sdk/models/operations/createmodel.d.ts.map +1 -1
  102. package/sdk/models/operations/createmodel.js +119 -124
  103. package/sdk/models/operations/createmodel.js.map +1 -1
  104. package/sdk/models/operations/createsvdmotiongeneration.d.ts +76 -48
  105. package/sdk/models/operations/createsvdmotiongeneration.d.ts.map +1 -1
  106. package/sdk/models/operations/createsvdmotiongeneration.js +96 -115
  107. package/sdk/models/operations/createsvdmotiongeneration.js.map +1 -1
  108. package/sdk/models/operations/createtexturegeneration.d.ts +79 -54
  109. package/sdk/models/operations/createtexturegeneration.d.ts.map +1 -1
  110. package/sdk/models/operations/createtexturegeneration.js +124 -135
  111. package/sdk/models/operations/createtexturegeneration.js.map +1 -1
  112. package/sdk/models/operations/createuniversalupscalerjob.d.ts +157 -0
  113. package/sdk/models/operations/createuniversalupscalerjob.d.ts.map +1 -0
  114. package/sdk/models/operations/createuniversalupscalerjob.js +147 -0
  115. package/sdk/models/operations/createuniversalupscalerjob.js.map +1 -0
  116. package/sdk/models/operations/createvariationnobg.d.ts +73 -42
  117. package/sdk/models/operations/createvariationnobg.d.ts.map +1 -1
  118. package/sdk/models/operations/createvariationnobg.js +90 -95
  119. package/sdk/models/operations/createvariationnobg.js.map +1 -1
  120. package/sdk/models/operations/createvariationunzoom.d.ts +73 -42
  121. package/sdk/models/operations/createvariationunzoom.d.ts.map +1 -1
  122. package/sdk/models/operations/createvariationunzoom.js +90 -95
  123. package/sdk/models/operations/createvariationunzoom.js.map +1 -1
  124. package/sdk/models/operations/createvariationupscale.d.ts +72 -40
  125. package/sdk/models/operations/createvariationupscale.d.ts.map +1 -1
  126. package/sdk/models/operations/createvariationupscale.js +92 -95
  127. package/sdk/models/operations/createvariationupscale.js.map +1 -1
  128. package/sdk/models/operations/delete3dmodelbyid.d.ts +93 -52
  129. package/sdk/models/operations/delete3dmodelbyid.d.ts.map +1 -1
  130. package/sdk/models/operations/delete3dmodelbyid.js +127 -117
  131. package/sdk/models/operations/delete3dmodelbyid.js.map +1 -1
  132. package/sdk/models/operations/deletedatasetbyid.d.ts +71 -38
  133. package/sdk/models/operations/deletedatasetbyid.d.ts.map +1 -1
  134. package/sdk/models/operations/deletedatasetbyid.js +102 -95
  135. package/sdk/models/operations/deletedatasetbyid.js.map +1 -1
  136. package/sdk/models/operations/deletegenerationbyid.d.ts +71 -38
  137. package/sdk/models/operations/deletegenerationbyid.d.ts.map +1 -1
  138. package/sdk/models/operations/deletegenerationbyid.js +98 -93
  139. package/sdk/models/operations/deletegenerationbyid.js.map +1 -1
  140. package/sdk/models/operations/deleteinitimagebyid.d.ts +71 -38
  141. package/sdk/models/operations/deleteinitimagebyid.d.ts.map +1 -1
  142. package/sdk/models/operations/deleteinitimagebyid.js +98 -93
  143. package/sdk/models/operations/deleteinitimagebyid.js.map +1 -1
  144. package/sdk/models/operations/deletemodelbyid.d.ts +71 -38
  145. package/sdk/models/operations/deletemodelbyid.d.ts.map +1 -1
  146. package/sdk/models/operations/deletemodelbyid.js +98 -95
  147. package/sdk/models/operations/deletemodelbyid.js.map +1 -1
  148. package/sdk/models/operations/deletetexturegenerationbyid.d.ts +93 -52
  149. package/sdk/models/operations/deletetexturegenerationbyid.d.ts.map +1 -1
  150. package/sdk/models/operations/deletetexturegenerationbyid.js +131 -127
  151. package/sdk/models/operations/deletetexturegenerationbyid.js.map +1 -1
  152. package/sdk/models/operations/getdatasetbyid.d.ts +95 -60
  153. package/sdk/models/operations/getdatasetbyid.d.ts.map +1 -1
  154. package/sdk/models/operations/getdatasetbyid.js +139 -137
  155. package/sdk/models/operations/getdatasetbyid.js.map +1 -1
  156. package/sdk/models/operations/getgenerationbyid.d.ts +184 -159
  157. package/sdk/models/operations/getgenerationbyid.d.ts.map +1 -1
  158. package/sdk/models/operations/getgenerationbyid.js +283 -376
  159. package/sdk/models/operations/getgenerationbyid.js.map +1 -1
  160. package/sdk/models/operations/getgenerationsbyuserid.d.ts +186 -162
  161. package/sdk/models/operations/getgenerationsbyuserid.d.ts.map +1 -1
  162. package/sdk/models/operations/getgenerationsbyuserid.js +277 -380
  163. package/sdk/models/operations/getgenerationsbyuserid.js.map +1 -1
  164. package/sdk/models/operations/getinitimagebyid.d.ts +73 -42
  165. package/sdk/models/operations/getinitimagebyid.d.ts.map +1 -1
  166. package/sdk/models/operations/getinitimagebyid.js +106 -103
  167. package/sdk/models/operations/getinitimagebyid.js.map +1 -1
  168. package/sdk/models/operations/getmodelbyid.d.ts +83 -61
  169. package/sdk/models/operations/getmodelbyid.d.ts.map +1 -1
  170. package/sdk/models/operations/getmodelbyid.js +125 -140
  171. package/sdk/models/operations/getmodelbyid.js.map +1 -1
  172. package/sdk/models/operations/getuserself.d.ts +81 -58
  173. package/sdk/models/operations/getuserself.d.ts.map +1 -1
  174. package/sdk/models/operations/getuserself.js +118 -155
  175. package/sdk/models/operations/getuserself.js.map +1 -1
  176. package/sdk/models/operations/getvariationbyid.d.ts +76 -47
  177. package/sdk/models/operations/getvariationbyid.d.ts.map +1 -1
  178. package/sdk/models/operations/getvariationbyid.js +111 -112
  179. package/sdk/models/operations/getvariationbyid.js.map +1 -1
  180. package/sdk/models/operations/index.d.ts +36 -33
  181. package/sdk/models/operations/index.d.ts.map +1 -1
  182. package/sdk/models/operations/index.js +36 -33
  183. package/sdk/models/operations/index.js.map +1 -1
  184. package/sdk/models/operations/listelements.d.ts +63 -47
  185. package/sdk/models/operations/listelements.d.ts.map +1 -1
  186. package/sdk/models/operations/listelements.js +88 -102
  187. package/sdk/models/operations/listelements.js.map +1 -1
  188. package/sdk/models/operations/listplatformmodels.d.ts +77 -50
  189. package/sdk/models/operations/listplatformmodels.d.ts.map +1 -1
  190. package/sdk/models/operations/listplatformmodels.js +130 -121
  191. package/sdk/models/operations/listplatformmodels.js.map +1 -1
  192. package/sdk/models/operations/performalchemyupscalelcm.d.ts +88 -71
  193. package/sdk/models/operations/performalchemyupscalelcm.d.ts.map +1 -1
  194. package/sdk/models/operations/performalchemyupscalelcm.js +123 -174
  195. package/sdk/models/operations/performalchemyupscalelcm.js.map +1 -1
  196. package/sdk/models/operations/performinpaintinglcm.d.ts +84 -63
  197. package/sdk/models/operations/performinpaintinglcm.d.ts.map +1 -1
  198. package/sdk/models/operations/performinpaintinglcm.js +115 -152
  199. package/sdk/models/operations/performinpaintinglcm.js.map +1 -1
  200. package/sdk/models/operations/performinstantrefine.d.ts +83 -61
  201. package/sdk/models/operations/performinstantrefine.d.ts.map +1 -1
  202. package/sdk/models/operations/performinstantrefine.js +113 -148
  203. package/sdk/models/operations/performinstantrefine.js.map +1 -1
  204. package/sdk/models/operations/pricingcalculator.d.ts +476 -0
  205. package/sdk/models/operations/pricingcalculator.d.ts.map +1 -0
  206. package/sdk/models/operations/pricingcalculator.js +391 -0
  207. package/sdk/models/operations/pricingcalculator.js.map +1 -0
  208. package/sdk/models/operations/promptimprove.d.ts +72 -40
  209. package/sdk/models/operations/promptimprove.d.ts.map +1 -1
  210. package/sdk/models/operations/promptimprove.js +88 -95
  211. package/sdk/models/operations/promptimprove.js.map +1 -1
  212. package/sdk/models/operations/promptrandom.d.ts +55 -32
  213. package/sdk/models/operations/promptrandom.d.ts.map +1 -1
  214. package/sdk/models/operations/promptrandom.js +73 -81
  215. package/sdk/models/operations/promptrandom.js.map +1 -1
  216. package/sdk/models/operations/uploadcanvasinitimage.d.ts +140 -0
  217. package/sdk/models/operations/uploadcanvasinitimage.d.ts.map +1 -0
  218. package/sdk/models/operations/uploadcanvasinitimage.js +152 -0
  219. package/sdk/models/operations/uploadcanvasinitimage.js.map +1 -0
  220. package/sdk/models/operations/uploaddatasetimage.d.ts +92 -54
  221. package/sdk/models/operations/uploaddatasetimage.d.ts.map +1 -1
  222. package/sdk/models/operations/uploaddatasetimage.js +121 -129
  223. package/sdk/models/operations/uploaddatasetimage.js.map +1 -1
  224. package/sdk/models/operations/uploaddatasetimagefromgen.d.ts +89 -48
  225. package/sdk/models/operations/uploaddatasetimagefromgen.d.ts.map +1 -1
  226. package/sdk/models/operations/uploaddatasetimagefromgen.js +119 -117
  227. package/sdk/models/operations/uploaddatasetimagefromgen.js.map +1 -1
  228. package/sdk/models/operations/uploadinitimage.d.ts +74 -44
  229. package/sdk/models/operations/uploadinitimage.d.ts.map +1 -1
  230. package/sdk/models/operations/uploadinitimage.js +92 -107
  231. package/sdk/models/operations/uploadinitimage.js.map +1 -1
  232. package/sdk/models/operations/uploadmodelasset.d.ts +75 -46
  233. package/sdk/models/operations/uploadmodelasset.d.ts.map +1 -1
  234. package/sdk/models/operations/uploadmodelasset.js +94 -111
  235. package/sdk/models/operations/uploadmodelasset.js.map +1 -1
  236. package/sdk/models/shared/canvasrequesttype.d.ts +25 -0
  237. package/sdk/models/shared/canvasrequesttype.d.ts.map +1 -0
  238. package/sdk/models/shared/canvasrequesttype.js +56 -0
  239. package/sdk/models/shared/canvasrequesttype.js.map +1 -0
  240. package/sdk/models/shared/controlnetinput.d.ts +93 -0
  241. package/sdk/models/shared/controlnetinput.d.ts.map +1 -0
  242. package/sdk/models/shared/controlnetinput.js +107 -0
  243. package/sdk/models/shared/controlnetinput.js.map +1 -0
  244. package/sdk/models/shared/controlnettype.d.ts +16 -2
  245. package/sdk/models/shared/controlnettype.d.ts.map +1 -1
  246. package/sdk/models/shared/controlnettype.js +18 -3
  247. package/sdk/models/shared/controlnettype.js.map +1 -1
  248. package/sdk/models/shared/custommodeltype.d.ts +13 -1
  249. package/sdk/models/shared/custommodeltype.d.ts.map +1 -1
  250. package/sdk/models/shared/custommodeltype.js +15 -2
  251. package/sdk/models/shared/custommodeltype.js.map +1 -1
  252. package/sdk/models/shared/elementinput.d.ts +18 -10
  253. package/sdk/models/shared/elementinput.d.ts.map +1 -1
  254. package/sdk/models/shared/elementinput.js +18 -23
  255. package/sdk/models/shared/elementinput.js.map +1 -1
  256. package/sdk/models/shared/index.d.ts +15 -11
  257. package/sdk/models/shared/index.d.ts.map +1 -1
  258. package/sdk/models/shared/index.js +15 -11
  259. package/sdk/models/shared/index.js.map +1 -1
  260. package/sdk/models/shared/jobstatus.d.ts +13 -1
  261. package/sdk/models/shared/jobstatus.d.ts.map +1 -1
  262. package/sdk/models/shared/jobstatus.js +15 -2
  263. package/sdk/models/shared/jobstatus.js.map +1 -1
  264. package/sdk/models/shared/lcmgenerationstyle.d.ts +13 -1
  265. package/sdk/models/shared/lcmgenerationstyle.d.ts.map +1 -1
  266. package/sdk/models/shared/lcmgenerationstyle.js +15 -2
  267. package/sdk/models/shared/lcmgenerationstyle.js.map +1 -1
  268. package/sdk/models/shared/pricingcalculatorservices.d.ts +28 -0
  269. package/sdk/models/shared/pricingcalculatorservices.d.ts.map +1 -0
  270. package/sdk/models/shared/pricingcalculatorservices.js +59 -0
  271. package/sdk/models/shared/pricingcalculatorservices.js.map +1 -0
  272. package/sdk/models/shared/sdgenerationschedulers.d.ts +13 -1
  273. package/sdk/models/shared/sdgenerationschedulers.d.ts.map +1 -1
  274. package/sdk/models/shared/sdgenerationschedulers.js +15 -2
  275. package/sdk/models/shared/sdgenerationschedulers.js.map +1 -1
  276. package/sdk/models/shared/sdgenerationstyle.d.ts +13 -1
  277. package/sdk/models/shared/sdgenerationstyle.d.ts.map +1 -1
  278. package/sdk/models/shared/sdgenerationstyle.js +15 -2
  279. package/sdk/models/shared/sdgenerationstyle.js.map +1 -1
  280. package/sdk/models/shared/sdversions.d.ts +13 -1
  281. package/sdk/models/shared/sdversions.d.ts.map +1 -1
  282. package/sdk/models/shared/sdversions.js +15 -2
  283. package/sdk/models/shared/sdversions.js.map +1 -1
  284. package/sdk/models/shared/security.d.ts +17 -8
  285. package/sdk/models/shared/security.d.ts.map +1 -1
  286. package/sdk/models/shared/security.js +16 -19
  287. package/sdk/models/shared/security.js.map +1 -1
  288. package/sdk/models/shared/strength.d.ts +13 -1
  289. package/sdk/models/shared/strength.d.ts.map +1 -1
  290. package/sdk/models/shared/strength.js +15 -2
  291. package/sdk/models/shared/strength.js.map +1 -1
  292. package/sdk/models/shared/universalupscalerstyle.d.ts +25 -0
  293. package/sdk/models/shared/universalupscalerstyle.d.ts.map +1 -0
  294. package/sdk/models/shared/universalupscalerstyle.js +56 -0
  295. package/sdk/models/shared/universalupscalerstyle.js.map +1 -0
  296. package/sdk/models/shared/variationtype.d.ts +13 -1
  297. package/sdk/models/shared/variationtype.d.ts.map +1 -1
  298. package/sdk/models/shared/variationtype.js +15 -2
  299. package/sdk/models/shared/variationtype.js.map +1 -1
  300. package/sdk/models.d.ts +36 -0
  301. package/sdk/models.d.ts.map +1 -0
  302. package/sdk/models.js +299 -0
  303. package/sdk/models.js.map +1 -0
  304. package/sdk/motion.d.ts +15 -0
  305. package/sdk/motion.d.ts.map +1 -0
  306. package/sdk/motion.js +121 -0
  307. package/sdk/motion.js.map +1 -0
  308. package/sdk/pricingcalculator.d.ts +15 -0
  309. package/sdk/pricingcalculator.d.ts.map +1 -0
  310. package/sdk/pricingcalculator.js +119 -0
  311. package/sdk/pricingcalculator.js.map +1 -0
  312. package/sdk/prompt.d.ts +4 -4
  313. package/sdk/prompt.d.ts.map +1 -1
  314. package/sdk/prompt.js +49 -57
  315. package/sdk/prompt.js.map +1 -1
  316. package/sdk/realtimecanvas.d.ts +36 -0
  317. package/sdk/realtimecanvas.d.ts.map +1 -0
  318. package/sdk/realtimecanvas.js +296 -0
  319. package/sdk/realtimecanvas.js.map +1 -0
  320. package/sdk/sdk.d.ts +33 -18
  321. package/sdk/sdk.d.ts.map +1 -1
  322. package/sdk/sdk.js +54 -29
  323. package/sdk/sdk.js.map +1 -1
  324. package/sdk/texture.d.ts +22 -0
  325. package/sdk/texture.d.ts.map +1 -0
  326. package/sdk/texture.js +186 -0
  327. package/sdk/texture.js.map +1 -0
  328. package/sdk/threedmodelassets.d.ts +22 -0
  329. package/sdk/threedmodelassets.d.ts.map +1 -0
  330. package/sdk/threedmodelassets.js +184 -0
  331. package/sdk/threedmodelassets.js.map +1 -0
  332. package/sdk/types/enums.d.ts +12 -0
  333. package/sdk/types/enums.d.ts.map +1 -0
  334. package/sdk/types/enums.js +11 -0
  335. package/sdk/types/enums.js.map +1 -0
  336. package/sdk/types/index.d.ts +6 -4
  337. package/sdk/types/index.d.ts.map +1 -1
  338. package/sdk/types/index.js +10 -8
  339. package/sdk/types/index.js.map +1 -1
  340. package/sdk/user.d.ts +3 -3
  341. package/sdk/user.d.ts.map +1 -1
  342. package/sdk/user.js +26 -32
  343. package/sdk/user.js.map +1 -1
  344. package/sdk/variation.d.ts +13 -6
  345. package/sdk/variation.d.ts.map +1 -1
  346. package/sdk/variation.js +154 -111
  347. package/sdk/variation.js.map +1 -1
  348. package/src/hooks/hooks.ts +19 -1
  349. package/src/hooks/index.ts +2 -2
  350. package/src/hooks/types.ts +31 -16
  351. package/src/index.ts +2 -2
  352. package/src/lib/config.ts +7 -6
  353. package/src/lib/encodings.ts +72 -13
  354. package/src/lib/http.ts +450 -159
  355. package/src/lib/is-plain-object.ts +43 -0
  356. package/src/lib/primitives.ts +40 -0
  357. package/src/lib/schemas.ts +37 -3
  358. package/src/lib/sdks.ts +102 -31
  359. package/src/lib/security.ts +2 -2
  360. package/src/sdk/dataset.ts +122 -140
  361. package/src/sdk/{element.ts → elements.ts} +25 -32
  362. package/src/sdk/image.ts +377 -0
  363. package/src/sdk/index.ts +1 -1
  364. package/src/sdk/initimages.ts +359 -0
  365. package/src/sdk/models/errors/index.ts +2 -2
  366. package/src/sdk/models/errors/sdkerror.ts +4 -1
  367. package/src/sdk/models/operations/createdataset.ts +160 -134
  368. package/src/sdk/models/operations/creategeneration.ts +365 -391
  369. package/src/sdk/models/operations/createlcmgeneration.ts +181 -208
  370. package/src/sdk/models/operations/createmodel.ts +185 -173
  371. package/src/sdk/models/operations/createsvdmotiongeneration.ts +162 -181
  372. package/src/sdk/models/operations/createtexturegeneration.ts +193 -204
  373. package/src/sdk/models/operations/createuniversalupscalerjob.ts +271 -0
  374. package/src/sdk/models/operations/createvariationnobg.ts +160 -144
  375. package/src/sdk/models/operations/createvariationunzoom.ts +157 -152
  376. package/src/sdk/models/operations/createvariationupscale.ts +161 -161
  377. package/src/sdk/models/operations/delete3dmodelbyid.ts +209 -168
  378. package/src/sdk/models/operations/deletedatasetbyid.ts +168 -133
  379. package/src/sdk/models/operations/deletegenerationbyid.ts +161 -136
  380. package/src/sdk/models/operations/deleteinitimagebyid.ts +158 -136
  381. package/src/sdk/models/operations/deletemodelbyid.ts +160 -132
  382. package/src/sdk/models/operations/deletetexturegenerationbyid.ts +213 -210
  383. package/src/sdk/models/operations/getdatasetbyid.ts +217 -188
  384. package/src/sdk/models/operations/getgenerationbyid.ts +459 -548
  385. package/src/sdk/models/operations/getgenerationsbyuserid.ts +457 -596
  386. package/src/sdk/models/operations/getinitimagebyid.ts +174 -144
  387. package/src/sdk/models/operations/getmodelbyid.ts +196 -193
  388. package/src/sdk/models/operations/getuserself.ts +176 -206
  389. package/src/sdk/models/operations/getvariationbyid.ts +181 -162
  390. package/src/sdk/models/operations/index.ts +36 -33
  391. package/src/sdk/models/operations/listelements.ts +139 -148
  392. package/src/sdk/models/operations/listplatformmodels.ts +200 -178
  393. package/src/sdk/models/operations/performalchemyupscalelcm.ts +201 -268
  394. package/src/sdk/models/operations/performinpaintinglcm.ts +188 -226
  395. package/src/sdk/models/operations/performinstantrefine.ts +185 -220
  396. package/src/sdk/models/operations/pricingcalculator.ts +883 -0
  397. package/src/sdk/models/operations/promptimprove.ts +157 -136
  398. package/src/sdk/models/operations/promptrandom.ts +125 -121
  399. package/src/sdk/models/operations/uploadcanvasinitimage.ts +256 -0
  400. package/src/sdk/models/operations/uploaddatasetimage.ts +200 -177
  401. package/src/sdk/models/operations/uploaddatasetimagefromgen.ts +196 -187
  402. package/src/sdk/models/operations/uploadinitimage.ts +163 -152
  403. package/src/sdk/models/operations/uploadmodelasset.ts +166 -158
  404. package/src/sdk/models/shared/canvasrequesttype.ts +34 -0
  405. package/src/sdk/models/shared/controlnetinput.ts +130 -0
  406. package/src/sdk/models/shared/controlnettype.ts +20 -2
  407. package/src/sdk/models/shared/custommodeltype.ts +16 -1
  408. package/src/sdk/models/shared/elementinput.ts +29 -31
  409. package/src/sdk/models/shared/index.ts +15 -11
  410. package/src/sdk/models/shared/jobstatus.ts +15 -1
  411. package/src/sdk/models/shared/lcmgenerationstyle.ts +16 -1
  412. package/src/sdk/models/shared/pricingcalculatorservices.ts +39 -0
  413. package/src/sdk/models/shared/sdgenerationschedulers.ts +16 -1
  414. package/src/sdk/models/shared/sdgenerationstyle.ts +16 -1
  415. package/src/sdk/models/shared/sdversions.ts +17 -1
  416. package/src/sdk/models/shared/security.ts +23 -25
  417. package/src/sdk/models/shared/strength.ts +15 -1
  418. package/src/sdk/models/shared/universalupscalerstyle.ts +34 -0
  419. package/src/sdk/models/shared/variationtype.ts +17 -1
  420. package/src/sdk/models.ts +347 -0
  421. package/src/sdk/motion.ts +123 -0
  422. package/src/sdk/pricingcalculator.ts +119 -0
  423. package/src/sdk/prompt.ts +51 -60
  424. package/src/sdk/realtimecanvas.ts +361 -0
  425. package/src/sdk/sdk.ts +54 -24
  426. package/src/sdk/texture.ts +208 -0
  427. package/src/sdk/threedmodelassets.ts +204 -0
  428. package/src/sdk/types/enums.ts +16 -0
  429. package/src/sdk/types/index.ts +6 -4
  430. package/src/sdk/user.ts +24 -31
  431. package/src/sdk/variation.ts +186 -121
  432. package/docs/sdks/generation/README.md +0 -503
  433. package/sdk/element.d.ts.map +0 -1
  434. package/sdk/element.js.map +0 -1
  435. package/sdk/generation.d.ts +0 -85
  436. package/sdk/generation.d.ts.map +0 -1
  437. package/sdk/generation.js +0 -781
  438. package/sdk/generation.js.map +0 -1
  439. package/sdk/initimage.d.ts +0 -29
  440. package/sdk/initimage.d.ts.map +0 -1
  441. package/sdk/initimage.js +0 -257
  442. package/sdk/initimage.js.map +0 -1
  443. package/sdk/model.d.ts +0 -50
  444. package/sdk/model.d.ts.map +0 -1
  445. package/sdk/model.js +0 -446
  446. package/sdk/model.js.map +0 -1
  447. package/src/sdk/generation.ts +0 -984
  448. package/src/sdk/initimage.ts +0 -293
  449. package/src/sdk/model.ts +0 -536
package/src/lib/http.ts CHANGED
@@ -2,17 +2,40 @@
2
2
  * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
3
3
  */
4
4
 
5
- export type Fetcher = (
6
- input: RequestInfo | URL,
7
- init?: RequestInit,
8
- ) => Promise<Response>;
5
+ import { never as znever } from "zod";
6
+ import { parse } from "./schemas.js";
7
+ import { isPlainObject } from "./is-plain-object.js";
8
+ import { SDKError } from "../sdk/models/errors/sdkerror.js";
9
+
10
+ export type Fetcher = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
9
11
 
10
12
  export type Awaitable<T> = T | Promise<T>;
11
13
 
12
- const DEFAULT_FETCHER: Fetcher = (input, init) => fetch(input, init);
14
+ const DEFAULT_FETCHER: Fetcher = (input, init) => {
15
+ // If input is a Request and init is undefined, Bun will discard the method,
16
+ // headers, body and other options that were set on the request object.
17
+ // Node.js and browers would ignore an undefined init value. This check is
18
+ // therefore needed for interop with Bun.
19
+ if (init == null) {
20
+ return fetch(input);
21
+ } else {
22
+ return fetch(input, init);
23
+ }
24
+ };
25
+
26
+ export type RequestInput = {
27
+ /**
28
+ * The URL the request will use.
29
+ */
30
+ url: URL;
31
+ /**
32
+ * Options used to create a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request).
33
+ */
34
+ options?: RequestInit | undefined;
35
+ };
13
36
 
14
37
  export interface HTTPClientOptions {
15
- fetcher?: Fetcher;
38
+ fetcher?: Fetcher;
16
39
  }
17
40
 
18
41
  export type BeforeRequestHook = (req: Request) => Awaitable<Request | void>;
@@ -20,196 +43,464 @@ export type RequestErrorHook = (err: unknown, req: Request) => Awaitable<void>;
20
43
  export type ResponseHook = (res: Response, req: Request) => Awaitable<void>;
21
44
 
22
45
  export class HTTPClient {
23
- private fetcher: Fetcher;
24
- private requestHooks: BeforeRequestHook[] = [];
25
- private requestErrorHooks: RequestErrorHook[] = [];
26
- private responseHooks: ResponseHook[] = [];
27
-
28
- constructor(private options: HTTPClientOptions = {}) {
29
- this.fetcher = options.fetcher || DEFAULT_FETCHER;
30
- }
31
-
32
- async request(request: Request): Promise<Response> {
33
- let req = request;
34
- for (const hook of this.requestHooks) {
35
- const nextRequest = await hook(req);
36
- if (nextRequest) {
37
- req = nextRequest;
38
- }
46
+ private fetcher: Fetcher;
47
+ private requestHooks: BeforeRequestHook[] = [];
48
+ private requestErrorHooks: RequestErrorHook[] = [];
49
+ private responseHooks: ResponseHook[] = [];
50
+
51
+ constructor(private options: HTTPClientOptions = {}) {
52
+ this.fetcher = options.fetcher || DEFAULT_FETCHER;
39
53
  }
40
54
 
41
- try {
42
- const res = await this.fetcher(req);
55
+ async request(request: Request): Promise<Response> {
56
+ let req = request;
57
+ for (const hook of this.requestHooks) {
58
+ const nextRequest = await hook(req);
59
+ if (nextRequest) {
60
+ req = nextRequest;
61
+ }
62
+ }
63
+
64
+ try {
65
+ const res = await this.fetcher(req);
66
+
67
+ for (const hook of this.responseHooks) {
68
+ await hook(res, req);
69
+ }
70
+
71
+ return res;
72
+ } catch (err) {
73
+ for (const hook of this.requestErrorHooks) {
74
+ await hook(err, req);
75
+ }
76
+
77
+ throw err;
78
+ }
79
+ }
43
80
 
44
- for (const hook of this.responseHooks) {
45
- await hook(res, req);
46
- }
81
+ /**
82
+ * Registers a hook that is called before a request is made. The hook function
83
+ * can mutate the request or return a new request. This may be useful to add
84
+ * additional information to request such as request IDs and tracing headers.
85
+ */
86
+ addHook(hook: "beforeRequest", fn: BeforeRequestHook): this;
87
+ /**
88
+ * Registers a hook that is called when a request cannot be made due to a
89
+ * network error.
90
+ */
91
+ addHook(hook: "requestError", fn: RequestErrorHook): this;
92
+ /**
93
+ * Registers a hook that is called when a response has been received from the
94
+ * server.
95
+ */
96
+ addHook(hook: "response", fn: ResponseHook): this;
97
+ addHook(
98
+ ...args:
99
+ | [hook: "beforeRequest", fn: BeforeRequestHook]
100
+ | [hook: "requestError", fn: RequestErrorHook]
101
+ | [hook: "response", fn: ResponseHook]
102
+ ) {
103
+ if (args[0] === "beforeRequest") {
104
+ this.requestHooks.push(args[1]);
105
+ } else if (args[0] === "requestError") {
106
+ this.requestErrorHooks.push(args[1]);
107
+ } else if (args[0] === "response") {
108
+ this.responseHooks.push(args[1]);
109
+ } else {
110
+ throw new Error(`Invalid hook type: ${args[0]}`);
111
+ }
112
+ return this;
113
+ }
47
114
 
48
- return res;
49
- } catch (err) {
50
- for (const hook of this.requestErrorHooks) {
51
- await hook(err, req);
52
- }
115
+ /** Removes a hook that was previously registered with `addHook`. */
116
+ removeHook(hook: "beforeRequest", fn: BeforeRequestHook): this;
117
+ /** Removes a hook that was previously registered with `addHook`. */
118
+ removeHook(hook: "requestError", fn: RequestErrorHook): this;
119
+ /** Removes a hook that was previously registered with `addHook`. */
120
+ removeHook(hook: "response", fn: ResponseHook): this;
121
+ removeHook(
122
+ ...args:
123
+ | [hook: "beforeRequest", fn: BeforeRequestHook]
124
+ | [hook: "requestError", fn: RequestErrorHook]
125
+ | [hook: "response", fn: ResponseHook]
126
+ ): this {
127
+ let target: unknown[];
128
+ if (args[0] === "beforeRequest") {
129
+ target = this.requestHooks;
130
+ } else if (args[0] === "requestError") {
131
+ target = this.requestErrorHooks;
132
+ } else if (args[0] === "response") {
133
+ target = this.responseHooks;
134
+ } else {
135
+ throw new Error(`Invalid hook type: ${args[0]}`);
136
+ }
137
+
138
+ const index = target.findIndex((v) => v === args[1]);
139
+ if (index >= 0) {
140
+ target.splice(index, 1);
141
+ }
142
+
143
+ return this;
144
+ }
53
145
 
54
- throw err;
55
- }
56
- }
57
-
58
- /**
59
- * Registers a hook that is called before a request is made. The hook function
60
- * can mutate the request or return a new request. This may be useful to add
61
- * additional information to request such as request IDs and tracing headers.
62
- */
63
- addHook(hook: "beforeRequest", fn: BeforeRequestHook): this;
64
- /**
65
- * Registers a hook that is called when a request cannot be made due to a
66
- * network error.
67
- */
68
- addHook(hook: "requestError", fn: RequestErrorHook): this;
69
- /**
70
- * Registers a hook that is called when a response has been received from the
71
- * server.
72
- */
73
- addHook(hook: "response", fn: ResponseHook): this;
74
- addHook(
75
- ...args:
76
- | [hook: "beforeRequest", fn: BeforeRequestHook]
77
- | [hook: "requestError", fn: RequestErrorHook]
78
- | [hook: "response", fn: ResponseHook]
79
- ) {
80
- if (args[0] === "beforeRequest") {
81
- this.requestHooks.push(args[1]);
82
- } else if (args[0] === "requestError") {
83
- this.requestErrorHooks.push(args[1]);
84
- } else if (args[0] === "response") {
85
- this.responseHooks.push(args[1]);
86
- } else {
87
- throw new Error(`Invalid hook type: ${args[0]}`);
88
- }
89
- return this;
90
- }
91
-
92
- /** Removes a hook that was previously registered with `addHook`. */
93
- removeHook(hook: "beforeRequest", fn: BeforeRequestHook): this;
94
- /** Removes a hook that was previously registered with `addHook`. */
95
- removeHook(hook: "requestError", fn: RequestErrorHook): this;
96
- /** Removes a hook that was previously registered with `addHook`. */
97
- removeHook(hook: "response", fn: ResponseHook): this;
98
- removeHook(
99
- ...args:
100
- | [hook: "beforeRequest", fn: BeforeRequestHook]
101
- | [hook: "requestError", fn: RequestErrorHook]
102
- | [hook: "response", fn: ResponseHook]
103
- ): this {
104
- let target: unknown[];
105
- if (args[0] === "beforeRequest") {
106
- target = this.requestHooks;
107
- } else if (args[0] === "requestError") {
108
- target = this.requestErrorHooks;
109
- } else if (args[0] === "response") {
110
- target = this.responseHooks;
111
- } else {
112
- throw new Error(`Invalid hook type: ${args[0]}`);
146
+ clone(): HTTPClient {
147
+ const child = new HTTPClient(this.options);
148
+ child.requestHooks = this.requestHooks.slice();
149
+ child.requestErrorHooks = this.requestErrorHooks.slice();
150
+ child.responseHooks = this.responseHooks.slice();
151
+
152
+ return child;
113
153
  }
154
+ }
155
+
156
+ export type StatusCodePredicate = number | string | (number | string)[];
114
157
 
115
- const index = target.findIndex((v) => v === args[1]);
116
- if (index >= 0) {
117
- target.splice(index, 1);
158
+ // A semicolon surrounded by optional whitespace characters is used to separate
159
+ // segments in a media type string.
160
+ const mediaParamSeparator = /\s*;\s*/g;
161
+
162
+ function matchContentType(response: Response, pattern: string): boolean {
163
+ // `*` is a special case which means anything is acceptable.
164
+ if (pattern === "*") {
165
+ return true;
118
166
  }
119
167
 
120
- return this;
121
- }
168
+ let contentType = response.headers.get("content-type")?.trim() || "application/octet-stream";
169
+ contentType = contentType.toLowerCase();
122
170
 
123
- clone(): HTTPClient {
124
- const child = new HTTPClient(this.options);
125
- child.requestHooks = this.requestHooks.slice();
126
- child.requestErrorHooks = this.requestErrorHooks.slice();
127
- child.responseHooks = this.responseHooks.slice();
171
+ const wantParts = pattern.toLowerCase().trim().split(mediaParamSeparator);
172
+ const [wantType = "", ...wantParams] = wantParts;
128
173
 
129
- return child;
130
- }
131
- }
174
+ if (wantType.split("/").length !== 2) {
175
+ return false;
176
+ }
132
177
 
133
- export function matchContentType(response: Response, pattern: string): boolean {
134
- if (pattern === "*" || pattern === "*/*") {
135
- return true;
136
- }
178
+ const gotParts = contentType.split(mediaParamSeparator);
179
+ const [gotType = "", ...gotParams] = gotParts;
137
180
 
138
- const contentType =
139
- response.headers.get("content-type") ?? "application/octet-stream";
181
+ const [type = "", subtype = ""] = gotType.split("/");
182
+ if (!type || !subtype) {
183
+ return false;
184
+ }
140
185
 
141
- const idx = contentType.split(";").findIndex((raw) => {
142
- const ctype = raw.trim();
143
- if (ctype === pattern) {
144
- return true;
186
+ if (
187
+ wantType !== "*/*" &&
188
+ gotType !== wantType &&
189
+ `${type}/*` !== wantType &&
190
+ `*/${subtype}` !== wantType
191
+ ) {
192
+ return false;
145
193
  }
146
194
 
147
- const parts = ctype.split("/");
148
- if (parts.length !== 2) {
149
- return false;
195
+ if (gotParams.length < wantParams.length) {
196
+ return false;
150
197
  }
151
198
 
152
- return `${parts[0]}/*` === pattern || `*/${parts[1]}` === pattern;
153
- });
199
+ const params = new Set(gotParams);
200
+ for (const wantParam of wantParams) {
201
+ if (!params.has(wantParam)) {
202
+ return false;
203
+ }
204
+ }
154
205
 
155
- return idx >= 0;
206
+ return true;
156
207
  }
157
208
 
158
209
  const codeRangeRE = new RegExp("^[0-9]xx$", "i");
159
210
 
160
- export function matchStatusCode(
161
- response: Response,
162
- codes: number | string | (number | string)[],
163
- ): boolean {
164
- const actual = `${response.status}`;
165
- const expectedCodes = Array.isArray(codes) ? codes : [codes];
166
- if (!expectedCodes.length) {
167
- return false;
168
- }
211
+ export function matchStatusCode(response: Response, codes: StatusCodePredicate): boolean {
212
+ const actual = `${response.status}`;
213
+ const expectedCodes = Array.isArray(codes) ? codes : [codes];
214
+ if (!expectedCodes.length) {
215
+ return false;
216
+ }
169
217
 
170
- return expectedCodes.some((ec) => {
171
- const code = `${ec}`;
218
+ return expectedCodes.some((ec) => {
219
+ const code = `${ec}`;
172
220
 
173
- if (code === "default") {
174
- return true;
175
- }
221
+ if (code === "default") {
222
+ return true;
223
+ }
176
224
 
177
- if (!codeRangeRE.test(`${code}`)) {
178
- return code === actual;
179
- }
225
+ if (!codeRangeRE.test(`${code}`)) {
226
+ return code === actual;
227
+ }
180
228
 
181
- const expectFamily = code.charAt(0);
182
- if (!expectFamily) {
183
- throw new Error("Invalid status code range");
184
- }
229
+ const expectFamily = code.charAt(0);
230
+ if (!expectFamily) {
231
+ throw new Error("Invalid status code range");
232
+ }
185
233
 
186
- const actualFamily = actual.charAt(0);
187
- if (!actualFamily) {
188
- throw new Error(`Invalid response status code: ${actual}`);
189
- }
234
+ const actualFamily = actual.charAt(0);
235
+ if (!actualFamily) {
236
+ throw new Error(`Invalid response status code: ${actual}`);
237
+ }
190
238
 
191
- return actualFamily === expectFamily;
192
- });
239
+ return actualFamily === expectFamily;
240
+ });
193
241
  }
194
242
 
195
243
  export function matchResponse(
196
- response: Response,
197
- code: number | string | (number | string)[],
198
- contentTypePattern: string,
244
+ response: Response,
245
+ code: StatusCodePredicate,
246
+ contentTypePattern: string
199
247
  ): boolean {
200
- return (
201
- matchStatusCode(response, code) &&
202
- matchContentType(response, contentTypePattern)
203
- );
248
+ return matchStatusCode(response, code) && matchContentType(response, contentTypePattern);
204
249
  }
205
250
 
206
251
  const headerValRE = /, */;
207
252
  export function unpackHeaders(headers: Headers): Record<string, string[]> {
208
- const out: Record<string, string[]> = {};
253
+ const out: Record<string, string[]> = {};
254
+
255
+ for (const [k, v] of headers.entries()) {
256
+ out[k] = v.split(headerValRE);
257
+ }
258
+
259
+ return out;
260
+ }
261
+
262
+ type ResponseMatcherSchema<T> =
263
+ | { parse: (data: unknown) => T }
264
+ | { inboundSchema: { parse: (data: unknown) => T } };
265
+
266
+ type SerializationMethod = "sse" | "json" | "rawBytes" | "rawStream" | "text" | "void" | "fail";
267
+
268
+ const defaultContentTypes: Record<SerializationMethod, string> = {
269
+ sse: "text/event-stream",
270
+ json: "application/json",
271
+ rawBytes: "application/octet-stream",
272
+ rawStream: "application/octet-stream",
273
+ text: "text/plain",
274
+ void: "",
275
+ fail: "",
276
+ };
277
+
278
+ type ResponsePredicateMatch<Result> = {
279
+ method: SerializationMethod;
280
+ codes: StatusCodePredicate;
281
+ ctype: string;
282
+ schema: ResponseMatcherSchema<Result | Error>;
283
+ hdrs: boolean;
284
+ key: string | undefined;
285
+ err: boolean;
286
+ fail: boolean;
287
+ sseSentinel?: string | undefined;
288
+ };
289
+
290
+ type ResponsePredicateOptions = {
291
+ /** Content type to match on. */
292
+ ctype?: string;
293
+ /** Pass HTTP headers to deserializer. */
294
+ hdrs?: boolean;
295
+ /** A value for an SSE event's data field that indicates a stream should be terminated. */
296
+ sseSentinel?: string;
297
+ } & (
298
+ | {
299
+ /** The result key to store the deserialized value into. */
300
+ key?: string;
301
+ fail?: never;
302
+ err?: never;
303
+ }
304
+ | {
305
+ /** Indicates the matched response must throw the built-in error. */
306
+ fail: true;
307
+ key?: never;
308
+ err?: never;
309
+ }
310
+ | {
311
+ /** Indicates the matched response is a custom error. */
312
+ err: true;
313
+ key?: never;
314
+ fail?: never;
315
+ }
316
+ );
317
+
318
+ export class ResponseMatcher<Result> {
319
+ private predicates: ResponsePredicateMatch<Result>[] = [];
320
+
321
+ #any<T extends Result | Error>(
322
+ method: SerializationMethod,
323
+ codes: StatusCodePredicate,
324
+ schema: ResponseMatcherSchema<T>,
325
+ opts?: ResponsePredicateOptions
326
+ ) {
327
+ const ctype = opts?.ctype || defaultContentTypes[method];
328
+ const hdrs = !!opts?.hdrs;
329
+ const key = opts?.key;
330
+ const err = !!opts?.err;
331
+ const fail = !!opts?.fail;
332
+ const sseSentinel = opts?.sseSentinel;
333
+ this.predicates.push({
334
+ method,
335
+ codes,
336
+ ctype,
337
+ schema,
338
+ hdrs,
339
+ key,
340
+ err,
341
+ fail,
342
+ sseSentinel,
343
+ });
344
+ return this;
345
+ }
346
+
347
+ json<T extends Result | Error>(
348
+ codes: StatusCodePredicate,
349
+ schema: ResponseMatcherSchema<T>,
350
+ opts?: ResponsePredicateOptions
351
+ ): this {
352
+ return this.#any("json", codes, schema, opts);
353
+ }
354
+ bytes<T extends Result | Error>(
355
+ codes: StatusCodePredicate,
356
+ schema: ResponseMatcherSchema<T>,
357
+ opts?: ResponsePredicateOptions
358
+ ): this {
359
+ return this.#any("rawBytes", codes, schema, opts);
360
+ }
361
+ stream<T extends Result | Error>(
362
+ codes: StatusCodePredicate,
363
+ schema: ResponseMatcherSchema<T>,
364
+ opts?: ResponsePredicateOptions
365
+ ): this {
366
+ return this.#any("rawStream", codes, schema, opts);
367
+ }
368
+ text<T extends Result | Error>(
369
+ codes: StatusCodePredicate,
370
+ schema: ResponseMatcherSchema<T>,
371
+ opts?: ResponsePredicateOptions
372
+ ): this {
373
+ return this.#any("text", codes, schema, opts);
374
+ }
375
+ sse<T extends Result | Error>(
376
+ codes: StatusCodePredicate,
377
+ schema: ResponseMatcherSchema<T>,
378
+ opts?: Omit<ResponsePredicateOptions, "err" | "fail">
379
+ ): this {
380
+ return this.#any("sse", codes, schema, opts);
381
+ }
382
+ void<T extends Result | Error>(
383
+ codes: StatusCodePredicate,
384
+ schema: ResponseMatcherSchema<T>,
385
+ opts?: Pick<ResponsePredicateOptions, "hdrs">
386
+ ): this {
387
+ return this.#any("void", codes, schema, opts);
388
+ }
389
+ fail(codes: StatusCodePredicate): this {
390
+ return this.#any("fail", codes, znever(), { fail: true });
391
+ }
209
392
 
210
- for (const [k, v] of headers.entries()) {
211
- out[k] = v.split(headerValRE);
212
- }
393
+ async match(
394
+ response: Response,
395
+ // envelope
396
+ options?: {
397
+ resultKey?: string;
398
+ extraFields?: Record<string, unknown>;
399
+ }
400
+ ): Promise<[result: Result, rawData: unknown]> {
401
+ let pred: ResponsePredicateMatch<Result> | undefined;
402
+ for (const predicate of this.predicates) {
403
+ const { codes, ctype } = predicate;
404
+ if (ctype && matchResponse(response, codes, ctype)) {
405
+ pred = predicate;
406
+ break;
407
+ } else if (!ctype && matchStatusCode(response, codes)) {
408
+ pred = predicate;
409
+ break;
410
+ }
411
+ }
412
+ if (pred == null) {
413
+ const responseBody = await response.text();
414
+ throw new SDKError(
415
+ "Unexpected API response status or content-type",
416
+ response,
417
+ responseBody
418
+ );
419
+ }
420
+
421
+ const { method, schema } = pred;
422
+
423
+ let raw: unknown;
424
+ switch (method) {
425
+ case "json":
426
+ raw = await response.json();
427
+ break;
428
+ case "rawBytes":
429
+ raw = await response.arrayBuffer();
430
+ break;
431
+ case "rawStream":
432
+ raw = response.body;
433
+ break;
434
+ case "text":
435
+ raw = await response.text();
436
+ break;
437
+ case "sse":
438
+ raw = response.body;
439
+ break;
440
+ case "void":
441
+ raw = await discardResponseBody(response);
442
+ break;
443
+ case "fail":
444
+ raw = await response.text();
445
+ break;
446
+ default:
447
+ method satisfies never;
448
+ throw new Error(`Unsupported response type: ${method}`);
449
+ }
450
+
451
+ const resultKey = pred.key || options?.resultKey;
452
+ let data: unknown;
453
+ if (pred.fail) {
454
+ throw new SDKError("API error occurred", response, typeof raw === "string" ? raw : "");
455
+ } else if (pred.err) {
456
+ data = {
457
+ ...options?.extraFields,
458
+ ...(pred.hdrs ? { Headers: unpackHeaders(response.headers) } : null),
459
+ ...(isPlainObject(raw) ? raw : null),
460
+ };
461
+ } else if (resultKey) {
462
+ data = {
463
+ ...options?.extraFields,
464
+ ...(pred.hdrs ? { Headers: unpackHeaders(response.headers) } : null),
465
+ [resultKey]: raw,
466
+ };
467
+ } else {
468
+ data = {
469
+ ...options?.extraFields,
470
+ ...(pred.hdrs ? { Headers: unpackHeaders(response.headers) } : null),
471
+ };
472
+ }
473
+
474
+ const parser = "inboundSchema" in schema ? schema.inboundSchema : schema;
475
+ const body = parse(data, (v: unknown) => parser.parse(v), "Response validation failed");
476
+
477
+ if (body instanceof Error) {
478
+ throw body;
479
+ }
480
+
481
+ return [body, raw];
482
+ }
483
+ }
484
+
485
+ /**
486
+ * Discards the response body to free up resources.
487
+ *
488
+ * To learn why this is need, see the undici docs:
489
+ * https://undici.nodejs.org/#/?id=garbage-collection
490
+ */
491
+ export async function discardResponseBody(res: Response) {
492
+ const reader = res.body?.getReader();
493
+ if (reader == null) {
494
+ return;
495
+ }
213
496
 
214
- return out;
497
+ try {
498
+ let done = false;
499
+ while (!done) {
500
+ const res = await reader.read();
501
+ done = res.done;
502
+ }
503
+ } finally {
504
+ reader.releaseLock();
505
+ }
215
506
  }