twentythree-cli 1.3.4 → 1.3.6

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 (178) hide show
  1. package/dist/commands/app/add.cjs +5 -0
  2. package/dist/commands/video/list.cjs +145 -10
  3. package/dist/commands/video/section/check-generate-available.cjs +67 -0
  4. package/dist/commands/webinar/create.cjs +5 -0
  5. package/dist/commands/webinar/repeat.cjs +5 -0
  6. package/dist/commands/webinar/speaker/add.cjs +25 -15
  7. package/dist/commands/webinar/speaker/update.cjs +18 -0
  8. package/dist/commands/webinar/update.cjs +7 -1
  9. package/docs/commands/action/add.md +1 -1
  10. package/docs/commands/action/delete.md +1 -1
  11. package/docs/commands/action/exclude.md +1 -1
  12. package/docs/commands/action/get.md +1 -1
  13. package/docs/commands/action/include.md +1 -1
  14. package/docs/commands/action/list.md +1 -1
  15. package/docs/commands/action/types.md +1 -1
  16. package/docs/commands/action/update.md +1 -1
  17. package/docs/commands/action/upload.md +1 -1
  18. package/docs/commands/action.md +9 -9
  19. package/docs/commands/analytics/conversions.md +3 -3
  20. package/docs/commands/analytics/live.md +9 -9
  21. package/docs/commands/analytics/usage.md +18 -18
  22. package/docs/commands/analytics/video.md +12 -12
  23. package/docs/commands/analytics.md +42 -42
  24. package/docs/commands/app/add.md +3 -2
  25. package/docs/commands/app/delete.md +1 -1
  26. package/docs/commands/app/list.md +1 -1
  27. package/docs/commands/app/remove-thumbnail.md +1 -1
  28. package/docs/commands/app/set-thumbnail.md +1 -1
  29. package/docs/commands/app/update.md +1 -1
  30. package/docs/commands/app.md +6 -6
  31. package/docs/commands/audience/companies.md +1 -1
  32. package/docs/commands/audience/field.md +4 -4
  33. package/docs/commands/audience/funnel.md +1 -1
  34. package/docs/commands/audience/identity-sources.md +1 -1
  35. package/docs/commands/audience/list-collectors.md +1 -1
  36. package/docs/commands/audience/list.md +1 -1
  37. package/docs/commands/audience/metrics.md +1 -1
  38. package/docs/commands/audience/register.md +1 -1
  39. package/docs/commands/audience/remove.md +1 -1
  40. package/docs/commands/audience/search.md +1 -1
  41. package/docs/commands/audience/timelines.md +1 -1
  42. package/docs/commands/audience/unregister.md +1 -1
  43. package/docs/commands/audience.md +15 -15
  44. package/docs/commands/auth/credentials.md +1 -1
  45. package/docs/commands/auth/status.md +1 -1
  46. package/docs/commands/auth/switch.md +1 -1
  47. package/docs/commands/auth.md +3 -3
  48. package/docs/commands/autocomplete.md +1 -1
  49. package/docs/commands/category/create.md +1 -1
  50. package/docs/commands/category/delete.md +1 -1
  51. package/docs/commands/category/list.md +1 -1
  52. package/docs/commands/category/update.md +1 -1
  53. package/docs/commands/category.md +5 -5
  54. package/docs/commands/collector/exclude.md +1 -1
  55. package/docs/commands/collector/include.md +1 -1
  56. package/docs/commands/collector/list.md +1 -1
  57. package/docs/commands/collector.md +3 -3
  58. package/docs/commands/comment/add.md +1 -1
  59. package/docs/commands/comment/clone.md +1 -1
  60. package/docs/commands/comment/delete.md +1 -1
  61. package/docs/commands/comment/list.md +1 -1
  62. package/docs/commands/comment/promote.md +1 -1
  63. package/docs/commands/comment/reaction.md +3 -3
  64. package/docs/commands/comment/set-order.md +1 -1
  65. package/docs/commands/comment/update.md +1 -1
  66. package/docs/commands/comment.md +10 -10
  67. package/docs/commands/doctor.md +1 -1
  68. package/docs/commands/openupload/list.md +1 -1
  69. package/docs/commands/openupload/update-file.md +1 -1
  70. package/docs/commands/openupload/upload-file.md +1 -1
  71. package/docs/commands/openupload.md +3 -3
  72. package/docs/commands/player/delete.md +1 -1
  73. package/docs/commands/player/embed-versions.md +1 -1
  74. package/docs/commands/player/embed.md +1 -1
  75. package/docs/commands/player/list.md +1 -1
  76. package/docs/commands/player/remove-thumbnail.md +1 -1
  77. package/docs/commands/player/set-thumbnail.md +1 -1
  78. package/docs/commands/player/styles.md +1 -1
  79. package/docs/commands/player/update.md +1 -1
  80. package/docs/commands/player.md +8 -8
  81. package/docs/commands/poll/add.md +1 -1
  82. package/docs/commands/poll/answer.md +1 -1
  83. package/docs/commands/poll/list.md +1 -1
  84. package/docs/commands/poll/remove.md +1 -1
  85. package/docs/commands/poll/set-options.md +1 -1
  86. package/docs/commands/poll/update.md +1 -1
  87. package/docs/commands/poll.md +6 -6
  88. package/docs/commands/presentation/page.md +1 -1
  89. package/docs/commands/presentation/setting.md +2 -2
  90. package/docs/commands/presentation.md +3 -3
  91. package/docs/commands/protection/protect.md +1 -1
  92. package/docs/commands/protection/unprotect.md +1 -1
  93. package/docs/commands/protection/verify.md +1 -1
  94. package/docs/commands/protection.md +3 -3
  95. package/docs/commands/seo/get.md +1 -1
  96. package/docs/commands/seo/status.md +1 -1
  97. package/docs/commands/seo/update.md +1 -1
  98. package/docs/commands/seo.md +3 -3
  99. package/docs/commands/session/get-token.md +1 -1
  100. package/docs/commands/session/redeem-token.md +1 -1
  101. package/docs/commands/session.md +2 -2
  102. package/docs/commands/setting/update.md +1 -1
  103. package/docs/commands/setting.md +1 -1
  104. package/docs/commands/site/get.md +1 -1
  105. package/docs/commands/site/search.md +1 -1
  106. package/docs/commands/site.md +2 -2
  107. package/docs/commands/spot/check.md +1 -1
  108. package/docs/commands/spot/create.md +1 -1
  109. package/docs/commands/spot/delete.md +1 -1
  110. package/docs/commands/spot/list.md +1 -1
  111. package/docs/commands/spot/reset-version.md +1 -1
  112. package/docs/commands/spot/set-videos.md +1 -1
  113. package/docs/commands/spot/update.md +1 -1
  114. package/docs/commands/spot.md +7 -7
  115. package/docs/commands/tag/list.md +1 -1
  116. package/docs/commands/tag/related.md +1 -1
  117. package/docs/commands/tag.md +2 -2
  118. package/docs/commands/thumbnail/add.md +1 -1
  119. package/docs/commands/thumbnail/data.md +1 -1
  120. package/docs/commands/thumbnail/delete.md +1 -1
  121. package/docs/commands/thumbnail/duplicate.md +1 -1
  122. package/docs/commands/thumbnail/file.md +3 -3
  123. package/docs/commands/thumbnail/list.md +1 -1
  124. package/docs/commands/thumbnail/preview-scss.md +1 -1
  125. package/docs/commands/thumbnail/update.md +1 -1
  126. package/docs/commands/thumbnail.md +11 -11
  127. package/docs/commands/user/create.md +1 -1
  128. package/docs/commands/user/get-login-token.md +1 -1
  129. package/docs/commands/user/get.md +1 -1
  130. package/docs/commands/user/list.md +1 -1
  131. package/docs/commands/user/redeem-login-token.md +1 -1
  132. package/docs/commands/user/send-invitation.md +1 -1
  133. package/docs/commands/user/tokens.md +1 -1
  134. package/docs/commands/user/update.md +1 -1
  135. package/docs/commands/user.md +8 -8
  136. package/docs/commands/video/delete.md +1 -1
  137. package/docs/commands/video/frame.md +1 -1
  138. package/docs/commands/video/get.md +1 -1
  139. package/docs/commands/video/list.md +42 -4
  140. package/docs/commands/video/replace.md +1 -1
  141. package/docs/commands/video/section.md +40 -7
  142. package/docs/commands/video/subtitle.md +12 -12
  143. package/docs/commands/video/transcoding-progress.md +1 -1
  144. package/docs/commands/video/update.md +1 -1
  145. package/docs/commands/video/upload.md +1 -1
  146. package/docs/commands/video.md +28 -28
  147. package/docs/commands/webhook/events.md +1 -1
  148. package/docs/commands/webhook/list.md +1 -1
  149. package/docs/commands/webhook/sample.md +1 -1
  150. package/docs/commands/webhook/subscribe.md +1 -1
  151. package/docs/commands/webhook/unsubscribe.md +1 -1
  152. package/docs/commands/webhook.md +5 -5
  153. package/docs/commands/webinar/attachment.md +4 -4
  154. package/docs/commands/webinar/clips.md +1 -1
  155. package/docs/commands/webinar/create.md +9 -8
  156. package/docs/commands/webinar/delete.md +1 -1
  157. package/docs/commands/webinar/highlights.md +1 -1
  158. package/docs/commands/webinar/list-formats.md +1 -1
  159. package/docs/commands/webinar/list.md +1 -1
  160. package/docs/commands/webinar/log.md +1 -1
  161. package/docs/commands/webinar/mail.md +7 -7
  162. package/docs/commands/webinar/metrics.md +1 -1
  163. package/docs/commands/webinar/queued-video.md +2 -2
  164. package/docs/commands/webinar/recording.md +4 -4
  165. package/docs/commands/webinar/repeat.md +4 -3
  166. package/docs/commands/webinar/room.md +4 -4
  167. package/docs/commands/webinar/section.md +4 -4
  168. package/docs/commands/webinar/series.md +12 -12
  169. package/docs/commands/webinar/speaker.md +34 -25
  170. package/docs/commands/webinar/transcription.md +4 -4
  171. package/docs/commands/webinar/update.md +11 -10
  172. package/docs/commands/webinar/upload-image.md +1 -1
  173. package/docs/commands/webinar.md +67 -67
  174. package/docs/commands/workspace/list.md +1 -1
  175. package/docs/commands/workspace/use.md +1 -1
  176. package/docs/commands/workspace.md +2 -2
  177. package/oclif.manifest.json +2914 -2561
  178. package/package.json +1 -1
