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,65 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/comment/promote.ts
9
+ /**
10
+ * Comment promote command — toggles or sets promoted status on a comment (CMT-05).
11
+ *
12
+ * If --promoted / --no-promoted is provided, the value is sent explicitly.
13
+ * If the flag is omitted entirely, promoted_p is not sent — the API will toggle the current state.
14
+ */
15
+ var CommentPromote = class CommentPromote extends require_lib_base_command.AuthenticatedCommand {
16
+ static description = "Promote or toggle promoted status of a comment";
17
+ static agentMetadata = {
18
+ api_endpoint: "POST /comment/promote",
19
+ auth_scope: "write",
20
+ output_shape: { type: "none" },
21
+ side_effects: "updates"
22
+ };
23
+ static examples = [
24
+ "<%= config.bin %> comment promote 789",
25
+ "<%= config.bin %> comment promote 789 --promoted",
26
+ "<%= config.bin %> comment promote 789 --no-promoted"
27
+ ];
28
+ static enableJsonFlag = true;
29
+ static flags = {
30
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
31
+ promoted: _oclif_core.Flags.boolean({
32
+ description: "Set promoted status (omit to toggle)",
33
+ allowNo: true,
34
+ required: false
35
+ })
36
+ };
37
+ static args = { id: _oclif_core.Args.string({
38
+ description: "Comment ID",
39
+ required: true
40
+ }) };
41
+ async run() {
42
+ const { args, flags } = await this.parse(CommentPromote);
43
+ this.printWorkspaceHeader();
44
+ const body = { comment_id: Number(args.id) };
45
+ if (flags.promoted !== void 0) body.promoted_p = flags.promoted ? 1 : 0;
46
+ const { data, error } = await this.apiClient.POST("/comment/promote", {
47
+ body,
48
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
49
+ });
50
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
51
+ const message = flags.promoted !== void 0 ? chalk.default.green("Comment promoted") : chalk.default.green("Comment promotion toggled");
52
+ this.log(message);
53
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
54
+ ok: true,
55
+ data,
56
+ summary: flags.promoted !== void 0 ? "Comment promoted" : "Comment promotion toggled",
57
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
58
+ resource: "comment",
59
+ id: args.id
60
+ }]
61
+ });
62
+ }
63
+ };
64
+ //#endregion
65
+ module.exports = CommentPromote;
@@ -0,0 +1,81 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/comment/reaction/add.ts
9
+ /**
10
+ * Comment reaction add command — adds a reaction to a comment (CMT-08).
11
+ *
12
+ * D-3: 3-level oclif topic discovered by directory structure (comment/reaction/add.ts).
13
+ * Class name follows Topic1+Topic2+Verb convention: CommentReactionAdd.
14
+ *
15
+ * Uses GET (not POST) per API spec — all reaction endpoints are GET queries.
16
+ *
17
+ * Threat mitigation T-06-06: --object-token is required; no auto-lookup to prevent token leakage.
18
+ */
19
+ var CommentReactionAdd = class CommentReactionAdd extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Add a reaction to a comment";
21
+ static agentMetadata = {
22
+ api_endpoint: "GET /comment/reaction/add",
23
+ auth_scope: "write",
24
+ output_shape: { type: "none" },
25
+ side_effects: "creates"
26
+ };
27
+ static examples = ["<%= config.bin %> comment reaction add 789 --object-id 123 --object-token abc --reaction \"👍\"", "<%= config.bin %> comment reaction add 789 --object-id 123 --object-token abc --reaction \"❤️\" --object-type photo"];
28
+ static enableJsonFlag = true;
29
+ static flags = {
30
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
31
+ reaction: _oclif_core.Flags.string({
32
+ description: "Reaction emoji to add",
33
+ required: true
34
+ }),
35
+ "object-id": _oclif_core.Flags.string({
36
+ description: "Object ID the comment belongs to",
37
+ required: true
38
+ }),
39
+ "object-token": _oclif_core.Flags.string({
40
+ description: "Object token for the target object",
41
+ required: true
42
+ }),
43
+ "object-type": _oclif_core.Flags.string({
44
+ description: "Object type (live, photo, album)",
45
+ required: false
46
+ }),
47
+ uuid: _oclif_core.Flags.string({
48
+ description: "UUID identifier",
49
+ required: false
50
+ })
51
+ };
52
+ static args = { id: _oclif_core.Args.string({
53
+ description: "Comment ID",
54
+ required: true
55
+ }) };
56
+ async run() {
57
+ const { args, flags } = await this.parse(CommentReactionAdd);
58
+ this.printWorkspaceHeader();
59
+ const { data, error } = await this.apiClient.GET("/comment/reaction/add", { params: { query: {
60
+ comment_id: Number(args.id),
61
+ reaction_emoji: flags.reaction,
62
+ object_id: Number(flags["object-id"]),
63
+ object_token: flags["object-token"],
64
+ object_type: flags["object-type"],
65
+ uuid: flags.uuid
66
+ } } });
67
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
68
+ this.log(chalk.default.green("Reaction added"));
69
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
70
+ ok: true,
71
+ data,
72
+ summary: "Reaction added",
73
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
74
+ resource: "comment",
75
+ id: args.id
76
+ }]
77
+ });
78
+ }
79
+ };
80
+ //#endregion
81
+ module.exports = CommentReactionAdd;
@@ -0,0 +1,92 @@
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/comment/reaction/list.ts
9
+ /**
10
+ * Comment reaction list command — lists reactions on comments for an object (CMT-08).
11
+ *
12
+ * D-3: 3-level oclif topic discovered by directory structure (comment/reaction/list.ts).
13
+ * Class name follows Topic1+Topic2+Verb convention: CommentReactionList.
14
+ *
15
+ * Uses GET (not POST) per API spec.
16
+ *
17
+ * Threat mitigation T-06-06: --object-token is required; no auto-lookup to prevent token exposure.
18
+ */
19
+ var CommentReactionList = class CommentReactionList extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "List reactions on comments for an object";
21
+ static agentMetadata = {
22
+ api_endpoint: "GET /comment/reaction/list",
23
+ auth_scope: "read",
24
+ output_shape: {
25
+ type: "table",
26
+ columns: [
27
+ "Comment ID",
28
+ "Emoji",
29
+ "Count"
30
+ ]
31
+ },
32
+ side_effects: "none"
33
+ };
34
+ static examples = ["<%= config.bin %> comment reaction list --object-id 123 --object-token abc", "<%= config.bin %> comment reaction list --object-id 123 --object-token abc --object-type photo"];
35
+ static enableJsonFlag = true;
36
+ static flags = {
37
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
38
+ "object-id": _oclif_core.Flags.string({
39
+ description: "Object ID to list reactions for",
40
+ required: true
41
+ }),
42
+ "object-token": _oclif_core.Flags.string({
43
+ description: "Object token for the target object",
44
+ required: true
45
+ }),
46
+ "object-type": _oclif_core.Flags.string({
47
+ description: "Object type (live, photo, album)",
48
+ required: false
49
+ }),
50
+ uuid: _oclif_core.Flags.string({
51
+ description: "UUID identifier",
52
+ required: false
53
+ })
54
+ };
55
+ static args = {};
56
+ async run() {
57
+ const { flags } = await this.parse(CommentReactionList);
58
+ this.printWorkspaceHeader();
59
+ const { data, error } = await this.apiClient.GET("/comment/reaction/list", { params: { query: {
60
+ object_id: Number(flags["object-id"]),
61
+ object_token: flags["object-token"],
62
+ object_type: flags["object-type"],
63
+ uuid: flags.uuid
64
+ } } });
65
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
66
+ const resp = data;
67
+ const reactions = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
68
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
69
+ ok: true,
70
+ data: reactions,
71
+ summary: `${reactions.length} reaction${reactions.length === 1 ? "" : "s"}`,
72
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "comment" }]
73
+ });
74
+ if (reactions.length === 0) {
75
+ this.log("No reactions found.");
76
+ return;
77
+ }
78
+ const table = require_lib_output.renderTable([
79
+ "Comment ID",
80
+ "Emoji",
81
+ "Count"
82
+ ], reactions.map((r) => [
83
+ String(r.comment_id ?? ""),
84
+ String(r.reaction_emoji ?? r.emoji ?? ""),
85
+ String(r.count ?? r.reaction_count ?? "")
86
+ ]));
87
+ this.log(table.toString());
88
+ this.log(chalk.default.dim(`${reactions.length} reaction${reactions.length === 1 ? "" : "s"}`));
89
+ }
90
+ };
91
+ //#endregion
92
+ module.exports = CommentReactionList;
@@ -0,0 +1,81 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/comment/reaction/remove.ts
9
+ /**
10
+ * Comment reaction remove command — removes a reaction from a comment (CMT-08).
11
+ *
12
+ * D-3: 3-level oclif topic discovered by directory structure (comment/reaction/remove.ts).
13
+ * Class name follows Topic1+Topic2+Verb convention: CommentReactionRemove.
14
+ *
15
+ * Uses GET (not POST) per API spec — all reaction endpoints are GET queries.
16
+ *
17
+ * Threat mitigation T-06-06: --object-token is required; no auto-lookup to prevent token leakage.
18
+ */
19
+ var CommentReactionRemove = class CommentReactionRemove extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Remove a reaction from a comment";
21
+ static agentMetadata = {
22
+ api_endpoint: "GET /comment/reaction/remove",
23
+ auth_scope: "write",
24
+ output_shape: { type: "none" },
25
+ side_effects: "destructive"
26
+ };
27
+ static examples = ["<%= config.bin %> comment reaction remove 789 --object-id 123 --object-token abc --reaction \"👍\"", "<%= config.bin %> comment reaction remove 789 --object-id 123 --object-token abc --reaction \"❤️\" --object-type photo"];
28
+ static enableJsonFlag = true;
29
+ static flags = {
30
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
31
+ reaction: _oclif_core.Flags.string({
32
+ description: "Reaction emoji to remove",
33
+ required: true
34
+ }),
35
+ "object-id": _oclif_core.Flags.string({
36
+ description: "Object ID the comment belongs to",
37
+ required: true
38
+ }),
39
+ "object-token": _oclif_core.Flags.string({
40
+ description: "Object token for the target object",
41
+ required: true
42
+ }),
43
+ "object-type": _oclif_core.Flags.string({
44
+ description: "Object type (live, photo, album)",
45
+ required: false
46
+ }),
47
+ uuid: _oclif_core.Flags.string({
48
+ description: "UUID identifier",
49
+ required: false
50
+ })
51
+ };
52
+ static args = { id: _oclif_core.Args.string({
53
+ description: "Comment ID",
54
+ required: true
55
+ }) };
56
+ async run() {
57
+ const { args, flags } = await this.parse(CommentReactionRemove);
58
+ this.printWorkspaceHeader();
59
+ const { data, error } = await this.apiClient.GET("/comment/reaction/remove", { params: { query: {
60
+ comment_id: Number(args.id),
61
+ reaction_emoji: flags.reaction,
62
+ object_id: Number(flags["object-id"]),
63
+ object_token: flags["object-token"],
64
+ object_type: flags["object-type"],
65
+ uuid: flags.uuid
66
+ } } });
67
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
68
+ this.log(chalk.default.green("Reaction removed"));
69
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
70
+ ok: true,
71
+ data,
72
+ summary: "Reaction removed",
73
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
74
+ resource: "comment",
75
+ id: args.id
76
+ }]
77
+ });
78
+ }
79
+ };
80
+ //#endregion
81
+ module.exports = CommentReactionRemove;
@@ -0,0 +1,63 @@
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/comment/set-order.ts
9
+ /**
10
+ * Comment set-order command — reorders comments on an object (CMT-07).
11
+ *
12
+ * The --order flag takes a comma-separated list of comment IDs in the desired display order.
13
+ */
14
+ var CommentSetOrder = class CommentSetOrder extends require_lib_base_command.AuthenticatedCommand {
15
+ static description = "Set display order of comments on an object";
16
+ static agentMetadata = {
17
+ api_endpoint: "POST /comment/set-order",
18
+ auth_scope: "write",
19
+ output_shape: { type: "none" },
20
+ side_effects: "updates"
21
+ };
22
+ static examples = ["<%= config.bin %> comment set-order --object-id 123 --order \"789,456,123\"", "<%= config.bin %> comment set-order --object-id 123 --order \"789,456\" --comment-type question"];
23
+ static enableJsonFlag = true;
24
+ static flags = {
25
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
26
+ "object-id": _oclif_core.Flags.string({
27
+ description: "Object ID whose comments are being reordered",
28
+ required: true
29
+ }),
30
+ order: _oclif_core.Flags.string({
31
+ description: "Comma-separated list of comment IDs in desired display order",
32
+ required: true
33
+ }),
34
+ "comment-type": _oclif_core.Flags.string({
35
+ description: "Comment type to reorder (default: question)",
36
+ required: false
37
+ })
38
+ };
39
+ static args = {};
40
+ async run() {
41
+ const { flags } = await this.parse(CommentSetOrder);
42
+ this.printWorkspaceHeader();
43
+ const body = {
44
+ object_id: Number(flags["object-id"]),
45
+ order: flags.order,
46
+ comment_type: flags["comment-type"] ?? "question"
47
+ };
48
+ const { data, error } = await this.apiClient.POST("/comment/set-order", {
49
+ body,
50
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
51
+ });
52
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
53
+ this.log(chalk.default.green("Comment order updated"));
54
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
55
+ ok: true,
56
+ data,
57
+ summary: "Comment order updated",
58
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "comment" }]
59
+ });
60
+ }
61
+ };
62
+ //#endregion
63
+ module.exports = CommentSetOrder;
@@ -0,0 +1,63 @@
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/comment/update.ts
9
+ /**
10
+ * Comment update command — modifies a comment's status (CMT-03).
11
+ */
12
+ var CommentUpdate = class CommentUpdate extends require_lib_base_command.AuthenticatedCommand {
13
+ static description = "Update a comment's status";
14
+ static agentMetadata = {
15
+ api_endpoint: "POST /comment/update",
16
+ auth_scope: "write",
17
+ output_shape: { type: "none" },
18
+ side_effects: "updates"
19
+ };
20
+ static examples = ["<%= config.bin %> comment update 789 --object-id 123 --status answered", "<%= config.bin %> comment update 789 --object-id 123 --status dismissed"];
21
+ static enableJsonFlag = true;
22
+ static flags = {
23
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
24
+ "object-id": _oclif_core.Flags.string({
25
+ description: "Object ID the comment belongs to",
26
+ required: true
27
+ }),
28
+ status: _oclif_core.Flags.string({
29
+ description: "Comment status (answered, dismissed, or empty to clear)",
30
+ required: false
31
+ })
32
+ };
33
+ static args = { id: _oclif_core.Args.string({
34
+ description: "Comment ID",
35
+ required: true
36
+ }) };
37
+ async run() {
38
+ const { args, flags } = await this.parse(CommentUpdate);
39
+ this.printWorkspaceHeader();
40
+ const body = {
41
+ object_id: Number(flags["object-id"]),
42
+ comment_id: Number(args.id)
43
+ };
44
+ if (flags.status !== void 0) body.comment_status = flags.status;
45
+ const { data, error } = await this.apiClient.POST("/comment/update", {
46
+ body,
47
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
48
+ });
49
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
50
+ this.log(chalk.default.green("Comment updated"));
51
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
52
+ ok: true,
53
+ data,
54
+ summary: `Comment ${args.id} updated`,
55
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
56
+ resource: "comment",
57
+ id: args.id
58
+ }]
59
+ });
60
+ }
61
+ };
62
+ //#endregion
63
+ module.exports = CommentUpdate;
@@ -0,0 +1,129 @@
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_api_client = require("../api/client.cjs");
3
+ const require_auth_workspace_config = require("../auth/workspace-config.cjs");
4
+ let _oclif_core = require("@oclif/core");
5
+ let cli_table3 = require("cli-table3");
6
+ cli_table3 = require_runtime.__toESM(cli_table3);
7
+ let chalk = require("chalk");
8
+ chalk = require_runtime.__toESM(chalk);
9
+ //#region src/commands/doctor.ts
10
+ var Doctor = class extends _oclif_core.Command {
11
+ static description = "Check CLI credentials, connectivity, and token validity";
12
+ static examples = ["<%= config.bin %> doctor", "<%= config.bin %> doctor --json"];
13
+ static enableJsonFlag = true;
14
+ static flags = {};
15
+ async run() {
16
+ const checks = [];
17
+ let domain;
18
+ let ws = null;
19
+ try {
20
+ domain = require_auth_workspace_config.getActiveWorkspace();
21
+ if (!domain) checks.push({
22
+ name: "Credentials stored",
23
+ passed: false,
24
+ detail: "No workspace configured"
25
+ });
26
+ else {
27
+ ws = require_auth_workspace_config.getWorkspaceForDomain(domain);
28
+ if (!ws) checks.push({
29
+ name: "Credentials stored",
30
+ passed: false,
31
+ detail: "No workspace configured"
32
+ });
33
+ else if (!ws.bearer_token) checks.push({
34
+ name: "Credentials stored",
35
+ passed: false,
36
+ detail: "No bearer token stored"
37
+ });
38
+ else checks.push({
39
+ name: "Credentials stored",
40
+ passed: true,
41
+ detail: domain
42
+ });
43
+ }
44
+ } catch {
45
+ checks.push({
46
+ name: "Credentials stored",
47
+ passed: false,
48
+ detail: "Error reading credentials"
49
+ });
50
+ }
51
+ if (!checks[0].passed) checks.push({
52
+ name: "Connectivity",
53
+ passed: false,
54
+ detail: "Skipped (no credentials)"
55
+ });
56
+ else {
57
+ const baseUrl = ws.api_base_url.replace(/\/?$/, "/");
58
+ try {
59
+ const resp = await fetch(baseUrl, {
60
+ method: "HEAD",
61
+ signal: AbortSignal.timeout(1e4)
62
+ });
63
+ checks.push({
64
+ name: "Connectivity",
65
+ passed: true,
66
+ detail: `${domain} (HTTP ${resp.status})`
67
+ });
68
+ } catch (err) {
69
+ const message = err instanceof Error ? err.message : "Connection failed";
70
+ checks.push({
71
+ name: "Connectivity",
72
+ passed: false,
73
+ detail: message
74
+ });
75
+ }
76
+ }
77
+ if (!checks[1].passed) checks.push({
78
+ name: "Token valid",
79
+ passed: false,
80
+ detail: "Skipped (no connectivity)"
81
+ });
82
+ else {
83
+ const { error } = await require_api_client.createApiClient({
84
+ baseUrl: ws.api_base_url.replace(/\/?$/, "/") + "api/2/",
85
+ token: ws.bearer_token
86
+ }).GET("/photo/list", { params: { query: { size: 1 } } });
87
+ if (error) {
88
+ const status = error?.status ?? error?.code ?? "unknown";
89
+ const message = error?.message ?? "Unauthorized";
90
+ checks.push({
91
+ name: "Token valid",
92
+ passed: false,
93
+ detail: `${status} ${message}`
94
+ });
95
+ } else checks.push({
96
+ name: "Token valid",
97
+ passed: true,
98
+ detail: "Authenticated"
99
+ });
100
+ }
101
+ const allPassed = checks.every((c) => c.passed);
102
+ if (this.jsonEnabled()) return {
103
+ ok: allPassed,
104
+ checks
105
+ };
106
+ const table = new cli_table3.default({
107
+ head: [
108
+ "Check",
109
+ "Status",
110
+ "Detail"
111
+ ],
112
+ style: { head: ["cyan"] },
113
+ colWidths: [
114
+ 25,
115
+ 10,
116
+ 50
117
+ ]
118
+ });
119
+ for (const check of checks) table.push([
120
+ check.name,
121
+ check.passed ? chalk.default.green("✓ OK") : chalk.default.red("✗ FAIL"),
122
+ check.detail
123
+ ]);
124
+ this.log(table.toString());
125
+ if (!allPassed) process.exit(1);
126
+ }
127
+ };
128
+ //#endregion
129
+ module.exports = Doctor;
@@ -0,0 +1,95 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/openupload/list.ts
9
+ /**
10
+ * Open upload list command — lists open upload tokens in the workspace.
11
+ *
12
+ * Threat mitigations:
13
+ * T-08-21: extends AuthenticatedCommand — anonymous mode rejected
14
+ */
15
+ var OpenuploadList = class OpenuploadList extends require_lib_base_command.AuthenticatedCommand {
16
+ static description = "List open upload tokens in the active workspace";
17
+ static examples = [
18
+ "<%= config.bin %> openupload list",
19
+ "<%= config.bin %> openupload list --token-upload-id 123",
20
+ "<%= config.bin %> openupload list --json"
21
+ ];
22
+ static enableJsonFlag = true;
23
+ static flags = {
24
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
25
+ "token-upload-id": _oclif_core.Flags.string({
26
+ description: "Filter by open upload token upload ID",
27
+ required: false
28
+ }),
29
+ token: _oclif_core.Flags.string({
30
+ description: "Filter by open upload token",
31
+ required: false
32
+ }),
33
+ app: _oclif_core.Flags.boolean({
34
+ description: "Filter by app open uploads",
35
+ allowNo: false,
36
+ required: false
37
+ }),
38
+ "app-p": _oclif_core.Flags.string({
39
+ hidden: true,
40
+ required: false
41
+ })
42
+ };
43
+ static agentMetadata = {
44
+ api_endpoint: "GET /openupload/list",
45
+ auth_scope: "read",
46
+ output_shape: {
47
+ type: "table",
48
+ columns: [
49
+ "ID",
50
+ "Name",
51
+ "Token",
52
+ "Public"
53
+ ]
54
+ },
55
+ side_effects: "none"
56
+ };
57
+ async run() {
58
+ const { flags } = await this.parse(OpenuploadList);
59
+ this.printWorkspaceHeader();
60
+ const appVal = parseBoolParam(flags.app, flags["app-p"]);
61
+ const { data, error } = await this.apiClient.GET("/openupload/list", { params: { query: {
62
+ token_upload_id: flags["token-upload-id"] !== void 0 ? Number(flags["token-upload-id"]) : void 0,
63
+ token: flags.token,
64
+ app_p: appVal
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} open upload(s)`,
73
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "openupload" }]
74
+ });
75
+ if (rows.length === 0) {
76
+ this.log("No open uploads found.");
77
+ return;
78
+ }
79
+ const table = require_lib_output.renderTable([
80
+ "ID",
81
+ "Name",
82
+ "Token",
83
+ "Public"
84
+ ], rows.map((r) => [
85
+ String(r.token_upload_id ?? ""),
86
+ String(r.name ?? ""),
87
+ r.token ? String(r.token).slice(0, 8) + "…" : "",
88
+ String(r.public_p ?? "")
89
+ ]));
90
+ this.log(table.toString());
91
+ this.log(chalk.default.dim(`${rows.length} open upload(s)`));
92
+ }
93
+ };
94
+ //#endregion
95
+ module.exports = OpenuploadList;