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,86 @@
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/mail/test.ts
10
+ /**
11
+ * Webinar mail test command — sends a test email to a specified address.
12
+ *
13
+ * Action command pattern (Decision D-1): outputs a single green success line only.
14
+ * Interactive fallback when --email not provided (Decision D-2).
15
+ *
16
+ * Threat mitigations:
17
+ * T-05-07: applyCliTerms() on all error messages
18
+ */
19
+ var WebinarMailTest = class WebinarMailTest extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Send a test email";
21
+ static examples = [
22
+ "<%= config.bin %> webinar mail test 555 --webinar-id 12345 --email me@example.com",
23
+ "<%= config.bin %> webinar mail test 555 --series-id 67890",
24
+ "<%= config.bin %> webinar mail test 555 --webinar-id 12345 --email me@example.com --json"
25
+ ];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ "webinar-id": _oclif_core.Flags.string({
30
+ description: "Webinar ID (mutually exclusive with --series-id)",
31
+ exclusive: ["series-id"]
32
+ }),
33
+ "series-id": _oclif_core.Flags.string({
34
+ description: "Series ID (mutually exclusive with --webinar-id)",
35
+ exclusive: ["webinar-id"]
36
+ }),
37
+ email: _oclif_core.Flags.string({
38
+ description: "Recipient email for test",
39
+ required: false
40
+ })
41
+ };
42
+ static args = { id: _oclif_core.Args.string({
43
+ description: "Mail ID",
44
+ required: true
45
+ }) };
46
+ static agentMetadata = {
47
+ api_endpoint: "POST /live/mail/test",
48
+ auth_scope: "write",
49
+ output_shape: { type: "none" },
50
+ side_effects: "updates"
51
+ };
52
+ async run() {
53
+ const { args, flags } = await this.parse(WebinarMailTest);
54
+ this.printWorkspaceHeader();
55
+ const contextField = flags["webinar-id"] ? { live_id: Number(flags["webinar-id"]) } : flags["series-id"] ? { live_series_id: Number(flags["series-id"]) } : null;
56
+ if (!contextField) this.error(require_lib_term_map.applyCliTerms("Either --webinar-id or --series-id is required"), { exit: 1 });
57
+ let email = flags.email;
58
+ if (!email && !this.jsonEnabled()) {
59
+ const result = await (0, _clack_prompts.text)({ message: "Recipient email for test" });
60
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
61
+ email = result;
62
+ }
63
+ if (!email) this.error("--email is required in non-interactive mode", { exit: 1 });
64
+ const { data, error } = await this.apiClient.POST("/live/mail/test", {
65
+ body: {
66
+ ...contextField,
67
+ live_mail_id: Number(args.id),
68
+ email
69
+ },
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
+ this.log(chalk.default.green("Test email sent"));
74
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
75
+ ok: true,
76
+ data,
77
+ summary: "Test email sent",
78
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
79
+ resource: "mail",
80
+ id: args.id
81
+ }]
82
+ });
83
+ }
84
+ };
85
+ //#endregion
86
+ module.exports = WebinarMailTest;
@@ -0,0 +1,84 @@
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/mail/update.ts
9
+ /**
10
+ * Webinar mail update command — updates fields on an existing webinar email.
11
+ *
12
+ * CRITICAL: uses live_mail_id (the mail 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 WebinarMailUpdate = class WebinarMailUpdate extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "Update a webinar email";
20
+ static examples = [
21
+ "<%= config.bin %> webinar mail update 555 --webinar-id 12345 --subject \"Updated Subject\"",
22
+ "<%= config.bin %> webinar mail update 555 --series-id 67890 --message \"New content\"",
23
+ "<%= config.bin %> webinar mail update 555 --webinar-id 12345 --subject \"Updated\" --json"
24
+ ];
25
+ static enableJsonFlag = true;
26
+ static flags = {
27
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
28
+ "webinar-id": _oclif_core.Flags.string({
29
+ description: "Webinar ID (mutually exclusive with --series-id)",
30
+ exclusive: ["series-id"]
31
+ }),
32
+ "series-id": _oclif_core.Flags.string({
33
+ description: "Series ID (mutually exclusive with --webinar-id)",
34
+ exclusive: ["webinar-id"]
35
+ }),
36
+ subject: _oclif_core.Flags.string({
37
+ description: "Email subject",
38
+ required: false
39
+ }),
40
+ message: _oclif_core.Flags.string({
41
+ description: "Email message body",
42
+ required: false
43
+ })
44
+ };
45
+ static args = { id: _oclif_core.Args.string({
46
+ description: "Mail ID",
47
+ required: true
48
+ }) };
49
+ static agentMetadata = {
50
+ api_endpoint: "POST /live/mail/update",
51
+ auth_scope: "write",
52
+ output_shape: { type: "none" },
53
+ side_effects: "updates"
54
+ };
55
+ async run() {
56
+ const { args, flags } = await this.parse(WebinarMailUpdate);
57
+ this.printWorkspaceHeader();
58
+ const contextField = flags["webinar-id"] ? { live_id: Number(flags["webinar-id"]) } : flags["series-id"] ? { live_series_id: Number(flags["series-id"]) } : null;
59
+ if (!contextField) this.error(require_lib_term_map.applyCliTerms("Either --webinar-id or --series-id is required"), { exit: 1 });
60
+ const body = {
61
+ ...contextField,
62
+ live_mail_id: Number(args.id)
63
+ };
64
+ if (flags.subject !== void 0) body.subject = flags.subject;
65
+ if (flags.message !== void 0) body.message = flags.message;
66
+ const { data, error } = await this.apiClient.POST("/live/mail/update", {
67
+ body,
68
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
69
+ });
70
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
71
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
72
+ ok: true,
73
+ data,
74
+ summary: "Mail updated",
75
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
76
+ resource: "mail",
77
+ id: args.id
78
+ }]
79
+ });
80
+ this.log(chalk.default.green("Mail updated"));
81
+ }
82
+ };
83
+ //#endregion
84
+ module.exports = WebinarMailUpdate;
@@ -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/metrics.ts
9
+ /**
10
+ * Webinar metrics command — retrieves aggregate metrics for a webinar.
11
+ *
12
+ * CRITICAL: API response uses `formated` (one t) not `formatted` for the display value.
13
+ * Falls back to `value` if `formated` is absent.
14
+ */
15
+ var WebinarMetrics = class WebinarMetrics extends require_lib_base_command.AuthenticatedCommand {
16
+ static description = "Retrieve metrics for a webinar";
17
+ static examples = ["<%= config.bin %> webinar metrics 12345", "<%= config.bin %> webinar metrics 12345 --json"];
18
+ static enableJsonFlag = true;
19
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
20
+ static args = { id: _oclif_core.Args.string({
21
+ description: "Webinar ID",
22
+ required: true
23
+ }) };
24
+ static agentMetadata = {
25
+ api_endpoint: "GET /live/metrics",
26
+ auth_scope: "read",
27
+ output_shape: {
28
+ type: "table",
29
+ columns: ["Metric", "Value"]
30
+ },
31
+ side_effects: "none"
32
+ };
33
+ async run() {
34
+ const { args } = await this.parse(WebinarMetrics);
35
+ this.printWorkspaceHeader();
36
+ const { data, error } = await this.apiClient.GET("/live/metrics", { params: { query: { live_id: Number(args.id) } } });
37
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
38
+ const resp = data;
39
+ const metrics = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
40
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
41
+ ok: true,
42
+ data: metrics,
43
+ summary: `${metrics.length} metric${metrics.length === 1 ? "" : "s"}`,
44
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
45
+ resource: "webinar",
46
+ id: args.id
47
+ }]
48
+ });
49
+ if (metrics.length === 0) {
50
+ this.log("No metrics available.");
51
+ return;
52
+ }
53
+ const table = require_lib_output.renderTable(["Metric", "Value"], metrics.map((m) => [require_lib_term_map.applyCliTerms(String(m.metric ?? "")), String(m.formated ?? m.value ?? "")]));
54
+ this.log(table.toString());
55
+ this.log(chalk.default.dim(`${metrics.length} metric${metrics.length === 1 ? "" : "s"}`));
56
+ }
57
+ };
58
+ //#endregion
59
+ module.exports = WebinarMetrics;
@@ -0,0 +1,81 @@
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/queued-video/add.ts
10
+ /**
11
+ * Webinar queued-video add command — adds a queued video to a webinar.
12
+ *
13
+ * Action command pattern (Decision D-1): outputs a single green success line only.
14
+ *
15
+ * CRITICAL terminology mapping (T-05-13):
16
+ * CLI flag: --video-id (user-facing, maps to "video" terminology)
17
+ * API body field: photo_id (internal API term)
18
+ *
19
+ * Threat mitigations:
20
+ * T-05-12: applyCliTerms() on all error messages
21
+ * T-05-13: Validate video-id is numeric before sending as photo_id
22
+ */
23
+ var WebinarQueuedVideoAdd = class WebinarQueuedVideoAdd extends require_lib_base_command.AuthenticatedCommand {
24
+ static description = "Add a queued video to a webinar";
25
+ static examples = ["<%= config.bin %> webinar queued-video add 12345 --video-id 67890", "<%= config.bin %> webinar queued-video add 12345 --video-id 67890 --json"];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ "video-id": _oclif_core.Flags.string({
30
+ description: "Video ID to queue",
31
+ required: false
32
+ })
33
+ };
34
+ static args = { id: _oclif_core.Args.string({
35
+ description: "Webinar ID",
36
+ required: true
37
+ }) };
38
+ static agentMetadata = {
39
+ api_endpoint: "POST /live/queuedvideos/add",
40
+ auth_scope: "write",
41
+ output_shape: { type: "none" },
42
+ side_effects: "creates"
43
+ };
44
+ async run() {
45
+ const { args, flags } = await this.parse(WebinarQueuedVideoAdd);
46
+ this.printWorkspaceHeader();
47
+ let videoId = flags["video-id"];
48
+ if (!videoId && !this.jsonEnabled()) {
49
+ const result = await (0, _clack_prompts.text)({ message: "Video ID to queue" });
50
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
51
+ videoId = result;
52
+ }
53
+ if (!videoId) this.error("--video-id is required in non-interactive mode", { exit: 1 });
54
+ const photoId = Number(videoId);
55
+ if (!Number.isFinite(photoId) || photoId <= 0) this.error("--video-id must be a positive integer", { exit: 1 });
56
+ const { data, error } = await this.apiClient.POST("/live/queuedvideos/add", {
57
+ body: {
58
+ live_id: Number(args.id),
59
+ photo_id: photoId
60
+ },
61
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
62
+ });
63
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
64
+ this.log(chalk.default.green("Video queued"));
65
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
66
+ ok: true,
67
+ data,
68
+ summary: "Video queued",
69
+ breadcrumbs: [
70
+ { domain: this.activeWorkspace.domain },
71
+ {
72
+ resource: "webinar",
73
+ id: args.id
74
+ },
75
+ { resource: "queued-video" }
76
+ ]
77
+ });
78
+ }
79
+ };
80
+ //#endregion
81
+ module.exports = WebinarQueuedVideoAdd;
@@ -0,0 +1,81 @@
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/queued-video/remove.ts
10
+ /**
11
+ * Webinar queued-video remove command — removes a queued video from a webinar.
12
+ *
13
+ * Action command pattern (Decision D-1): outputs a single green success line only.
14
+ *
15
+ * CRITICAL terminology mapping:
16
+ * CLI flag: --video-id (user-facing, maps to "video" terminology)
17
+ * API body field: photo_id (internal API term)
18
+ *
19
+ * Threat mitigations:
20
+ * T-05-12: applyCliTerms() on all error messages
21
+ * T-05-13: Validate video-id is numeric before sending as photo_id
22
+ */
23
+ var WebinarQueuedVideoRemove = class WebinarQueuedVideoRemove extends require_lib_base_command.AuthenticatedCommand {
24
+ static description = "Remove a queued video from a webinar";
25
+ static examples = ["<%= config.bin %> webinar queued-video remove 12345 --video-id 67890", "<%= config.bin %> webinar queued-video remove 12345 --video-id 67890 --json"];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ "video-id": _oclif_core.Flags.string({
30
+ description: "Video ID to remove from queue",
31
+ required: false
32
+ })
33
+ };
34
+ static args = { id: _oclif_core.Args.string({
35
+ description: "Webinar ID",
36
+ required: true
37
+ }) };
38
+ static agentMetadata = {
39
+ api_endpoint: "POST /live/queuedvideos/remove",
40
+ auth_scope: "write",
41
+ output_shape: { type: "none" },
42
+ side_effects: "destructive"
43
+ };
44
+ async run() {
45
+ const { args, flags } = await this.parse(WebinarQueuedVideoRemove);
46
+ this.printWorkspaceHeader();
47
+ let videoId = flags["video-id"];
48
+ if (!videoId && !this.jsonEnabled()) {
49
+ const result = await (0, _clack_prompts.text)({ message: "Video ID to remove from queue" });
50
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
51
+ videoId = result;
52
+ }
53
+ if (!videoId) this.error("--video-id is required in non-interactive mode", { exit: 1 });
54
+ const photoId = Number(videoId);
55
+ if (!Number.isFinite(photoId) || photoId <= 0) this.error("--video-id must be a positive integer", { exit: 1 });
56
+ const { data, error } = await this.apiClient.POST("/live/queuedvideos/remove", {
57
+ body: {
58
+ live_id: Number(args.id),
59
+ photo_id: photoId
60
+ },
61
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
62
+ });
63
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
64
+ this.log(chalk.default.green("Video removed from queue"));
65
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
66
+ ok: true,
67
+ data,
68
+ summary: "Video removed from queue",
69
+ breadcrumbs: [
70
+ { domain: this.activeWorkspace.domain },
71
+ {
72
+ resource: "webinar",
73
+ id: args.id
74
+ },
75
+ { resource: "queued-video" }
76
+ ]
77
+ });
78
+ }
79
+ };
80
+ //#endregion
81
+ module.exports = WebinarQueuedVideoRemove;
@@ -0,0 +1,53 @@
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/recording/split.ts
9
+ /**
10
+ * Webinar recording split command — splits the current recording into a new segment.
11
+ *
12
+ * Action command pattern (Decision D-1): outputs a single green success line only.
13
+ *
14
+ * Threat mitigations:
15
+ * T-05-12: applyCliTerms() on all error messages — no 'live'/'photo'/'album' leaks
16
+ */
17
+ var WebinarRecordingSplit = class WebinarRecordingSplit extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Split the current recording into a new segment";
19
+ static examples = ["<%= config.bin %> webinar recording split 12345", "<%= config.bin %> webinar recording split 12345 --json"];
20
+ static enableJsonFlag = true;
21
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
22
+ static args = { id: _oclif_core.Args.string({
23
+ description: "Webinar ID",
24
+ required: true
25
+ }) };
26
+ static agentMetadata = {
27
+ api_endpoint: "POST /live/recording/split",
28
+ auth_scope: "write",
29
+ output_shape: { type: "none" },
30
+ side_effects: "updates"
31
+ };
32
+ async run() {
33
+ const { args } = await this.parse(WebinarRecordingSplit);
34
+ this.printWorkspaceHeader();
35
+ const { data, error } = await this.apiClient.POST("/live/recording/split", {
36
+ body: { live_id: Number(args.id) },
37
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
38
+ });
39
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
40
+ this.log(chalk.default.green("Recording split"));
41
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
42
+ ok: true,
43
+ data,
44
+ summary: "Recording split",
45
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
46
+ resource: "webinar",
47
+ id: args.id
48
+ }]
49
+ });
50
+ }
51
+ };
52
+ //#endregion
53
+ module.exports = WebinarRecordingSplit;
@@ -0,0 +1,53 @@
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/recording/start.ts
9
+ /**
10
+ * Webinar recording start command — starts recording a webinar.
11
+ *
12
+ * Action command pattern (Decision D-1): outputs a single green success line only.
13
+ *
14
+ * Threat mitigations:
15
+ * T-05-12: applyCliTerms() on all error messages — no 'live'/'photo'/'album' leaks
16
+ */
17
+ var WebinarRecordingStart = class WebinarRecordingStart extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Start recording a webinar";
19
+ static examples = ["<%= config.bin %> webinar recording start 12345", "<%= config.bin %> webinar recording start 12345 --json"];
20
+ static enableJsonFlag = true;
21
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
22
+ static args = { id: _oclif_core.Args.string({
23
+ description: "Webinar ID",
24
+ required: true
25
+ }) };
26
+ static agentMetadata = {
27
+ api_endpoint: "POST /live/recording/start",
28
+ auth_scope: "write",
29
+ output_shape: { type: "none" },
30
+ side_effects: "updates"
31
+ };
32
+ async run() {
33
+ const { args } = await this.parse(WebinarRecordingStart);
34
+ this.printWorkspaceHeader();
35
+ const { data, error } = await this.apiClient.POST("/live/recording/start", {
36
+ body: { live_id: Number(args.id) },
37
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
38
+ });
39
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
40
+ this.log(chalk.default.green("Recording started"));
41
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
42
+ ok: true,
43
+ data,
44
+ summary: "Recording started",
45
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
46
+ resource: "webinar",
47
+ id: args.id
48
+ }]
49
+ });
50
+ }
51
+ };
52
+ //#endregion
53
+ module.exports = WebinarRecordingStart;
@@ -0,0 +1,52 @@
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/recording/status.ts
7
+ /**
8
+ * Webinar recording status command — gets recording status for a webinar.
9
+ *
10
+ * Threat mitigations:
11
+ * T-05-12: applyCliTerms() on all error messages — no 'live'/'photo'/'album' leaks
12
+ */
13
+ var WebinarRecordingStatus = class WebinarRecordingStatus extends require_lib_base_command.AuthenticatedCommand {
14
+ static description = "Get recording status for a webinar";
15
+ static examples = ["<%= config.bin %> webinar recording status 12345", "<%= config.bin %> webinar recording status 12345 --json"];
16
+ static enableJsonFlag = true;
17
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
18
+ static args = { id: _oclif_core.Args.string({
19
+ description: "Webinar ID",
20
+ required: true
21
+ }) };
22
+ static agentMetadata = {
23
+ api_endpoint: "GET /live/recording/status",
24
+ auth_scope: "read",
25
+ output_shape: { type: "key-value" },
26
+ side_effects: "none"
27
+ };
28
+ async run() {
29
+ const { args } = await this.parse(WebinarRecordingStatus);
30
+ this.printWorkspaceHeader();
31
+ const { data, error } = await this.apiClient.GET("/live/recording/status", { params: { query: { live_id: Number(args.id) } } });
32
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
33
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
34
+ ok: true,
35
+ data,
36
+ summary: `Recording status for webinar ${args.id}`,
37
+ breadcrumbs: [
38
+ { domain: this.activeWorkspace.domain },
39
+ {
40
+ resource: "webinar",
41
+ id: args.id
42
+ },
43
+ { resource: "recording" }
44
+ ]
45
+ });
46
+ const d = data?.data ?? data ?? {};
47
+ const table = require_lib_output.renderTable(["Field", "Value"], Object.entries(d).map(([k, v]) => [k, String(v ?? "")]));
48
+ this.log(table.toString());
49
+ }
50
+ };
51
+ //#endregion
52
+ module.exports = WebinarRecordingStatus;
@@ -0,0 +1,53 @@
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/recording/stop.ts
9
+ /**
10
+ * Webinar recording stop command — stops recording a webinar.
11
+ *
12
+ * Action command pattern (Decision D-1): outputs a single green success line only.
13
+ *
14
+ * Threat mitigations:
15
+ * T-05-12: applyCliTerms() on all error messages — no 'live'/'photo'/'album' leaks
16
+ */
17
+ var WebinarRecordingStop = class WebinarRecordingStop extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Stop recording a webinar";
19
+ static examples = ["<%= config.bin %> webinar recording stop 12345", "<%= config.bin %> webinar recording stop 12345 --json"];
20
+ static enableJsonFlag = true;
21
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
22
+ static args = { id: _oclif_core.Args.string({
23
+ description: "Webinar ID",
24
+ required: true
25
+ }) };
26
+ static agentMetadata = {
27
+ api_endpoint: "POST /live/recording/stop",
28
+ auth_scope: "write",
29
+ output_shape: { type: "none" },
30
+ side_effects: "updates"
31
+ };
32
+ async run() {
33
+ const { args } = await this.parse(WebinarRecordingStop);
34
+ this.printWorkspaceHeader();
35
+ const { data, error } = await this.apiClient.POST("/live/recording/stop", {
36
+ body: { live_id: Number(args.id) },
37
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
38
+ });
39
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
40
+ this.log(chalk.default.green("Recording stopped"));
41
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
42
+ ok: true,
43
+ data,
44
+ summary: "Recording stopped",
45
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
46
+ resource: "webinar",
47
+ id: args.id
48
+ }]
49
+ });
50
+ }
51
+ };
52
+ //#endregion
53
+ module.exports = WebinarRecordingStop;
@@ -0,0 +1,65 @@
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/repeat.ts
9
+ /**
10
+ * Webinar repeat command — duplicates a webinar and schedules the copy at a new date/time.
11
+ * Sends POST /live/repeat with live_id + schedule_start_time.
12
+ * Returns the new webinar's live_id and admin URL.
13
+ */
14
+ var WebinarRepeat = class WebinarRepeat extends require_lib_base_command.AuthenticatedCommand {
15
+ static description = "Duplicate a webinar and schedule the copy at a new date/time";
16
+ static examples = ["<%= config.bin %> webinar repeat 12345 --date \"2024-12-01T14:00:00Z\"", "<%= config.bin %> webinar repeat 12345 --date \"2024-12-01T14:00:00Z\" --json"];
17
+ static enableJsonFlag = true;
18
+ static flags = {
19
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
20
+ date: _oclif_core.Flags.string({
21
+ description: "Schedule date/time for the new webinar (ISO 8601)",
22
+ required: true
23
+ })
24
+ };
25
+ static args = { id: _oclif_core.Args.string({
26
+ description: "Webinar ID",
27
+ required: true
28
+ }) };
29
+ static agentMetadata = {
30
+ api_endpoint: "POST /live/repeat",
31
+ auth_scope: "write",
32
+ output_shape: { type: "key-value" },
33
+ side_effects: "creates"
34
+ };
35
+ async run() {
36
+ const { args, flags } = await this.parse(WebinarRepeat);
37
+ this.printWorkspaceHeader();
38
+ const body = {
39
+ live_id: Number(args.id),
40
+ schedule_start_time: flags.date
41
+ };
42
+ const { data: repeatData, error: repeatError } = await this.apiClient.POST("/live/repeat", {
43
+ body,
44
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
45
+ });
46
+ if (repeatError) this.error(require_lib_term_map.applyCliTerms(formatApiError(repeatError)), { exit: 1 });
47
+ const newLiveId = repeatData?.data?.live_id;
48
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
49
+ ok: true,
50
+ data: repeatData,
51
+ summary: "Webinar duplicated and scheduled",
52
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
53
+ resource: "webinar",
54
+ id: String(newLiveId ?? "")
55
+ }]
56
+ });
57
+ this.log(chalk.default.green("Webinar duplicated and scheduled"));
58
+ if (newLiveId) {
59
+ this.log(`ID: ${newLiveId}`);
60
+ this.log(`Admin: https://${this.activeWorkspace.domain}/manage/webinar/${newLiveId}`);
61
+ }
62
+ }
63
+ };
64
+ //#endregion
65
+ module.exports = WebinarRepeat;