twentythree-cli 1.0.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 (426) hide show
  1. package/README.md +25 -0
  2. package/bin/dev.cmd +2 -0
  3. package/bin/dev.js +28 -0
  4. package/bin/run.cmd +2 -0
  5. package/bin/run.js +23 -0
  6. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  7. package/dist/api/client.cjs +24 -0
  8. package/dist/api/types.cjs +0 -0
  9. package/dist/auth/credential-store.cjs +22 -0
  10. package/dist/auth/token-refresh.cjs +70 -0
  11. package/dist/auth/workspace-config.cjs +61 -0
  12. package/dist/commands/action/add.cjs +75 -0
  13. package/dist/commands/action/delete.cjs +64 -0
  14. package/dist/commands/action/exclude.cjs +70 -0
  15. package/dist/commands/action/get.cjs +112 -0
  16. package/dist/commands/action/include.cjs +70 -0
  17. package/dist/commands/action/list.cjs +119 -0
  18. package/dist/commands/action/types.cjs +63 -0
  19. package/dist/commands/action/update.cjs +86 -0
  20. package/dist/commands/action/upload.cjs +89 -0
  21. package/dist/commands/analytics/conversions/index.cjs +83 -0
  22. package/dist/commands/analytics/conversions/timeseries.cjs +83 -0
  23. package/dist/commands/analytics/conversions/totals.cjs +83 -0
  24. package/dist/commands/analytics/live/event-timeseries.cjs +86 -0
  25. package/dist/commands/analytics/live/event-totals.cjs +86 -0
  26. package/dist/commands/analytics/live/event.cjs +88 -0
  27. package/dist/commands/analytics/live/index.cjs +89 -0
  28. package/dist/commands/analytics/live/timeseries.cjs +85 -0
  29. package/dist/commands/analytics/live/totals.cjs +85 -0
  30. package/dist/commands/analytics/live/weekday/timeseries.cjs +85 -0
  31. package/dist/commands/analytics/live/weekday/totals.cjs +85 -0
  32. package/dist/commands/analytics/live/weekday.cjs +88 -0
  33. package/dist/commands/analytics/usage/devices/timeseries.cjs +83 -0
  34. package/dist/commands/analytics/usage/devices/totals.cjs +86 -0
  35. package/dist/commands/analytics/usage/devices.cjs +89 -0
  36. package/dist/commands/analytics/usage/domains/totals.cjs +83 -0
  37. package/dist/commands/analytics/usage/domains.cjs +89 -0
  38. package/dist/commands/analytics/usage/locations/totals.cjs +83 -0
  39. package/dist/commands/analytics/usage/locations.cjs +89 -0
  40. package/dist/commands/analytics/usage/sourceids/totals.cjs +83 -0
  41. package/dist/commands/analytics/usage/sourceids.cjs +89 -0
  42. package/dist/commands/analytics/usage/sources/totals.cjs +83 -0
  43. package/dist/commands/analytics/usage/sources.cjs +89 -0
  44. package/dist/commands/analytics/usage/spots/timeseries.cjs +83 -0
  45. package/dist/commands/analytics/usage/spots/totals.cjs +83 -0
  46. package/dist/commands/analytics/usage/spots.cjs +89 -0
  47. package/dist/commands/analytics/usage/storage.cjs +52 -0
  48. package/dist/commands/analytics/usage/traffic/timeseries.cjs +83 -0
  49. package/dist/commands/analytics/usage/traffic/totals.cjs +86 -0
  50. package/dist/commands/analytics/usage/traffic.cjs +89 -0
  51. package/dist/commands/analytics/video/index.cjs +89 -0
  52. package/dist/commands/analytics/video/performance/timeseries.cjs +83 -0
  53. package/dist/commands/analytics/video/performance/totals.cjs +80 -0
  54. package/dist/commands/analytics/video/performance.cjs +89 -0
  55. package/dist/commands/analytics/video/published/timeseries.cjs +83 -0
  56. package/dist/commands/analytics/video/published/totals.cjs +80 -0
  57. package/dist/commands/analytics/video/published.cjs +89 -0
  58. package/dist/commands/analytics/video/timeseries.cjs +86 -0
  59. package/dist/commands/analytics/video/totals.cjs +86 -0
  60. package/dist/commands/analytics/video/weekday/timeseries.cjs +86 -0
  61. package/dist/commands/analytics/video/weekday/totals.cjs +83 -0
  62. package/dist/commands/analytics/video/weekday.cjs +89 -0
  63. package/dist/commands/app/add.cjs +76 -0
  64. package/dist/commands/app/delete.cjs +57 -0
  65. package/dist/commands/app/update.cjs +77 -0
  66. package/dist/commands/audience/companies.cjs +116 -0
  67. package/dist/commands/audience/field/list.cjs +83 -0
  68. package/dist/commands/audience/field/remove.cjs +63 -0
  69. package/dist/commands/audience/field/set.cjs +78 -0
  70. package/dist/commands/audience/field/types.cjs +57 -0
  71. package/dist/commands/audience/funnel.cjs +77 -0
  72. package/dist/commands/audience/identity-sources.cjs +64 -0
  73. package/dist/commands/audience/list-collectors.cjs +88 -0
  74. package/dist/commands/audience/list.cjs +122 -0
  75. package/dist/commands/audience/metrics.cjs +89 -0
  76. package/dist/commands/audience/register.cjs +106 -0
  77. package/dist/commands/audience/remove.cjs +72 -0
  78. package/dist/commands/audience/search.cjs +106 -0
  79. package/dist/commands/audience/timelines.cjs +115 -0
  80. package/dist/commands/audience/unregister.cjs +65 -0
  81. package/dist/commands/auth/credentials.cjs +89 -0
  82. package/dist/commands/auth/status.cjs +34 -0
  83. package/dist/commands/category/create.cjs +80 -0
  84. package/dist/commands/category/delete.cjs +70 -0
  85. package/dist/commands/category/index.cjs +11 -0
  86. package/dist/commands/category/list.cjs +98 -0
  87. package/dist/commands/category/update.cjs +134 -0
  88. package/dist/commands/collector/exclude.cjs +56 -0
  89. package/dist/commands/collector/include.cjs +56 -0
  90. package/dist/commands/collector/list.cjs +81 -0
  91. package/dist/commands/comment/add.cjs +102 -0
  92. package/dist/commands/comment/clone.cjs +59 -0
  93. package/dist/commands/comment/delete.cjs +55 -0
  94. package/dist/commands/comment/list.cjs +126 -0
  95. package/dist/commands/comment/promote.cjs +65 -0
  96. package/dist/commands/comment/reaction/add.cjs +81 -0
  97. package/dist/commands/comment/reaction/list.cjs +92 -0
  98. package/dist/commands/comment/reaction/remove.cjs +81 -0
  99. package/dist/commands/comment/set-order.cjs +63 -0
  100. package/dist/commands/comment/update.cjs +63 -0
  101. package/dist/commands/doctor.cjs +129 -0
  102. package/dist/commands/openupload/list.cjs +95 -0
  103. package/dist/commands/openupload/update-file.cjs +85 -0
  104. package/dist/commands/openupload/upload-file.cjs +130 -0
  105. package/dist/commands/player/delete.cjs +66 -0
  106. package/dist/commands/player/embed-versions.cjs +83 -0
  107. package/dist/commands/player/embed.cjs +134 -0
  108. package/dist/commands/player/list.cjs +86 -0
  109. package/dist/commands/player/styles.cjs +70 -0
  110. package/dist/commands/player/update.cjs +80 -0
  111. package/dist/commands/poll/add.cjs +84 -0
  112. package/dist/commands/poll/answer.cjs +89 -0
  113. package/dist/commands/poll/list.cjs +92 -0
  114. package/dist/commands/poll/remove.cjs +57 -0
  115. package/dist/commands/poll/set-options.cjs +84 -0
  116. package/dist/commands/poll/update.cjs +79 -0
  117. package/dist/commands/presentation/page/link-locations.cjs +57 -0
  118. package/dist/commands/presentation/setting/list.cjs +44 -0
  119. package/dist/commands/presentation/setting/update.cjs +67 -0
  120. package/dist/commands/protection/protect.cjs +68 -0
  121. package/dist/commands/protection/unprotect.cjs +65 -0
  122. package/dist/commands/protection/verify.cjs +80 -0
  123. package/dist/commands/session/get-token.cjs +75 -0
  124. package/dist/commands/session/redeem-token.cjs +56 -0
  125. package/dist/commands/setting/update.cjs +79 -0
  126. package/dist/commands/site/get.cjs +73 -0
  127. package/dist/commands/site/search.cjs +93 -0
  128. package/dist/commands/spot/check.cjs +52 -0
  129. package/dist/commands/spot/create.cjs +79 -0
  130. package/dist/commands/spot/delete.cjs +68 -0
  131. package/dist/commands/spot/list.cjs +120 -0
  132. package/dist/commands/spot/reset-version.cjs +53 -0
  133. package/dist/commands/spot/set-videos.cjs +64 -0
  134. package/dist/commands/spot/update.cjs +78 -0
  135. package/dist/commands/tag/list.cjs +98 -0
  136. package/dist/commands/tag/related.cjs +57 -0
  137. package/dist/commands/thumbnail/add.cjs +66 -0
  138. package/dist/commands/thumbnail/data.cjs +60 -0
  139. package/dist/commands/thumbnail/delete.cjs +61 -0
  140. package/dist/commands/thumbnail/duplicate.cjs +67 -0
  141. package/dist/commands/thumbnail/file/delete.cjs +71 -0
  142. package/dist/commands/thumbnail/file/list.cjs +74 -0
  143. package/dist/commands/thumbnail/file/upload.cjs +79 -0
  144. package/dist/commands/thumbnail/index.cjs +11 -0
  145. package/dist/commands/thumbnail/list.cjs +89 -0
  146. package/dist/commands/thumbnail/update.cjs +87 -0
  147. package/dist/commands/user/create.cjs +87 -0
  148. package/dist/commands/user/get-login-token.cjs +72 -0
  149. package/dist/commands/user/get.cjs +67 -0
  150. package/dist/commands/user/list.cjs +95 -0
  151. package/dist/commands/user/redeem-login-token.cjs +55 -0
  152. package/dist/commands/user/send-invitation.cjs +63 -0
  153. package/dist/commands/user/tokens.cjs +80 -0
  154. package/dist/commands/user/update.cjs +121 -0
  155. package/dist/commands/video/delete.cjs +67 -0
  156. package/dist/commands/video/frame.cjs +69 -0
  157. package/dist/commands/video/get.cjs +68 -0
  158. package/dist/commands/video/index.cjs +11 -0
  159. package/dist/commands/video/list.cjs +98 -0
  160. package/dist/commands/video/replace.cjs +126 -0
  161. package/dist/commands/video/section/create.cjs +73 -0
  162. package/dist/commands/video/section/delete.cjs +78 -0
  163. package/dist/commands/video/section/index.cjs +11 -0
  164. package/dist/commands/video/section/list.cjs +75 -0
  165. package/dist/commands/video/section/set-thumbnail.cjs +73 -0
  166. package/dist/commands/video/section/update.cjs +84 -0
  167. package/dist/commands/video/subtitle/archive.cjs +76 -0
  168. package/dist/commands/video/subtitle/create.cjs +80 -0
  169. package/dist/commands/video/subtitle/data.cjs +75 -0
  170. package/dist/commands/video/subtitle/delete.cjs +84 -0
  171. package/dist/commands/video/subtitle/duplicate.cjs +89 -0
  172. package/dist/commands/video/subtitle/index.cjs +11 -0
  173. package/dist/commands/video/subtitle/list.cjs +94 -0
  174. package/dist/commands/video/subtitle/locales.cjs +60 -0
  175. package/dist/commands/video/subtitle/set-primary.cjs +64 -0
  176. package/dist/commands/video/subtitle/types.cjs +42 -0
  177. package/dist/commands/video/subtitle/update.cjs +93 -0
  178. package/dist/commands/video/subtitle/upload.cjs +104 -0
  179. package/dist/commands/video/transcoding-progress.cjs +71 -0
  180. package/dist/commands/video/update.cjs +184 -0
  181. package/dist/commands/video/upload.cjs +151 -0
  182. package/dist/commands/webhook/events.cjs +68 -0
  183. package/dist/commands/webhook/list.cjs +64 -0
  184. package/dist/commands/webhook/sample.cjs +47 -0
  185. package/dist/commands/webhook/subscribe.cjs +66 -0
  186. package/dist/commands/webhook/unsubscribe.cjs +71 -0
  187. package/dist/commands/webinar/attachment/delete.cjs +79 -0
  188. package/dist/commands/webinar/attachment/list.cjs +94 -0
  189. package/dist/commands/webinar/attachment/set-hidden.cjs +85 -0
  190. package/dist/commands/webinar/attachment/upload.cjs +128 -0
  191. package/dist/commands/webinar/clips.cjs +77 -0
  192. package/dist/commands/webinar/create.cjs +107 -0
  193. package/dist/commands/webinar/delete.cjs +62 -0
  194. package/dist/commands/webinar/highlights.cjs +84 -0
  195. package/dist/commands/webinar/index.cjs +11 -0
  196. package/dist/commands/webinar/list-formats.cjs +50 -0
  197. package/dist/commands/webinar/list.cjs +134 -0
  198. package/dist/commands/webinar/log.cjs +69 -0
  199. package/dist/commands/webinar/mail/add.cjs +101 -0
  200. package/dist/commands/webinar/mail/list.cjs +83 -0
  201. package/dist/commands/webinar/mail/preview.cjs +75 -0
  202. package/dist/commands/webinar/mail/remove.cjs +75 -0
  203. package/dist/commands/webinar/mail/send.cjs +68 -0
  204. package/dist/commands/webinar/mail/test.cjs +86 -0
  205. package/dist/commands/webinar/mail/update.cjs +84 -0
  206. package/dist/commands/webinar/metrics.cjs +59 -0
  207. package/dist/commands/webinar/queued-video/add.cjs +81 -0
  208. package/dist/commands/webinar/queued-video/remove.cjs +81 -0
  209. package/dist/commands/webinar/recording/split.cjs +53 -0
  210. package/dist/commands/webinar/recording/start.cjs +53 -0
  211. package/dist/commands/webinar/recording/status.cjs +52 -0
  212. package/dist/commands/webinar/recording/stop.cjs +53 -0
  213. package/dist/commands/webinar/repeat.cjs +65 -0
  214. package/dist/commands/webinar/room/connect.cjs +60 -0
  215. package/dist/commands/webinar/room/info.cjs +60 -0
  216. package/dist/commands/webinar/room/send-recording.cjs +59 -0
  217. package/dist/commands/webinar/room/themes.cjs +63 -0
  218. package/dist/commands/webinar/section/add.cjs +98 -0
  219. package/dist/commands/webinar/section/list.cjs +86 -0
  220. package/dist/commands/webinar/section/remove.cjs +75 -0
  221. package/dist/commands/webinar/section/update.cjs +85 -0
  222. package/dist/commands/webinar/series/apply-recurrence.cjs +68 -0
  223. package/dist/commands/webinar/series/cancel.cjs +73 -0
  224. package/dist/commands/webinar/series/create.cjs +80 -0
  225. package/dist/commands/webinar/series/delete.cjs +73 -0
  226. package/dist/commands/webinar/series/list.cjs +79 -0
  227. package/dist/commands/webinar/series/mapped-objects.cjs +69 -0
  228. package/dist/commands/webinar/series/metrics.cjs +57 -0
  229. package/dist/commands/webinar/series/recurrences.cjs +72 -0
  230. package/dist/commands/webinar/series/set-ondemand.cjs +67 -0
  231. package/dist/commands/webinar/series/skip-recurrence.cjs +79 -0
  232. package/dist/commands/webinar/series/update.cjs +71 -0
  233. package/dist/commands/webinar/series/upload-thumbnail.cjs +117 -0
  234. package/dist/commands/webinar/speaker/add-from-speaker.cjs +78 -0
  235. package/dist/commands/webinar/speaker/add-from-user.cjs +78 -0
  236. package/dist/commands/webinar/speaker/add.cjs +112 -0
  237. package/dist/commands/webinar/speaker/cancel-guest-request.cjs +62 -0
  238. package/dist/commands/webinar/speaker/connection-types.cjs +66 -0
  239. package/dist/commands/webinar/speaker/library.cjs +59 -0
  240. package/dist/commands/webinar/speaker/list.cjs +90 -0
  241. package/dist/commands/webinar/speaker/remove-avatar.cjs +62 -0
  242. package/dist/commands/webinar/speaker/remove.cjs +69 -0
  243. package/dist/commands/webinar/speaker/request-guest.cjs +62 -0
  244. package/dist/commands/webinar/speaker/send-invitation.cjs +62 -0
  245. package/dist/commands/webinar/speaker/set-avatar.cjs +130 -0
  246. package/dist/commands/webinar/speaker/set-order.cjs +95 -0
  247. package/dist/commands/webinar/speaker/update.cjs +90 -0
  248. package/dist/commands/webinar/transcription/connect.cjs +69 -0
  249. package/dist/commands/webinar/transcription/list.cjs +88 -0
  250. package/dist/commands/webinar/transcription/locales.cjs +76 -0
  251. package/dist/commands/webinar/transcription/transcriptionlist.cjs +67 -0
  252. package/dist/commands/webinar/update.cjs +192 -0
  253. package/dist/commands/webinar/upload-image.cjs +133 -0
  254. package/dist/commands/workspace/list.cjs +47 -0
  255. package/dist/commands/workspace/use.cjs +52 -0
  256. package/dist/index.cjs +6 -0
  257. package/dist/lib/analytics-flags.cjs +60 -0
  258. package/dist/lib/audit.cjs +44 -0
  259. package/dist/lib/base-command.cjs +156 -0
  260. package/dist/lib/output.cjs +82 -0
  261. package/dist/lib/pagination.cjs +36 -0
  262. package/dist/lib/term-map.cjs +48 -0
  263. package/dist/upload/chunk-pool.cjs +47 -0
  264. package/dist/upload/chunked-upload.cjs +131 -0
  265. package/dist/upload/types.cjs +9 -0
  266. package/docs/commands/README.md +31 -0
  267. package/docs/commands/action/add.md +36 -0
  268. package/docs/commands/action/delete.md +32 -0
  269. package/docs/commands/action/exclude.md +38 -0
  270. package/docs/commands/action/get.md +47 -0
  271. package/docs/commands/action/include.md +38 -0
  272. package/docs/commands/action/list.md +43 -0
  273. package/docs/commands/action/types.md +34 -0
  274. package/docs/commands/action/update.md +42 -0
  275. package/docs/commands/action/upload.md +36 -0
  276. package/docs/commands/action.md +306 -0
  277. package/docs/commands/analytics/conversions.md +113 -0
  278. package/docs/commands/analytics/live.md +338 -0
  279. package/docs/commands/analytics/usage.md +674 -0
  280. package/docs/commands/analytics/video.md +449 -0
  281. package/docs/commands/analytics.md +1559 -0
  282. package/docs/commands/app/add.md +38 -0
  283. package/docs/commands/app/delete.md +32 -0
  284. package/docs/commands/app/update.md +41 -0
  285. package/docs/commands/app.md +101 -0
  286. package/docs/commands/audience/companies.md +41 -0
  287. package/docs/commands/audience/field.md +119 -0
  288. package/docs/commands/audience/funnel.md +38 -0
  289. package/docs/commands/audience/identity-sources.md +29 -0
  290. package/docs/commands/audience/list-collectors.md +35 -0
  291. package/docs/commands/audience/list.md +42 -0
  292. package/docs/commands/audience/metrics.md +40 -0
  293. package/docs/commands/audience/register.md +45 -0
  294. package/docs/commands/audience/remove.md +35 -0
  295. package/docs/commands/audience/search.md +39 -0
  296. package/docs/commands/audience/timelines.md +41 -0
  297. package/docs/commands/audience/unregister.md +36 -0
  298. package/docs/commands/audience.md +485 -0
  299. package/docs/commands/auth/credentials.md +23 -0
  300. package/docs/commands/auth/status.md +27 -0
  301. package/docs/commands/auth.md +45 -0
  302. package/docs/commands/category/create.md +36 -0
  303. package/docs/commands/category/delete.md +32 -0
  304. package/docs/commands/category/list.md +34 -0
  305. package/docs/commands/category/update.md +39 -0
  306. package/docs/commands/category.md +141 -0
  307. package/docs/commands/collector/exclude.md +33 -0
  308. package/docs/commands/collector/include.md +33 -0
  309. package/docs/commands/collector/list.md +37 -0
  310. package/docs/commands/collector.md +93 -0
  311. package/docs/commands/comment/add.md +43 -0
  312. package/docs/commands/comment/clone.md +35 -0
  313. package/docs/commands/comment/delete.md +32 -0
  314. package/docs/commands/comment/list.md +42 -0
  315. package/docs/commands/comment/promote.md +37 -0
  316. package/docs/commands/comment/reaction.md +106 -0
  317. package/docs/commands/comment/set-order.md +34 -0
  318. package/docs/commands/comment/update.md +36 -0
  319. package/docs/commands/comment.md +330 -0
  320. package/docs/commands/doctor.md +28 -0
  321. package/docs/commands/openupload/list.md +36 -0
  322. package/docs/commands/openupload/update-file.md +40 -0
  323. package/docs/commands/openupload/upload-file.md +39 -0
  324. package/docs/commands/openupload.md +105 -0
  325. package/docs/commands/player/delete.md +32 -0
  326. package/docs/commands/player/embed-versions.md +34 -0
  327. package/docs/commands/player/embed.md +51 -0
  328. package/docs/commands/player/list.md +32 -0
  329. package/docs/commands/player/styles.md +32 -0
  330. package/docs/commands/player/update.md +37 -0
  331. package/docs/commands/player.md +193 -0
  332. package/docs/commands/poll/add.md +33 -0
  333. package/docs/commands/poll/answer.md +38 -0
  334. package/docs/commands/poll/list.md +33 -0
  335. package/docs/commands/poll/remove.md +32 -0
  336. package/docs/commands/poll/set-options.md +35 -0
  337. package/docs/commands/poll/update.md +41 -0
  338. package/docs/commands/poll.md +187 -0
  339. package/docs/commands/presentation/page.md +29 -0
  340. package/docs/commands/presentation/setting.md +58 -0
  341. package/docs/commands/presentation.md +82 -0
  342. package/docs/commands/protection/protect.md +37 -0
  343. package/docs/commands/protection/unprotect.md +34 -0
  344. package/docs/commands/protection/verify.md +39 -0
  345. package/docs/commands/protection.md +100 -0
  346. package/docs/commands/session/get-token.md +38 -0
  347. package/docs/commands/session/redeem-token.md +32 -0
  348. package/docs/commands/session.md +65 -0
  349. package/docs/commands/setting/update.md +37 -0
  350. package/docs/commands/setting.md +37 -0
  351. package/docs/commands/site/get.md +35 -0
  352. package/docs/commands/site/search.md +38 -0
  353. package/docs/commands/site.md +68 -0
  354. package/docs/commands/spot/check.md +32 -0
  355. package/docs/commands/spot/create.md +38 -0
  356. package/docs/commands/spot/delete.md +32 -0
  357. package/docs/commands/spot/list.md +43 -0
  358. package/docs/commands/spot/reset-version.md +32 -0
  359. package/docs/commands/spot/set-videos.md +35 -0
  360. package/docs/commands/spot/update.md +40 -0
  361. package/docs/commands/spot.md +222 -0
  362. package/docs/commands/tag/list.md +44 -0
  363. package/docs/commands/tag/related.md +32 -0
  364. package/docs/commands/tag.md +71 -0
  365. package/docs/commands/thumbnail/add.md +33 -0
  366. package/docs/commands/thumbnail/data.md +35 -0
  367. package/docs/commands/thumbnail/delete.md +32 -0
  368. package/docs/commands/thumbnail/duplicate.md +37 -0
  369. package/docs/commands/thumbnail/file.md +90 -0
  370. package/docs/commands/thumbnail/list.md +37 -0
  371. package/docs/commands/thumbnail/update.md +44 -0
  372. package/docs/commands/thumbnail.md +293 -0
  373. package/docs/commands/user/create.md +41 -0
  374. package/docs/commands/user/get-login-token.md +37 -0
  375. package/docs/commands/user/get.md +37 -0
  376. package/docs/commands/user/list.md +40 -0
  377. package/docs/commands/user/redeem-login-token.md +32 -0
  378. package/docs/commands/user/send-invitation.md +37 -0
  379. package/docs/commands/user/tokens.md +34 -0
  380. package/docs/commands/user/update.md +44 -0
  381. package/docs/commands/user.md +267 -0
  382. package/docs/commands/video/delete.md +32 -0
  383. package/docs/commands/video/frame.md +37 -0
  384. package/docs/commands/video/get.md +32 -0
  385. package/docs/commands/video/list.md +33 -0
  386. package/docs/commands/video/replace.md +37 -0
  387. package/docs/commands/video/section.md +177 -0
  388. package/docs/commands/video/subtitle.md +362 -0
  389. package/docs/commands/video/transcoding-progress.md +32 -0
  390. package/docs/commands/video/update.md +45 -0
  391. package/docs/commands/video/upload.md +44 -0
  392. package/docs/commands/video.md +801 -0
  393. package/docs/commands/webhook/events.md +34 -0
  394. package/docs/commands/webhook/list.md +29 -0
  395. package/docs/commands/webhook/sample.md +32 -0
  396. package/docs/commands/webhook/subscribe.md +33 -0
  397. package/docs/commands/webhook/unsubscribe.md +35 -0
  398. package/docs/commands/webhook.md +143 -0
  399. package/docs/commands/webinar/attachment.md +135 -0
  400. package/docs/commands/webinar/clips.md +32 -0
  401. package/docs/commands/webinar/create.md +40 -0
  402. package/docs/commands/webinar/delete.md +32 -0
  403. package/docs/commands/webinar/highlights.md +37 -0
  404. package/docs/commands/webinar/list-formats.md +29 -0
  405. package/docs/commands/webinar/list.md +41 -0
  406. package/docs/commands/webinar/log.md +32 -0
  407. package/docs/commands/webinar/mail.md +238 -0
  408. package/docs/commands/webinar/metrics.md +32 -0
  409. package/docs/commands/webinar/queued-video.md +65 -0
  410. package/docs/commands/webinar/recording.md +113 -0
  411. package/docs/commands/webinar/repeat.md +35 -0
  412. package/docs/commands/webinar/room.md +110 -0
  413. package/docs/commands/webinar/section.md +134 -0
  414. package/docs/commands/webinar/series.md +365 -0
  415. package/docs/commands/webinar/speaker.md +430 -0
  416. package/docs/commands/webinar/transcription.md +125 -0
  417. package/docs/commands/webinar/update.md +43 -0
  418. package/docs/commands/webinar/upload-image.md +42 -0
  419. package/docs/commands/webinar.md +2030 -0
  420. package/docs/commands/workspace/list.md +27 -0
  421. package/docs/commands/workspace/use.md +32 -0
  422. package/docs/commands/workspace.md +54 -0
  423. package/docs/guides/api-spec-upgrade.md +92 -0
  424. package/docs/guides/getting-started.md +66 -0
  425. package/oclif.manifest.json +21609 -0
  426. package/package.json +71 -0
