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,60 @@
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/room/connect.ts
7
+ /**
8
+ * Webinar room connect command — gets connection info for a webinar room.
9
+ *
10
+ * NOTE: Uses path /live/webinar/connect NOT /live/room/connect.
11
+ * Cast to any because this path may not be in generated OpenAPI types.
12
+ *
13
+ * Threat mitigations:
14
+ * T-05-12: applyCliTerms() on all error messages
15
+ */
16
+ var WebinarRoomConnect = class WebinarRoomConnect extends require_lib_base_command.AuthenticatedCommand {
17
+ static description = "Get connection info for a webinar room";
18
+ static examples = ["<%= config.bin %> webinar room connect 12345", "<%= config.bin %> webinar room connect 12345 --json"];
19
+ static enableJsonFlag = true;
20
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
21
+ static args = { id: _oclif_core.Args.string({
22
+ description: "Webinar ID",
23
+ required: true
24
+ }) };
25
+ static agentMetadata = {
26
+ api_endpoint: "GET /live/webinar/connect",
27
+ auth_scope: "read",
28
+ output_shape: { type: "key-value" },
29
+ side_effects: "updates"
30
+ };
31
+ async run() {
32
+ const { args } = await this.parse(WebinarRoomConnect);
33
+ this.printWorkspaceHeader();
34
+ const { data, error } = await this.apiClient.GET("/live/webinar/connect", { params: { query: { live_id: Number(args.id) } } });
35
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
36
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
37
+ ok: true,
38
+ data,
39
+ summary: `Connection info for webinar ${args.id}`,
40
+ breadcrumbs: [
41
+ { domain: this.activeWorkspace.domain },
42
+ {
43
+ resource: "webinar",
44
+ id: args.id
45
+ },
46
+ { resource: "room" }
47
+ ]
48
+ });
49
+ const info = data?.data ?? data ?? {};
50
+ const table = require_lib_output.renderTable(["Field", "Value"], [
51
+ ["Connection URL", String(info.connect_url ?? info.url ?? info.room_url ?? "")],
52
+ ["Presenter URL", String(info.presenter_url ?? "")],
53
+ ["Token", String(info.token ?? "")],
54
+ ["Status", String(info.status ?? "")]
55
+ ]);
56
+ this.log(table.toString());
57
+ }
58
+ };
59
+ //#endregion
60
+ module.exports = WebinarRoomConnect;
@@ -0,0 +1,60 @@
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/room/info.ts
7
+ /**
8
+ * Webinar room info command — gets room information for a webinar.
9
+ *
10
+ * NOTE: Room endpoints use path /live/webinar/info NOT /live/room/info.
11
+ * Cast to any because /live/webinar/info may not be in generated OpenAPI types.
12
+ *
13
+ * Threat mitigations:
14
+ * T-05-12: applyCliTerms() on all error messages
15
+ */
16
+ var WebinarRoomInfo = class WebinarRoomInfo extends require_lib_base_command.AuthenticatedCommand {
17
+ static description = "Get room information for a webinar";
18
+ static examples = ["<%= config.bin %> webinar room info 12345", "<%= config.bin %> webinar room info 12345 --json"];
19
+ static enableJsonFlag = true;
20
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
21
+ static args = { id: _oclif_core.Args.string({
22
+ description: "Webinar ID",
23
+ required: true
24
+ }) };
25
+ static agentMetadata = {
26
+ api_endpoint: "GET /live/webinar/info",
27
+ auth_scope: "read",
28
+ output_shape: { type: "key-value" },
29
+ side_effects: "none"
30
+ };
31
+ async run() {
32
+ const { args } = await this.parse(WebinarRoomInfo);
33
+ this.printWorkspaceHeader();
34
+ const { data, error } = await this.apiClient.GET("/live/webinar/info", { params: { query: { live_id: Number(args.id) } } });
35
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
36
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
37
+ ok: true,
38
+ data,
39
+ summary: `Room info for webinar ${args.id}`,
40
+ breadcrumbs: [
41
+ { domain: this.activeWorkspace.domain },
42
+ {
43
+ resource: "webinar",
44
+ id: args.id
45
+ },
46
+ { resource: "room" }
47
+ ]
48
+ });
49
+ const info = data?.data ?? data ?? {};
50
+ const table = require_lib_output.renderTable(["Field", "Value"], [
51
+ ["Room URL", String(info.room_url ?? info.url ?? "")],
52
+ ["Status", String(info.status ?? info.live_status ?? "")],
53
+ ["Title", String(info.name ?? info.title ?? "")],
54
+ ["Created", String(info.created_at ?? info.creation_date_text ?? "")]
55
+ ]);
56
+ this.log(table.toString());
57
+ }
58
+ };
59
+ //#endregion
60
+ module.exports = WebinarRoomInfo;
@@ -0,0 +1,59 @@
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/room/send-recording.ts
9
+ /**
10
+ * Webinar room send-recording command — sends a recording from the webinar room.
11
+ *
12
+ * Action command pattern (Decision D-1): outputs a single green success line only.
13
+ * NOTE: Uses path /live/webinar/send-recording NOT /live/room/send-recording.
14
+ * Cast to any because this path may not be in generated OpenAPI types.
15
+ *
16
+ * Threat mitigations:
17
+ * T-05-12: applyCliTerms() on all error messages
18
+ */
19
+ var WebinarRoomSendRecording = class WebinarRoomSendRecording extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Send a recording from the webinar room";
21
+ static examples = ["<%= config.bin %> webinar room send-recording 12345", "<%= config.bin %> webinar room send-recording 12345 --json"];
22
+ static enableJsonFlag = true;
23
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
24
+ static args = { id: _oclif_core.Args.string({
25
+ description: "Webinar ID",
26
+ required: true
27
+ }) };
28
+ static agentMetadata = {
29
+ api_endpoint: "POST /live/webinar/send-recording",
30
+ auth_scope: "write",
31
+ output_shape: { type: "none" },
32
+ side_effects: "updates"
33
+ };
34
+ async run() {
35
+ const { args } = await this.parse(WebinarRoomSendRecording);
36
+ this.printWorkspaceHeader();
37
+ const { data, error } = await this.apiClient.POST("/live/webinar/send-recording", {
38
+ body: { live_id: Number(args.id) },
39
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
40
+ });
41
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
42
+ this.log(chalk.default.green("Recording sent"));
43
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
44
+ ok: true,
45
+ data,
46
+ summary: "Recording sent",
47
+ breadcrumbs: [
48
+ { domain: this.activeWorkspace.domain },
49
+ {
50
+ resource: "webinar",
51
+ id: args.id
52
+ },
53
+ { resource: "room" }
54
+ ]
55
+ });
56
+ }
57
+ };
58
+ //#endregion
59
+ module.exports = WebinarRoomSendRecording;
@@ -0,0 +1,63 @@
1
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
2
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
3
+ const require_lib_output = require("../../../lib/output.cjs");
4
+ //#region src/commands/webinar/room/themes.ts
5
+ /**
6
+ * Webinar room themes command — lists available room themes.
7
+ *
8
+ * Workspace-scoped command — no webinar ID arg needed.
9
+ * NOTE: Uses path /live/webinar/room-themes NOT /live/room/themes.
10
+ * Cast to any because this path may not be in generated OpenAPI types.
11
+ *
12
+ * Threat mitigations:
13
+ * T-05-12: applyCliTerms() on all error messages
14
+ */
15
+ var WebinarRoomThemes = class WebinarRoomThemes extends require_lib_base_command.AuthenticatedCommand {
16
+ static description = "List available room themes";
17
+ static examples = ["<%= config.bin %> webinar room themes", "<%= config.bin %> webinar room themes --json"];
18
+ static enableJsonFlag = true;
19
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
20
+ static args = {};
21
+ static agentMetadata = {
22
+ api_endpoint: "GET /live/webinar/room-themes",
23
+ auth_scope: "read",
24
+ output_shape: {
25
+ type: "table",
26
+ columns: [
27
+ "ID",
28
+ "Name",
29
+ "Description"
30
+ ]
31
+ },
32
+ side_effects: "none"
33
+ };
34
+ async run() {
35
+ await this.parse(WebinarRoomThemes);
36
+ this.printWorkspaceHeader();
37
+ const { data, error } = await this.apiClient.GET("/live/webinar/room-themes", { params: { query: {} } });
38
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
39
+ const items = Array.isArray(data?.data) ? data.data : data?.data ? [data.data] : Array.isArray(data) ? data : [];
40
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
41
+ ok: true,
42
+ data: items,
43
+ summary: `${items.length} theme${items.length === 1 ? "" : "s"} available`,
44
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "room-theme" }]
45
+ });
46
+ if (items.length === 0) {
47
+ this.log("No room themes found.");
48
+ return;
49
+ }
50
+ const table = require_lib_output.renderTable([
51
+ "ID",
52
+ "Name",
53
+ "Description"
54
+ ], items.map((t) => [
55
+ String(t.theme_id ?? t.id ?? ""),
56
+ String(t.name ?? t.title ?? ""),
57
+ String(t.description ?? "")
58
+ ]));
59
+ this.log(table.toString());
60
+ }
61
+ };
62
+ //#endregion
63
+ module.exports = WebinarRoomThemes;
@@ -0,0 +1,98 @@
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/section/add.ts
10
+ /**
11
+ * Webinar section add command — adds an agenda section to a webinar.
12
+ *
13
+ * Uses live_id to identify the webinar.
14
+ * Falls back to interactive prompt for title if not provided via flag.
15
+ *
16
+ * Threat mitigations:
17
+ * T-05-03: applyCliTerms() on all error messages — no 'live'/'photo'/'album' leaks
18
+ */
19
+ var WebinarSectionAdd = class WebinarSectionAdd extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Add an agenda section to a webinar";
21
+ static examples = [
22
+ "<%= config.bin %> webinar section add 12345 --title \"Introduction\"",
23
+ "<%= config.bin %> webinar section add 12345 --title \"Q&A\" --start-time 3600",
24
+ "<%= config.bin %> webinar section add 12345 --title \"Welcome\" --description \"Opening remarks\" --json"
25
+ ];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ title: _oclif_core.Flags.string({
30
+ description: "Section title",
31
+ required: false
32
+ }),
33
+ description: _oclif_core.Flags.string({
34
+ description: "Section description",
35
+ required: false
36
+ }),
37
+ "start-time": _oclif_core.Flags.string({
38
+ description: "Start time in seconds",
39
+ required: false
40
+ })
41
+ };
42
+ static args = { id: _oclif_core.Args.string({
43
+ description: "Webinar ID",
44
+ required: true
45
+ }) };
46
+ static agentMetadata = {
47
+ api_endpoint: "POST /live/section/add",
48
+ auth_scope: "write",
49
+ output_shape: { type: "key-value" },
50
+ side_effects: "creates"
51
+ };
52
+ async run() {
53
+ const { args, flags } = await this.parse(WebinarSectionAdd);
54
+ this.printWorkspaceHeader();
55
+ let title = flags.title;
56
+ if (!title && !this.jsonEnabled()) {
57
+ const result = await (0, _clack_prompts.text)({ message: "Section title" });
58
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
59
+ title = result;
60
+ }
61
+ if (!title) this.error("--title is required in non-interactive mode", { exit: 1 });
62
+ const body = {
63
+ live_id: Number(args.id),
64
+ title
65
+ };
66
+ if (flags.description !== void 0) body.description = flags.description;
67
+ if (flags["start-time"] !== void 0) body.start_time = flags["start-time"];
68
+ const { data, error } = await this.apiClient.POST("/live/section/add", {
69
+ body,
70
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
71
+ });
72
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
73
+ const liveSectionId = data?.data?.live_section_id ?? data?.live_section_id;
74
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
75
+ ok: true,
76
+ data,
77
+ summary: "Section added",
78
+ breadcrumbs: [
79
+ { domain: this.activeWorkspace.domain },
80
+ {
81
+ resource: "webinar",
82
+ id: args.id
83
+ },
84
+ {
85
+ resource: "section",
86
+ id: String(liveSectionId ?? "")
87
+ }
88
+ ]
89
+ });
90
+ this.log(chalk.default.green("Section added"));
91
+ if (liveSectionId) {
92
+ this.log(`ID: ${liveSectionId}`);
93
+ this.log(`Admin: https://${this.activeWorkspace.domain}/manage/webinar/${args.id}`);
94
+ }
95
+ }
96
+ };
97
+ //#endregion
98
+ module.exports = WebinarSectionAdd;
@@ -0,0 +1,86 @@
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/section/list.ts
7
+ /**
8
+ * Webinar section list command — lists all agenda sections for a webinar.
9
+ *
10
+ * Token is auto-looked up via fetchWebinarToken if not supplied via --token.
11
+ *
12
+ * Threat mitigations:
13
+ * T-05-03: applyCliTerms() on all error messages — no 'live'/'photo'/'album' leaks
14
+ */
15
+ var WebinarSectionList = class WebinarSectionList extends require_lib_base_command.AuthenticatedCommand {
16
+ static description = "List agenda sections for a webinar";
17
+ static examples = ["<%= config.bin %> webinar section list 12345", "<%= config.bin %> webinar section 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/section/list",
32
+ auth_scope: "read",
33
+ output_shape: {
34
+ type: "table",
35
+ columns: [
36
+ "ID",
37
+ "Title",
38
+ "Start Time",
39
+ "Description"
40
+ ]
41
+ },
42
+ side_effects: "none"
43
+ };
44
+ async run() {
45
+ const { args, flags } = await this.parse(WebinarSectionList);
46
+ this.printWorkspaceHeader();
47
+ const token = flags.token ?? await this.fetchWebinarToken(Number(args.id));
48
+ const { data, error } = await this.apiClient.GET("/live/section/list", { params: { query: {
49
+ live_id: Number(args.id),
50
+ token
51
+ } } });
52
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
53
+ const sections = data?.sections ?? data?.data ?? [];
54
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
55
+ ok: true,
56
+ data: sections,
57
+ summary: `${sections.length} section${sections.length === 1 ? "" : "s"}`,
58
+ breadcrumbs: [
59
+ { domain: this.activeWorkspace.domain },
60
+ {
61
+ resource: "webinar",
62
+ id: args.id
63
+ },
64
+ { resource: "section" }
65
+ ]
66
+ });
67
+ if (sections.length === 0) {
68
+ this.log("No sections found.");
69
+ return;
70
+ }
71
+ const table = require_lib_output.renderTable([
72
+ "ID",
73
+ "Title",
74
+ "Start Time",
75
+ "Description"
76
+ ], sections.map((s) => [
77
+ String(s.live_section_id ?? s.id ?? ""),
78
+ String(s.title ?? ""),
79
+ s.start_time !== void 0 ? `${s.start_time}s` : "",
80
+ String(s.description ?? "")
81
+ ]));
82
+ this.log(table.toString());
83
+ }
84
+ };
85
+ //#endregion
86
+ module.exports = WebinarSectionList;
@@ -0,0 +1,75 @@
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/section/remove.ts
10
+ /**
11
+ * Webinar section remove command — removes an agenda section.
12
+ *
13
+ * CRITICAL: uses `live_section_id` (the section's own ID), NOT `live_id`.
14
+ * Prompts for confirmation before removing (domain name included).
15
+ *
16
+ * Threat mitigations:
17
+ * T-05-03: applyCliTerms() on all error messages — no 'live'/'photo'/'album' leaks
18
+ */
19
+ var WebinarSectionRemove = class WebinarSectionRemove extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Remove an agenda section from a webinar";
21
+ static examples = ["<%= config.bin %> webinar section remove 12345 99", "<%= config.bin %> webinar section remove 12345 99 --json"];
22
+ static enableJsonFlag = true;
23
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
24
+ static args = {
25
+ webinarId: _oclif_core.Args.string({
26
+ description: "Webinar ID",
27
+ required: true
28
+ }),
29
+ id: _oclif_core.Args.string({
30
+ description: "Section ID",
31
+ required: true
32
+ })
33
+ };
34
+ static agentMetadata = {
35
+ api_endpoint: "POST /live/section/remove",
36
+ auth_scope: "write",
37
+ output_shape: { type: "none" },
38
+ side_effects: "destructive"
39
+ };
40
+ async run() {
41
+ const { args } = await this.parse(WebinarSectionRemove);
42
+ this.printWorkspaceHeader();
43
+ if (!this.jsonEnabled()) {
44
+ const confirmed = await (0, _clack_prompts.confirm)({ message: `Remove section ${args.id} from ${this.activeWorkspace.domain}? This cannot be undone.` });
45
+ if ((0, _clack_prompts.isCancel)(confirmed) || !confirmed) process.exit(2);
46
+ }
47
+ const { data, error } = await this.apiClient.POST("/live/section/remove", {
48
+ body: {
49
+ live_id: Number(args.webinarId),
50
+ live_section_id: Number(args.id)
51
+ },
52
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
53
+ });
54
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
55
+ this.log(chalk.default.green(`Section ${args.id} removed`));
56
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
57
+ ok: true,
58
+ data,
59
+ summary: `Section ${args.id} removed`,
60
+ breadcrumbs: [
61
+ { domain: this.activeWorkspace.domain },
62
+ {
63
+ resource: "webinar",
64
+ id: args.webinarId
65
+ },
66
+ {
67
+ resource: "section",
68
+ id: args.id
69
+ }
70
+ ]
71
+ });
72
+ }
73
+ };
74
+ //#endregion
75
+ module.exports = WebinarSectionRemove;
@@ -0,0 +1,85 @@
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/section/update.ts
9
+ /**
10
+ * Webinar section update command — updates an existing agenda section.
11
+ *
12
+ * CRITICAL: uses `live_section_id` (the section's own ID), NOT `live_id`.
13
+ * Only includes fields in the body where flags are defined — prevents clearing unset fields.
14
+ *
15
+ * Threat mitigations:
16
+ * T-05-03: applyCliTerms() on all error messages — no 'live'/'photo'/'album' leaks
17
+ */
18
+ var WebinarSectionUpdate = class WebinarSectionUpdate extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "Update an agenda section";
20
+ static examples = [
21
+ "<%= config.bin %> webinar section update 12345 99 --title \"Updated Title\"",
22
+ "<%= config.bin %> webinar section update 12345 99 --start-time 1800",
23
+ "<%= config.bin %> webinar section update 12345 99 --title \"Q&A\" --description \"Audience questions\" --json"
24
+ ];
25
+ static enableJsonFlag = true;
26
+ static flags = {
27
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
28
+ title: _oclif_core.Flags.string({
29
+ description: "New section title",
30
+ required: false
31
+ }),
32
+ description: _oclif_core.Flags.string({
33
+ description: "New section description",
34
+ required: false
35
+ }),
36
+ "start-time": _oclif_core.Flags.string({
37
+ description: "New start time in seconds",
38
+ required: false
39
+ })
40
+ };
41
+ static args = {
42
+ webinarId: _oclif_core.Args.string({
43
+ description: "Webinar ID",
44
+ required: true
45
+ }),
46
+ id: _oclif_core.Args.string({
47
+ description: "Section ID",
48
+ required: true
49
+ })
50
+ };
51
+ static agentMetadata = {
52
+ api_endpoint: "POST /live/section/update",
53
+ auth_scope: "write",
54
+ output_shape: { type: "none" },
55
+ side_effects: "updates"
56
+ };
57
+ async run() {
58
+ const { args, flags } = await this.parse(WebinarSectionUpdate);
59
+ this.printWorkspaceHeader();
60
+ const body = {
61
+ live_id: Number(args.webinarId),
62
+ live_section_id: Number(args.id)
63
+ };
64
+ if (flags.title !== void 0) body.title = flags.title;
65
+ if (flags.description !== void 0) body.description = flags.description;
66
+ if (flags["start-time"] !== void 0) body.start_time = flags["start-time"];
67
+ const { data, error } = await this.apiClient.POST("/live/section/update", {
68
+ body,
69
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
70
+ });
71
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
72
+ this.log(chalk.default.green("Section updated"));
73
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
74
+ ok: true,
75
+ data,
76
+ summary: "Section updated",
77
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
78
+ resource: "section",
79
+ id: args.id
80
+ }]
81
+ });
82
+ }
83
+ };
84
+ //#endregion
85
+ module.exports = WebinarSectionUpdate;
@@ -0,0 +1,68 @@
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/series/apply-recurrence.ts
10
+ /**
11
+ * Webinar series apply-recurrence command — applies a recurrence to a series.
12
+ *
13
+ * NOTE: Uses GET method per API types.
14
+ * Falls back to interactive prompt for recurrence-id if not provided.
15
+ *
16
+ * Threat mitigations:
17
+ * T-05-16: applyCliTerms() on all error messages
18
+ */
19
+ var WebinarSeriesApplyRecurrence = class WebinarSeriesApplyRecurrence extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Apply a recurrence to a webinar series";
21
+ static examples = ["<%= config.bin %> webinar series apply-recurrence 42 --recurrence-id 7", "<%= config.bin %> webinar series apply-recurrence 42 --recurrence-id 7 --json"];
22
+ static enableJsonFlag = true;
23
+ static flags = {
24
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
25
+ "recurrence-id": _oclif_core.Flags.string({
26
+ description: "Recurrence ID",
27
+ required: false
28
+ })
29
+ };
30
+ static args = { id: _oclif_core.Args.string({
31
+ description: "Series ID",
32
+ required: true
33
+ }) };
34
+ static agentMetadata = {
35
+ api_endpoint: "GET /live/series/apply-recurrence",
36
+ auth_scope: "write",
37
+ output_shape: { type: "none" },
38
+ side_effects: "updates"
39
+ };
40
+ async run() {
41
+ const { args, flags } = await this.parse(WebinarSeriesApplyRecurrence);
42
+ this.printWorkspaceHeader();
43
+ let recurrenceId = flags["recurrence-id"];
44
+ if (!recurrenceId && !this.jsonEnabled()) {
45
+ const result = await (0, _clack_prompts.text)({ message: "Recurrence ID" });
46
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
47
+ recurrenceId = result;
48
+ }
49
+ if (!recurrenceId) this.error("--recurrence-id is required in non-interactive mode", { exit: 1 });
50
+ const { data, error } = await this.apiClient.GET("/live/series/apply-recurrence", { params: { query: {
51
+ live_series_id: Number(args.id),
52
+ recurrence_id: Number(recurrenceId)
53
+ } } });
54
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
55
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
56
+ ok: true,
57
+ data,
58
+ summary: "Recurrence applied",
59
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
60
+ resource: "series",
61
+ id: args.id
62
+ }]
63
+ });
64
+ this.log(chalk.default.green("Recurrence applied"));
65
+ }
66
+ };
67
+ //#endregion
68
+ module.exports = WebinarSeriesApplyRecurrence;