@@ -37,6 +37,10 @@ var AppAdd = class AppAdd extends require_lib_base_command.AuthenticatedCommand
37
37
  type: _oclif_core.Flags.string({
38
38
  description: "App type",
39
39
  required: false
40
+ }),
41
+ "player-id": _oclif_core.Flags.integer({
42
+ description: "Add a contextual player being forked",
43
+ required: false
40
44
  })
41
45
  };
42
46
  static args = {};
@@ -53,6 +57,7 @@ var AppAdd = class AppAdd extends require_lib_base_command.AuthenticatedCommand
53
57
  if (flags.description !== void 0) body.description = flags.description;
54
58
  if (flags.style !== void 0) body.style = flags.style;
55
59
  if (flags.type !== void 0) body.type = flags.type;
60
+ if (flags["player-id"] !== void 0) body.player_id = flags["player-id"];
56
61
  const { data: createData, error: createError } = await this.apiClient.POST("/app/add", {
57
62
  body,
58
63
  headers: { "Content-Type": "application/x-www-form-urlencoded" }
@@ -7,14 +7,16 @@ let _oclif_core = require("@oclif/core");
7
7
  let chalk = require("chalk");
8
8
  chalk = require_runtime.__toESM(chalk);
9
9
  //#region src/commands/video/list.ts
10
- /**
11
- * Video list command — lists all videos in the active workspace with auto-pagination.
12
- * Renders a cli-table3 table with columns: ID, Title, Duration, Status, Published, Updated.
13
- * Supports --json output with { ok, data, summary, breadcrumbs } shape (CLI-01).
14
- */
15
10
  var VideoList = class VideoList extends require_lib_base_command.AuthenticatedCommand {
16
11
  static description = "List videos in the active workspace";
17
- static examples = ["<%= config.bin %> video list", "<%= config.bin %> video list --json"];
12
+ static examples = [
13
+ "<%= config.bin %> video list",
14
+ "<%= config.bin %> video list --json",
15
+ "<%= config.bin %> video list --search \"intro\" --order-by views --order desc",
16
+ "<%= config.bin %> video list --album-id 42 --include-unpublished",
17
+ "<%= config.bin %> video list --user-id me --limit 10",
18
+ "<%= config.bin %> video list --after-time 2024-01-01T00:00:00Z --fields photo_id,title"
19
+ ];
18
20
  static enableJsonFlag = true;
19
21
  static agentMetadata = {
20
22
  api_endpoint: "GET /photo/list",
@@ -38,11 +40,121 @@ var VideoList = class VideoList extends require_lib_base_command.AuthenticatedCo
38
40
  description: "Maximum number of videos to return (default: all)",
39
41
  required: false
40
42
  }),
43
+ search: _oclif_core.Flags.string({
44
+ description: "Search by title, description, or tags",
45
+ required: false
46
+ }),
47
+ "album-id": _oclif_core.Flags.string({
48
+ description: "Filter to videos in one or more categories (comma-separated IDs)",
49
+ required: false
50
+ }),
51
+ "user-id": _oclif_core.Flags.string({
52
+ description: "Filter to videos uploaded by a specific user (use \"me\" for the authenticated user)",
53
+ required: false
54
+ }),
55
+ "photo-id": _oclif_core.Flags.integer({
56
+ description: "Limit results to a single video by its ID",
57
+ required: false
58
+ }),
59
+ "live-id": _oclif_core.Flags.integer({
60
+ description: "Filter to videos associated with a specific webinar",
61
+ required: false
62
+ }),
63
+ tag: _oclif_core.Flags.string({
64
+ description: "Filter to videos with a specific tag",
65
+ required: false
66
+ }),
67
+ tags: _oclif_core.Flags.string({
68
+ description: "Space-separated list of tags to filter by",
69
+ required: false
70
+ }),
71
+ "tag-mode": _oclif_core.Flags.string({
72
+ description: "How to combine tag filters: \"and\" requires all tags to match, \"or\" requires any",
73
+ options: ["and", "or"],
74
+ required: false
75
+ }),
76
+ "order-by": _oclif_core.Flags.string({
77
+ description: "Order results by this field",
78
+ options: [
79
+ "uploaded",
80
+ "published",
81
+ "created",
82
+ "creation",
83
+ "taken",
84
+ "title",
85
+ "views",
86
+ "comments",
87
+ "rating",
88
+ "numratings",
89
+ "video_length",
90
+ "words",
91
+ "related",
92
+ "posted",
93
+ "rank",
94
+ "default-published"
95
+ ],
96
+ required: false
97
+ }),
98
+ order: _oclif_core.Flags.string({
99
+ description: "Sort direction",
100
+ options: ["asc", "desc"],
101
+ required: false
102
+ }),
103
+ "before-time": _oclif_core.Flags.string({
104
+ description: "Filter to videos uploaded before this timestamp (ISO 8601)",
105
+ required: false
106
+ }),
107
+ "after-time": _oclif_core.Flags.string({
108
+ description: "Filter to videos uploaded after this timestamp (ISO 8601)",
109
+ required: false
110
+ }),
111
+ year: _oclif_core.Flags.integer({
112
+ description: "Filter to videos from a specific year",
113
+ required: false
114
+ }),
115
+ month: _oclif_core.Flags.integer({
116
+ description: "Filter to videos from a specific month (1–12, requires --year)",
117
+ required: false
118
+ }),
119
+ day: _oclif_core.Flags.integer({
120
+ description: "Filter to videos from a specific day (1–31, requires --year and --month)",
121
+ required: false
122
+ }),
123
+ published: _oclif_core.Flags.boolean({
124
+ description: "Filter by published status",
125
+ allowNo: true,
126
+ required: false
127
+ }),
128
+ promoted: _oclif_core.Flags.boolean({
129
+ description: "Filter to promoted videos only",
130
+ allowNo: true,
131
+ required: false
132
+ }),
133
+ unalbummed: _oclif_core.Flags.boolean({
134
+ description: "Filter to videos not assigned to any category",
135
+ required: false
136
+ }),
41
137
  "include-unpublished": _oclif_core.Flags.boolean({
42
138
  description: "Include unpublished videos in the results",
43
139
  allowNo: true,
44
140
  required: false
45
141
  }),
142
+ "include-stats": _oclif_core.Flags.boolean({
143
+ description: "Include per-video performance statistics (view count, play rate, engagement)",
144
+ required: false
145
+ }),
146
+ "include-sections-count": _oclif_core.Flags.boolean({
147
+ description: "Include the number of chapters for each video",
148
+ required: false
149
+ }),
150
+ "include-user-group": _oclif_core.Flags.boolean({
151
+ description: "Include the user group assignment for each video",
152
+ required: false
153
+ }),
154
+ fields: _oclif_core.Flags.string({
155
+ description: "Comma-separated list of fields to return in the API response",
156
+ required: false
157
+ }),
46
158
  "include-unpublished-p": _oclif_core.Flags.string({
47
159
  hidden: true,
48
160
  required: false
@@ -53,11 +165,34 @@ var VideoList = class VideoList extends require_lib_base_command.AuthenticatedCo
53
165
  const { flags } = await this.parse(VideoList);
54
166
  this.printWorkspaceHeader();
55
167
  const allVideos = await require_lib_pagination.fetchAllPages(async (page, size) => {
56
- const { data, error } = await this.apiClient.GET("/photo/list", { params: { query: {
168
+ const query = {
57
169
  p: page,
58
- size,
59
- include_unpublished_p: require_lib_output.parseBoolParam(flags["include-unpublished"], flags["include-unpublished-p"]) ? "1" : void 0
60
- } } });
170
+ size
171
+ };
172
+ if (flags.search !== void 0) query.search = flags.search;
173
+ if (flags["album-id"] !== void 0) query.album_id = flags["album-id"];
174
+ if (flags["user-id"] !== void 0) query.user_id = flags["user-id"];
175
+ if (flags["photo-id"] !== void 0) query.photo_id = flags["photo-id"];
176
+ if (flags["live-id"] !== void 0) query.live_id = flags["live-id"];
177
+ if (flags.tag !== void 0) query.tag = flags.tag;
178
+ if (flags.tags !== void 0) query.tags = flags.tags;
179
+ if (flags["tag-mode"] !== void 0) query.tag_mode = flags["tag-mode"];
180
+ if (flags["order-by"] !== void 0) query.orderby = flags["order-by"];
181
+ if (flags.order !== void 0) query.order = flags.order;
182
+ if (flags["before-time"] !== void 0) query.before_time = flags["before-time"];
183
+ if (flags["after-time"] !== void 0) query.after_time = flags["after-time"];
184
+ if (flags.year !== void 0) query.year = flags.year;
185
+ if (flags.month !== void 0) query.month = flags.month;
186
+ if (flags.day !== void 0) query.day = flags.day;
187
+ if (flags.published !== void 0) query.published_p = flags.published;
188
+ if (flags.promoted !== void 0) query.promoted_p = flags.promoted;
189
+ if (flags.unalbummed) query.unalbummed_p = true;
190
+ if (flags["include-stats"]) query.include_stats_p = true;
191
+ if (flags["include-sections-count"]) query.include_number_of_sections_p = true;
192
+ if (flags["include-user-group"]) query.include_user_group_p = true;
193
+ if (flags.fields !== void 0) query.fields = flags.fields;
194
+ if (require_lib_output.parseBoolParam(flags["include-unpublished"], flags["include-unpublished-p"])) query.include_unpublished_p = "1";
195
+ const { data, error } = await this.apiClient.GET("/photo/list", { params: { query } });
61
196
  if (error) this.error(require_lib_term_map.applyCliTerms(require_lib_output.formatApiError(error)), { exit: 1 });
62
197
  const resp = data;
63
198
  return {
@@ -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/video/section/check-generate-available.ts
9
+ /**
10
+ * Video section check-generate-available command — checks whether AI chapter generation
11
+ * is available for a given video. Requires the workspace feature to be enabled and
12
+ * the video to have a transcript available.
13
+ */
14
+ var VideoSectionCheckGenerateAvailable = class VideoSectionCheckGenerateAvailable extends require_lib_base_command.AuthenticatedCommand {
15
+ static description = "Check whether AI chapter generation is available for a video";
16
+ static examples = ["<%= config.bin %> video section check-generate-available 12345", "<%= config.bin %> video section check-generate-available 12345 --json"];
17
+ static enableJsonFlag = true;
18
+ static agentMetadata = {
19
+ api_endpoint: "POST /photo/section/check-generate-available",
20
+ auth_scope: "write",
21
+ output_shape: { type: "key-value" },
22
+ side_effects: "none"
23
+ };
24
+ static flags = {
25
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
26
+ fields: _oclif_core.Flags.string({
27
+ description: "Comma-separated list of fields to return in the API response",
28
+ required: false
29
+ })
30
+ };
31
+ static args = { id: _oclif_core.Args.string({
32
+ description: "Video ID",
33
+ required: true
34
+ }) };
35
+ async run() {
36
+ const { args, flags } = await this.parse(VideoSectionCheckGenerateAvailable);
37
+ this.printWorkspaceHeader();
38
+ const body = { photo_id: Number(args.id) };
39
+ if (flags.fields !== void 0) body.fields = flags.fields;
40
+ const { data, error } = await this.apiClient.POST("/photo/section/check-generate-available", {
41
+ body,
42
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
43
+ });
44
+ if (error) this.error(require_lib_term_map.applyCliTerms(require_lib_output.formatApiError(error)), { exit: 1 });
45
+ const available = data?.data?.section_generation_available_p;
46
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
47
+ ok: true,
48
+ data,
49
+ summary: `AI chapter generation available: ${available}`,
50
+ breadcrumbs: [
51
+ { domain: this.activeWorkspace.domain },
52
+ {
53
+ resource: "video",
54
+ id: args.id
55
+ },
56
+ { resource: "section" }
57
+ ]
58
+ });
59
+ if (available) this.log(chalk.default.green(`AI chapter generation is available for video ${args.id}`));
60
+ else {
61
+ this.log(chalk.default.yellow(`AI chapter generation is not available for video ${args.id}`));
62
+ this.log("Requires: workspace feature enabled and a transcript on the video");
63
+ }
64
+ }
65
+ };
66
+ //#endregion
67
+ module.exports = VideoSectionCheckGenerateAvailable;
@@ -54,6 +54,10 @@ var WebinarCreate = class WebinarCreate extends require_lib_base_command.Authent
54
54
  allowNo: true,
55
55
  required: false
56
56
  }),
57
+ "webinar-design-id": _oclif_core.Flags.integer({
58
+ description: "Assign a webinar design by ID to this webinar",
59
+ required: false
60
+ }),
57
61
  "draft-p": _oclif_core.Flags.string({
58
62
  hidden: true,
59
63
  required: false
@@ -81,6 +85,7 @@ var WebinarCreate = class WebinarCreate extends require_lib_base_command.Authent
81
85
  if (draftVal !== void 0) body.draft_p = draftVal ? 1 : 0;
82
86
  const publishVal = require_lib_output.parseBoolParam(flags.publish, flags["published-p"]);
83
87
  if (publishVal !== void 0) body.published_p = publishVal ? 1 : 0;
88
+ if (flags["webinar-design-id"] !== void 0) body.webinar_design_id = flags["webinar-design-id"];
84
89
  const { data: createData, error: createError } = await this.apiClient.POST("/live/create", {
85
90
  body,
86
91
  headers: { "Content-Type": "application/x-www-form-urlencoded" }
@@ -20,6 +20,10 @@ var WebinarRepeat = class WebinarRepeat extends require_lib_base_command.Authent
20
20
  date: _oclif_core.Flags.string({
21
21
  description: "Schedule date/time for the new webinar (ISO 8601)",
22
22
  required: true
23
+ }),
24
+ "webinar-design-id": _oclif_core.Flags.integer({
25
+ description: "Assign a webinar design by ID to the new webinar",
26
+ required: false
23
27
  })
24
28
  };
25
29
  static args = { id: _oclif_core.Args.string({
@@ -39,6 +43,7 @@ var WebinarRepeat = class WebinarRepeat extends require_lib_base_command.Authent
39
43
  live_id: Number(args.id),
40
44
  schedule_start_time: flags.date
41
45
  };
46
+ if (flags["webinar-design-id"] !== void 0) body.webinar_design_id = flags["webinar-design-id"];
42
47
  const { data: repeatData, error: repeatError } = await this.apiClient.POST("/live/repeat", {
43
48
  body,
44
49
  headers: { "Content-Type": "application/x-www-form-urlencoded" }
@@ -31,7 +31,7 @@ var WebinarSpeakerAdd = class WebinarSpeakerAdd extends require_lib_base_command
31
31
  required: false
32
32
  }),
33
33
  email: _oclif_core.Flags.string({
34
- description: "Speaker email",
34
+ description: "Speaker email (required for WebRTC speakers)",
35
35
  required: false
36
36
  }),
37
37
  title: _oclif_core.Flags.string({
@@ -41,6 +41,22 @@ var WebinarSpeakerAdd = class WebinarSpeakerAdd extends require_lib_base_command
41
41
  description: _oclif_core.Flags.string({
42
42
  description: "Speaker bio or description",
43
43
  required: false
44
+ }),
45
+ "connection-type": _oclif_core.Flags.string({
46
+ description: "Speaker connection type",
47
+ options: [
48
+ "webrtc",
49
+ "gearmode",
50
+ "rtmp",
51
+ "whip",
52
+ "srt",
53
+ "url"
54
+ ],
55
+ required: false
56
+ }),
57
+ "connection-type-pull-url": _oclif_core.Flags.string({
58
+ description: "Pull URL for connection types that support stream pull (whip, url)",
59
+ required: false
44
60
  })
45
61
  };
46
62
  static args = { id: _oclif_core.Args.string({
@@ -58,27 +74,21 @@ var WebinarSpeakerAdd = class WebinarSpeakerAdd extends require_lib_base_command
58
74
  this.printWorkspaceHeader();
59
75
  let name = flags.name;
60
76
  let email = flags.email;
61
- if ((!name || !email) && !this.jsonEnabled()) {
62
- if (!name) {
63
- const result = await (0, _clack_prompts.text)({ message: "Speaker name" });
64
- if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
65
- name = result;
66
- }
67
- if (!email) {
68
- const result = await (0, _clack_prompts.text)({ message: "Speaker email" });
69
- if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
70
- email = result;
71
- }
77
+ if (!name && !this.jsonEnabled()) {
78
+ const result = await (0, _clack_prompts.text)({ message: "Speaker name" });
79
+ if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
80
+ name = result;
72
81
  }
73
82
  if (!name) this.error("--name is required in non-interactive mode", { exit: 1 });
74
- if (!email) this.error("--email is required in non-interactive mode", { exit: 1 });
75
83
  const body = {
76
84
  live_id: Number(args.id),
77
- name,
78
- email
85
+ name
79
86
  };
87
+ if (email !== void 0) body.email = email;
80
88
  if (flags.title !== void 0) body.title = flags.title;
81
89
  if (flags.description !== void 0) body.description = flags.description;
90
+ if (flags["connection-type"] !== void 0) body.connection_type = flags["connection-type"];
91
+ if (flags["connection-type-pull-url"] !== void 0) body.connection_type_pull_url = flags["connection-type-pull-url"];
82
92
  const { data, error } = await this.apiClient.POST("/live/speaker/add", {
83
93
  body,
84
94
  headers: { "Content-Type": "application/x-www-form-urlencoded" }
@@ -40,6 +40,22 @@ var WebinarSpeakerUpdate = class WebinarSpeakerUpdate extends require_lib_base_c
40
40
  description: _oclif_core.Flags.string({
41
41
  description: "Speaker bio or description",
42
42
  required: false
43
+ }),
44
+ "connection-type": _oclif_core.Flags.string({
45
+ description: "Speaker connection type",
46
+ options: [
47
+ "webrtc",
48
+ "gearmode",
49
+ "rtmp",
50
+ "whip",
51
+ "srt",
52
+ "url"
53
+ ],
54
+ required: false
55
+ }),
56
+ "connection-type-pull-url": _oclif_core.Flags.string({
57
+ description: "Pull URL for connection types that support stream pull (whip, url)",
58
+ required: false
43
59
  })
44
60
  };
45
61
  static args = {
@@ -69,6 +85,8 @@ var WebinarSpeakerUpdate = class WebinarSpeakerUpdate extends require_lib_base_c
69
85
  if (flags.email !== void 0) body.email = flags.email;
70
86
  if (flags.title !== void 0) body.title = flags.title;
71
87
  if (flags.description !== void 0) body.description = flags.description;
88
+ if (flags["connection-type"] !== void 0) body.connection_type = flags["connection-type"];
89
+ if (flags["connection-type-pull-url"] !== void 0) body.connection_type_pull_url = flags["connection-type-pull-url"];
72
90
  const { data, error } = await this.apiClient.POST("/live/speaker/update", {
73
91
  body,
74
92
  headers: { "Content-Type": "application/x-www-form-urlencoded" }
@@ -67,6 +67,10 @@ var WebinarUpdate = class WebinarUpdate extends require_lib_base_command.Authent
67
67
  ],
68
68
  required: false
69
69
  }),
70
+ "webinar-design-id": _oclif_core.Flags.integer({
71
+ description: "Assign a webinar design by ID to this webinar",
72
+ required: false
73
+ }),
70
74
  "draft-p": _oclif_core.Flags.string({
71
75
  hidden: true,
72
76
  required: false
@@ -100,7 +104,8 @@ var WebinarUpdate = class WebinarUpdate extends require_lib_base_command.Authent
100
104
  flags.publish,
101
105
  flags["draft-p"],
102
106
  flags["published-p"],
103
- flags["seo-policy"]
107
+ flags["seo-policy"],
108
+ flags["webinar-design-id"]
104
109
  ].some((v) => v !== void 0);
105
110
  const body = { live_id: webinarId };
106
111
  if (!metadataFlagsProvided && !this.jsonEnabled()) {
@@ -181,6 +186,7 @@ var WebinarUpdate = class WebinarUpdate extends require_lib_base_command.Authent
181
186
  const publishVal = require_lib_output.parseBoolParam(flags.publish, flags["published-p"]);
182
187
  if (publishVal !== void 0) body.published_p = publishVal ? 1 : 0;
183
188
  if (flags["seo-policy"] !== void 0) body.seo_policy = flags["seo-policy"];
189
+ if (flags["webinar-design-id"] !== void 0) body.webinar_design_id = flags["webinar-design-id"];
184
190
  }
185
191
  const { data: updateData, error: updateError } = await this.apiClient.POST("/live/update", {
186
192
  body,
@@ -33,4 +33,4 @@ EXAMPLES
33
33
  $ twentythree action add --type overlay --object-id 12345 --json
34
34
  ```
35
35
 
36
- _See code: [src/commands/action/add.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/add.ts)_
36
+ _See code: [src/commands/action/add.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/add.ts)_
@@ -29,4 +29,4 @@ EXAMPLES
29
29
  $ twentythree action delete 12345 --json
30
30
  ```
31
31
 
32
- _See code: [src/commands/action/delete.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/delete.ts)_
32
+ _See code: [src/commands/action/delete.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/delete.ts)_
@@ -35,4 +35,4 @@ EXAMPLES
35
35
  $ twentythree action exclude 12345 --object-id 6789 --json
36
36
  ```
37
37
 
38
- _See code: [src/commands/action/exclude.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/exclude.ts)_
38
+ _See code: [src/commands/action/exclude.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/exclude.ts)_
@@ -44,4 +44,4 @@ EXAMPLES
44
44
  $ twentythree action get 12345 --json
45
45
  ```
46
46
 
47
- _See code: [src/commands/action/get.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/get.ts)_
47
+ _See code: [src/commands/action/get.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/get.ts)_
@@ -35,4 +35,4 @@ EXAMPLES
35
35
  $ twentythree action include 12345 --object-id 6789 --json
36
36
  ```
37
37
 
38
- _See code: [src/commands/action/include.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/include.ts)_
38
+ _See code: [src/commands/action/include.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/include.ts)_
@@ -40,4 +40,4 @@ EXAMPLES
40
40
  $ twentythree action list --video-id 12345 --json
41
41
  ```
42
42
 
43
- _See code: [src/commands/action/list.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/list.ts)_
43
+ _See code: [src/commands/action/list.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/list.ts)_
@@ -31,4 +31,4 @@ EXAMPLES
31
31
  $ twentythree action types --json
32
32
  ```
33
33
 
34
- _See code: [src/commands/action/types.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/types.ts)_
34
+ _See code: [src/commands/action/types.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/types.ts)_
@@ -39,4 +39,4 @@ EXAMPLES
39
39
  $ twentythree action update 12345 --name "Buy Now" --start-time 10 --end-time 20 --json
40
40
  ```
41
41
 
42
- _See code: [src/commands/action/update.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/update.ts)_
42
+ _See code: [src/commands/action/update.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/update.ts)_
@@ -33,4 +33,4 @@ EXAMPLES
33
33
  $ twentythree action upload 12345 image ./banner.png --json
34
34
  ```
35
35
 
36
- _See code: [src/commands/action/upload.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/upload.ts)_
36
+ _See code: [src/commands/action/upload.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/upload.ts)_
@@ -41,7 +41,7 @@ EXAMPLES
41
41
  $ twentythree action add --type overlay --object-id 12345 --json
42
42
  ```
43
43
 
44
- _See code: [src/commands/action/add.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/add.ts)_
44
+ _See code: [src/commands/action/add.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/add.ts)_
45
45
 
46
46
  ## `twentythree action delete ID`
47
47
 
@@ -67,7 +67,7 @@ EXAMPLES
67
67
  $ twentythree action delete 12345 --json
68
68
  ```
69
69
 
70
- _See code: [src/commands/action/delete.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/delete.ts)_
70
+ _See code: [src/commands/action/delete.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/delete.ts)_
71
71
 
72
72
  ## `twentythree action exclude ID`
73
73
 
@@ -99,7 +99,7 @@ EXAMPLES
99
99
  $ twentythree action exclude 12345 --object-id 6789 --json
100
100
  ```
101
101
 
102
- _See code: [src/commands/action/exclude.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/exclude.ts)_
102
+ _See code: [src/commands/action/exclude.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/exclude.ts)_
103
103
 
104
104
  ## `twentythree action get [ID]`
105
105
 
@@ -140,7 +140,7 @@ EXAMPLES
140
140
  $ twentythree action get 12345 --json
141
141
  ```
142
142
 
143
- _See code: [src/commands/action/get.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/get.ts)_
143
+ _See code: [src/commands/action/get.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/get.ts)_
144
144
 
145
145
  ## `twentythree action include ID`
146
146
 
@@ -172,7 +172,7 @@ EXAMPLES
172
172
  $ twentythree action include 12345 --object-id 6789 --json
173
173
  ```
174
174
 
175
- _See code: [src/commands/action/include.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/include.ts)_
175
+ _See code: [src/commands/action/include.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/include.ts)_
176
176
 
177
177
  ## `twentythree action list`
178
178
 
@@ -209,7 +209,7 @@ EXAMPLES
209
209
  $ twentythree action list --video-id 12345 --json
210
210
  ```
211
211
 
212
- _See code: [src/commands/action/list.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/list.ts)_
212
+ _See code: [src/commands/action/list.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/list.ts)_
213
213
 
214
214
  ## `twentythree action types`
215
215
 
@@ -237,7 +237,7 @@ EXAMPLES
237
237
  $ twentythree action types --json
238
238
  ```
239
239
 
240
- _See code: [src/commands/action/types.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/types.ts)_
240
+ _See code: [src/commands/action/types.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/types.ts)_
241
241
 
242
242
  ## `twentythree action update ID`
243
243
 
@@ -273,7 +273,7 @@ EXAMPLES
273
273
  $ twentythree action update 12345 --name "Buy Now" --start-time 10 --end-time 20 --json
274
274
  ```
275
275
 
276
- _See code: [src/commands/action/update.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/update.ts)_
276
+ _See code: [src/commands/action/update.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/update.ts)_
277
277
 
278
278
  ## `twentythree action upload ID VARIABLE-NAME FILE`
279
279
 
@@ -303,4 +303,4 @@ EXAMPLES
303
303
  $ twentythree action upload 12345 image ./banner.png --json
304
304
  ```
305
305
 
306
- _See code: [src/commands/action/upload.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/action/upload.ts)_
306
+ _See code: [src/commands/action/upload.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/upload.ts)_
@@ -40,7 +40,7 @@ EXAMPLES
40
40
  $ twentythree analytics conversions --json
41
41
  ```
42
42
 
43
- _See code: [src/commands/analytics/conversions/index.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/analytics/conversions/index.ts)_
43
+ _See code: [src/commands/analytics/conversions/index.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/analytics/conversions/index.ts)_
44
44
 
45
45
  ## `twentythree analytics conversions timeseries`
46
46
 
@@ -75,7 +75,7 @@ EXAMPLES
75
75
  $ twentythree analytics conversions timeseries --json
76
76
  ```
77
77
 
78
- _See code: [src/commands/analytics/conversions/timeseries.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/analytics/conversions/timeseries.ts)_
78
+ _See code: [src/commands/analytics/conversions/timeseries.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/analytics/conversions/timeseries.ts)_
79
79
 
80
80
  ## `twentythree analytics conversions totals`
81
81
 
@@ -110,4 +110,4 @@ EXAMPLES
110
110
  $ twentythree analytics conversions totals --json
111
111
  ```
112
112
 
113
- _See code: [src/commands/analytics/conversions/totals.ts](https://github.com/23/twentythree-cli/blob/v1.3.4/src/commands/analytics/conversions/totals.ts)_
113
+ _See code: [src/commands/analytics/conversions/totals.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/analytics/conversions/totals.ts)_