@@ -0,0 +1,90 @@
1
+ require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ //#region src/commands/webinar/speaker/list.ts
7
+ /**
8
+ * Webinar speaker list command — lists all speakers for a webinar.
9
+ *
10
+ * Token is auto-looked up via fetchWebinarToken if not supplied via --token (Decision D-4).
11
+ *
12
+ * Threat mitigations:
13
+ * T-05-07: applyCliTerms() on all error messages — no 'live'/'photo'/'album' leaks
14
+ */
15
+ var WebinarSpeakerList = class WebinarSpeakerList extends require_lib_base_command.AuthenticatedCommand {
16
+ static description = "List speakers for a webinar";
17
+ static examples = ["<%= config.bin %> webinar speaker list 12345", "<%= config.bin %> webinar speaker list 12345 --json"];
18
+ static enableJsonFlag = true;
19
+ static flags = {
20
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
21
+ token: _oclif_core.Flags.string({
22
+ description: "Webinar token (auto-looked up if omitted)",
23
+ required: false
24
+ })
25
+ };
26
+ static args = { id: _oclif_core.Args.string({
27
+ description: "Webinar ID",
28
+ required: true
29
+ }) };
30
+ static agentMetadata = {
31
+ api_endpoint: "GET /live/speaker/list",
32
+ auth_scope: "read",
33
+ output_shape: {
34
+ type: "table",
35
+ columns: [
36
+ "ID",
37
+ "Name",
38
+ "Email",
39
+ "Role",
40
+ "Order"
41
+ ]
42
+ },
43
+ side_effects: "none"
44
+ };
45
+ async run() {
46
+ const { args, flags } = await this.parse(WebinarSpeakerList);
47
+ this.printWorkspaceHeader();
48
+ const webinarId = Number(args.id);
49
+ const token = flags.token ?? await this.fetchWebinarToken(webinarId);
50
+ const { data, error } = await this.apiClient.GET("/live/speaker/list", { params: { query: {
51
+ live_id: webinarId,
52
+ token
53
+ } } });
54
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
55
+ const speakers = Array.isArray(data?.data) ? data.data : data?.data ? [data.data] : [];
56
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
57
+ ok: true,
58
+ data: speakers,
59
+ summary: `${speakers.length} speaker${speakers.length === 1 ? "" : "s"}`,
60
+ breadcrumbs: [
61
+ { domain: this.activeWorkspace.domain },
62
+ {
63
+ resource: "webinar",
64
+ id: args.id
65
+ },
66
+ { resource: "speaker" }
67
+ ]
68
+ });
69
+ if (speakers.length === 0) {
70
+ this.log("No speakers found.");
71
+ return;
72
+ }
73
+ const table = require_lib_output.renderTable([
74
+ "ID",
75
+ "Name",
76
+ "Email",
77
+ "Role",
78
+ "Order"
79
+ ], speakers.map((s) => [
80
+ String(s.live_speaker_id ?? ""),
81
+ String(s.name ?? ""),
82
+ String(s.email ?? ""),
83
+ String(s.role ?? ""),
84
+ String(s.speaker_order ?? "")
85
+ ]));
86
+ this.log(table.toString());
87
+ }
88
+ };
89
+ //#endregion
90
+ module.exports = WebinarSpeakerList;
@@ -0,0 +1,62 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/webinar/speaker/remove-avatar.ts
9
+ /**
10
+ * Webinar speaker remove-avatar command — removes the avatar image from a speaker.
11
+ *
12
+ * Action command pattern (Decision D-1): outputs a single green success line only.
13
+ *
14
+ * Threat mitigations:
15
+ * T-05-07: applyCliTerms() on all error messages
16
+ */
17
+ var WebinarSpeakerRemoveAvatar = class WebinarSpeakerRemoveAvatar extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Remove the avatar image from a speaker";
19
+ static examples = ["<%= config.bin %> webinar speaker remove-avatar 12345 9900", "<%= config.bin %> webinar speaker remove-avatar 12345 9900 --json"];
20
+ static enableJsonFlag = true;
21
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
22
+ static args = {
23
+ webinarId: _oclif_core.Args.string({
24
+ description: "Webinar ID",
25
+ required: true
26
+ }),
27
+ id: _oclif_core.Args.string({
28
+ description: "Speaker ID",
29
+ required: true
30
+ })
31
+ };
32
+ static agentMetadata = {
33
+ api_endpoint: "POST /live/speaker/remove-avatar",
34
+ auth_scope: "write",
35
+ output_shape: { type: "none" },
36
+ side_effects: "destructive"
37
+ };
38
+ async run() {
39
+ const { args } = await this.parse(WebinarSpeakerRemoveAvatar);
40
+ this.printWorkspaceHeader();
41
+ const { data, error } = await this.apiClient.POST("/live/speaker/remove-avatar", {
42
+ body: {
43
+ live_id: Number(args.webinarId),
44
+ live_speaker_id: Number(args.id)
45
+ },
46
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
47
+ });
48
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
49
+ this.log(chalk.default.green("Speaker avatar removed"));
50
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
51
+ ok: true,
52
+ data,
53
+ summary: "Speaker avatar removed",
54
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
55
+ resource: "speaker",
56
+ id: args.id
57
+ }]
58
+ });
59
+ }
60
+ };
61
+ //#endregion
62
+ module.exports = WebinarSpeakerRemoveAvatar;
@@ -0,0 +1,69 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ let _clack_prompts = require("@clack/prompts");
9
+ //#region src/commands/webinar/speaker/remove.ts
10
+ /**
11
+ * Webinar speaker remove command — removes a speaker from a webinar.
12
+ *
13
+ * T-05-08: Confirmation prompt includes domain before delete (repudiation mitigation).
14
+ * --json mode skips the confirmation prompt (scripting mode — assume confirmed).
15
+ *
16
+ * Threat mitigations:
17
+ * T-05-07: applyCliTerms() on all error messages
18
+ * T-05-08: Confirmation prompt includes domain before destructive delete
19
+ */
20
+ var WebinarSpeakerRemove = class WebinarSpeakerRemove extends require_lib_base_command.AuthenticatedCommand {
21
+ static description = "Remove a speaker from a webinar";
22
+ static examples = ["<%= config.bin %> webinar speaker remove 12345 9900", "<%= config.bin %> webinar speaker remove 12345 9900 --json"];
23
+ static enableJsonFlag = true;
24
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
25
+ static args = {
26
+ webinarId: _oclif_core.Args.string({
27
+ description: "Webinar ID",
28
+ required: true
29
+ }),
30
+ id: _oclif_core.Args.string({
31
+ description: "Speaker ID",
32
+ required: true
33
+ })
34
+ };
35
+ static agentMetadata = {
36
+ api_endpoint: "POST /live/speaker/remove",
37
+ auth_scope: "write",
38
+ output_shape: { type: "none" },
39
+ side_effects: "destructive"
40
+ };
41
+ async run() {
42
+ const { args } = await this.parse(WebinarSpeakerRemove);
43
+ this.printWorkspaceHeader();
44
+ if (!this.jsonEnabled()) {
45
+ const confirmed = await (0, _clack_prompts.confirm)({ message: `Remove speaker ${args.id} from ${this.activeWorkspace.domain}? This cannot be undone.` });
46
+ if ((0, _clack_prompts.isCancel)(confirmed) || !confirmed) process.exit(2);
47
+ }
48
+ const { data, error } = await this.apiClient.POST("/live/speaker/remove", {
49
+ body: {
50
+ live_id: Number(args.webinarId),
51
+ live_speaker_id: Number(args.id)
52
+ },
53
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
54
+ });
55
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
56
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
57
+ ok: true,
58
+ data,
59
+ summary: `Speaker ${args.id} removed`,
60
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
61
+ resource: "speaker",
62
+ id: args.id
63
+ }]
64
+ });
65
+ this.log(chalk.default.green(`Speaker ${args.id} removed`));
66
+ }
67
+ };
68
+ //#endregion
69
+ module.exports = WebinarSpeakerRemove;
@@ -0,0 +1,62 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/webinar/speaker/request-guest.ts
9
+ /**
10
+ * Webinar speaker request-guest command — requests a speaker as a guest.
11
+ *
12
+ * Action command pattern (Decision D-1): outputs a single green success line only.
13
+ *
14
+ * Threat mitigations:
15
+ * T-05-07: applyCliTerms() on all error messages
16
+ */
17
+ var WebinarSpeakerRequestGuest = class WebinarSpeakerRequestGuest extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Request a speaker as a guest";
19
+ static examples = ["<%= config.bin %> webinar speaker request-guest 12345 9900", "<%= config.bin %> webinar speaker request-guest 12345 9900 --json"];
20
+ static enableJsonFlag = true;
21
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
22
+ static args = {
23
+ webinarId: _oclif_core.Args.string({
24
+ description: "Webinar ID",
25
+ required: true
26
+ }),
27
+ id: _oclif_core.Args.string({
28
+ description: "Speaker ID",
29
+ required: true
30
+ })
31
+ };
32
+ static agentMetadata = {
33
+ api_endpoint: "POST /live/speaker/request-guest",
34
+ auth_scope: "write",
35
+ output_shape: { type: "none" },
36
+ side_effects: "creates"
37
+ };
38
+ async run() {
39
+ const { args } = await this.parse(WebinarSpeakerRequestGuest);
40
+ this.printWorkspaceHeader();
41
+ const { data, error } = await this.apiClient.POST("/live/speaker/request-guest", {
42
+ body: {
43
+ live_id: Number(args.webinarId),
44
+ live_speaker_id: Number(args.id)
45
+ },
46
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
47
+ });
48
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
49
+ this.log(chalk.default.green("Guest request sent"));
50
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
51
+ ok: true,
52
+ data,
53
+ summary: "Guest request sent",
54
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
55
+ resource: "speaker",
56
+ id: args.id
57
+ }]
58
+ });
59
+ }
60
+ };
61
+ //#endregion
62
+ module.exports = WebinarSpeakerRequestGuest;
@@ -0,0 +1,62 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/webinar/speaker/send-invitation.ts
9
+ /**
10
+ * Webinar speaker send-invitation command — sends an invitation email to a speaker.
11
+ *
12
+ * Action command pattern (Decision D-1): outputs a single green success line only.
13
+ *
14
+ * Threat mitigations:
15
+ * T-05-07: applyCliTerms() on all error messages
16
+ */
17
+ var WebinarSpeakerSendInvitation = class WebinarSpeakerSendInvitation extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Send an invitation to a speaker";
19
+ static examples = ["<%= config.bin %> webinar speaker send-invitation 12345 9900", "<%= config.bin %> webinar speaker send-invitation 12345 9900 --json"];
20
+ static enableJsonFlag = true;
21
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
22
+ static args = {
23
+ webinarId: _oclif_core.Args.string({
24
+ description: "Webinar ID",
25
+ required: true
26
+ }),
27
+ id: _oclif_core.Args.string({
28
+ description: "Speaker ID",
29
+ required: true
30
+ })
31
+ };
32
+ static agentMetadata = {
33
+ api_endpoint: "POST /live/speaker/send-invitation",
34
+ auth_scope: "write",
35
+ output_shape: { type: "none" },
36
+ side_effects: "updates"
37
+ };
38
+ async run() {
39
+ const { args } = await this.parse(WebinarSpeakerSendInvitation);
40
+ this.printWorkspaceHeader();
41
+ const { data, error } = await this.apiClient.POST("/live/speaker/send-invitation", {
42
+ body: {
43
+ live_id: Number(args.webinarId),
44
+ live_speaker_id: Number(args.id)
45
+ },
46
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
47
+ });
48
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
49
+ this.log(chalk.default.green("Speaker invitation sent"));
50
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
51
+ ok: true,
52
+ data,
53
+ summary: "Speaker invitation sent",
54
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
55
+ resource: "speaker",
56
+ id: args.id
57
+ }]
58
+ });
59
+ }
60
+ };
61
+ //#endregion
62
+ module.exports = WebinarSpeakerSendInvitation;
@@ -0,0 +1,130 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ const require_upload_types = require("../../../upload/types.cjs");
6
+ const require_upload_chunked_upload = require("../../../upload/chunked-upload.cjs");
7
+ let _oclif_core = require("@oclif/core");
8
+ let chalk = require("chalk");
9
+ chalk = require_runtime.__toESM(chalk);
10
+ let node_fs_promises = require("node:fs/promises");
11
+ //#region src/commands/webinar/speaker/set-avatar.ts
12
+ /**
13
+ * Simple inline progress bar that writes directly to stderr using \r.
14
+ * T-05-05: shows only byte counts, never the speaker token.
15
+ */
16
+ var ProgressBar = class {
17
+ lastLen = 0;
18
+ render(bytesUploaded, total, speed) {
19
+ const pct = total > 0 ? Math.floor(bytesUploaded / total * 100) : 0;
20
+ const filled = Math.floor(pct / 5);
21
+ const line = `[${"█".repeat(filled) + "░".repeat(20 - filled)}] ${pct}% | ${require_lib_output.formatBytes(bytesUploaded)} / ${require_lib_output.formatBytes(total)} | ${require_lib_output.formatBytes(speed)}/s`;
22
+ const padding = " ".repeat(Math.max(0, this.lastLen - line.length));
23
+ process.stderr.write(`\r${line}${padding}`);
24
+ this.lastLen = line.length;
25
+ }
26
+ finish() {
27
+ process.stderr.write("\n");
28
+ this.lastLen = 0;
29
+ }
30
+ };
31
+ /**
32
+ * Webinar speaker set-avatar command — uploads an avatar image for a speaker.
33
+ *
34
+ * CRITICAL: tokenFieldName is 'live_speaker_id' (NOT 'live_id') — the upload
35
+ * token value is the speaker ID, not the webinar ID.
36
+ *
37
+ * Threat mitigations:
38
+ * T-05-05: Progress bar shows only byte counts, never the speaker token
39
+ * T-05-06: tokenFieldName explicitly set to 'live_speaker_id'
40
+ * T-05-07: applyCliTerms() on all error messages
41
+ */
42
+ var WebinarSpeakerSetAvatar = class WebinarSpeakerSetAvatar extends require_lib_base_command.AuthenticatedCommand {
43
+ static description = "Upload an avatar image for a speaker";
44
+ static examples = ["<%= config.bin %> webinar speaker set-avatar 12345 9900 ./avatar.jpg", "<%= config.bin %> webinar speaker set-avatar 12345 9900 ./avatar.png --chunk-size 524288"];
45
+ static enableJsonFlag = true;
46
+ static flags = {
47
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
48
+ "chunk-size": _oclif_core.Flags.integer({
49
+ description: `Chunk size in bytes (default: ${require_upload_types.DEFAULT_CHUNK_SIZE})`,
50
+ default: require_upload_types.DEFAULT_CHUNK_SIZE
51
+ }),
52
+ concurrency: _oclif_core.Flags.integer({
53
+ description: `Number of chunks to upload in parallel (default: 5)`,
54
+ default: 5
55
+ })
56
+ };
57
+ static args = {
58
+ webinarId: _oclif_core.Args.string({
59
+ description: "Webinar ID",
60
+ required: true
61
+ }),
62
+ id: _oclif_core.Args.string({
63
+ description: "Speaker ID",
64
+ required: true
65
+ }),
66
+ file: _oclif_core.Args.string({
67
+ description: "Path to image file",
68
+ required: true
69
+ })
70
+ };
71
+ static agentMetadata = {
72
+ api_endpoint: "POST /live/speaker/set-avatar",
73
+ auth_scope: "write",
74
+ output_shape: { type: "none" },
75
+ side_effects: "updates"
76
+ };
77
+ async run() {
78
+ const { args, flags } = await this.parse(WebinarSpeakerSetAvatar);
79
+ this.printWorkspaceHeader();
80
+ try {
81
+ await (0, node_fs_promises.stat)(args.file);
82
+ } catch {
83
+ this.error(require_lib_term_map.applyCliTerms(`File not found: ${args.file}`), { exit: 1 });
84
+ }
85
+ const totalBytes = (await (0, node_fs_promises.stat)(args.file)).size;
86
+ const bar = new ProgressBar();
87
+ const startTime = Date.now();
88
+ let result;
89
+ bar.render(0, totalBytes, 0);
90
+ try {
91
+ result = await require_upload_chunked_upload.uploadChunked({
92
+ filePath: args.file,
93
+ uploadToken: String(args.id),
94
+ tokenFieldName: "live_speaker_id",
95
+ uploadUrl: `${this.apiBaseUrl}live/speaker/set-avatar`,
96
+ bearerToken: this.activeWorkspace.bearer_token || void 0,
97
+ chunkSize: flags["chunk-size"],
98
+ concurrency: flags.concurrency,
99
+ extraFields: { live_id: String(args.webinarId) },
100
+ onProgress(bytesUploaded, total) {
101
+ const elapsed = (Date.now() - startTime) / 1e3;
102
+ const speed = elapsed > 0 ? bytesUploaded / elapsed : 0;
103
+ bar.render(bytesUploaded, total, speed);
104
+ }
105
+ });
106
+ } finally {
107
+ bar.finish();
108
+ }
109
+ this.log(chalk.default.green("Speaker avatar uploaded"));
110
+ this.log(`Speaker ID: ${args.id}`);
111
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
112
+ ok: true,
113
+ data: result,
114
+ summary: "Speaker avatar uploaded",
115
+ breadcrumbs: [
116
+ { domain: this.activeWorkspace.domain },
117
+ {
118
+ resource: "webinar",
119
+ id: args.webinarId
120
+ },
121
+ {
122
+ resource: "speaker",
123
+ id: args.id
124
+ }
125
+ ]
126
+ });
127
+ }
128
+ };
129
+ //#endregion
130
+ module.exports = WebinarSpeakerSetAvatar;
@@ -0,0 +1,95 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ let _clack_prompts = require("@clack/prompts");
9
+ //#region src/commands/webinar/speaker/set-order.ts
10
+ /**
11
+ * Webinar speaker set-order command — sets the display order of a speaker on a webinar.
12
+ *
13
+ * Interactive fallback when --speaker-id or --order are not provided.
14
+ *
15
+ * Threat mitigations:
16
+ * T-05-07: applyCliTerms() on all error messages
17
+ */
18
+ var WebinarSpeakerSetOrder = class WebinarSpeakerSetOrder extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "Set the display order of a speaker on a webinar";
20
+ static examples = [
21
+ "<%= config.bin %> webinar speaker set-order 12345 --speaker-id 9900 --order 1",
22
+ "<%= config.bin %> webinar speaker set-order 12345",
23
+ "<%= config.bin %> webinar speaker set-order 12345 --speaker-id 9900 --order 1 --json"
24
+ ];
25
+ static enableJsonFlag = true;
26
+ static flags = {
27
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
28
+ "speaker-id": _oclif_core.Flags.string({
29
+ description: "Speaker ID",
30
+ required: false
31
+ }),
32
+ order: _oclif_core.Flags.integer({
33
+ description: "New display order (1-based)",
34
+ required: false
35
+ })
36
+ };
37
+ static args = { id: _oclif_core.Args.string({
38
+ description: "Webinar ID",
39
+ required: true
40
+ }) };
41
+ static agentMetadata = {
42
+ api_endpoint: "POST /live/speaker/set-order",
43
+ auth_scope: "write",
44
+ output_shape: { type: "none" },
45
+ side_effects: "updates"
46
+ };
47
+ async run() {
48
+ const { args, flags } = await this.parse(WebinarSpeakerSetOrder);
49
+ this.printWorkspaceHeader();
50
+ let speakerId = flags["speaker-id"];
51
+ let order = flags.order;
52
+ if ((!speakerId || order === void 0) && !this.jsonEnabled()) {
53
+ if (!speakerId) {
54
+ const result = await (0, _clack_prompts.text)({ message: "Speaker ID" });
55
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
56
+ speakerId = result;
57
+ }
58
+ if (order === void 0) {
59
+ const result = await (0, _clack_prompts.text)({ message: "Display order (1-based)" });
60
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
61
+ order = Number(result);
62
+ }
63
+ }
64
+ if (!speakerId) this.error("--speaker-id is required in non-interactive mode", { exit: 1 });
65
+ if (order === void 0) this.error("--order is required in non-interactive mode", { exit: 1 });
66
+ const { data, error } = await this.apiClient.POST("/live/speaker/set-order", {
67
+ body: {
68
+ live_id: Number(args.id),
69
+ live_speaker_id: Number(speakerId),
70
+ order: Number(order)
71
+ },
72
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
73
+ });
74
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
75
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
76
+ ok: true,
77
+ data,
78
+ summary: "Speaker order updated",
79
+ breadcrumbs: [
80
+ { domain: this.activeWorkspace.domain },
81
+ {
82
+ resource: "webinar",
83
+ id: args.id
84
+ },
85
+ {
86
+ resource: "speaker",
87
+ id: speakerId
88
+ }
89
+ ]
90
+ });
91
+ this.log(chalk.default.green("Speaker order updated"));
92
+ }
93
+ };
94
+ //#endregion
95
+ module.exports = WebinarSpeakerSetOrder;
@@ -0,0 +1,90 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/webinar/speaker/update.ts
9
+ /**
10
+ * Webinar speaker update command — updates fields on an existing speaker.
11
+ *
12
+ * CRITICAL: uses live_speaker_id (the speaker ID), NOT live_id.
13
+ * Only fields explicitly provided are included in the body — prevents clearing unset fields.
14
+ *
15
+ * Threat mitigations:
16
+ * T-05-07: applyCliTerms() on all error messages
17
+ */
18
+ var WebinarSpeakerUpdate = class WebinarSpeakerUpdate extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "Update a speaker on a webinar";
20
+ static examples = [
21
+ "<%= config.bin %> webinar speaker update 12345 9900 --name \"Jane Doe\"",
22
+ "<%= config.bin %> webinar speaker update 12345 9900 --email jane@example.com --title \"CTO\"",
23
+ "<%= config.bin %> webinar speaker update 12345 9900 --name \"Jane Doe\" --json"
24
+ ];
25
+ static enableJsonFlag = true;
26
+ static flags = {
27
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
28
+ name: _oclif_core.Flags.string({
29
+ description: "Speaker name",
30
+ required: false
31
+ }),
32
+ email: _oclif_core.Flags.string({
33
+ description: "Speaker email",
34
+ required: false
35
+ }),
36
+ title: _oclif_core.Flags.string({
37
+ description: "Speaker title or job title",
38
+ required: false
39
+ }),
40
+ description: _oclif_core.Flags.string({
41
+ description: "Speaker bio or description",
42
+ required: false
43
+ })
44
+ };
45
+ static args = {
46
+ webinarId: _oclif_core.Args.string({
47
+ description: "Webinar ID",
48
+ required: true
49
+ }),
50
+ id: _oclif_core.Args.string({
51
+ description: "Speaker ID",
52
+ required: true
53
+ })
54
+ };
55
+ static agentMetadata = {
56
+ api_endpoint: "POST /live/speaker/update",
57
+ auth_scope: "write",
58
+ output_shape: { type: "none" },
59
+ side_effects: "updates"
60
+ };
61
+ async run() {
62
+ const { args, flags } = await this.parse(WebinarSpeakerUpdate);
63
+ this.printWorkspaceHeader();
64
+ const body = {
65
+ live_id: Number(args.webinarId),
66
+ live_speaker_id: Number(args.id)
67
+ };
68
+ if (flags.name !== void 0) body.name = flags.name;
69
+ if (flags.email !== void 0) body.email = flags.email;
70
+ if (flags.title !== void 0) body.title = flags.title;
71
+ if (flags.description !== void 0) body.description = flags.description;
72
+ const { data, error } = await this.apiClient.POST("/live/speaker/update", {
73
+ body,
74
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
75
+ });
76
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
77
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
78
+ ok: true,
79
+ data,
80
+ summary: "Speaker updated",
81
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
82
+ resource: "speaker",
83
+ id: args.id
84
+ }]
85
+ });
86
+ this.log(chalk.default.green("Speaker updated"));
87
+ }
88
+ };
89
+ //#endregion
90
+ module.exports = WebinarSpeakerUpdate;