@nodaro/sdk 2.29.0 → 2.32.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 (716) hide show
  1. package/README.md +31 -0
  2. package/dist/chunk-2DZWWIJ4.cjs +32 -0
  3. package/dist/chunk-2DZWWIJ4.cjs.map +1 -0
  4. package/dist/chunk-34PU2DAT.cjs +118 -0
  5. package/dist/chunk-34PU2DAT.cjs.map +1 -0
  6. package/dist/chunk-37Y5QAVA.js +3 -0
  7. package/dist/chunk-37Y5QAVA.js.map +1 -0
  8. package/dist/chunk-37YCKZX4.cjs +4 -0
  9. package/dist/chunk-37YCKZX4.cjs.map +1 -0
  10. package/dist/chunk-3B47IHB3.cjs +65 -0
  11. package/dist/chunk-3B47IHB3.cjs.map +1 -0
  12. package/dist/chunk-3BELHJBN.cjs +4 -0
  13. package/dist/chunk-3BELHJBN.cjs.map +1 -0
  14. package/dist/chunk-3PPSGM5X.js +3 -0
  15. package/dist/chunk-3PPSGM5X.js.map +1 -0
  16. package/dist/chunk-3QBH2VE2.cjs +80 -0
  17. package/dist/chunk-3QBH2VE2.cjs.map +1 -0
  18. package/dist/chunk-3QFTP5P5.js +102 -0
  19. package/dist/chunk-3QFTP5P5.js.map +1 -0
  20. package/dist/chunk-43FVH6LJ.cjs +123 -0
  21. package/dist/chunk-43FVH6LJ.cjs.map +1 -0
  22. package/dist/chunk-43NO4SGC.cjs +4 -0
  23. package/dist/chunk-43NO4SGC.cjs.map +1 -0
  24. package/dist/chunk-45CK55BH.cjs +4 -0
  25. package/dist/chunk-45CK55BH.cjs.map +1 -0
  26. package/dist/chunk-4CXB7RA6.js +104 -0
  27. package/dist/chunk-4CXB7RA6.js.map +1 -0
  28. package/dist/chunk-4NLVBYMW.js +280 -0
  29. package/dist/chunk-4NLVBYMW.js.map +1 -0
  30. package/dist/chunk-4WRDR4GN.js +102 -0
  31. package/dist/chunk-4WRDR4GN.js.map +1 -0
  32. package/dist/chunk-4WWSHV5G.cjs +4 -0
  33. package/dist/chunk-4WWSHV5G.cjs.map +1 -0
  34. package/dist/chunk-53SXNN3A.js +80 -0
  35. package/dist/chunk-53SXNN3A.js.map +1 -0
  36. package/dist/chunk-5ALNFATQ.cjs +27 -0
  37. package/dist/chunk-5ALNFATQ.cjs.map +1 -0
  38. package/dist/chunk-5UQNMNUE.cjs +4 -0
  39. package/dist/chunk-5UQNMNUE.cjs.map +1 -0
  40. package/dist/chunk-65E3JBFZ.js +52 -0
  41. package/dist/chunk-65E3JBFZ.js.map +1 -0
  42. package/dist/chunk-6ECW23GA.js +214 -0
  43. package/dist/chunk-6ECW23GA.js.map +1 -0
  44. package/dist/chunk-6JFNBAKV.js +3 -0
  45. package/dist/chunk-6JFNBAKV.js.map +1 -0
  46. package/dist/chunk-6OC6OKLY.cjs +4 -0
  47. package/dist/chunk-6OC6OKLY.cjs.map +1 -0
  48. package/dist/chunk-6OGGJQVA.js +25 -0
  49. package/dist/chunk-6OGGJQVA.js.map +1 -0
  50. package/dist/chunk-7A7HYFGM.js +3 -0
  51. package/dist/chunk-7A7HYFGM.js.map +1 -0
  52. package/dist/chunk-7CK6I4CT.cjs +16 -0
  53. package/dist/chunk-7CK6I4CT.cjs.map +1 -0
  54. package/dist/chunk-7LSFG2AF.js +194 -0
  55. package/dist/chunk-7LSFG2AF.js.map +1 -0
  56. package/dist/chunk-7MYKT2L4.cjs +4 -0
  57. package/dist/chunk-7MYKT2L4.cjs.map +1 -0
  58. package/dist/chunk-7QOCWJKD.cjs +25 -0
  59. package/dist/chunk-7QOCWJKD.cjs.map +1 -0
  60. package/dist/chunk-A2ZAFAWC.cjs +4 -0
  61. package/dist/chunk-A2ZAFAWC.cjs.map +1 -0
  62. package/dist/chunk-A3S55XGF.cjs +54 -0
  63. package/dist/chunk-A3S55XGF.cjs.map +1 -0
  64. package/dist/chunk-A3THLBFG.js +3 -0
  65. package/dist/chunk-A3THLBFG.js.map +1 -0
  66. package/dist/chunk-AJVSMNPZ.js +78 -0
  67. package/dist/chunk-AJVSMNPZ.js.map +1 -0
  68. package/dist/chunk-ALSLZG3U.js +124 -0
  69. package/dist/chunk-ALSLZG3U.js.map +1 -0
  70. package/dist/chunk-ALUUBPDG.cjs +4 -0
  71. package/dist/chunk-ALUUBPDG.cjs.map +1 -0
  72. package/dist/chunk-AO3W45LT.cjs +4 -0
  73. package/dist/chunk-AO3W45LT.cjs.map +1 -0
  74. package/dist/chunk-AUDHV3OE.js +3 -0
  75. package/dist/chunk-AUDHV3OE.js.map +1 -0
  76. package/dist/chunk-B7RG6AUQ.cjs +216 -0
  77. package/dist/chunk-B7RG6AUQ.cjs.map +1 -0
  78. package/dist/chunk-BAL576G2.cjs +4 -0
  79. package/dist/chunk-BAL576G2.cjs.map +1 -0
  80. package/dist/chunk-BKP6F2IX.js +3 -0
  81. package/dist/chunk-BKP6F2IX.js.map +1 -0
  82. package/dist/chunk-BLA44UCM.js +32 -0
  83. package/dist/chunk-BLA44UCM.js.map +1 -0
  84. package/dist/chunk-BPWUWUZ3.cjs +20 -0
  85. package/dist/chunk-BPWUWUZ3.cjs.map +1 -0
  86. package/dist/chunk-BRV7Z4GD.cjs +17 -0
  87. package/dist/chunk-BRV7Z4GD.cjs.map +1 -0
  88. package/dist/chunk-BU5A6K4C.js +122 -0
  89. package/dist/chunk-BU5A6K4C.js.map +1 -0
  90. package/dist/chunk-C22RJDW3.js +3 -0
  91. package/dist/chunk-C22RJDW3.js.map +1 -0
  92. package/dist/chunk-CGNVHN4V.js +3 -0
  93. package/dist/chunk-CGNVHN4V.js.map +1 -0
  94. package/dist/chunk-CJFIOVBA.js +3 -0
  95. package/dist/chunk-CJFIOVBA.js.map +1 -0
  96. package/dist/chunk-CJLLIVSB.cjs +4 -0
  97. package/dist/chunk-CJLLIVSB.cjs.map +1 -0
  98. package/dist/chunk-CK3AMMSC.js +194 -0
  99. package/dist/chunk-CK3AMMSC.js.map +1 -0
  100. package/dist/chunk-COCKKMNP.cjs +205 -0
  101. package/dist/chunk-COCKKMNP.cjs.map +1 -0
  102. package/dist/chunk-CR5E2SF3.cjs +212 -0
  103. package/dist/chunk-CR5E2SF3.cjs.map +1 -0
  104. package/dist/chunk-CRCPRZFN.js +3 -0
  105. package/dist/chunk-CRCPRZFN.js.map +1 -0
  106. package/dist/chunk-CYRFD6KR.cjs +4 -0
  107. package/dist/chunk-CYRFD6KR.cjs.map +1 -0
  108. package/dist/chunk-D3PW7AHZ.js +3 -0
  109. package/dist/chunk-D3PW7AHZ.js.map +1 -0
  110. package/dist/chunk-DKEYSJCE.cjs +82 -0
  111. package/dist/chunk-DKEYSJCE.cjs.map +1 -0
  112. package/dist/chunk-DPSMVOM3.js +15 -0
  113. package/dist/chunk-DPSMVOM3.js.map +1 -0
  114. package/dist/chunk-E2ZXHS6E.js +20 -0
  115. package/dist/chunk-E2ZXHS6E.js.map +1 -0
  116. package/dist/chunk-E37CVHWW.js +33 -0
  117. package/dist/chunk-E37CVHWW.js.map +1 -0
  118. package/dist/chunk-E5BM4BLO.js +78 -0
  119. package/dist/chunk-E5BM4BLO.js.map +1 -0
  120. package/dist/chunk-EHRWTYGR.cjs +4 -0
  121. package/dist/chunk-EHRWTYGR.cjs.map +1 -0
  122. package/dist/chunk-EJSGJDZY.js +212 -0
  123. package/dist/chunk-EJSGJDZY.js.map +1 -0
  124. package/dist/chunk-ELSOVJPF.js +3 -0
  125. package/dist/chunk-ELSOVJPF.js.map +1 -0
  126. package/dist/chunk-ERLXU47J.js +29 -0
  127. package/dist/chunk-ERLXU47J.js.map +1 -0
  128. package/dist/chunk-ES2E65HT.js +3 -0
  129. package/dist/chunk-ES2E65HT.js.map +1 -0
  130. package/dist/chunk-EXLAHZKF.js +3 -0
  131. package/dist/chunk-EXLAHZKF.js.map +1 -0
  132. package/dist/chunk-FB3S2FON.cjs +233 -0
  133. package/dist/chunk-FB3S2FON.cjs.map +1 -0
  134. package/dist/chunk-FHEYAW5H.js +3 -0
  135. package/dist/chunk-FHEYAW5H.js.map +1 -0
  136. package/dist/chunk-GA4LZZKQ.cjs +104 -0
  137. package/dist/chunk-GA4LZZKQ.cjs.map +1 -0
  138. package/dist/chunk-GAZJ2PA3.js +3 -0
  139. package/dist/chunk-GAZJ2PA3.js.map +1 -0
  140. package/dist/chunk-GB6C5OEZ.cjs +32 -0
  141. package/dist/chunk-GB6C5OEZ.cjs.map +1 -0
  142. package/dist/chunk-GB724HW2.cjs +106 -0
  143. package/dist/chunk-GB724HW2.cjs.map +1 -0
  144. package/dist/chunk-GD24ZRFD.js +3 -0
  145. package/dist/chunk-GD24ZRFD.js.map +1 -0
  146. package/dist/chunk-GI7LROLL.cjs +4 -0
  147. package/dist/chunk-GI7LROLL.cjs.map +1 -0
  148. package/dist/chunk-GRFLPEM2.cjs +16 -0
  149. package/dist/chunk-GRFLPEM2.cjs.map +1 -0
  150. package/dist/chunk-GVIFLUYZ.cjs +40 -0
  151. package/dist/chunk-GVIFLUYZ.cjs.map +1 -0
  152. package/dist/chunk-GWCOKNST.js +228 -0
  153. package/dist/chunk-GWCOKNST.js.map +1 -0
  154. package/dist/chunk-H7VQTG4M.js +35 -0
  155. package/dist/chunk-H7VQTG4M.js.map +1 -0
  156. package/dist/chunk-HAKYPZLB.cjs +242 -0
  157. package/dist/chunk-HAKYPZLB.cjs.map +1 -0
  158. package/dist/chunk-HFBR6G36.js +3 -0
  159. package/dist/chunk-HFBR6G36.js.map +1 -0
  160. package/dist/chunk-HGCVWOGK.cjs +209 -0
  161. package/dist/chunk-HGCVWOGK.cjs.map +1 -0
  162. package/dist/chunk-HLHR3R4P.js +3 -0
  163. package/dist/chunk-HLHR3R4P.js.map +1 -0
  164. package/dist/chunk-HRXXGGSJ.js +3 -0
  165. package/dist/chunk-HRXXGGSJ.js.map +1 -0
  166. package/dist/chunk-I3TYBAOX.js +3 -0
  167. package/dist/chunk-I3TYBAOX.js.map +1 -0
  168. package/dist/chunk-I4A5VJRL.js +352 -0
  169. package/dist/chunk-I4A5VJRL.js.map +1 -0
  170. package/dist/chunk-I6CXC345.js +102 -0
  171. package/dist/chunk-I6CXC345.js.map +1 -0
  172. package/dist/chunk-IGOPUMEX.cjs +4 -0
  173. package/dist/chunk-IGOPUMEX.cjs.map +1 -0
  174. package/dist/chunk-IHKIYVZQ.js +30 -0
  175. package/dist/chunk-IHKIYVZQ.js.map +1 -0
  176. package/dist/chunk-IMC2M5YM.cjs +12 -0
  177. package/dist/chunk-IMC2M5YM.cjs.map +1 -0
  178. package/dist/chunk-IQ6KWSXP.js +3 -0
  179. package/dist/chunk-IQ6KWSXP.js.map +1 -0
  180. package/dist/chunk-IS26FJO7.cjs +4 -0
  181. package/dist/chunk-IS26FJO7.cjs.map +1 -0
  182. package/dist/chunk-J4WFSKY6.js +50 -0
  183. package/dist/chunk-J4WFSKY6.js.map +1 -0
  184. package/dist/chunk-J5LGGCAS.cjs +126 -0
  185. package/dist/chunk-J5LGGCAS.cjs.map +1 -0
  186. package/dist/chunk-JDEZHITT.js +43 -0
  187. package/dist/chunk-JDEZHITT.js.map +1 -0
  188. package/dist/chunk-JGS6YBDW.js +260 -0
  189. package/dist/chunk-JGS6YBDW.js.map +1 -0
  190. package/dist/chunk-JMOKD6ZP.js +46 -0
  191. package/dist/chunk-JMOKD6ZP.js.map +1 -0
  192. package/dist/chunk-JOX5BJ6K.cjs +4 -0
  193. package/dist/chunk-JOX5BJ6K.cjs.map +1 -0
  194. package/dist/chunk-JTAW54UM.js +116 -0
  195. package/dist/chunk-JTAW54UM.js.map +1 -0
  196. package/dist/chunk-K4RQOSJH.js +203 -0
  197. package/dist/chunk-K4RQOSJH.js.map +1 -0
  198. package/dist/chunk-KAIE6WJB.cjs +4 -0
  199. package/dist/chunk-KAIE6WJB.cjs.map +1 -0
  200. package/dist/chunk-KEDPGWIK.cjs +4 -0
  201. package/dist/chunk-KEDPGWIK.cjs.map +1 -0
  202. package/dist/chunk-KG4R454Z.js +18 -0
  203. package/dist/chunk-KG4R454Z.js.map +1 -0
  204. package/dist/chunk-KGKCAGRD.cjs +22 -0
  205. package/dist/chunk-KGKCAGRD.cjs.map +1 -0
  206. package/dist/chunk-KNMW722T.cjs +48 -0
  207. package/dist/chunk-KNMW722T.cjs.map +1 -0
  208. package/dist/chunk-KTTL7BND.cjs +4 -0
  209. package/dist/chunk-KTTL7BND.cjs.map +1 -0
  210. package/dist/chunk-KXEWTYS4.cjs +80 -0
  211. package/dist/chunk-KXEWTYS4.cjs.map +1 -0
  212. package/dist/chunk-KZQKFBRN.js +3 -0
  213. package/dist/chunk-KZQKFBRN.js.map +1 -0
  214. package/dist/chunk-LAWYFC4G.cjs +37 -0
  215. package/dist/chunk-LAWYFC4G.cjs.map +1 -0
  216. package/dist/chunk-LHRQXWI5.js +3 -0
  217. package/dist/chunk-LHRQXWI5.js.map +1 -0
  218. package/dist/chunk-LKH5M44B.cjs +114 -0
  219. package/dist/chunk-LKH5M44B.cjs.map +1 -0
  220. package/dist/chunk-LLNNHLCE.cjs +4 -0
  221. package/dist/chunk-LLNNHLCE.cjs.map +1 -0
  222. package/dist/chunk-LWZLWSXD.cjs +4 -0
  223. package/dist/chunk-LWZLWSXD.cjs.map +1 -0
  224. package/dist/chunk-M6Y5TOYE.js +3 -0
  225. package/dist/chunk-M6Y5TOYE.js.map +1 -0
  226. package/dist/chunk-MBFUMWI5.cjs +31 -0
  227. package/dist/chunk-MBFUMWI5.cjs.map +1 -0
  228. package/dist/chunk-MEKI37WI.js +3 -0
  229. package/dist/chunk-MEKI37WI.js.map +1 -0
  230. package/dist/chunk-MQ74AKA2.cjs +200 -0
  231. package/dist/chunk-MQ74AKA2.cjs.map +1 -0
  232. package/dist/chunk-N6GLZOE4.cjs +282 -0
  233. package/dist/chunk-N6GLZOE4.cjs.map +1 -0
  234. package/dist/chunk-NBVARNVA.cjs +38 -0
  235. package/dist/chunk-NBVARNVA.cjs.map +1 -0
  236. package/dist/chunk-NCCBS6GU.js +42 -0
  237. package/dist/chunk-NCCBS6GU.js.map +1 -0
  238. package/dist/chunk-NGKODS3J.cjs +52 -0
  239. package/dist/chunk-NGKODS3J.cjs.map +1 -0
  240. package/dist/chunk-NJVSKUL2.cjs +4 -0
  241. package/dist/chunk-NJVSKUL2.cjs.map +1 -0
  242. package/dist/chunk-NLQQHJ25.cjs +104 -0
  243. package/dist/chunk-NLQQHJ25.cjs.map +1 -0
  244. package/dist/chunk-NNHWH7ER.js +181 -0
  245. package/dist/chunk-NNHWH7ER.js.map +1 -0
  246. package/dist/chunk-NX67YIF3.js +3 -0
  247. package/dist/chunk-NX67YIF3.js.map +1 -0
  248. package/dist/chunk-OA6FWYZF.cjs +4 -0
  249. package/dist/chunk-OA6FWYZF.cjs.map +1 -0
  250. package/dist/chunk-OJDBSKC2.js +3 -0
  251. package/dist/chunk-OJDBSKC2.js.map +1 -0
  252. package/dist/chunk-OLPA44QJ.js +3 -0
  253. package/dist/chunk-OLPA44QJ.js.map +1 -0
  254. package/dist/chunk-OMH7ATOQ.js +3 -0
  255. package/dist/chunk-OMH7ATOQ.js.map +1 -0
  256. package/dist/chunk-OPR4TULG.js +3 -0
  257. package/dist/chunk-OPR4TULG.js.map +1 -0
  258. package/dist/chunk-OSX2GVZ2.cjs +34 -0
  259. package/dist/chunk-OSX2GVZ2.cjs.map +1 -0
  260. package/dist/chunk-OXQKE5EG.cjs +282 -0
  261. package/dist/chunk-OXQKE5EG.cjs.map +1 -0
  262. package/dist/chunk-P6E4QDJN.js +30 -0
  263. package/dist/chunk-P6E4QDJN.js.map +1 -0
  264. package/dist/chunk-PEMLIAPZ.cjs +64 -0
  265. package/dist/chunk-PEMLIAPZ.cjs.map +1 -0
  266. package/dist/chunk-PGYQ754I.js +3 -0
  267. package/dist/chunk-PGYQ754I.js.map +1 -0
  268. package/dist/chunk-PHEA6FVQ.js +184 -0
  269. package/dist/chunk-PHEA6FVQ.js.map +1 -0
  270. package/dist/chunk-PMTM26LL.js +3 -0
  271. package/dist/chunk-PMTM26LL.js.map +1 -0
  272. package/dist/chunk-PY4OEKNX.cjs +4 -0
  273. package/dist/chunk-PY4OEKNX.cjs.map +1 -0
  274. package/dist/chunk-PZS2EXDR.cjs +4 -0
  275. package/dist/chunk-PZS2EXDR.cjs.map +1 -0
  276. package/dist/chunk-QRHJEITQ.cjs +4 -0
  277. package/dist/chunk-QRHJEITQ.cjs.map +1 -0
  278. package/dist/chunk-QUFU5RJ7.cjs +4 -0
  279. package/dist/chunk-QUFU5RJ7.cjs.map +1 -0
  280. package/dist/chunk-QVQCKOBM.js +3 -0
  281. package/dist/chunk-QVQCKOBM.js.map +1 -0
  282. package/dist/chunk-R63TTR35.cjs +200 -0
  283. package/dist/chunk-R63TTR35.cjs.map +1 -0
  284. package/dist/chunk-RA42NMWV.cjs +4 -0
  285. package/dist/chunk-RA42NMWV.cjs.map +1 -0
  286. package/dist/chunk-RAZN6C5R.cjs +12 -0
  287. package/dist/chunk-RAZN6C5R.cjs.map +1 -0
  288. package/dist/chunk-RHETJOUM.cjs +4 -0
  289. package/dist/chunk-RHETJOUM.cjs.map +1 -0
  290. package/dist/chunk-RJIJVVXS.js +3 -0
  291. package/dist/chunk-RJIJVVXS.js.map +1 -0
  292. package/dist/chunk-RKVRCNMB.js +3 -0
  293. package/dist/chunk-RKVRCNMB.js.map +1 -0
  294. package/dist/chunk-S7JQKNVT.cjs +187 -0
  295. package/dist/chunk-S7JQKNVT.cjs.map +1 -0
  296. package/dist/chunk-SBV5MWEL.cjs +53 -0
  297. package/dist/chunk-SBV5MWEL.cjs.map +1 -0
  298. package/dist/chunk-SFB4YLCS.js +121 -0
  299. package/dist/chunk-SFB4YLCS.js.map +1 -0
  300. package/dist/chunk-SLPD47SR.js +3 -0
  301. package/dist/chunk-SLPD47SR.js.map +1 -0
  302. package/dist/chunk-SS3B6PHT.cjs +35 -0
  303. package/dist/chunk-SS3B6PHT.cjs.map +1 -0
  304. package/dist/chunk-SUCHGNYT.js +3 -0
  305. package/dist/chunk-SUCHGNYT.js.map +1 -0
  306. package/dist/chunk-SYVNY3AH.cjs +44 -0
  307. package/dist/chunk-SYVNY3AH.cjs.map +1 -0
  308. package/dist/chunk-T3SYREY4.js +29 -0
  309. package/dist/chunk-T3SYREY4.js.map +1 -0
  310. package/dist/chunk-T7N7DFQJ.js +198 -0
  311. package/dist/chunk-T7N7DFQJ.js.map +1 -0
  312. package/dist/chunk-TRCENAIY.cjs +4 -0
  313. package/dist/chunk-TRCENAIY.cjs.map +1 -0
  314. package/dist/chunk-TVENC6PH.js +186 -0
  315. package/dist/chunk-TVENC6PH.js.map +1 -0
  316. package/dist/chunk-U4T3Z3K7.cjs +325 -0
  317. package/dist/chunk-U4T3Z3K7.cjs.map +1 -0
  318. package/dist/chunk-UIFFNTUX.js +3 -0
  319. package/dist/chunk-UIFFNTUX.js.map +1 -0
  320. package/dist/chunk-V4GPQ6Y2.js +3 -0
  321. package/dist/chunk-V4GPQ6Y2.js.map +1 -0
  322. package/dist/chunk-VGTRKXF2.js +93 -0
  323. package/dist/chunk-VGTRKXF2.js.map +1 -0
  324. package/dist/chunk-VGWOIWRQ.cjs +202 -0
  325. package/dist/chunk-VGWOIWRQ.cjs.map +1 -0
  326. package/dist/chunk-VLCNNA76.cjs +4 -0
  327. package/dist/chunk-VLCNNA76.cjs.map +1 -0
  328. package/dist/chunk-VPAUN75Q.js +3 -0
  329. package/dist/chunk-VPAUN75Q.js.map +1 -0
  330. package/dist/chunk-VT237QF2.js +3 -0
  331. package/dist/chunk-VT237QF2.js.map +1 -0
  332. package/dist/chunk-VV4TZG5S.js +321 -0
  333. package/dist/chunk-VV4TZG5S.js.map +1 -0
  334. package/dist/chunk-VYK6MBL4.cjs +4 -0
  335. package/dist/chunk-VYK6MBL4.cjs.map +1 -0
  336. package/dist/chunk-W33CKW6Q.cjs +4 -0
  337. package/dist/chunk-W33CKW6Q.cjs.map +1 -0
  338. package/dist/chunk-W5VHATSR.cjs +31 -0
  339. package/dist/chunk-W5VHATSR.cjs.map +1 -0
  340. package/dist/chunk-WEQWU2IC.js +34 -0
  341. package/dist/chunk-WEQWU2IC.js.map +1 -0
  342. package/dist/chunk-WK4VXPPZ.cjs +104 -0
  343. package/dist/chunk-WK4VXPPZ.cjs.map +1 -0
  344. package/dist/chunk-WSA4LMWR.cjs +96 -0
  345. package/dist/chunk-WSA4LMWR.cjs.map +1 -0
  346. package/dist/chunk-WUIEZ6Z4.cjs +360 -0
  347. package/dist/chunk-WUIEZ6Z4.cjs.map +1 -0
  348. package/dist/chunk-WUKIJJG2.cjs +45 -0
  349. package/dist/chunk-WUKIJJG2.cjs.map +1 -0
  350. package/dist/chunk-WVFAQBS7.js +29 -0
  351. package/dist/chunk-WVFAQBS7.js.map +1 -0
  352. package/dist/chunk-X7RDNMN7.js +3 -0
  353. package/dist/chunk-X7RDNMN7.js.map +1 -0
  354. package/dist/chunk-X7XP5WBP.cjs +4 -0
  355. package/dist/chunk-X7XP5WBP.cjs.map +1 -0
  356. package/dist/chunk-XWKNE6DH.cjs +4 -0
  357. package/dist/chunk-XWKNE6DH.cjs.map +1 -0
  358. package/dist/chunk-Y6V6CBY5.js +23 -0
  359. package/dist/chunk-Y6V6CBY5.js.map +1 -0
  360. package/dist/chunk-Y6VDCZPB.js +62 -0
  361. package/dist/chunk-Y6VDCZPB.js.map +1 -0
  362. package/dist/chunk-YDRXBRW2.cjs +184 -0
  363. package/dist/chunk-YDRXBRW2.cjs.map +1 -0
  364. package/dist/chunk-YFS2LMG4.cjs +124 -0
  365. package/dist/chunk-YFS2LMG4.cjs.map +1 -0
  366. package/dist/chunk-YN6CBIIB.js +63 -0
  367. package/dist/chunk-YN6CBIIB.js.map +1 -0
  368. package/dist/chunk-YOJ2XNQX.cjs +4 -0
  369. package/dist/chunk-YOJ2XNQX.cjs.map +1 -0
  370. package/dist/chunk-YOOZB4RL.js +3 -0
  371. package/dist/chunk-YOOZB4RL.js.map +1 -0
  372. package/dist/chunk-YVU2M7MI.js +34 -0
  373. package/dist/chunk-YVU2M7MI.js.map +1 -0
  374. package/dist/chunk-YXBZRB5H.cjs +4 -0
  375. package/dist/chunk-YXBZRB5H.cjs.map +1 -0
  376. package/dist/chunk-Z3ZKFI2M.js +43 -0
  377. package/dist/chunk-Z3ZKFI2M.js.map +1 -0
  378. package/dist/chunk-Z5GLY4R3.js +112 -0
  379. package/dist/chunk-Z5GLY4R3.js.map +1 -0
  380. package/dist/chunk-Z5OMWAQX.js +3 -0
  381. package/dist/chunk-Z5OMWAQX.js.map +1 -0
  382. package/dist/chunk-Z7LGWNI7.js +38 -0
  383. package/dist/chunk-Z7LGWNI7.js.map +1 -0
  384. package/dist/chunk-ZCWKX4V6.cjs +38 -0
  385. package/dist/chunk-ZCWKX4V6.cjs.map +1 -0
  386. package/dist/chunk-ZE5RISBZ.cjs +4 -0
  387. package/dist/chunk-ZE5RISBZ.cjs.map +1 -0
  388. package/dist/chunk-ZH4F2P2G.js +3 -0
  389. package/dist/chunk-ZH4F2P2G.js.map +1 -0
  390. package/dist/chunk-ZJGFLJ2Z.cjs +4 -0
  391. package/dist/chunk-ZJGFLJ2Z.cjs.map +1 -0
  392. package/dist/chunk-ZKBHD27K.cjs +4 -0
  393. package/dist/chunk-ZKBHD27K.cjs.map +1 -0
  394. package/dist/chunk-ZQPLRNKX.cjs +4 -0
  395. package/dist/chunk-ZQPLRNKX.cjs.map +1 -0
  396. package/dist/chunk-ZQQABQMH.cjs +31 -0
  397. package/dist/chunk-ZQQABQMH.cjs.map +1 -0
  398. package/dist/chunk-ZXJQSFIA.js +200 -0
  399. package/dist/chunk-ZXJQSFIA.js.map +1 -0
  400. package/dist/chunk-ZYPH2FPT.js +3 -0
  401. package/dist/chunk-ZYPH2FPT.js.map +1 -0
  402. package/dist/developer-apps-zSQXWmEG.d.cts +294 -0
  403. package/dist/developer-apps-zSQXWmEG.d.ts +294 -0
  404. package/dist/entries/apps.cjs +13 -0
  405. package/dist/entries/apps.cjs.map +1 -0
  406. package/dist/entries/apps.d.cts +300 -0
  407. package/dist/entries/apps.d.ts +300 -0
  408. package/dist/entries/apps.js +4 -0
  409. package/dist/entries/apps.js.map +1 -0
  410. package/dist/entries/audio.cjs +13 -0
  411. package/dist/entries/audio.cjs.map +1 -0
  412. package/dist/entries/audio.d.cts +200 -0
  413. package/dist/entries/audio.d.ts +200 -0
  414. package/dist/entries/audio.js +4 -0
  415. package/dist/entries/audio.js.map +1 -0
  416. package/dist/entries/billing.cjs +13 -0
  417. package/dist/entries/billing.cjs.map +1 -0
  418. package/dist/entries/billing.d.cts +208 -0
  419. package/dist/entries/billing.d.ts +208 -0
  420. package/dist/entries/billing.js +4 -0
  421. package/dist/entries/billing.js.map +1 -0
  422. package/dist/entries/catalogs.cjs +13 -0
  423. package/dist/entries/catalogs.cjs.map +1 -0
  424. package/dist/entries/catalogs.d.cts +82 -0
  425. package/dist/entries/catalogs.d.ts +82 -0
  426. package/dist/entries/catalogs.js +4 -0
  427. package/dist/entries/catalogs.js.map +1 -0
  428. package/dist/entries/characters.cjs +45 -0
  429. package/dist/entries/characters.cjs.map +1 -0
  430. package/dist/entries/characters.d.cts +741 -0
  431. package/dist/entries/characters.d.ts +741 -0
  432. package/dist/entries/characters.js +4 -0
  433. package/dist/entries/characters.js.map +1 -0
  434. package/dist/entries/client.cjs +78 -0
  435. package/dist/entries/client.cjs.map +1 -0
  436. package/dist/entries/client.d.cts +147 -0
  437. package/dist/entries/client.d.ts +147 -0
  438. package/dist/entries/client.js +53 -0
  439. package/dist/entries/client.js.map +1 -0
  440. package/dist/entries/collections.cjs +13 -0
  441. package/dist/entries/collections.cjs.map +1 -0
  442. package/dist/entries/collections.d.cts +77 -0
  443. package/dist/entries/collections.d.ts +77 -0
  444. package/dist/entries/collections.js +4 -0
  445. package/dist/entries/collections.js.map +1 -0
  446. package/dist/entries/community.cjs +13 -0
  447. package/dist/entries/community.cjs.map +1 -0
  448. package/dist/entries/community.d.cts +87 -0
  449. package/dist/entries/community.d.ts +87 -0
  450. package/dist/entries/community.js +4 -0
  451. package/dist/entries/community.js.map +1 -0
  452. package/dist/entries/competitors.cjs +13 -0
  453. package/dist/entries/competitors.cjs.map +1 -0
  454. package/dist/entries/competitors.d.cts +96 -0
  455. package/dist/entries/competitors.d.ts +96 -0
  456. package/dist/entries/competitors.js +4 -0
  457. package/dist/entries/competitors.js.map +1 -0
  458. package/dist/entries/copilot.cjs +15 -0
  459. package/dist/entries/copilot.cjs.map +1 -0
  460. package/dist/entries/copilot.d.cts +296 -0
  461. package/dist/entries/copilot.d.ts +296 -0
  462. package/dist/entries/copilot.js +6 -0
  463. package/dist/entries/copilot.js.map +1 -0
  464. package/dist/entries/core.cjs +26 -0
  465. package/dist/entries/core.cjs.map +1 -0
  466. package/dist/entries/core.d.cts +3 -0
  467. package/dist/entries/core.d.ts +3 -0
  468. package/dist/entries/core.js +5 -0
  469. package/dist/entries/core.js.map +1 -0
  470. package/dist/entries/creatures.cjs +29 -0
  471. package/dist/entries/creatures.cjs.map +1 -0
  472. package/dist/entries/creatures.d.cts +594 -0
  473. package/dist/entries/creatures.d.ts +594 -0
  474. package/dist/entries/creatures.js +4 -0
  475. package/dist/entries/creatures.js.map +1 -0
  476. package/dist/entries/credits.cjs +13 -0
  477. package/dist/entries/credits.cjs.map +1 -0
  478. package/dist/entries/credits.d.cts +237 -0
  479. package/dist/entries/credits.d.ts +237 -0
  480. package/dist/entries/credits.js +4 -0
  481. package/dist/entries/credits.js.map +1 -0
  482. package/dist/entries/developer-apps.cjs +13 -0
  483. package/dist/entries/developer-apps.cjs.map +1 -0
  484. package/dist/entries/developer-apps.d.cts +3 -0
  485. package/dist/entries/developer-apps.d.ts +3 -0
  486. package/dist/entries/developer-apps.js +4 -0
  487. package/dist/entries/developer-apps.js.map +1 -0
  488. package/dist/entries/edit.cjs +34 -0
  489. package/dist/entries/edit.cjs.map +1 -0
  490. package/dist/entries/edit.d.cts +705 -0
  491. package/dist/entries/edit.d.ts +705 -0
  492. package/dist/entries/edit.js +5 -0
  493. package/dist/entries/edit.js.map +1 -0
  494. package/dist/entries/errors.cjs +93 -0
  495. package/dist/entries/errors.cjs.map +1 -0
  496. package/dist/entries/errors.d.cts +338 -0
  497. package/dist/entries/errors.d.ts +338 -0
  498. package/dist/entries/errors.js +4 -0
  499. package/dist/entries/errors.js.map +1 -0
  500. package/dist/entries/executions.cjs +21 -0
  501. package/dist/entries/executions.cjs.map +1 -0
  502. package/dist/entries/executions.d.cts +120 -0
  503. package/dist/entries/executions.d.ts +120 -0
  504. package/dist/entries/executions.js +4 -0
  505. package/dist/entries/executions.js.map +1 -0
  506. package/dist/entries/gallery.cjs +13 -0
  507. package/dist/entries/gallery.cjs.map +1 -0
  508. package/dist/entries/gallery.d.cts +85 -0
  509. package/dist/entries/gallery.d.ts +85 -0
  510. package/dist/entries/gallery.js +4 -0
  511. package/dist/entries/gallery.js.map +1 -0
  512. package/dist/entries/jobs.cjs +13 -0
  513. package/dist/entries/jobs.cjs.map +1 -0
  514. package/dist/entries/jobs.d.cts +252 -0
  515. package/dist/entries/jobs.d.ts +252 -0
  516. package/dist/entries/jobs.js +4 -0
  517. package/dist/entries/jobs.js.map +1 -0
  518. package/dist/entries/library.cjs +13 -0
  519. package/dist/entries/library.cjs.map +1 -0
  520. package/dist/entries/library.d.cts +109 -0
  521. package/dist/entries/library.d.ts +109 -0
  522. package/dist/entries/library.js +4 -0
  523. package/dist/entries/library.js.map +1 -0
  524. package/dist/entries/llm.cjs +13 -0
  525. package/dist/entries/llm.cjs.map +1 -0
  526. package/dist/entries/llm.d.cts +98 -0
  527. package/dist/entries/llm.d.ts +98 -0
  528. package/dist/entries/llm.js +4 -0
  529. package/dist/entries/llm.js.map +1 -0
  530. package/dist/entries/locations.cjs +25 -0
  531. package/dist/entries/locations.cjs.map +1 -0
  532. package/dist/entries/locations.d.cts +573 -0
  533. package/dist/entries/locations.d.ts +573 -0
  534. package/dist/entries/locations.js +4 -0
  535. package/dist/entries/locations.js.map +1 -0
  536. package/dist/entries/media.cjs +15 -0
  537. package/dist/entries/media.cjs.map +1 -0
  538. package/dist/entries/media.d.cts +548 -0
  539. package/dist/entries/media.d.ts +548 -0
  540. package/dist/entries/media.js +6 -0
  541. package/dist/entries/media.js.map +1 -0
  542. package/dist/entries/models.cjs +13 -0
  543. package/dist/entries/models.cjs.map +1 -0
  544. package/dist/entries/models.d.cts +92 -0
  545. package/dist/entries/models.d.ts +92 -0
  546. package/dist/entries/models.js +4 -0
  547. package/dist/entries/models.js.map +1 -0
  548. package/dist/entries/moodboards.cjs +21 -0
  549. package/dist/entries/moodboards.cjs.map +1 -0
  550. package/dist/entries/moodboards.d.cts +77 -0
  551. package/dist/entries/moodboards.d.ts +77 -0
  552. package/dist/entries/moodboards.js +4 -0
  553. package/dist/entries/moodboards.js.map +1 -0
  554. package/dist/entries/node-presets.cjs +13 -0
  555. package/dist/entries/node-presets.cjs.map +1 -0
  556. package/dist/entries/node-presets.d.cts +217 -0
  557. package/dist/entries/node-presets.d.ts +217 -0
  558. package/dist/entries/node-presets.js +4 -0
  559. package/dist/entries/node-presets.js.map +1 -0
  560. package/dist/entries/nodes.cjs +22 -0
  561. package/dist/entries/nodes.cjs.map +1 -0
  562. package/dist/entries/nodes.d.cts +18 -0
  563. package/dist/entries/nodes.d.ts +18 -0
  564. package/dist/entries/nodes.js +5 -0
  565. package/dist/entries/nodes.js.map +1 -0
  566. package/dist/entries/oauth.cjs +13 -0
  567. package/dist/entries/oauth.cjs.map +1 -0
  568. package/dist/entries/oauth.d.cts +69 -0
  569. package/dist/entries/oauth.d.ts +69 -0
  570. package/dist/entries/oauth.js +4 -0
  571. package/dist/entries/oauth.js.map +1 -0
  572. package/dist/entries/objects.cjs +29 -0
  573. package/dist/entries/objects.cjs.map +1 -0
  574. package/dist/entries/objects.d.cts +544 -0
  575. package/dist/entries/objects.d.ts +544 -0
  576. package/dist/entries/objects.js +4 -0
  577. package/dist/entries/objects.js.map +1 -0
  578. package/dist/entries/organizations.cjs +21 -0
  579. package/dist/entries/organizations.cjs.map +1 -0
  580. package/dist/entries/organizations.d.cts +164 -0
  581. package/dist/entries/organizations.d.ts +164 -0
  582. package/dist/entries/organizations.js +4 -0
  583. package/dist/entries/organizations.js.map +1 -0
  584. package/dist/entries/palettes.cjs +21 -0
  585. package/dist/entries/palettes.cjs.map +1 -0
  586. package/dist/entries/palettes.d.cts +69 -0
  587. package/dist/entries/palettes.d.ts +69 -0
  588. package/dist/entries/palettes.js +4 -0
  589. package/dist/entries/palettes.js.map +1 -0
  590. package/dist/entries/picker-catalogs.cjs +13 -0
  591. package/dist/entries/picker-catalogs.cjs.map +1 -0
  592. package/dist/entries/picker-catalogs.d.cts +148 -0
  593. package/dist/entries/picker-catalogs.d.ts +148 -0
  594. package/dist/entries/picker-catalogs.js +4 -0
  595. package/dist/entries/picker-catalogs.js.map +1 -0
  596. package/dist/entries/pipelines.cjs +13 -0
  597. package/dist/entries/pipelines.cjs.map +1 -0
  598. package/dist/entries/pipelines.d.cts +255 -0
  599. package/dist/entries/pipelines.d.ts +255 -0
  600. package/dist/entries/pipelines.js +4 -0
  601. package/dist/entries/pipelines.js.map +1 -0
  602. package/dist/entries/projects.cjs +13 -0
  603. package/dist/entries/projects.cjs.map +1 -0
  604. package/dist/entries/projects.d.cts +49 -0
  605. package/dist/entries/projects.d.ts +49 -0
  606. package/dist/entries/projects.js +4 -0
  607. package/dist/entries/projects.js.map +1 -0
  608. package/dist/entries/prompt-helper.cjs +13 -0
  609. package/dist/entries/prompt-helper.cjs.map +1 -0
  610. package/dist/entries/prompt-helper.d.cts +73 -0
  611. package/dist/entries/prompt-helper.d.ts +73 -0
  612. package/dist/entries/prompt-helper.js +4 -0
  613. package/dist/entries/prompt-helper.js.map +1 -0
  614. package/dist/entries/recast.cjs +17 -0
  615. package/dist/entries/recast.cjs.map +1 -0
  616. package/dist/entries/recast.d.cts +229 -0
  617. package/dist/entries/recast.d.ts +229 -0
  618. package/dist/entries/recast.js +4 -0
  619. package/dist/entries/recast.js.map +1 -0
  620. package/dist/entries/reduce.cjs +13 -0
  621. package/dist/entries/reduce.cjs.map +1 -0
  622. package/dist/entries/reduce.d.cts +56 -0
  623. package/dist/entries/reduce.d.ts +56 -0
  624. package/dist/entries/reduce.js +4 -0
  625. package/dist/entries/reduce.js.map +1 -0
  626. package/dist/entries/saved-posts.cjs +13 -0
  627. package/dist/entries/saved-posts.cjs.map +1 -0
  628. package/dist/entries/saved-posts.d.cts +33 -0
  629. package/dist/entries/saved-posts.d.ts +33 -0
  630. package/dist/entries/saved-posts.js +4 -0
  631. package/dist/entries/saved-posts.js.map +1 -0
  632. package/dist/entries/scene3d.cjs +17 -0
  633. package/dist/entries/scene3d.cjs.map +1 -0
  634. package/dist/entries/scene3d.d.cts +131 -0
  635. package/dist/entries/scene3d.d.ts +131 -0
  636. package/dist/entries/scene3d.js +4 -0
  637. package/dist/entries/scene3d.js.map +1 -0
  638. package/dist/entries/sessions.cjs +13 -0
  639. package/dist/entries/sessions.cjs.map +1 -0
  640. package/dist/entries/sessions.d.cts +122 -0
  641. package/dist/entries/sessions.d.ts +122 -0
  642. package/dist/entries/sessions.js +4 -0
  643. package/dist/entries/sessions.js.map +1 -0
  644. package/dist/entries/shots.cjs +13 -0
  645. package/dist/entries/shots.cjs.map +1 -0
  646. package/dist/entries/shots.d.cts +78 -0
  647. package/dist/entries/shots.d.ts +78 -0
  648. package/dist/entries/shots.js +4 -0
  649. package/dist/entries/shots.js.map +1 -0
  650. package/dist/entries/studio.cjs +22 -0
  651. package/dist/entries/studio.cjs.map +1 -0
  652. package/dist/entries/studio.d.cts +281 -0
  653. package/dist/entries/studio.d.ts +281 -0
  654. package/dist/entries/studio.js +5 -0
  655. package/dist/entries/studio.js.map +1 -0
  656. package/dist/entries/templates.cjs +13 -0
  657. package/dist/entries/templates.cjs.map +1 -0
  658. package/dist/entries/templates.d.cts +110 -0
  659. package/dist/entries/templates.d.ts +110 -0
  660. package/dist/entries/templates.js +4 -0
  661. package/dist/entries/templates.js.map +1 -0
  662. package/dist/entries/tutorials.cjs +13 -0
  663. package/dist/entries/tutorials.cjs.map +1 -0
  664. package/dist/entries/tutorials.d.cts +63 -0
  665. package/dist/entries/tutorials.d.ts +63 -0
  666. package/dist/entries/tutorials.js +4 -0
  667. package/dist/entries/tutorials.js.map +1 -0
  668. package/dist/entries/uploads.cjs +13 -0
  669. package/dist/entries/uploads.cjs.map +1 -0
  670. package/dist/entries/uploads.d.cts +44 -0
  671. package/dist/entries/uploads.d.ts +44 -0
  672. package/dist/entries/uploads.js +4 -0
  673. package/dist/entries/uploads.js.map +1 -0
  674. package/dist/entries/video-pro.cjs +13 -0
  675. package/dist/entries/video-pro.cjs.map +1 -0
  676. package/dist/entries/video-pro.d.cts +60 -0
  677. package/dist/entries/video-pro.d.ts +60 -0
  678. package/dist/entries/video-pro.js +4 -0
  679. package/dist/entries/video-pro.js.map +1 -0
  680. package/dist/entries/voices.cjs +13 -0
  681. package/dist/entries/voices.cjs.map +1 -0
  682. package/dist/entries/voices.d.cts +498 -0
  683. package/dist/entries/voices.d.ts +498 -0
  684. package/dist/entries/voices.js +4 -0
  685. package/dist/entries/voices.js.map +1 -0
  686. package/dist/entries/webhooks.cjs +21 -0
  687. package/dist/entries/webhooks.cjs.map +1 -0
  688. package/dist/entries/webhooks.d.cts +64 -0
  689. package/dist/entries/webhooks.d.ts +64 -0
  690. package/dist/entries/webhooks.js +4 -0
  691. package/dist/entries/webhooks.js.map +1 -0
  692. package/dist/entries/workflows.cjs +13 -0
  693. package/dist/entries/workflows.cjs.map +1 -0
  694. package/dist/entries/workflows.d.cts +393 -0
  695. package/dist/entries/workflows.d.ts +393 -0
  696. package/dist/entries/workflows.js +4 -0
  697. package/dist/entries/workflows.js.map +1 -0
  698. package/dist/entries/workspaces.cjs +13 -0
  699. package/dist/entries/workspaces.cjs.map +1 -0
  700. package/dist/entries/workspaces.d.cts +124 -0
  701. package/dist/entries/workspaces.d.ts +124 -0
  702. package/dist/entries/workspaces.js +4 -0
  703. package/dist/entries/workspaces.js.map +1 -0
  704. package/dist/index.cjs +501 -5192
  705. package/dist/index.cjs.map +1 -1
  706. package/dist/index.d.cts +67 -10895
  707. package/dist/index.d.ts +67 -10895
  708. package/dist/index.js +100 -5074
  709. package/dist/index.js.map +1 -1
  710. package/dist/nodes-C-wrO6Sg.d.ts +1364 -0
  711. package/dist/nodes-J8ByUN8z.d.cts +1364 -0
  712. package/dist/studio-productions-DUHvdSvk.d.cts +572 -0
  713. package/dist/studio-productions-vbCNSbtf.d.ts +572 -0
  714. package/dist/webhooks-BJawEIz8.d.ts +198 -0
  715. package/dist/webhooks-Dn_DtNTD.d.cts +198 -0
  716. package/package.json +253 -3
