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,73 @@
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/cancel.ts
10
+ /**
11
+ * Webinar series cancel command — cancels a series after confirmation.
12
+ *
13
+ * CRITICAL: Uses live_series_id (NOT live_id).
14
+ * Supports --cancel-associations to also cancel associated webinars.
15
+ *
16
+ * Threat mitigations:
17
+ * T-05-17: Confirmation prompt includes domain
18
+ * T-05-16: applyCliTerms() on all error messages
19
+ */
20
+ var WebinarSeriesCancel = class WebinarSeriesCancel extends require_lib_base_command.AuthenticatedCommand {
21
+ static description = "Cancel a webinar series";
22
+ static examples = [
23
+ "<%= config.bin %> webinar series cancel 42",
24
+ "<%= config.bin %> webinar series cancel 42 --cancel-associations",
25
+ "<%= config.bin %> webinar series cancel 42 --json"
26
+ ];
27
+ static enableJsonFlag = true;
28
+ static flags = {
29
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
30
+ "cancel-associations": _oclif_core.Flags.boolean({
31
+ description: "Also cancel associated webinars",
32
+ allowNo: true,
33
+ required: false
34
+ })
35
+ };
36
+ static args = { id: _oclif_core.Args.string({
37
+ description: "Series ID",
38
+ required: true
39
+ }) };
40
+ static agentMetadata = {
41
+ api_endpoint: "POST /live/series/cancel",
42
+ auth_scope: "write",
43
+ output_shape: { type: "none" },
44
+ side_effects: "destructive"
45
+ };
46
+ async run() {
47
+ const { args, flags } = await this.parse(WebinarSeriesCancel);
48
+ this.printWorkspaceHeader();
49
+ if (!this.jsonEnabled()) {
50
+ const confirmed = await (0, _clack_prompts.confirm)({ message: `Cancel series ${args.id} on ${this.activeWorkspace.domain}? This cannot be undone.` });
51
+ if ((0, _clack_prompts.isCancel)(confirmed) || !confirmed) process.exit(2);
52
+ }
53
+ const body = { live_series_id: Number(args.id) };
54
+ if (flags["cancel-associations"] !== void 0) body.cancel_associations_p = flags["cancel-associations"] ? 1 : 0;
55
+ const { data, error } = await this.apiClient.POST("/live/series/cancel", {
56
+ body,
57
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
58
+ });
59
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
60
+ this.log(chalk.default.green(`Series ${args.id} cancelled`));
61
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
62
+ ok: true,
63
+ data,
64
+ summary: `Series ${args.id} cancelled`,
65
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
66
+ resource: "series",
67
+ id: args.id
68
+ }]
69
+ });
70
+ }
71
+ };
72
+ //#endregion
73
+ module.exports = WebinarSeriesCancel;
@@ -0,0 +1,80 @@
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/create.ts
10
+ /**
11
+ * Webinar series create command — creates a new webinar series.
12
+ *
13
+ * Falls back to interactive prompt for name if not provided in non-JSON mode.
14
+ * Admin URL uses /manage/webinar/series/ path.
15
+ *
16
+ * Threat mitigations:
17
+ * T-05-16: applyCliTerms() on all error messages
18
+ */
19
+ var WebinarSeriesCreate = class WebinarSeriesCreate extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Create a webinar series";
21
+ static examples = [
22
+ "<%= config.bin %> webinar series create --name \"My Series\"",
23
+ "<%= config.bin %> webinar series create --name \"My Series\" --description \"Weekly sessions\"",
24
+ "<%= config.bin %> webinar series create --name \"My Series\" --json"
25
+ ];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ name: _oclif_core.Flags.string({
30
+ description: "Series name",
31
+ required: false
32
+ }),
33
+ description: _oclif_core.Flags.string({
34
+ description: "Series description",
35
+ required: false
36
+ })
37
+ };
38
+ static args = {};
39
+ static agentMetadata = {
40
+ api_endpoint: "POST /live/series/create",
41
+ auth_scope: "write",
42
+ output_shape: { type: "key-value" },
43
+ side_effects: "creates"
44
+ };
45
+ async run() {
46
+ const { flags } = await this.parse(WebinarSeriesCreate);
47
+ this.printWorkspaceHeader();
48
+ let name = flags.name;
49
+ if (!name && !this.jsonEnabled()) {
50
+ const result = await (0, _clack_prompts.text)({ message: "Series name" });
51
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
52
+ name = result;
53
+ }
54
+ if (!name) this.error("--name is required in non-interactive mode", { exit: 1 });
55
+ const body = { name };
56
+ if (flags.description !== void 0) body.description = flags.description;
57
+ const { data, error } = await this.apiClient.POST("/live/series/create", {
58
+ body,
59
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
60
+ });
61
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
62
+ const seriesId = data?.data?.live_series_id ?? data?.live_series_id;
63
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
64
+ ok: true,
65
+ data,
66
+ summary: "Series created",
67
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
68
+ resource: "series",
69
+ id: String(seriesId ?? "")
70
+ }]
71
+ });
72
+ this.log(chalk.default.green("Series created"));
73
+ if (seriesId) {
74
+ this.log(`ID: ${seriesId}`);
75
+ this.log(`Admin: https://${this.activeWorkspace.domain}/manage/webinar/series/${seriesId}`);
76
+ }
77
+ }
78
+ };
79
+ //#endregion
80
+ module.exports = WebinarSeriesCreate;
@@ -0,0 +1,73 @@
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/delete.ts
10
+ /**
11
+ * Webinar series delete command — deletes a series after confirmation.
12
+ *
13
+ * CRITICAL: Uses live_series_id (NOT live_id).
14
+ * Supports --delete-associations to also delete associated webinars.
15
+ *
16
+ * Threat mitigations:
17
+ * T-05-17: Confirmation prompt includes domain
18
+ * T-05-16: applyCliTerms() on all error messages
19
+ */
20
+ var WebinarSeriesDelete = class WebinarSeriesDelete extends require_lib_base_command.AuthenticatedCommand {
21
+ static description = "Delete a webinar series";
22
+ static examples = [
23
+ "<%= config.bin %> webinar series delete 42",
24
+ "<%= config.bin %> webinar series delete 42 --delete-associations",
25
+ "<%= config.bin %> webinar series delete 42 --json"
26
+ ];
27
+ static enableJsonFlag = true;
28
+ static flags = {
29
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
30
+ "delete-associations": _oclif_core.Flags.boolean({
31
+ description: "Also delete associated webinars",
32
+ allowNo: true,
33
+ required: false
34
+ })
35
+ };
36
+ static args = { id: _oclif_core.Args.string({
37
+ description: "Series ID",
38
+ required: true
39
+ }) };
40
+ static agentMetadata = {
41
+ api_endpoint: "POST /live/series/delete",
42
+ auth_scope: "write",
43
+ output_shape: { type: "none" },
44
+ side_effects: "destructive"
45
+ };
46
+ async run() {
47
+ const { args, flags } = await this.parse(WebinarSeriesDelete);
48
+ this.printWorkspaceHeader();
49
+ if (!this.jsonEnabled()) {
50
+ const confirmed = await (0, _clack_prompts.confirm)({ message: `Delete series ${args.id} from ${this.activeWorkspace.domain}? This cannot be undone.` });
51
+ if ((0, _clack_prompts.isCancel)(confirmed) || !confirmed) process.exit(2);
52
+ }
53
+ const body = { live_series_id: Number(args.id) };
54
+ if (flags["delete-associations"] !== void 0) body.delete_associations_p = flags["delete-associations"] ? 1 : 0;
55
+ const { data, error } = await this.apiClient.POST("/live/series/delete", {
56
+ body,
57
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
58
+ });
59
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
60
+ this.log(chalk.default.green(`Series ${args.id} deleted`));
61
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
62
+ ok: true,
63
+ data,
64
+ summary: `Series ${args.id} deleted`,
65
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
66
+ resource: "series",
67
+ id: args.id
68
+ }]
69
+ });
70
+ }
71
+ };
72
+ //#endregion
73
+ module.exports = WebinarSeriesDelete;
@@ -0,0 +1,79 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ const require_lib_pagination = require("../../../lib/pagination.cjs");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/webinar/series/list.ts
9
+ /**
10
+ * Webinar series list command — lists all webinar series in the active workspace.
11
+ * Uses fetchAllPages for auto-pagination.
12
+ *
13
+ * NOTE: Series list does NOT require a token param (workspace-scoped).
14
+ *
15
+ * Threat mitigations:
16
+ * T-05-16: applyCliTerms() on all error messages
17
+ */
18
+ var WebinarSeriesList = class WebinarSeriesList extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "List webinar series";
20
+ static examples = ["<%= config.bin %> webinar series list", "<%= config.bin %> webinar series list --json"];
21
+ static enableJsonFlag = true;
22
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
23
+ static args = {};
24
+ static agentMetadata = {
25
+ api_endpoint: "GET /live/series/list",
26
+ auth_scope: "read",
27
+ output_shape: {
28
+ type: "table",
29
+ columns: [
30
+ "ID",
31
+ "Name",
32
+ "Status",
33
+ "Created"
34
+ ]
35
+ },
36
+ side_effects: "none"
37
+ };
38
+ async run() {
39
+ const { flags } = await this.parse(WebinarSeriesList);
40
+ this.printWorkspaceHeader();
41
+ const series = await require_lib_pagination.fetchAllPages(async (page, size) => {
42
+ const { data, error } = await this.apiClient.GET("/live/series/list", { params: { query: {
43
+ p: page,
44
+ size
45
+ } } });
46
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
47
+ const resp = data;
48
+ return {
49
+ data: Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [],
50
+ total_count: resp?.total_count
51
+ };
52
+ });
53
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
54
+ ok: true,
55
+ data: series,
56
+ summary: `${series.length} series`,
57
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "series" }]
58
+ });
59
+ if (series.length === 0) {
60
+ this.log("No series found.");
61
+ return;
62
+ }
63
+ const table = require_lib_output.renderTable([
64
+ "ID",
65
+ "Name",
66
+ "Status",
67
+ "Created"
68
+ ], series.map((s) => [
69
+ String(s.live_series_id ?? ""),
70
+ require_lib_term_map.applyCliTerms(String(s.name ?? "")),
71
+ String(s.status ?? ""),
72
+ String(s.creation_date_ansi ?? "")
73
+ ]));
74
+ this.log(table.toString());
75
+ this.log(chalk.default.dim(`${series.length} series`));
76
+ }
77
+ };
78
+ //#endregion
79
+ module.exports = WebinarSeriesList;
@@ -0,0 +1,69 @@
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/series/mapped-objects.ts
7
+ /**
8
+ * Webinar series mapped-objects command — lists objects mapped to a series.
9
+ *
10
+ * Threat mitigations:
11
+ * T-05-16: applyCliTerms() on all error messages
12
+ */
13
+ var WebinarSeriesMappedObjects = class WebinarSeriesMappedObjects extends require_lib_base_command.AuthenticatedCommand {
14
+ static description = "List mapped objects for a webinar series";
15
+ static examples = ["<%= config.bin %> webinar series mapped-objects 42", "<%= config.bin %> webinar series mapped-objects 42 --json"];
16
+ static enableJsonFlag = true;
17
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
18
+ static args = { id: _oclif_core.Args.string({
19
+ description: "Series ID",
20
+ required: true
21
+ }) };
22
+ static agentMetadata = {
23
+ api_endpoint: "GET /live/series/mapped-objects",
24
+ auth_scope: "read",
25
+ output_shape: {
26
+ type: "table",
27
+ columns: [
28
+ "ID",
29
+ "Type",
30
+ "Title"
31
+ ]
32
+ },
33
+ side_effects: "none"
34
+ };
35
+ async run() {
36
+ const { args } = await this.parse(WebinarSeriesMappedObjects);
37
+ this.printWorkspaceHeader();
38
+ const { data, error } = await this.apiClient.GET("/live/series/mapped-objects", { params: { query: { live_series_id: Number(args.id) } } });
39
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
40
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
41
+ ok: true,
42
+ data,
43
+ summary: `Mapped objects for series ${args.id}`,
44
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
45
+ resource: "series",
46
+ id: args.id
47
+ }]
48
+ });
49
+ const resp = data;
50
+ const objects = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
51
+ if (objects.length === 0) {
52
+ this.log("No mapped objects found.");
53
+ return;
54
+ }
55
+ const table = require_lib_output.renderTable([
56
+ "ID",
57
+ "Type",
58
+ "Title"
59
+ ], objects.map((o) => [
60
+ String(o.object_id ?? o.id ?? o.live_id ?? ""),
61
+ String(o.object_type ?? o.type ?? ""),
62
+ require_lib_term_map.applyCliTerms(String(o.title ?? o.name ?? ""))
63
+ ]));
64
+ this.log(table.toString());
65
+ this.log(`${objects.length} object${objects.length === 1 ? "" : "s"}`);
66
+ }
67
+ };
68
+ //#endregion
69
+ module.exports = WebinarSeriesMappedObjects;
@@ -0,0 +1,57 @@
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/series/metrics.ts
7
+ /**
8
+ * Webinar series metrics command — retrieves metrics for a webinar series.
9
+ *
10
+ * Threat mitigations:
11
+ * T-05-16: applyCliTerms() on all error messages
12
+ */
13
+ var WebinarSeriesMetrics = class WebinarSeriesMetrics extends require_lib_base_command.AuthenticatedCommand {
14
+ static description = "Get metrics for a webinar series";
15
+ static examples = ["<%= config.bin %> webinar series metrics 42", "<%= config.bin %> webinar series metrics 42 --json"];
16
+ static enableJsonFlag = true;
17
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
18
+ static args = { id: _oclif_core.Args.string({
19
+ description: "Series ID",
20
+ required: true
21
+ }) };
22
+ static agentMetadata = {
23
+ api_endpoint: "GET /live/series/metrics",
24
+ auth_scope: "read",
25
+ output_shape: {
26
+ type: "table",
27
+ columns: ["Metric", "Value"]
28
+ },
29
+ side_effects: "none"
30
+ };
31
+ async run() {
32
+ const { args } = await this.parse(WebinarSeriesMetrics);
33
+ this.printWorkspaceHeader();
34
+ const { data, error } = await this.apiClient.GET("/live/series/metrics", { params: { query: { live_series_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: `Metrics for series ${args.id}`,
40
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
41
+ resource: "series",
42
+ id: args.id
43
+ }]
44
+ });
45
+ const metrics = data;
46
+ const metricsObj = metrics?.data ?? metrics ?? {};
47
+ const rows = Object.entries(metricsObj).map(([key, value]) => [key, String(value ?? "")]);
48
+ if (rows.length === 0) {
49
+ this.log("No metrics available.");
50
+ return;
51
+ }
52
+ const table = require_lib_output.renderTable(["Metric", "Value"], rows);
53
+ this.log(table.toString());
54
+ }
55
+ };
56
+ //#endregion
57
+ module.exports = WebinarSeriesMetrics;
@@ -0,0 +1,72 @@
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/series/recurrences.ts
7
+ /**
8
+ * Webinar series recurrences command — lists recurrences for a webinar series.
9
+ *
10
+ * Threat mitigations:
11
+ * T-05-16: applyCliTerms() on all error messages
12
+ */
13
+ var WebinarSeriesRecurrences = class WebinarSeriesRecurrences extends require_lib_base_command.AuthenticatedCommand {
14
+ static description = "List recurrences for a webinar series";
15
+ static examples = ["<%= config.bin %> webinar series recurrences 42", "<%= config.bin %> webinar series recurrences 42 --json"];
16
+ static enableJsonFlag = true;
17
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
18
+ static args = { id: _oclif_core.Args.string({
19
+ description: "Series ID",
20
+ required: true
21
+ }) };
22
+ static agentMetadata = {
23
+ api_endpoint: "GET /live/series/recurrences",
24
+ auth_scope: "read",
25
+ output_shape: {
26
+ type: "table",
27
+ columns: [
28
+ "ID",
29
+ "Start Time",
30
+ "Status",
31
+ "Skipped"
32
+ ]
33
+ },
34
+ side_effects: "none"
35
+ };
36
+ async run() {
37
+ const { args } = await this.parse(WebinarSeriesRecurrences);
38
+ this.printWorkspaceHeader();
39
+ const { data, error } = await this.apiClient.GET("/live/series/recurrences", { params: { query: { live_series_id: Number(args.id) } } });
40
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
41
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
42
+ ok: true,
43
+ data,
44
+ summary: `Recurrences for series ${args.id}`,
45
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
46
+ resource: "series",
47
+ id: args.id
48
+ }]
49
+ });
50
+ const resp = data;
51
+ const recurrences = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
52
+ if (recurrences.length === 0) {
53
+ this.log("No recurrences found.");
54
+ return;
55
+ }
56
+ const table = require_lib_output.renderTable([
57
+ "ID",
58
+ "Start Time",
59
+ "Status",
60
+ "Skipped"
61
+ ], recurrences.map((r) => [
62
+ String(r.recurrence_id ?? r.id ?? ""),
63
+ String(r.start_time ?? r.scheduled_at ?? ""),
64
+ String(r.status ?? ""),
65
+ r.skipped_p ? "yes" : "no"
66
+ ]));
67
+ this.log(table.toString());
68
+ this.log(`${recurrences.length} recurrence${recurrences.length === 1 ? "" : "s"}`);
69
+ }
70
+ };
71
+ //#endregion
72
+ module.exports = WebinarSeriesRecurrences;
@@ -0,0 +1,67 @@
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/series/set-ondemand.ts
9
+ /**
10
+ * Webinar series set-ondemand command — sets a series to on-demand availability.
11
+ *
12
+ * CRITICAL: Uses live_series_id (NOT live_id).
13
+ * Supports --update-associations to also update associated webinars.
14
+ *
15
+ * Threat mitigations:
16
+ * T-05-16: applyCliTerms() on all error messages
17
+ */
18
+ var WebinarSeriesSetOndemand = class WebinarSeriesSetOndemand extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "Set a webinar series to on-demand";
20
+ static examples = [
21
+ "<%= config.bin %> webinar series set-ondemand 42",
22
+ "<%= config.bin %> webinar series set-ondemand 42 --update-associations",
23
+ "<%= config.bin %> webinar series set-ondemand 42 --json"
24
+ ];
25
+ static enableJsonFlag = true;
26
+ static flags = {
27
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
28
+ "update-associations": _oclif_core.Flags.boolean({
29
+ description: "Also update associated webinars",
30
+ allowNo: true,
31
+ required: false
32
+ })
33
+ };
34
+ static args = { id: _oclif_core.Args.string({
35
+ description: "Series ID",
36
+ required: true
37
+ }) };
38
+ static agentMetadata = {
39
+ api_endpoint: "POST /live/series/set-ondemand",
40
+ auth_scope: "write",
41
+ output_shape: { type: "none" },
42
+ side_effects: "updates"
43
+ };
44
+ async run() {
45
+ const { args, flags } = await this.parse(WebinarSeriesSetOndemand);
46
+ this.printWorkspaceHeader();
47
+ const body = { live_series_id: Number(args.id) };
48
+ if (flags["update-associations"] !== void 0) body.update_associations_p = flags["update-associations"] ? 1 : 0;
49
+ const { data, error } = await this.apiClient.POST("/live/series/set-ondemand", {
50
+ body,
51
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
52
+ });
53
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
54
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
55
+ ok: true,
56
+ data,
57
+ summary: "Series set to on-demand",
58
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
59
+ resource: "series",
60
+ id: args.id
61
+ }]
62
+ });
63
+ this.log(chalk.default.green("Series set to on-demand"));
64
+ }
65
+ };
66
+ //#endregion
67
+ module.exports = WebinarSeriesSetOndemand;
@@ -0,0 +1,79 @@
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/skip-recurrence.ts
10
+ /**
11
+ * Webinar series skip-recurrence command — skips or unskips a recurrence.
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 WebinarSeriesSkipRecurrence = class WebinarSeriesSkipRecurrence extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Skip or unskip a recurrence for a webinar series";
21
+ static examples = [
22
+ "<%= config.bin %> webinar series skip-recurrence 42 --recurrence-id 7 --skipped",
23
+ "<%= config.bin %> webinar series skip-recurrence 42 --recurrence-id 7 --no-skipped",
24
+ "<%= config.bin %> webinar series skip-recurrence 42 --recurrence-id 7 --skipped --json"
25
+ ];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ "recurrence-id": _oclif_core.Flags.string({
30
+ description: "Recurrence ID",
31
+ required: false
32
+ }),
33
+ skipped: _oclif_core.Flags.boolean({
34
+ description: "Set skipped (--skipped) or unskipped (--no-skipped)",
35
+ allowNo: true,
36
+ required: false
37
+ })
38
+ };
39
+ static args = { id: _oclif_core.Args.string({
40
+ description: "Series ID",
41
+ required: true
42
+ }) };
43
+ static agentMetadata = {
44
+ api_endpoint: "GET /live/series/skip-recurrence",
45
+ auth_scope: "write",
46
+ output_shape: { type: "none" },
47
+ side_effects: "updates"
48
+ };
49
+ async run() {
50
+ const { args, flags } = await this.parse(WebinarSeriesSkipRecurrence);
51
+ this.printWorkspaceHeader();
52
+ let recurrenceId = flags["recurrence-id"];
53
+ if (!recurrenceId && !this.jsonEnabled()) {
54
+ const result = await (0, _clack_prompts.text)({ message: "Recurrence ID" });
55
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
56
+ recurrenceId = result;
57
+ }
58
+ if (!recurrenceId) this.error("--recurrence-id is required in non-interactive mode", { exit: 1 });
59
+ const skipped = flags.skipped ?? true;
60
+ const { data, error } = await this.apiClient.GET("/live/series/skip-recurrence", { params: { query: {
61
+ live_series_id: Number(args.id),
62
+ recurrence_id: Number(recurrenceId),
63
+ skipped_p: skipped ? 1 : 0
64
+ } } });
65
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
66
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
67
+ ok: true,
68
+ data,
69
+ summary: `Recurrence ${skipped ? "skipped" : "unskipped"}`,
70
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
71
+ resource: "series",
72
+ id: args.id
73
+ }]
74
+ });
75
+ this.log(chalk.default.green(`Recurrence ${skipped ? "skipped" : "unskipped"}`));
76
+ }
77
+ };
78
+ //#endregion
79
+ module.exports = WebinarSeriesSkipRecurrence;