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,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/presentation/setting/update.ts
9
+ /**
10
+ * Presentation setting update command — updates workspace presentation settings (PRS-02).
11
+ *
12
+ * Accepts repeatable --set key=value pairs and POSTs them to /presentation/setting/update.
13
+ * Pattern D variant: freeform key-value body building (Pitfall 4 / T-08-17 accept).
14
+ *
15
+ * Threat mitigations:
16
+ * T-08-16: extends AuthenticatedCommand — anonymous mode rejected
17
+ * T-08-17: --set key=value pairs sent to API as-is; server validates valid setting keys (accepted)
18
+ */
19
+ var PresentationSettingUpdate = class PresentationSettingUpdate extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Update workspace presentation settings";
21
+ static examples = [
22
+ "<%= config.bin %> presentation setting update --set site_name=\"My Site\"",
23
+ "<%= config.bin %> presentation setting update --set site_name=\"My Site\" --set logo_url=\"https://example.com/logo.png\"",
24
+ "<%= config.bin %> presentation setting update --set site_name=\"My Site\" --json"
25
+ ];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ set: _oclif_core.Flags.string({
30
+ description: "Setting key=value pair (repeatable)",
31
+ multiple: true,
32
+ required: false
33
+ })
34
+ };
35
+ static args = {};
36
+ static agentMetadata = {
37
+ api_endpoint: "POST /presentation/setting/update",
38
+ auth_scope: "write",
39
+ output_shape: { type: "key-value" },
40
+ side_effects: "updates"
41
+ };
42
+ async run() {
43
+ const { flags } = await this.parse(PresentationSettingUpdate);
44
+ this.printWorkspaceHeader();
45
+ if (!flags.set || flags.set.length === 0) this.error("Provide at least one --set key=value pair", { exit: 1 });
46
+ const body = {};
47
+ for (const pair of flags.set) {
48
+ const idx = pair.indexOf("=");
49
+ if (idx < 1) this.error(`Invalid --set value: "${pair}" (expected key=value)`, { exit: 1 });
50
+ body[pair.slice(0, idx)] = pair.slice(idx + 1);
51
+ }
52
+ const { data: updateData, error: updateError } = await this.apiClient.POST("/presentation/setting/update", {
53
+ body,
54
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
55
+ });
56
+ if (updateError) this.error(require_lib_term_map.applyCliTerms(formatApiError(updateError)), { exit: 1 });
57
+ this.log(chalk.default.green("Presentation settings updated"));
58
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
59
+ ok: true,
60
+ data: updateData,
61
+ summary: "Presentation settings updated",
62
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "presentation" }]
63
+ });
64
+ }
65
+ };
66
+ //#endregion
67
+ module.exports = PresentationSettingUpdate;
@@ -0,0 +1,68 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/protection/protect.ts
9
+ /**
10
+ * Protection protect command — applies content protection (PRT-01).
11
+ *
12
+ * Pattern B variant: POST action with required protection method.
13
+ *
14
+ * Threat mitigations:
15
+ * T-08-16: extends AuthenticatedCommand — anonymous mode rejected
16
+ */
17
+ var ProtectionProtect = class ProtectionProtect extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Apply protection to content";
19
+ static examples = [
20
+ "<%= config.bin %> protection protect --protection-method password",
21
+ "<%= config.bin %> protection protect --protection-method sso --object-id 12345",
22
+ "<%= config.bin %> protection protect --protection-method token --grace-minutes 30 --json"
23
+ ];
24
+ static enableJsonFlag = true;
25
+ static flags = {
26
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
27
+ "protection-method": _oclif_core.Flags.string({
28
+ description: "Protection method (e.g. password, sso, token)",
29
+ required: true
30
+ }),
31
+ "object-id": _oclif_core.Flags.string({
32
+ description: "Object ID to protect",
33
+ required: false
34
+ }),
35
+ "grace-minutes": _oclif_core.Flags.integer({
36
+ description: "Grace period in minutes before protection activates",
37
+ required: false
38
+ })
39
+ };
40
+ static args = {};
41
+ static agentMetadata = {
42
+ api_endpoint: "POST /protection/protect",
43
+ auth_scope: "write",
44
+ output_shape: { type: "key-value" },
45
+ side_effects: "creates"
46
+ };
47
+ async run() {
48
+ const { flags } = await this.parse(ProtectionProtect);
49
+ this.printWorkspaceHeader();
50
+ const body = { protection_method: flags["protection-method"] };
51
+ if (flags["object-id"] !== void 0) body.object_id = flags["object-id"];
52
+ if (flags["grace-minutes"] !== void 0) body.grace_minutes = flags["grace-minutes"];
53
+ const { data: protectData, error: protectError } = await this.apiClient.POST("/protection/protect", {
54
+ body,
55
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
56
+ });
57
+ if (protectError) this.error(require_lib_term_map.applyCliTerms(formatApiError(protectError)), { exit: 1 });
58
+ this.log(chalk.default.green("Protection applied"));
59
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
60
+ ok: true,
61
+ data: protectData,
62
+ summary: "Protection applied",
63
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "protection" }]
64
+ });
65
+ }
66
+ };
67
+ //#endregion
68
+ module.exports = ProtectionProtect;
@@ -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
+ let _clack_prompts = require("@clack/prompts");
9
+ //#region src/commands/protection/unprotect.ts
10
+ /**
11
+ * Protection unprotect command — removes content protection after confirmation (PRT-02).
12
+ *
13
+ * Pattern C: POST destructive with confirmation prompt.
14
+ *
15
+ * Threat mitigations:
16
+ * T-08-14: confirm() prompt includes workspace domain before removing access control
17
+ * T-08-16: extends AuthenticatedCommand — anonymous mode rejected
18
+ */
19
+ var ProtectionUnprotect = class ProtectionUnprotect extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Remove protection from content";
21
+ static examples = [
22
+ "<%= config.bin %> protection unprotect",
23
+ "<%= config.bin %> protection unprotect --object-id 12345",
24
+ "<%= config.bin %> protection unprotect --object-id 12345 --json"
25
+ ];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ "object-id": _oclif_core.Flags.string({
30
+ description: "Object ID to remove protection from",
31
+ required: false
32
+ })
33
+ };
34
+ static args = {};
35
+ static agentMetadata = {
36
+ api_endpoint: "POST /protection/unprotect",
37
+ auth_scope: "write",
38
+ output_shape: { type: "key-value" },
39
+ side_effects: "destructive"
40
+ };
41
+ async run() {
42
+ const { flags } = await this.parse(ProtectionUnprotect);
43
+ this.printWorkspaceHeader();
44
+ if (!this.jsonEnabled()) {
45
+ const confirmed = await (0, _clack_prompts.confirm)({ message: `Remove protection${flags["object-id"] ? ` from object ${flags["object-id"]}` : ""} on ${this.activeWorkspace.domain}? This will expose the content.` });
46
+ if ((0, _clack_prompts.isCancel)(confirmed) || !confirmed) process.exit(2);
47
+ }
48
+ const body = {};
49
+ if (flags["object-id"] !== void 0) body.object_id = flags["object-id"];
50
+ const { data: unprotectData, error: unprotectError } = await this.apiClient.POST("/protection/unprotect", {
51
+ body,
52
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
53
+ });
54
+ if (unprotectError) this.error(require_lib_term_map.applyCliTerms(formatApiError(unprotectError)), { exit: 1 });
55
+ this.log(chalk.default.green("Protection removed"));
56
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
57
+ ok: true,
58
+ data: unprotectData,
59
+ summary: "Protection removed",
60
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "protection" }]
61
+ });
62
+ }
63
+ };
64
+ //#endregion
65
+ module.exports = ProtectionUnprotect;
@@ -0,0 +1,80 @@
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/protection/verify.ts
7
+ /**
8
+ * Protection verify command — verifies access to protected content (PRT-03).
9
+ *
10
+ * Pattern E: GET single object with key-value output.
11
+ *
12
+ * Note: CLI flags use --video-id and --webinar-id but map to photo_id and live_id
13
+ * in the API query (term mapping at the flag level, per terminology conventions).
14
+ *
15
+ * Threat mitigations:
16
+ * T-08-16: extends AuthenticatedCommand — anonymous mode rejected
17
+ */
18
+ var ProtectionVerify = class ProtectionVerify extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "Verify access to protected content";
20
+ static examples = [
21
+ "<%= config.bin %> protection verify --protection-method password",
22
+ "<%= config.bin %> protection verify --protection-method sso --video-id 12345",
23
+ "<%= config.bin %> protection verify --protection-method token --verification-data mytoken --json"
24
+ ];
25
+ static enableJsonFlag = true;
26
+ static flags = {
27
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
28
+ "protection-method": _oclif_core.Flags.string({
29
+ description: "Protection method to verify against",
30
+ required: true
31
+ }),
32
+ "video-id": _oclif_core.Flags.string({
33
+ description: "Video ID to verify access for (maps to photo_id in API)",
34
+ required: false
35
+ }),
36
+ "webinar-id": _oclif_core.Flags.string({
37
+ description: "Webinar ID to verify access for (maps to live_id in API)",
38
+ required: false
39
+ }),
40
+ "object-id": _oclif_core.Flags.string({
41
+ description: "Object ID to verify access for",
42
+ required: false
43
+ }),
44
+ "verification-data": _oclif_core.Flags.string({
45
+ description: "Verification data (e.g. password, token)",
46
+ required: false
47
+ })
48
+ };
49
+ static args = {};
50
+ static agentMetadata = {
51
+ api_endpoint: "GET /protection/verify",
52
+ auth_scope: "read",
53
+ output_shape: { type: "key-value" },
54
+ side_effects: "none"
55
+ };
56
+ async run() {
57
+ const { flags } = await this.parse(ProtectionVerify);
58
+ this.printWorkspaceHeader();
59
+ const { data, error } = await this.apiClient.GET("/protection/verify", { params: { query: {
60
+ protection_method: flags["protection-method"],
61
+ photo_id: flags["video-id"] ? Number(flags["video-id"]) : void 0,
62
+ live_id: flags["webinar-id"] ? Number(flags["webinar-id"]) : void 0,
63
+ object_id: flags["object-id"],
64
+ verification_data: flags["verification-data"]
65
+ } } });
66
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
67
+ const resp = data;
68
+ const obj = resp?.data ?? resp;
69
+ if (!obj) this.error("No verification result returned", { exit: 1 });
70
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
71
+ ok: true,
72
+ data: obj,
73
+ summary: "Protection verification result",
74
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "protection" }]
75
+ });
76
+ for (const [k, v] of Object.entries(obj)) this.log(`${k}: ${require_lib_term_map.applyCliTerms(String(v ?? ""))}`);
77
+ }
78
+ };
79
+ //#endregion
80
+ module.exports = ProtectionVerify;
@@ -0,0 +1,75 @@
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/session/get-token.ts
7
+ /**
8
+ * Session get-token command — obtains a session access token (SES-01).
9
+ *
10
+ * Pattern E: GET single object returning a sensitive token.
11
+ *
12
+ * SECURITY (T-08-15): Token is printed to stdout for CLI use, but the --json summary
13
+ * string NEVER contains the actual token value to prevent token leakage in logs.
14
+ * The data payload carries the token for programmatic access.
15
+ *
16
+ * Note: /session/get-token requires super scope per OpenAPI spec.
17
+ *
18
+ * Threat mitigations:
19
+ * T-08-15: summary string does not contain the token value
20
+ * T-08-16: extends AuthenticatedCommand — anonymous mode rejected
21
+ */
22
+ var SessionGetToken = class SessionGetToken extends require_lib_base_command.AuthenticatedCommand {
23
+ static description = "Get a session access token";
24
+ static examples = [
25
+ "<%= config.bin %> session get-token",
26
+ "<%= config.bin %> session get-token --return-url https://example.com",
27
+ "<%= config.bin %> session get-token --email user@example.com --full-name \"Jane Doe\"",
28
+ "<%= config.bin %> session get-token --json"
29
+ ];
30
+ static enableJsonFlag = true;
31
+ static flags = {
32
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
33
+ "return-url": _oclif_core.Flags.string({
34
+ description: "Return URL after session authentication",
35
+ required: false
36
+ }),
37
+ email: _oclif_core.Flags.string({
38
+ description: "Email for the session token",
39
+ required: false
40
+ }),
41
+ "full-name": _oclif_core.Flags.string({
42
+ description: "Full name for the session token",
43
+ required: false
44
+ })
45
+ };
46
+ static args = {};
47
+ static agentMetadata = {
48
+ api_endpoint: "GET /session/get-token",
49
+ auth_scope: "read",
50
+ output_shape: { type: "key-value" },
51
+ side_effects: "none"
52
+ };
53
+ async run() {
54
+ const { flags } = await this.parse(SessionGetToken);
55
+ this.printWorkspaceHeader();
56
+ const { data, error } = await this.apiClient.GET("/session/get-token", { params: { query: {
57
+ return_url: flags["return-url"],
58
+ email: flags.email,
59
+ full_name: flags["full-name"]
60
+ } } });
61
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
62
+ const resp = data;
63
+ const tokenData = resp?.data ?? resp;
64
+ const token = (resp?.data ?? resp)?.access_token ?? (resp?.data ?? resp)?.token;
65
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
66
+ ok: true,
67
+ data: tokenData,
68
+ summary: "Session token generated",
69
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "session" }]
70
+ });
71
+ this.log(`Session token: ${token ?? "(no token in response)"}`);
72
+ }
73
+ };
74
+ //#endregion
75
+ module.exports = SessionGetToken;
@@ -0,0 +1,56 @@
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/session/redeem-token.ts
9
+ /**
10
+ * Session redeem-token command — redeems a session token (SES-02).
11
+ *
12
+ * Pattern K: simple POST action with key-value output for result data.
13
+ *
14
+ * Threat mitigations:
15
+ * T-08-16: extends AuthenticatedCommand — anonymous mode rejected
16
+ */
17
+ var SessionRedeemToken = class SessionRedeemToken extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Redeem a session token";
19
+ static examples = ["<%= config.bin %> session redeem-token --session-token <token>", "<%= config.bin %> session redeem-token --session-token <token> --json"];
20
+ static enableJsonFlag = true;
21
+ static flags = {
22
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
23
+ "session-token": _oclif_core.Flags.string({
24
+ description: "Session token to redeem",
25
+ required: true
26
+ })
27
+ };
28
+ static args = {};
29
+ static agentMetadata = {
30
+ api_endpoint: "POST /session/redeem-token",
31
+ auth_scope: "read",
32
+ output_shape: { type: "key-value" },
33
+ side_effects: "updates"
34
+ };
35
+ async run() {
36
+ const { flags } = await this.parse(SessionRedeemToken);
37
+ this.printWorkspaceHeader();
38
+ const { data: redeemData, error: redeemError } = await this.apiClient.POST("/session/redeem-token", {
39
+ body: { session_token: flags["session-token"] },
40
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
41
+ });
42
+ if (redeemError) this.error(require_lib_term_map.applyCliTerms(formatApiError(redeemError)), { exit: 1 });
43
+ this.log(chalk.default.green("Session token redeemed"));
44
+ const resp = redeemData;
45
+ const obj = resp?.data ?? resp;
46
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
47
+ ok: true,
48
+ data: obj,
49
+ summary: "Session token redeemed",
50
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "session" }]
51
+ });
52
+ if (obj && typeof obj === "object") for (const [k, v] of Object.entries(obj)) this.log(`${k}: ${require_lib_term_map.applyCliTerms(String(v ?? ""))}`);
53
+ }
54
+ };
55
+ //#endregion
56
+ module.exports = SessionRedeemToken;
@@ -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
+ //#region src/commands/setting/update.ts
9
+ /**
10
+ * Setting update command — updates workspace-level settings via freeform key=value pairs.
11
+ *
12
+ * Accepts one or more --set key=value flags. Supports a --validate-only dry-run mode.
13
+ * Top-level `setting` topic (not to be confused with `presentation/setting`).
14
+ *
15
+ * Threat mitigations:
16
+ * T-08-20: Freeform key-value pairs sent as-is; server validates setting keys
17
+ * T-08-21: extends AuthenticatedCommand — anonymous mode rejected
18
+ */
19
+ var SettingUpdate = class SettingUpdate extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Update workspace settings (key=value pairs)";
21
+ static examples = [
22
+ "<%= config.bin %> setting update --set site_name=\"My Site\"",
23
+ "<%= config.bin %> setting update --set theme=dark --set language=en",
24
+ "<%= config.bin %> setting update --set site_name=\"Test\" --validate-only",
25
+ "<%= config.bin %> setting update --set timezone=UTC --json"
26
+ ];
27
+ static enableJsonFlag = true;
28
+ static flags = {
29
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
30
+ set: _oclif_core.Flags.string({
31
+ description: "Setting key=value pair (repeatable)",
32
+ multiple: true,
33
+ required: false
34
+ }),
35
+ "validate-only": _oclif_core.Flags.boolean({
36
+ description: "Dry-run: validate settings without applying changes",
37
+ allowNo: false,
38
+ required: false
39
+ }),
40
+ "validate-only-p": _oclif_core.Flags.string({
41
+ hidden: true,
42
+ required: false
43
+ })
44
+ };
45
+ static agentMetadata = {
46
+ api_endpoint: "POST /setting/update",
47
+ auth_scope: "write",
48
+ output_shape: { type: "key-value" },
49
+ side_effects: "updates"
50
+ };
51
+ async run() {
52
+ const { flags } = await this.parse(SettingUpdate);
53
+ this.printWorkspaceHeader();
54
+ const setPairs = flags.set ?? [];
55
+ if (setPairs.length === 0) this.error("At least one --set key=value pair is required", { exit: 1 });
56
+ const body = {};
57
+ for (const pair of setPairs) {
58
+ const idx = pair.indexOf("=");
59
+ if (idx < 1) this.error(`Invalid --set value: "${pair}" (expected key=value)`, { exit: 1 });
60
+ body[pair.slice(0, idx)] = pair.slice(idx + 1);
61
+ }
62
+ const valOnly = parseBoolParam(flags["validate-only"], flags["validate-only-p"]);
63
+ if (valOnly) body.validate_only_p = 1;
64
+ const { data: updateData, error: updateError } = await this.apiClient.POST("/setting/update", {
65
+ body,
66
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
67
+ });
68
+ if (updateError) this.error(require_lib_term_map.applyCliTerms(formatApiError(updateError)), { exit: 1 });
69
+ this.log(chalk.default.green(valOnly ? "Settings validated (dry-run)" : "Settings updated"));
70
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
71
+ ok: true,
72
+ data: updateData,
73
+ summary: valOnly ? "Settings validated (dry-run)" : "Settings updated",
74
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "setting" }]
75
+ });
76
+ }
77
+ };
78
+ //#endregion
79
+ module.exports = SettingUpdate;
@@ -0,0 +1,73 @@
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/site/get.ts
7
+ /**
8
+ * Site get command — retrieves workspace-level site settings as key-value pairs.
9
+ *
10
+ * Supports optional inclusion of presentation and quota data via boolean flags.
11
+ * Threat mitigations:
12
+ * T-08-21: extends AuthenticatedCommand — anonymous mode rejected
13
+ */
14
+ var SiteGet = class SiteGet extends require_lib_base_command.AuthenticatedCommand {
15
+ static description = "Get site settings for the active workspace";
16
+ static examples = [
17
+ "<%= config.bin %> site get",
18
+ "<%= config.bin %> site get --include-presentation",
19
+ "<%= config.bin %> site get --include-quota --json"
20
+ ];
21
+ static enableJsonFlag = true;
22
+ static flags = {
23
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
24
+ "include-presentation": _oclif_core.Flags.boolean({
25
+ description: "Include presentation settings in the response",
26
+ allowNo: false,
27
+ required: false
28
+ }),
29
+ "include-presentation-p": _oclif_core.Flags.string({
30
+ hidden: true,
31
+ required: false
32
+ }),
33
+ "include-quota": _oclif_core.Flags.boolean({
34
+ description: "Include quota information in the response",
35
+ allowNo: false,
36
+ required: false
37
+ }),
38
+ "include-quota-p": _oclif_core.Flags.string({
39
+ hidden: true,
40
+ required: false
41
+ })
42
+ };
43
+ static args = {};
44
+ static agentMetadata = {
45
+ api_endpoint: "GET /site/get",
46
+ auth_scope: "read",
47
+ output_shape: { type: "key-value" },
48
+ side_effects: "none"
49
+ };
50
+ async run() {
51
+ const { flags } = await this.parse(SiteGet);
52
+ this.printWorkspaceHeader();
53
+ const presVal = parseBoolParam(flags["include-presentation"], flags["include-presentation-p"]);
54
+ const quotaVal = parseBoolParam(flags["include-quota"], flags["include-quota-p"]);
55
+ const { data, error } = await this.apiClient.GET("/site/get", { params: { query: {
56
+ include_presentation_p: presVal,
57
+ include_quota_p: quotaVal
58
+ } } });
59
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
60
+ const resp = data;
61
+ const obj = resp?.data ?? resp;
62
+ if (!obj) this.error("No data returned", { exit: 1 });
63
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
64
+ ok: true,
65
+ data: obj,
66
+ summary: "Site settings",
67
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "site" }]
68
+ });
69
+ for (const [k, v] of Object.entries(obj)) this.log(`${k}: ${require_lib_term_map.applyCliTerms(String(v ?? ""))}`);
70
+ }
71
+ };
72
+ //#endregion
73
+ module.exports = SiteGet;
@@ -0,0 +1,93 @@
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/site/search.ts
9
+ /**
10
+ * Site search command — searches across all content types in the workspace.
11
+ *
12
+ * Returns a table of results with type, title, and ID columns.
13
+ * Object types (photo, album, live) are mapped to modern CLI terms via applyCliTerms.
14
+ * Threat mitigations:
15
+ * T-08-21: extends AuthenticatedCommand — anonymous mode rejected
16
+ */
17
+ var SiteSearch = class SiteSearch extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Search for content across the active workspace";
19
+ static examples = [
20
+ "<%= config.bin %> site search --search \"quarterly report\"",
21
+ "<%= config.bin %> site search --search \"demo\" --search-in title --size 20",
22
+ "<%= config.bin %> site search --search \"webinar\" --json"
23
+ ];
24
+ static enableJsonFlag = true;
25
+ static flags = {
26
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
27
+ search: _oclif_core.Flags.string({
28
+ description: "Search query string",
29
+ required: false
30
+ }),
31
+ "search-in": _oclif_core.Flags.string({
32
+ description: "Where to search (e.g. title, description, tags)",
33
+ required: false
34
+ }),
35
+ selection: _oclif_core.Flags.string({
36
+ description: "Filter by content selection",
37
+ required: false
38
+ }),
39
+ size: _oclif_core.Flags.integer({
40
+ description: "Number of results to return",
41
+ required: false
42
+ })
43
+ };
44
+ static agentMetadata = {
45
+ api_endpoint: "GET /site/search",
46
+ auth_scope: "read",
47
+ output_shape: {
48
+ type: "table",
49
+ columns: [
50
+ "Type",
51
+ "Title",
52
+ "ID"
53
+ ]
54
+ },
55
+ side_effects: "none"
56
+ };
57
+ async run() {
58
+ const { flags } = await this.parse(SiteSearch);
59
+ this.printWorkspaceHeader();
60
+ const { data, error } = await this.apiClient.GET("/site/search", { params: { query: {
61
+ search: flags.search,
62
+ search_in: flags["search-in"],
63
+ selection: flags.selection,
64
+ size: flags.size
65
+ } } });
66
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
67
+ const resp = data;
68
+ const rows = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
69
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
70
+ ok: true,
71
+ data: rows,
72
+ summary: `${rows.length} result(s)`,
73
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "site" }]
74
+ });
75
+ if (rows.length === 0) {
76
+ this.log("No results found.");
77
+ return;
78
+ }
79
+ const table = require_lib_output.renderTable([
80
+ "Type",
81
+ "Title",
82
+ "ID"
83
+ ], rows.map((r) => [
84
+ require_lib_term_map.applyCliTerms(String(r.object_type ?? "")),
85
+ String(r.title ?? r.label ?? ""),
86
+ String(r.object_id ?? "")
87
+ ]));
88
+ this.log(table.toString());
89
+ this.log(chalk.default.dim(`${rows.length} result(s)`));
90
+ }
91
+ };
92
+ //#endregion
93
+ module.exports = SiteSearch;