@@ -0,0 +1,123 @@
1
+ 'use strict';
2
+
3
+ // src/resources/community.ts
4
+ var CommunityResource = class {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ client;
9
+ /**
10
+ * `GET /v1/community/browse` → a page of public listings plus a `nextCursor`.
11
+ * Pass the returned `nextCursor` back as `cursor` to fetch the next page.
12
+ */
13
+ browse(params = {}) {
14
+ const qs = new URLSearchParams();
15
+ if (params.entityType) qs.set("entityType", params.entityType);
16
+ if (params.q) qs.set("q", params.q);
17
+ if (params.category) qs.set("category", params.category);
18
+ if (params.sort) qs.set("sort", params.sort);
19
+ if (params.cursor) qs.set("cursor", params.cursor);
20
+ if (params.limit !== void 0) qs.set("limit", String(params.limit));
21
+ const query = qs.toString();
22
+ return this.client.request(
23
+ "GET",
24
+ `/v1/community/browse${query ? `?${query}` : ""}`
25
+ );
26
+ }
27
+ /** `GET /v1/community/detail/:slug` → a single listing by its slug. */
28
+ get(slug) {
29
+ return this.client.request(
30
+ "GET",
31
+ `/v1/community/detail/${encodeURIComponent(slug)}`
32
+ );
33
+ }
34
+ /**
35
+ * `GET /v1/community/detail/:slug/full` → the full read-only detail (card
36
+ * identity + the stored public snapshot). Like {@link get}, but includes the
37
+ * snapshot asset/voice/text blob needed to render the full cross-user view.
38
+ */
39
+ getFull(slug) {
40
+ return this.client.request(
41
+ "GET",
42
+ `/v1/community/detail/${encodeURIComponent(slug)}/full`
43
+ );
44
+ }
45
+ /** `GET /v1/community/favorites` → the listings you've favorited. */
46
+ favorites() {
47
+ return this.client.request("GET", "/v1/community/favorites");
48
+ }
49
+ /**
50
+ * `POST /v1/community/listings/:id/clone` → copy a listing into your library.
51
+ * Returns the new asset's `entityType` and `id`. Requires the `assets:write`
52
+ * scope when called with an OAuth app token.
53
+ */
54
+ clone(id, entityType) {
55
+ return this.client.request(
56
+ "POST",
57
+ `/v1/community/listings/${encodeURIComponent(id)}/clone`,
58
+ { body: { entityType } }
59
+ );
60
+ }
61
+ /**
62
+ * `POST /v1/community/listings/:id/favorite` → toggle a favorite. Returns the
63
+ * resulting `favorited` state (`true` after adding, `false` after removing).
64
+ */
65
+ favorite(id) {
66
+ return this.client.request(
67
+ "POST",
68
+ `/v1/community/listings/${encodeURIComponent(id)}/favorite`
69
+ );
70
+ }
71
+ /**
72
+ * `POST /v1/community/listings/:id/report` → flag a listing for moderation.
73
+ * `reason` must be one of {@link CommunityReportReason}.
74
+ */
75
+ report(id, reason) {
76
+ return this.client.request(
77
+ "POST",
78
+ `/v1/community/listings/${encodeURIComponent(id)}/report`,
79
+ { body: { reason } }
80
+ );
81
+ }
82
+ /**
83
+ * `POST /v1/admin/community/:entityType/:id/publish` → share one of YOUR
84
+ * entities to the community, returning the new listing's `slug` + `id`.
85
+ *
86
+ * **Requires an admin token** (the route is `requireAdmin`) AND the caller
87
+ * must own the source entity. Personal/OAuth tokens without admin role get a
88
+ * 401. For `character` listings, `params.likenessAttestation` must be `true`.
89
+ */
90
+ publish(entityType, entityId, params) {
91
+ return this.client.request(
92
+ "POST",
93
+ `/v1/admin/community/${encodeURIComponent(entityType)}/${encodeURIComponent(entityId)}/publish`,
94
+ { body: params }
95
+ );
96
+ }
97
+ /**
98
+ * `DELETE /v1/admin/community/listings/:id` → unshare (deactivate) a listing
99
+ * you published. **Requires an admin token** (the route is `requireAdmin`).
100
+ */
101
+ unpublish(listingId) {
102
+ return this.client.request(
103
+ "DELETE",
104
+ `/v1/admin/community/listings/${encodeURIComponent(listingId)}`
105
+ );
106
+ }
107
+ /**
108
+ * `GET /v1/admin/community/by-source/:entityType/:sourceId` → look up YOUR
109
+ * existing listing (if any) for a source entity. Returns `{ data: null }`
110
+ * when the entity hasn't been shared. **Requires an admin token** (the route
111
+ * is `requireAdmin`); only returns listings created by the caller.
112
+ */
113
+ sharedListing(entityType, sourceId) {
114
+ return this.client.request(
115
+ "GET",
116
+ `/v1/admin/community/by-source/${encodeURIComponent(entityType)}/${encodeURIComponent(sourceId)}`
117
+ );
118
+ }
119
+ };
120
+
121
+ exports.CommunityResource = CommunityResource;
122
+ //# sourceMappingURL=chunk-43FVH6LJ.cjs.map
123
+ //# sourceMappingURL=chunk-43FVH6LJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resources/community.ts"],"names":[],"mappings":";;;AAmBO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAAoB,MAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAA2B;AAAA,EAA3B,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpB,MAAA,CAAO,MAAA,GAAgC,EAAC,EAAmC;AACzE,IAAA,MAAM,EAAA,GAAK,IAAI,eAAA,EAAgB;AAC/B,IAAA,IAAI,OAAO,UAAA,EAAY,EAAA,CAAG,GAAA,CAAI,YAAA,EAAc,OAAO,UAAU,CAAA;AAC7D,IAAA,IAAI,OAAO,CAAA,EAAG,EAAA,CAAG,GAAA,CAAI,GAAA,EAAK,OAAO,CAAC,CAAA;AAClC,IAAA,IAAI,OAAO,QAAA,EAAU,EAAA,CAAG,GAAA,CAAI,UAAA,EAAY,OAAO,QAAQ,CAAA;AACvD,IAAA,IAAI,OAAO,IAAA,EAAM,EAAA,CAAG,GAAA,CAAI,MAAA,EAAQ,OAAO,IAAI,CAAA;AAC3C,IAAA,IAAI,OAAO,MAAA,EAAQ,EAAA,CAAG,GAAA,CAAI,QAAA,EAAU,OAAO,MAAM,CAAA;AACjD,IAAA,IAAI,MAAA,CAAO,UAAU,MAAA,EAAW,EAAA,CAAG,IAAI,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,KAAK,CAAC,CAAA;AACpE,IAAA,MAAM,KAAA,GAAQ,GAAG,QAAA,EAAS;AAC1B,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,MACjB,KAAA;AAAA,MACA,CAAA,oBAAA,EAAuB,KAAA,GAAQ,CAAA,CAAA,EAAI,KAAK,KAAK,EAAE,CAAA;AAAA,KACjD;AAAA,EACF;AAAA;AAAA,EAGA,IAAI,IAAA,EAAgD;AAClD,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,MACjB,KAAA;AAAA,MACA,CAAA,qBAAA,EAAwB,kBAAA,CAAmB,IAAI,CAAC,CAAA;AAAA,KAClD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,IAAA,EAAsD;AAC5D,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,MACjB,KAAA;AAAA,MACA,CAAA,qBAAA,EAAwB,kBAAA,CAAmB,IAAI,CAAC,CAAA,KAAA;AAAA,KAClD;AAAA,EACF;AAAA;AAAA,EAGA,SAAA,GAAgD;AAC9C,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,KAAA,EAAO,yBAAyB,CAAA;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAA,CAAM,IAAY,UAAA,EAA8D;AAC9E,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,MACjB,MAAA;AAAA,MACA,CAAA,uBAAA,EAA0B,kBAAA,CAAmB,EAAE,CAAC,CAAA,MAAA,CAAA;AAAA,MAChD,EAAE,IAAA,EAAM,EAAE,UAAA,EAAW;AAAE,KACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,EAAA,EAA4C;AACnD,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,MACjB,MAAA;AAAA,MACA,CAAA,uBAAA,EAA0B,kBAAA,CAAmB,EAAE,CAAC,CAAA,SAAA;AAAA,KAClD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAA,CAAO,IAAY,MAAA,EAA6D;AAC9E,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,MACjB,MAAA;AAAA,MACA,CAAA,uBAAA,EAA0B,kBAAA,CAAmB,EAAE,CAAC,CAAA,OAAA,CAAA;AAAA,MAChD,EAAE,IAAA,EAAM,EAAE,MAAA,EAAO;AAAE,KACrB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAA,CACE,UAAA,EACA,QAAA,EACA,MAAA,EAC+B;AAC/B,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,MACjB,MAAA;AAAA,MACA,uBAAuB,kBAAA,CAAmB,UAAU,CAAC,CAAA,CAAA,EAAI,kBAAA,CAAmB,QAAQ,CAAC,CAAA,QAAA,CAAA;AAAA,MACrF,EAAE,MAAM,MAAA;AAAO,KACjB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,SAAA,EAA6C;AACrD,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,MACjB,QAAA;AAAA,MACA,CAAA,6BAAA,EAAgC,kBAAA,CAAmB,SAAS,CAAC,CAAA;AAAA,KAC/D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,aAAA,CACE,YACA,QAAA,EACyC;AACzC,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,MACjB,KAAA;AAAA,MACA,iCAAiC,kBAAA,CAAmB,UAAU,CAAC,CAAA,CAAA,EAAI,kBAAA,CAAmB,QAAQ,CAAC,CAAA;AAAA,KACjG;AAAA,EACF;AACF","file":"chunk-43FVH6LJ.cjs","sourcesContent":["import type { CommunityEntityType, CommunitySort, CommunityReportReason, CommunityCard, CommunityFullDetail, BrowseCommunityParams, BrowseCommunityResult, CloneListingResult, FavoriteListingResult, ReportListingResult, PublishListingParams, PublishListingResult, SharedListing } from \"@nodaro/shared/apps\"\nexport type { CommunityEntityType, CommunitySort, CommunityReportReason, CommunityCard, CommunityFullDetail, BrowseCommunityParams, BrowseCommunityResult, CloneListingResult, FavoriteListingResult, ReportListingResult, PublishListingParams, PublishListingResult, SharedListing } from \"@nodaro/shared/apps\"\nimport type { NodaroClientCore } from \"../core.js\"\n\n/**\n * The community-listing types are the single source of truth in\n * `@nodaro/shared` (re-used by the backend, frontend, and CLI). Re-export them\n * here so SDK consumers don't have to add `@nodaro/shared` as a second\n * dependency just to typecheck `browse`/`clone`/`favorite`/`report`.\n */\n\n/**\n * Community — browse, favorite, clone, and report shared characters,\n * locations, and objects.\n *\n * Publishing is intentionally NOT exposed here: it is admin-only via the\n * editor, and the publish route rejects personal access tokens (which is what\n * the SDK uses).\n */\nexport class CommunityResource {\n constructor(private client: NodaroClientCore) {}\n\n /**\n * `GET /v1/community/browse` → a page of public listings plus a `nextCursor`.\n * Pass the returned `nextCursor` back as `cursor` to fetch the next page.\n */\n browse(params: BrowseCommunityParams = {}): Promise<BrowseCommunityResult> {\n const qs = new URLSearchParams()\n if (params.entityType) qs.set(\"entityType\", params.entityType)\n if (params.q) qs.set(\"q\", params.q)\n if (params.category) qs.set(\"category\", params.category)\n if (params.sort) qs.set(\"sort\", params.sort)\n if (params.cursor) qs.set(\"cursor\", params.cursor)\n if (params.limit !== undefined) qs.set(\"limit\", String(params.limit))\n const query = qs.toString()\n return this.client.request(\n \"GET\",\n `/v1/community/browse${query ? `?${query}` : \"\"}`,\n )\n }\n\n /** `GET /v1/community/detail/:slug` → a single listing by its slug. */\n get(slug: string): Promise<{ data: CommunityCard }> {\n return this.client.request(\n \"GET\",\n `/v1/community/detail/${encodeURIComponent(slug)}`,\n )\n }\n\n /**\n * `GET /v1/community/detail/:slug/full` → the full read-only detail (card\n * identity + the stored public snapshot). Like {@link get}, but includes the\n * snapshot asset/voice/text blob needed to render the full cross-user view.\n */\n getFull(slug: string): Promise<{ data: CommunityFullDetail }> {\n return this.client.request(\n \"GET\",\n `/v1/community/detail/${encodeURIComponent(slug)}/full`,\n )\n }\n\n /** `GET /v1/community/favorites` → the listings you've favorited. */\n favorites(): Promise<{ data: CommunityCard[] }> {\n return this.client.request(\"GET\", \"/v1/community/favorites\")\n }\n\n /**\n * `POST /v1/community/listings/:id/clone` → copy a listing into your library.\n * Returns the new asset's `entityType` and `id`. Requires the `assets:write`\n * scope when called with an OAuth app token.\n */\n clone(id: string, entityType: CommunityEntityType): Promise<CloneListingResult> {\n return this.client.request(\n \"POST\",\n `/v1/community/listings/${encodeURIComponent(id)}/clone`,\n { body: { entityType } },\n )\n }\n\n /**\n * `POST /v1/community/listings/:id/favorite` → toggle a favorite. Returns the\n * resulting `favorited` state (`true` after adding, `false` after removing).\n */\n favorite(id: string): Promise<FavoriteListingResult> {\n return this.client.request(\n \"POST\",\n `/v1/community/listings/${encodeURIComponent(id)}/favorite`,\n )\n }\n\n /**\n * `POST /v1/community/listings/:id/report` → flag a listing for moderation.\n * `reason` must be one of {@link CommunityReportReason}.\n */\n report(id: string, reason: CommunityReportReason): Promise<ReportListingResult> {\n return this.client.request(\n \"POST\",\n `/v1/community/listings/${encodeURIComponent(id)}/report`,\n { body: { reason } },\n )\n }\n\n /**\n * `POST /v1/admin/community/:entityType/:id/publish` → share one of YOUR\n * entities to the community, returning the new listing's `slug` + `id`.\n *\n * **Requires an admin token** (the route is `requireAdmin`) AND the caller\n * must own the source entity. Personal/OAuth tokens without admin role get a\n * 401. For `character` listings, `params.likenessAttestation` must be `true`.\n */\n publish(\n entityType: CommunityEntityType,\n entityId: string,\n params: PublishListingParams,\n ): Promise<PublishListingResult> {\n return this.client.request(\n \"POST\",\n `/v1/admin/community/${encodeURIComponent(entityType)}/${encodeURIComponent(entityId)}/publish`,\n { body: params },\n )\n }\n\n /**\n * `DELETE /v1/admin/community/listings/:id` → unshare (deactivate) a listing\n * you published. **Requires an admin token** (the route is `requireAdmin`).\n */\n unpublish(listingId: string): Promise<{ ok: boolean }> {\n return this.client.request(\n \"DELETE\",\n `/v1/admin/community/listings/${encodeURIComponent(listingId)}`,\n )\n }\n\n /**\n * `GET /v1/admin/community/by-source/:entityType/:sourceId` → look up YOUR\n * existing listing (if any) for a source entity. Returns `{ data: null }`\n * when the entity hasn't been shared. **Requires an admin token** (the route\n * is `requireAdmin`); only returns listings created by the caller.\n */\n sharedListing(\n entityType: CommunityEntityType,\n sourceId: string,\n ): Promise<{ data: SharedListing | null }> {\n return this.client.request(\n \"GET\",\n `/v1/admin/community/by-source/${encodeURIComponent(entityType)}/${encodeURIComponent(sourceId)}`,\n )\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=chunk-43NO4SGC.cjs.map
4
+ //# sourceMappingURL=chunk-43NO4SGC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-43NO4SGC.cjs"}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=chunk-45CK55BH.cjs.map
4
+ //# sourceMappingURL=chunk-45CK55BH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-45CK55BH.cjs"}
@@ -0,0 +1,104 @@
1
+ // src/resources/credits.ts
2
+ var MODEL_COSTS_LIMIT = 50;
3
+ var CreditsResource = class {
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ client;
8
+ /**
9
+ * `GET /v1/user/credits` → the authenticated user's credit balance and tier
10
+ * info. Throws `UnauthorizedError` (401) when signed out, and the SDK's
11
+ * other typed errors on the usual statuses.
12
+ */
13
+ async balance() {
14
+ const res = await this.client.request(
15
+ "GET",
16
+ "/v1/user/credits"
17
+ );
18
+ return res.data;
19
+ }
20
+ /**
21
+ * `GET /v1/credits/transactions` → one page of the caller's credit
22
+ * transactions, newest first, with `nextCursor` for the next page (`null`
23
+ * at the end). Read `credits_charged` for what each run cost — it can be
24
+ * below the hold (`credits_reserved`) and is `null` while the hold is open.
25
+ * Cloud-only route: a self-hosted instance answers 404.
26
+ */
27
+ transactions(options = {}) {
28
+ return this.client.request("GET", "/v1/credits/transactions", {
29
+ query: { limit: options.limit, cursor: options.cursor }
30
+ });
31
+ }
32
+ /**
33
+ * `POST /v1/credits/model-costs` → per-identifier credit cost, for editor
34
+ * cost previews. Capped at the first {@link MODEL_COSTS_LIMIT} identifiers
35
+ * (the route's request limit). Preserves the `{ data, missing, errors }`
36
+ * fault-isolation shape verbatim (see {@link ModelCostsResult}).
37
+ */
38
+ modelCosts(ids) {
39
+ return this.client.request("POST", "/v1/credits/model-costs", {
40
+ body: { models: ids.slice(0, MODEL_COSTS_LIMIT) }
41
+ });
42
+ }
43
+ /**
44
+ * `POST /v1/credits/claim-signup-grant` → claims the account's free signup
45
+ * grant, once, with the browser signals of the page making the claim.
46
+ *
47
+ * Call it once per page load as soon as the session is known, and never
48
+ * wait on it for rendering: it is idempotent (a decided account answers
49
+ * with its state and `granted: false`), it costs the user nothing when it
50
+ * fails (the next load asks again), and the signals are what make the
51
+ * claim worth sending — collect them with `collectSignupKeys()` from
52
+ * `@nodaro/sdk/signup-signals` and pass whatever came back, `{}` included.
53
+ * Cloud-only route: a self-hosted instance answers 404.
54
+ */
55
+ claimSignupGrant(keys = {}) {
56
+ return this.client.request("POST", "/v1/credits/claim-signup-grant", {
57
+ body: keys
58
+ });
59
+ }
60
+ /**
61
+ * `POST /v1/credits/welcome-offer/claim` → the user's "yes" to the welcome
62
+ * offer, as ONE server action: the marketing-email consent is recorded,
63
+ * then the free signup grant is claimed with that consent. The abuse gate
64
+ * still decides — consent is necessary, not sufficient — so read `grant`:
65
+ * `"granted"` (the grant has landed: this call topped the subscription credits up to `credits` — not added on top — or it had landed before), `"withheld"` (refused), `"revoked"` (taken back earlier; nothing moves), `"unclaimed"` (nothing moved — treat as a failure and let the user retry).
66
+ * Pass the browser signals from `collectSignupKeys()` and your app's slug.
67
+ *
68
+ * **Browser session only.** Usable from a first-party web app signed in
69
+ * with a Supabase session (the consent is a person's choice in a browser);
70
+ * an API key or OAuth app token is refused with 403. 409
71
+ * `welcome_offer_disabled` while the deployment has the offer off — show
72
+ * it only when `balance().welcomeOffer` is present. Cloud-only route: a
73
+ * self-hosted instance answers 404.
74
+ */
75
+ claimWelcomeOffer(input = {}) {
76
+ return this.client.request("POST", "/v1/credits/welcome-offer/claim", {
77
+ body: input
78
+ });
79
+ }
80
+ /**
81
+ * `POST /v1/credits/welcome-offer/seen` → records that the one-time welcome
82
+ * popup was shown, so `balance().welcomeOffer.popupSeen` turns true on every
83
+ * app. Idempotent (the first stamp wins); a failed call only means the popup
84
+ * may show once more, so callers usually ignore errors.
85
+ *
86
+ * **Browser session only**, like {@link claimWelcomeOffer}: 403 for an API
87
+ * key or OAuth app token, 409 `welcome_offer_disabled` while the offer is
88
+ * off, 404 on a self-hosted instance.
89
+ */
90
+ markWelcomeOfferSeen() {
91
+ return this.client.request("POST", "/v1/credits/welcome-offer/seen");
92
+ }
93
+ // NOTE: no `estimate(...)` helper. The backend exposes
94
+ // `POST /v1/credits/estimate-workflow` (body `{ nodes }` → `{ data: {
95
+ // totalCredits, nodeCount } }`), but no consumer has a settled shape for it
96
+ // yet (studio pre-checks `balance >= Σ modelCosts` client-side rather than
97
+ // calling an estimate endpoint). Adding it now would be inventing an API
98
+ // surface ahead of a real caller, so it's deliberately omitted — add it when
99
+ // a consumer needs it, shaped to that need.
100
+ };
101
+
102
+ export { CreditsResource };
103
+ //# sourceMappingURL=chunk-4CXB7RA6.js.map
104
+ //# sourceMappingURL=chunk-4CXB7RA6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resources/credits.ts"],"names":[],"mappings":";AAmLA,IAAM,iBAAA,GAAoB,EAAA;AAEnB,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAAoB,MAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAA2B;AAAA,EAA3B,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpB,MAAM,OAAA,GAAgC;AACpC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA;AAAA,MAC5B,KAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAA,CAAa,OAAA,GAAqC,EAAC,EAAoC;AACrF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAgC,KAAA,EAAO,0BAAA,EAA4B;AAAA,MACpF,OAAO,EAAE,KAAA,EAAO,QAAQ,KAAA,EAAO,MAAA,EAAQ,QAAQ,MAAA;AAAO,KACvD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WAAW,GAAA,EAA0C;AACnD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAA0B,MAAA,EAAQ,yBAAA,EAA2B;AAAA,MAC9E,MAAM,EAAE,MAAA,EAAQ,IAAI,KAAA,CAAM,CAAA,EAAG,iBAAiB,CAAA;AAAE,KACjD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,gBAAA,CAAiB,IAAA,GAAmB,EAAC,EAAoC;AACvE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAgC,MAAA,EAAQ,gCAAA,EAAkC;AAAA,MAC3F,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,iBAAA,CAAkB,KAAA,GAAgC,EAAC,EAAqC;AACtF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAiC,MAAA,EAAQ,iCAAA,EAAmC;AAAA,MAC7F,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,oBAAA,GAAwD;AACtD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAgC,MAAA,EAAQ,gCAAgC,CAAA;AAAA,EAC7F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASF","file":"chunk-4CXB7RA6.js","sourcesContent":["import type { NodaroClientCore } from \"../core.js\"\n\n/**\n * Authenticated user's credit balance — the shape of `GET /v1/user/credits`'s\n * `data` field. Mirrors the canonical `UserBalance` from the backend billing\n * module (`backend/src/ee/billing/credits.ts`), the source of truth: keep this\n * in sync if that interface changes.\n */\nexport interface UserBalance {\n total: number\n subscription: number\n topup: number\n dailySpent: number\n dailyLimit: number | null\n monthlyAllocation: number\n /** Stored billing tier. Display should prefer `effectiveTier`. */\n tier: string\n /** Derived entitlement tier: \"payg\" when stored-free with purchased credits. */\n effectiveTier: string\n features: Record<string, unknown>\n periodEnd: string | null\n /** Credits earned for app usage (free tier only — earned by running flows). */\n appCreditsAllowance: number\n /** Present when a deployment uses an external shared wallet. Raw credits;\n * null means unavailable. Do not substitute the personal `total` balance. */\n externalWallet?: { available: number | null }\n /**\n * Where the account's free signup grant stands. `\"withheld\"` means the\n * account works but the grant did not land — show the activation path.\n * Absent where the deployment has no signup grant.\n */\n freeGrantState?: FreeGrantState\n /**\n * Present only with `freeGrantState: \"withheld\"`, when the claim showed no\n * browser signals at all: the app may say \"free credits need a regular\n * browser — reload\", because a reload in one judges the account again.\n */\n freeGrantNotice?: \"browser_unmeasured\"\n /**\n * The welcome-credits opt-in. PRESENT only while the deployment has the\n * offer switched on — absent means \"no popup, no banner, no block\".\n */\n welcomeOffer?: WelcomeOfferState\n}\n\n/** Where an account's free signup grant stands. */\nexport type FreeGrantState = \"unclaimed\" | \"granted\" | \"withheld\" | \"revoked\"\n\n/** `UserBalance.welcomeOffer` — what an app needs to show the welcome offer. */\nexport interface WelcomeOfferState {\n /** The one-time popup was already shown (see `markWelcomeOfferSeen`). */\n popupSeen: boolean\n /**\n * The account already has its credits (granted elsewhere) but still owes\n * the email consent: the web apps block creation until it is given — the\n * claim records it.\n */\n consentPending: boolean\n /** The credits a claim grants. Name this figure in the offer; never hard-code it. */\n credits: number\n}\n\n/** What `claimWelcomeOffer` sends: the browser signals plus the app answering. */\nexport interface WelcomeOfferClaimInput extends SignupKeys {\n /**\n * The answering app's slug (lowercase letters, digits and `-`, up to 40\n * characters), recorded with the consent. A value outside that grammar is\n * stored as absent, never refused.\n */\n sourceApp?: string\n /**\n * The interface language the user answered in — the id of a language Nodaro\n * ships, such as `\"en\"`, `\"ja\"` or `\"pt-BR\"`. Matched exactly and\n * case-sensitively: `\"en-US\"` or `\"pt-br\"` is stored as absent, never refused.\n * Recorded with the consent as the language of the LATEST consent: a later\n * \"yes\" in another language replaces it.\n */\n locale?: string\n}\n\n/** The answer of `POST /v1/credits/welcome-offer/claim`. */\nexport interface WelcomeOfferClaimResult {\n /** The email consent is recorded. */\n consent: \"granted\"\n /** Where the free grant stands after the claim — `\"withheld\"` when the abuse gate refused it. */\n grant: FreeGrantState\n /** The grant's figure. A grant tops the subscription credits UP TO it (it is not added on top), so a claim that lands it leaves the subscription credits at no less than this. */\n credits: number\n}\n\n/** The answer of `POST /v1/credits/welcome-offer/seen`. */\nexport interface WelcomeOfferSeenResult {\n ok: true\n}\n\n/**\n * Result of `POST /v1/credits/model-costs` — a batch cost lookup for editor\n * cost previews. `data` maps each priced identifier → its credit cost.\n *\n * Per-model fault isolation (the route runs the lookups under\n * `Promise.allSettled`): identifiers with no pricing row are reported in\n * `missing` (undisplayable until an operator seeds a price) and lookup\n * failures in `errors`, instead of failing the whole batch. Callers typically\n * render `'—'` for any identifier that lands in `missing`. The hard-fail\n * policy still triggers at reservation time when the user actually runs the\n * node — this preview lookup is intentionally lenient.\n */\nexport interface ModelCostsResult {\n data: Record<string, number>\n missing: string[]\n errors: string[]\n}\n\n/**\n * The two browser signals a claim reports — SHA-256 hex digests computed by\n * `@nodaro/sdk/signup-signals` (`collectSignupKeys`). Either may be absent:\n * a browser that cannot be measured still claims, and the server treats the\n * absence as what it is. Any other value is stored as absent server-side.\n */\nexport interface SignupKeys {\n browserKey?: string\n deviceKey?: string\n}\n\n/** The answer of `POST /v1/credits/claim-signup-grant`. */\nexport interface SignupGrantClaimResult {\n /** Where the account's free grant stands after this call. */\n state: FreeGrantState\n /** True only when THIS call moved the credits — a repeat is `false` with the same state. */\n granted: boolean\n}\n\n/**\n * One row of `GET /v1/credits/transactions` — a run's reservation and how it\n * settled.\n *\n * Which amount to read: a run first HOLDS credits and is then settled — charged\n * all or part of the hold, the rest returned. `credits_charged` is what the run\n * cost (`null` while the hold is still open, `0` once refunded); sum it for\n * spend. `credits_reserved` is the hold, which never changes. `credits_used`\n * is the same hold under its original name, kept for existing integrations.\n */\nexport interface CreditTransaction {\n id: string\n /** ISO-8601. Also the paging cursor: pass the last row's value as `cursor`. */\n created_at: string\n /** Settled charge; `null` while `status` is `\"reserved\"`, `0` when refunded. */\n credits_charged: number | null\n /** The hold taken when the run was accepted. */\n credits_reserved: number | null\n /** The hold, under its original name. Prefer `credits_charged`. */\n credits_used: number | null\n /** The model or operation the credits were for. */\n action: string | null\n provider: string | null\n /** Reservation lifecycle: `\"reserved\"`, `\"committed\"` or `\"refunded\"`. */\n status: string | null\n /** The caller's own billing details for the run (model, which pool paid, …). */\n metadata: Record<string, unknown>\n /** `\"workspace\"` when a class or team budget paid, not your balance. */\n payer: \"user\" | \"workspace\"\n workspaceId: string | null\n}\n\n/** A page of {@link CreditTransaction}s, newest first. */\nexport interface CreditTransactionsPage {\n data: CreditTransaction[]\n /** Pass as `cursor` for the next page; `null` when there are no more rows. */\n nextCursor: string | null\n}\n\nexport interface CreditTransactionsOptions {\n /** Rows per page, 1–50 (server default 20). */\n limit?: number\n /** The `nextCursor` of the previous page. */\n cursor?: string\n}\n\n/** Max identifiers per `model-costs` batch — the route caps the request at 50. */\nconst MODEL_COSTS_LIMIT = 50\n\nexport class CreditsResource {\n constructor(private client: NodaroClientCore) {}\n\n /**\n * `GET /v1/user/credits` → the authenticated user's credit balance and tier\n * info. Throws `UnauthorizedError` (401) when signed out, and the SDK's\n * other typed errors on the usual statuses.\n */\n async balance(): Promise<UserBalance> {\n const res = await this.client.request<{ data: UserBalance }>(\n \"GET\",\n \"/v1/user/credits\",\n )\n return res.data\n }\n\n /**\n * `GET /v1/credits/transactions` → one page of the caller's credit\n * transactions, newest first, with `nextCursor` for the next page (`null`\n * at the end). Read `credits_charged` for what each run cost — it can be\n * below the hold (`credits_reserved`) and is `null` while the hold is open.\n * Cloud-only route: a self-hosted instance answers 404.\n */\n transactions(options: CreditTransactionsOptions = {}): Promise<CreditTransactionsPage> {\n return this.client.request<CreditTransactionsPage>(\"GET\", \"/v1/credits/transactions\", {\n query: { limit: options.limit, cursor: options.cursor },\n })\n }\n\n /**\n * `POST /v1/credits/model-costs` → per-identifier credit cost, for editor\n * cost previews. Capped at the first {@link MODEL_COSTS_LIMIT} identifiers\n * (the route's request limit). Preserves the `{ data, missing, errors }`\n * fault-isolation shape verbatim (see {@link ModelCostsResult}).\n */\n modelCosts(ids: string[]): Promise<ModelCostsResult> {\n return this.client.request<ModelCostsResult>(\"POST\", \"/v1/credits/model-costs\", {\n body: { models: ids.slice(0, MODEL_COSTS_LIMIT) },\n })\n }\n\n /**\n * `POST /v1/credits/claim-signup-grant` → claims the account's free signup\n * grant, once, with the browser signals of the page making the claim.\n *\n * Call it once per page load as soon as the session is known, and never\n * wait on it for rendering: it is idempotent (a decided account answers\n * with its state and `granted: false`), it costs the user nothing when it\n * fails (the next load asks again), and the signals are what make the\n * claim worth sending — collect them with `collectSignupKeys()` from\n * `@nodaro/sdk/signup-signals` and pass whatever came back, `{}` included.\n * Cloud-only route: a self-hosted instance answers 404.\n */\n claimSignupGrant(keys: SignupKeys = {}): Promise<SignupGrantClaimResult> {\n return this.client.request<SignupGrantClaimResult>(\"POST\", \"/v1/credits/claim-signup-grant\", {\n body: keys,\n })\n }\n\n /**\n * `POST /v1/credits/welcome-offer/claim` → the user's \"yes\" to the welcome\n * offer, as ONE server action: the marketing-email consent is recorded,\n * then the free signup grant is claimed with that consent. The abuse gate\n * still decides — consent is necessary, not sufficient — so read `grant`:\n * `\"granted\"` (the grant has landed: this call topped the subscription credits up to `credits` — not added on top — or it had landed before), `\"withheld\"` (refused), `\"revoked\"` (taken back earlier; nothing moves), `\"unclaimed\"` (nothing moved — treat as a failure and let the user retry).\n * Pass the browser signals from `collectSignupKeys()` and your app's slug.\n *\n * **Browser session only.** Usable from a first-party web app signed in\n * with a Supabase session (the consent is a person's choice in a browser);\n * an API key or OAuth app token is refused with 403. 409\n * `welcome_offer_disabled` while the deployment has the offer off — show\n * it only when `balance().welcomeOffer` is present. Cloud-only route: a\n * self-hosted instance answers 404.\n */\n claimWelcomeOffer(input: WelcomeOfferClaimInput = {}): Promise<WelcomeOfferClaimResult> {\n return this.client.request<WelcomeOfferClaimResult>(\"POST\", \"/v1/credits/welcome-offer/claim\", {\n body: input,\n })\n }\n\n /**\n * `POST /v1/credits/welcome-offer/seen` → records that the one-time welcome\n * popup was shown, so `balance().welcomeOffer.popupSeen` turns true on every\n * app. Idempotent (the first stamp wins); a failed call only means the popup\n * may show once more, so callers usually ignore errors.\n *\n * **Browser session only**, like {@link claimWelcomeOffer}: 403 for an API\n * key or OAuth app token, 409 `welcome_offer_disabled` while the offer is\n * off, 404 on a self-hosted instance.\n */\n markWelcomeOfferSeen(): Promise<WelcomeOfferSeenResult> {\n return this.client.request<WelcomeOfferSeenResult>(\"POST\", \"/v1/credits/welcome-offer/seen\")\n }\n\n // NOTE: no `estimate(...)` helper. The backend exposes\n // `POST /v1/credits/estimate-workflow` (body `{ nodes }` → `{ data: {\n // totalCredits, nodeCount } }`), but no consumer has a settled shape for it\n // yet (studio pre-checks `balance >= Σ modelCosts` client-side rather than\n // calling an estimate endpoint). Adding it now would be inventing an API\n // surface ahead of a real caller, so it's deliberately omitted — add it when\n // a consumer needs it, shaped to that need.\n}\n"]}
@@ -0,0 +1,280 @@
1
+ import { readSseStream } from './chunk-JMOKD6ZP.js';
2
+
3
+ // src/resources/media.ts
4
+ var MediaResource = class {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ client;
9
+ /**
10
+ * Download a social video (YouTube / TikTok / Instagram / X / Facebook) into
11
+ * your storage (`POST /v1/download-video`). `maxHeight` caps the resolution
12
+ * (default "best"); `sectionStartSec` + `sectionEndSec` (both-or-neither) fetch
13
+ * ONLY that time range instead of the whole video. A download that arrives
14
+ * with no audio stream FAILS by default (it is usually a degraded source
15
+ * response, and is retried through other routes first); pass
16
+ * `requireAudio: false` to accept a clip that really has no sound. Returns a
17
+ * `downloadId`; progress streams from
18
+ * `GET /v1/download-video/progress/:downloadId` (server-sent events) and the
19
+ * finished file lands in your library.
20
+ */
21
+ downloadVideo(input) {
22
+ return this.client.request("POST", "/v1/download-video", { body: input });
23
+ }
24
+ /**
25
+ * Stream the live progress of a {@link MediaResource.downloadVideo} import
26
+ * (`GET /v1/download-video/progress/:downloadId`, server-sent events) as an
27
+ * async iterable. Yields a {@link DownloadVideoProgress} roughly every 500ms
28
+ * until the download reaches `completed` (its event carries the stored
29
+ * `videoUrl`) or `failed` (its event carries `error`), then ends. The progress
30
+ * state expires server-side shortly after the download starts existing, so
31
+ * start iterating promptly after `downloadVideo` returns.
32
+ *
33
+ * No request timeout is applied (a large import legitimately takes minutes) —
34
+ * pass an `AbortSignal` to cancel from the caller.
35
+ */
36
+ async *downloadVideoProgress(downloadId, opts = {}) {
37
+ const url = `${this.client.baseUrl}/v1/download-video/progress/${encodeURIComponent(downloadId)}`;
38
+ const token = await this.client.auth.getToken();
39
+ const res = await this.client.fetch(url, {
40
+ headers: token ? { Authorization: `Bearer ${token}` } : {},
41
+ signal: opts.signal
42
+ });
43
+ yield* readSseStream(res, { label: "progress stream" });
44
+ }
45
+ /**
46
+ * Copy an external media URL into your Nodaro storage (`POST /v1/save-to-storage`)
47
+ * — a server-side fetch, so nothing round-trips through the client. Poll
48
+ * `jobs.get(jobId)`.
49
+ */
50
+ saveToStorage(input) {
51
+ return this.client.request("POST", "/v1/save-to-storage", { body: input });
52
+ }
53
+ /**
54
+ * Composite 2–30 images into ONE large 2K/4K collage (`POST /v1/image-collage`).
55
+ * `layout` `"smart"` (default — justified rows at each image's exact aspect
56
+ * ratio, no cropping; the output height floats) or `"grid"` (uniform,
57
+ * letterboxed cells). `imageSizes` is index-aligned with `imageUrls` and
58
+ * gives per-image RELATIVE size hints for the smart layout: `0` auto
59
+ * ("don't care", default), `1` big (~2× linear vs medium), `2` medium,
60
+ * `3` small (~½ linear). All-equal hints change nothing; grid ignores them.
61
+ * For storyboards, set `numbered` to stamp a 1-based sequence badge at each
62
+ * image's corner (top-left by default; `badgePosition: "top-right"` moves it;
63
+ * in `imageUrls` order) and pass `imageLabels`
64
+ * (index-aligned with `imageUrls`; `null`/`""`/omitted = no caption for that
65
+ * image) to caption images after the number, e.g. `3 · Close-up`. Badges are
66
+ * an overlay only — they never change the layout, the output size or the
67
+ * credit cost. Poll `jobs.get(jobId)` for the finished image.
68
+ */
69
+ imageCollage(input) {
70
+ return this.client.request("POST", "/v1/image-collage", { body: input });
71
+ }
72
+ /**
73
+ * Place 1–12 layers — pictures, real text, QR codes, shapes — on a base image,
74
+ * pixel-exactly (`POST /v1/image-overlay`) — local, deterministic, no AI.
75
+ * Every layer position/size is a PERCENT of the base image: `anchor` (nine
76
+ * positions, default `"center"`), `x`/`y` (offset from the anchor in % of
77
+ * the base width/height; negative on a right/bottom anchor moves inward),
78
+ * `width` (% of the base width, default 25 — height follows the layer's
79
+ * aspect unless `height` is set). Plus `opacity` (0..1), `rotation`
80
+ * (degrees), `blend` (`"over"` | `"multiply"` | `"screen"`), `fit`,
81
+ * `shadow` and `roundedCorners`. The output keeps the base's pixel size
82
+ * unless `canvas` is set. Flat credit cost. Poll `jobs.get(jobId)` for the
83
+ * finished image.
84
+ */
85
+ imageOverlay(input) {
86
+ return this.client.request("POST", "/v1/image-overlay", { body: input });
87
+ }
88
+ /**
89
+ * Ask a vision model WHERE one overlay layer should sit on a base image
90
+ * (`POST /v1/image-overlay/suggest-placement`) — it reads the picture and
91
+ * keeps the element off the faces, the subject and the busiest texture.
92
+ * The answer comes back in {@link MediaResource.imageOverlay}'s own percent
93
+ * units — `anchor`, `x`/`y` offsets, `width` — so it drops straight onto a
94
+ * layer (`const { reason, ...box } = placement`), plus a one-sentence
95
+ * `reason` you can show a user. Nothing is composited here: apply the
96
+ * placement yourself.
97
+ *
98
+ * `layerAspect` is the element's width / height (1 = square, the default) so
99
+ * the proposed box stays in proportion; `intent` says what the element is
100
+ * ("a logo", "a price badge"); `safeArea` is the always-visible region as
101
+ * fractions of the canvas (a platform preset's safe area), which the
102
+ * placement is kept inside. Unlike the other media calls this one answers
103
+ * synchronously — there is nothing to poll; `jobId` is the billing record
104
+ * (one image-to-text call).
105
+ */
106
+ suggestOverlayPlacement(input) {
107
+ return this.client.request(
108
+ "POST",
109
+ "/v1/image-overlay/suggest-placement",
110
+ { body: input }
111
+ );
112
+ }
113
+ /**
114
+ * Trim a video to a range (`POST /v1/trim-video`). Give the range in whichever
115
+ * unit fits: `startTime`/`endTime` seconds, `trim*Frames`, `trim*Seconds`, or
116
+ * `keepFirst`/`keepLastSeconds`. Poll `jobs.get(jobId)`.
117
+ */
118
+ trimVideo(input) {
119
+ return this.client.request("POST", "/v1/trim-video", { body: input });
120
+ }
121
+ /**
122
+ * Burn captions into a video (`POST /v1/add-captions`). Give the words as
123
+ * `text`, word-timed `captions[]`, or let it transcribe (`autoTranscribe`,
124
+ * the default when neither is set).
125
+ *
126
+ * `style: "subtitle"` renders statically (FFmpeg) UNLESS it carries a styling
127
+ * lever, in which case it — like the KINETIC styles (`word-highlight` /
128
+ * `karaoke` / `tiktok-words` / `word-pop` / `bouncy`) — renders via Remotion.
129
+ * `look` picks a preset — `outline` (Montserrat 900, UPPERCASE, black outline,
130
+ * yellow spoken word — the TikTok/Reels read) or `clean`; an UNSET look renders
131
+ * as `outline`. The explicit STYLING levers (`fontFamily`, `fontWeight`,
132
+ * `strokeColor`/`strokeWidth`, `uppercase`, `positionY`, `maxWordsPerLine`)
133
+ * override individual fields of it and now apply to `subtitle` too. Only
134
+ * `highlightColor` (the spoken-word cursor) and `animate` stay kinetic-only
135
+ * and are REJECTED on `subtitle`.
136
+ *
137
+ * `animate` (default true) freezes the per-word MOTION on the kinetic styles
138
+ * when set to false — the grouping, line-holding and spoken-word highlight
139
+ * stay; only the movement stops.
140
+ *
141
+ * `maxWordsPerLine` (1-20) caps how many words a line — or a `tiktok-words`
142
+ * page — may hold, on top of the width budget / sentence ends / pauses that
143
+ * already close one; it is inert on `word-pop`, which is always one word.
144
+ * Like every lever here it exists top-level AND per segment, and a segment
145
+ * that does not name its own inherits the top-level value.
146
+ *
147
+ * `segments[]` applies DIFFERENT treatments to non-overlapping time ranges in
148
+ * one call (e.g. a large top intro, then a small bottom body); a segment that
149
+ * names its own `look` starts fresh from that preset and does not inherit the
150
+ * top-level explicit levers. Poll `jobs.get(jobId)`.
151
+ *
152
+ * `word-highlight` shows ONE held line at a time and a word's
153
+ * `startMs`/`endMs` is its SPOKEN window (what times the highlight, not how
154
+ * long the text is on screen) — so `captions[]` can be handed over verbatim
155
+ * from an `audio.transcribe()` job's `output_data.words`, with
156
+ * `autoTranscribe: false`.
157
+ */
158
+ addCaptions(input) {
159
+ const { autoTranscribe, transcribeProvider, ...rest } = input;
160
+ const body = {
161
+ ...rest,
162
+ ...autoTranscribe !== void 0 ? { auto_transcribe: autoTranscribe } : {},
163
+ ...transcribeProvider !== void 0 ? { transcribe_provider: transcribeProvider } : {}
164
+ };
165
+ return this.client.request("POST", "/v1/add-captions", { body });
166
+ }
167
+ /**
168
+ * Trim (and extract) audio from a video or audio source
169
+ * (`POST /v1/trim-audio`) to `[startTime, endTime]` seconds, in `audioFormat`
170
+ * (`mp3` default / `wav` / `aac`). Poll `jobs.get(jobId)`.
171
+ */
172
+ trimAudio(input) {
173
+ return this.client.request("POST", "/v1/trim-audio", { body: input });
174
+ }
175
+ /**
176
+ * Cut a video and/or an audio file into consecutive parts
177
+ * (`POST /v1/split-media`). Every part is at most `chunkDuration` seconds and
178
+ * at least `minPartDuration` (default 4, never above `chunkDuration`) — a
179
+ * short leftover is evened out with the parts before it. Video is cut on
180
+ * whole frames with each part's sound matching its picture; audio parts are
181
+ * sample-exact, in `audioFormat` (`mp3` default / `wav` / `aac`). With both
182
+ * sources each is split on its own. At most 200 parts per input. Poll
183
+ * `jobs.get(jobId)`; the parts are on the completed job's `output_data` —
184
+ * see {@link SplitMediaOutput}.
185
+ */
186
+ splitMedia(input) {
187
+ return this.client.request("POST", "/v1/split-media", { body: input });
188
+ }
189
+ /**
190
+ * Turn one still image + one audio track into an MP4
191
+ * (`POST /v1/still-to-video`) — locally rendered (FFmpeg), no AI model,
192
+ * zero credits. The output duration IS the audio's duration; there is no
193
+ * duration field. Optional `motion` animates the still (zoom / pan /
194
+ * ken-burns) at `intensity` 1–10. `fit: "contain"` letterboxes with
195
+ * `padColor` instead of cropping. Poll `jobs.get(jobId)`.
196
+ */
197
+ stillToVideo(input) {
198
+ return this.client.request("POST", "/v1/still-to-video", { body: input });
199
+ }
200
+ /**
201
+ * Turn 2–100 images + one optional audio track into an MP4 slideshow
202
+ * (`POST /v1/slideshow`) — locally rendered (FFmpeg), zero credits. With
203
+ * audio, the output duration IS the audio's duration (equal split unless
204
+ * `imageDurations` pins rows — null entries = auto; mismatched pinned sums
205
+ * scale proportionally and the factor is disclosed in the job output).
206
+ * Without audio: N × `perImageDuration`, silent output. Transitions
207
+ * consume the outgoing slide, so totals stay exact. For a single image use
208
+ * `stillToVideo`. Poll `jobs.get(jobId)`.
209
+ */
210
+ slideshow(input) {
211
+ return this.client.request("POST", "/v1/slideshow", { body: input });
212
+ }
213
+ /**
214
+ * Place 1–20 timed image layers over a video (`POST /v1/video-overlay`) —
215
+ * rendered locally (FFmpeg) in one pass, no AI; the base audio is kept
216
+ * untouched. Each layer has an `imageUrl`, a `start` and an optional `end`
217
+ * in seconds (no `end` = to the end of the video) and a placement: a
218
+ * `preset` (`"card"`, `"corner-badge"` with a `corner`, `"full-frame"`) or
219
+ * an explicit box in {@link MediaResource.imageOverlay}'s percent vocabulary
220
+ * (`anchor`, `x`, `y`, `width`, `height`, `fit`) — an explicit box field
221
+ * overrides the preset, and a layer with neither is a corner badge
222
+ * (bottom-right, or the `corner` it names). `outputAspect` renders onto a
223
+ * 16:9 / 9:16 / 1:1 / 4:5 canvas
224
+ * (`baseFit` cover by default; `backgroundColor` pads `contain`). Poll
225
+ * `jobs.get(jobId)`: the output carries `videoUrl`, `thumbnailUrl`, `width`,
226
+ * `height`, `durationSec` and `warnings[]` (a layer clipped or skipped at the
227
+ * video's end, an animated image's first frame, re-encoded audio).
228
+ */
229
+ videoOverlay(input) {
230
+ return this.client.request("POST", "/v1/video-overlay", { body: input });
231
+ }
232
+ /**
233
+ * Track a subject described in plain text through a video and get a
234
+ * black-and-white MASK VIDEO back (`POST /v1/video-mask`, SAM 3.1 by default,
235
+ * or `provider: "sam-3"` at half the price) — white = the subject. Clips up
236
+ * to 5 minutes at 30 fps (a faster clip counts
237
+ * proportionally longer), priced by the clip's length. Poll
238
+ * `jobs.get(jobId)`: the output carries `videoUrl` (the mask), `width`,
239
+ * `height`, `frames` and `coverage` (the fraction of pixels selected). Feed
240
+ * the mask to {@link MediaResource.maskComposite}.
241
+ */
242
+ videoMask(input) {
243
+ return this.client.request("POST", "/v1/video-mask", { body: input });
244
+ }
245
+ /**
246
+ * Place a foreground video over a background video through a mask video
247
+ * (`POST /v1/mask-composite`; white = foreground) — local FFmpeg, no AI.
248
+ * The result follows the foreground's size, frame rate and length; the
249
+ * background is fitted (`backgroundFit`, default cover) and loops when
250
+ * shorter; the mask holds its last frame when shorter. Optional
251
+ * `invertMask`, `feather` (0–20 px), `grow` (−10–10 px) and `audioSource`
252
+ * (foreground / background / mix / none). Priced per started 5 seconds of
253
+ * the result (foreground up to 300 s). Poll `jobs.get(jobId)` for `videoUrl`.
254
+ */
255
+ maskComposite(input) {
256
+ return this.client.request("POST", "/v1/mask-composite", { body: input });
257
+ }
258
+ /**
259
+ * Probe a social video's metadata (`POST /v1/video-metadata`) — duration,
260
+ * dimensions, title, live status — WITHOUT downloading it. A direct read, not a
261
+ * job. Use it to decide whether to trim before importing.
262
+ */
263
+ videoMetadata(input) {
264
+ return this.client.request("POST", "/v1/video-metadata", { body: input });
265
+ }
266
+ /**
267
+ * Cut or crop a stored file (`POST /v1/media/process`) — synchronous and
268
+ * free, the source-preparation sibling of the priced `trimVideo` node.
269
+ * `trim` is `[startTime, endTime]` in seconds; `deleteSource: true` removes
270
+ * the source object afterwards when it is yours and nothing else references
271
+ * it ("the cut replaces the original"). Answers the stored file.
272
+ */
273
+ process(input) {
274
+ return this.client.request("POST", "/v1/media/process", { body: input });
275
+ }
276
+ };
277
+
278
+ export { MediaResource };
279
+ //# sourceMappingURL=chunk-4NLVBYMW.js.map
280
+ //# sourceMappingURL=chunk-4NLVBYMW.js.map