blitzreels 0.1.4 → 0.1.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 (214) hide show
  1. package/README.md +55 -25
  2. package/dist/agent-context.d.ts +68 -0
  3. package/dist/agent-context.d.ts.map +1 -0
  4. package/dist/agent-context.js +214 -0
  5. package/dist/agent-context.js.map +1 -0
  6. package/dist/cli-command-routing.d.ts +27 -0
  7. package/dist/cli-command-routing.d.ts.map +1 -0
  8. package/dist/cli-command-routing.js +236 -0
  9. package/dist/cli-command-routing.js.map +1 -0
  10. package/dist/cli-errors.d.ts +31 -0
  11. package/dist/cli-errors.d.ts.map +1 -0
  12. package/dist/cli-errors.js +27 -0
  13. package/dist/cli-errors.js.map +1 -0
  14. package/dist/cli-flag-reader.d.ts +61 -0
  15. package/dist/cli-flag-reader.d.ts.map +1 -0
  16. package/dist/cli-flag-reader.js +207 -0
  17. package/dist/cli-flag-reader.js.map +1 -0
  18. package/dist/cli-http.d.ts +6 -0
  19. package/dist/cli-http.d.ts.map +1 -0
  20. package/dist/cli-http.js +42 -0
  21. package/dist/cli-http.js.map +1 -0
  22. package/dist/cli-presenter.d.ts +24 -0
  23. package/dist/cli-presenter.d.ts.map +1 -0
  24. package/dist/cli-presenter.js +161 -0
  25. package/dist/cli-presenter.js.map +1 -0
  26. package/dist/cli-runtime.d.ts +1 -2
  27. package/dist/cli-runtime.d.ts.map +1 -1
  28. package/dist/cli-runtime.js +2 -2
  29. package/dist/cli-runtime.js.map +1 -1
  30. package/dist/cli-timing.d.ts +4 -0
  31. package/dist/cli-timing.d.ts.map +1 -0
  32. package/dist/cli-timing.js +6 -0
  33. package/dist/cli-timing.js.map +1 -0
  34. package/dist/cli-types.d.ts +52 -0
  35. package/dist/cli-types.d.ts.map +1 -1
  36. package/dist/cli-value-parsers.d.ts +76 -0
  37. package/dist/cli-value-parsers.d.ts.map +1 -0
  38. package/dist/cli-value-parsers.js +271 -0
  39. package/dist/cli-value-parsers.js.map +1 -0
  40. package/dist/command-metadata.d.ts +11 -5
  41. package/dist/command-metadata.d.ts.map +1 -1
  42. package/dist/command-metadata.js +64 -9
  43. package/dist/command-metadata.js.map +1 -1
  44. package/dist/command-registry.d.ts +1 -1
  45. package/dist/command-registry.d.ts.map +1 -1
  46. package/dist/command-registry.js +44 -853
  47. package/dist/command-registry.js.map +1 -1
  48. package/dist/commands/ai-edit.d.ts +45 -0
  49. package/dist/commands/ai-edit.d.ts.map +1 -0
  50. package/dist/commands/ai-edit.js +370 -0
  51. package/dist/commands/ai-edit.js.map +1 -0
  52. package/dist/commands/api.d.ts +20 -0
  53. package/dist/commands/api.d.ts.map +1 -0
  54. package/dist/commands/api.js +56 -0
  55. package/dist/commands/api.js.map +1 -0
  56. package/dist/commands/audio.d.ts +65 -0
  57. package/dist/commands/audio.d.ts.map +1 -0
  58. package/dist/commands/audio.js +264 -0
  59. package/dist/commands/audio.js.map +1 -0
  60. package/dist/commands/auth-runtime.d.ts +24 -0
  61. package/dist/commands/auth-runtime.d.ts.map +1 -0
  62. package/dist/commands/auth-runtime.js +169 -0
  63. package/dist/commands/auth-runtime.js.map +1 -0
  64. package/dist/commands/auth.d.ts +26 -0
  65. package/dist/commands/auth.d.ts.map +1 -0
  66. package/dist/commands/auth.js +59 -0
  67. package/dist/commands/auth.js.map +1 -0
  68. package/dist/commands/caption-command-types.d.ts +66 -0
  69. package/dist/commands/caption-command-types.d.ts.map +1 -0
  70. package/dist/commands/caption-command-types.js +2 -0
  71. package/dist/commands/caption-command-types.js.map +1 -0
  72. package/dist/commands/caption-dry-run.d.ts +66 -0
  73. package/dist/commands/caption-dry-run.d.ts.map +1 -0
  74. package/dist/commands/caption-dry-run.js +225 -0
  75. package/dist/commands/caption-dry-run.js.map +1 -0
  76. package/dist/commands/caption-overrides.d.ts +43 -0
  77. package/dist/commands/caption-overrides.d.ts.map +1 -0
  78. package/dist/commands/caption-overrides.js +245 -0
  79. package/dist/commands/caption-overrides.js.map +1 -0
  80. package/dist/commands/caption-selection.d.ts +72 -0
  81. package/dist/commands/caption-selection.d.ts.map +1 -0
  82. package/dist/commands/caption-selection.js +89 -0
  83. package/dist/commands/caption-selection.js.map +1 -0
  84. package/dist/commands/caption-style-commands.d.ts +3 -0
  85. package/dist/commands/caption-style-commands.d.ts.map +1 -0
  86. package/dist/commands/caption-style-commands.js +240 -0
  87. package/dist/commands/caption-style-commands.js.map +1 -0
  88. package/dist/commands/caption-style-flags.d.ts +30 -0
  89. package/dist/commands/caption-style-flags.d.ts.map +1 -0
  90. package/dist/commands/caption-style-flags.js +257 -0
  91. package/dist/commands/caption-style-flags.js.map +1 -0
  92. package/dist/commands/caption-text-updates.d.ts +21 -0
  93. package/dist/commands/caption-text-updates.d.ts.map +1 -0
  94. package/dist/commands/caption-text-updates.js +23 -0
  95. package/dist/commands/caption-text-updates.js.map +1 -0
  96. package/dist/commands/captions-specs.d.ts +3 -0
  97. package/dist/commands/captions-specs.d.ts.map +1 -0
  98. package/dist/commands/captions-specs.js +241 -0
  99. package/dist/commands/captions-specs.js.map +1 -0
  100. package/dist/commands/captions.d.ts +7 -0
  101. package/dist/commands/captions.d.ts.map +1 -0
  102. package/dist/commands/captions.js +203 -0
  103. package/dist/commands/captions.js.map +1 -0
  104. package/dist/commands/clip-runtime.d.ts +67 -0
  105. package/dist/commands/clip-runtime.d.ts.map +1 -0
  106. package/dist/commands/clip-runtime.js +194 -0
  107. package/dist/commands/clip-runtime.js.map +1 -0
  108. package/dist/commands/clips.d.ts +66 -0
  109. package/dist/commands/clips.d.ts.map +1 -0
  110. package/dist/commands/clips.js +625 -0
  111. package/dist/commands/clips.js.map +1 -0
  112. package/dist/commands/command-operation.d.ts +26 -0
  113. package/dist/commands/command-operation.d.ts.map +1 -0
  114. package/dist/commands/command-operation.js +18 -0
  115. package/dist/commands/command-operation.js.map +1 -0
  116. package/dist/commands/editing-workflow-runtime.d.ts +42 -0
  117. package/dist/commands/editing-workflow-runtime.d.ts.map +1 -0
  118. package/dist/commands/editing-workflow-runtime.js +128 -0
  119. package/dist/commands/editing-workflow-runtime.js.map +1 -0
  120. package/dist/commands/editing-workflows.d.ts +70 -0
  121. package/dist/commands/editing-workflows.d.ts.map +1 -0
  122. package/dist/commands/editing-workflows.js +252 -0
  123. package/dist/commands/editing-workflows.js.map +1 -0
  124. package/dist/commands/effects-runtime.d.ts +64 -0
  125. package/dist/commands/effects-runtime.d.ts.map +1 -0
  126. package/dist/commands/effects-runtime.js +100 -0
  127. package/dist/commands/effects-runtime.js.map +1 -0
  128. package/dist/commands/effects.d.ts +69 -0
  129. package/dist/commands/effects.d.ts.map +1 -0
  130. package/dist/commands/effects.js +281 -0
  131. package/dist/commands/effects.js.map +1 -0
  132. package/dist/commands/exports.d.ts +16 -5
  133. package/dist/commands/exports.d.ts.map +1 -1
  134. package/dist/commands/exports.js +119 -2
  135. package/dist/commands/exports.js.map +1 -1
  136. package/dist/commands/faceless.d.ts +44 -0
  137. package/dist/commands/faceless.d.ts.map +1 -0
  138. package/dist/commands/faceless.js +587 -0
  139. package/dist/commands/faceless.js.map +1 -0
  140. package/dist/commands/formats.d.ts +41 -0
  141. package/dist/commands/formats.d.ts.map +1 -0
  142. package/dist/commands/formats.js +140 -0
  143. package/dist/commands/formats.js.map +1 -0
  144. package/dist/commands/jobs.d.ts +20 -0
  145. package/dist/commands/jobs.d.ts.map +1 -0
  146. package/dist/commands/jobs.js +40 -0
  147. package/dist/commands/jobs.js.map +1 -0
  148. package/dist/commands/media-assets.d.ts +100 -0
  149. package/dist/commands/media-assets.d.ts.map +1 -0
  150. package/dist/commands/media-assets.js +644 -0
  151. package/dist/commands/media-assets.js.map +1 -0
  152. package/dist/commands/media-overlays.d.ts +52 -0
  153. package/dist/commands/media-overlays.d.ts.map +1 -0
  154. package/dist/commands/media-overlays.js +314 -0
  155. package/dist/commands/media-overlays.js.map +1 -0
  156. package/dist/commands/media-runtime.d.ts +61 -0
  157. package/dist/commands/media-runtime.d.ts.map +1 -0
  158. package/dist/commands/media-runtime.js +239 -0
  159. package/dist/commands/media-runtime.js.map +1 -0
  160. package/dist/commands/onboarding.d.ts +51 -0
  161. package/dist/commands/onboarding.d.ts.map +1 -0
  162. package/dist/commands/onboarding.js +452 -0
  163. package/dist/commands/onboarding.js.map +1 -0
  164. package/dist/commands/project-read.d.ts +40 -0
  165. package/dist/commands/project-read.d.ts.map +1 -0
  166. package/dist/commands/project-read.js +184 -0
  167. package/dist/commands/project-read.js.map +1 -0
  168. package/dist/commands/projects.d.ts +16 -5
  169. package/dist/commands/projects.d.ts.map +1 -1
  170. package/dist/commands/projects.js +139 -2
  171. package/dist/commands/projects.js.map +1 -1
  172. package/dist/commands/stock-library.d.ts +72 -0
  173. package/dist/commands/stock-library.d.ts.map +1 -0
  174. package/dist/commands/stock-library.js +175 -0
  175. package/dist/commands/stock-library.js.map +1 -0
  176. package/dist/commands/system.d.ts +16 -0
  177. package/dist/commands/system.d.ts.map +1 -0
  178. package/dist/commands/system.js +147 -0
  179. package/dist/commands/system.js.map +1 -0
  180. package/dist/commands/text-overlay-spec.d.ts +24 -0
  181. package/dist/commands/text-overlay-spec.d.ts.map +1 -0
  182. package/dist/commands/text-overlay-spec.js +228 -0
  183. package/dist/commands/text-overlay-spec.js.map +1 -0
  184. package/dist/commands/text-overlays.d.ts +67 -0
  185. package/dist/commands/text-overlays.d.ts.map +1 -0
  186. package/dist/commands/text-overlays.js +272 -0
  187. package/dist/commands/text-overlays.js.map +1 -0
  188. package/dist/commands/timeline-runtime.d.ts +105 -0
  189. package/dist/commands/timeline-runtime.d.ts.map +1 -0
  190. package/dist/commands/timeline-runtime.js +508 -0
  191. package/dist/commands/timeline-runtime.js.map +1 -0
  192. package/dist/commands/timeline.d.ts +120 -0
  193. package/dist/commands/timeline.d.ts.map +1 -0
  194. package/dist/commands/timeline.js +621 -0
  195. package/dist/commands/timeline.js.map +1 -0
  196. package/dist/commands/workspace-defaults.d.ts +12 -0
  197. package/dist/commands/workspace-defaults.d.ts.map +1 -0
  198. package/dist/commands/workspace-defaults.js +115 -0
  199. package/dist/commands/workspace-defaults.js.map +1 -0
  200. package/dist/commands/workspace.d.ts +50 -0
  201. package/dist/commands/workspace.d.ts.map +1 -0
  202. package/dist/commands/workspace.js +116 -0
  203. package/dist/commands/workspace.js.map +1 -0
  204. package/dist/index.js +485 -5035
  205. package/dist/index.js.map +1 -1
  206. package/dist/preview-first-edit.d.ts +9 -1
  207. package/dist/preview-first-edit.d.ts.map +1 -1
  208. package/dist/preview-first-edit.js +16 -4
  209. package/dist/preview-first-edit.js.map +1 -1
  210. package/dist/update-notifier.d.ts +43 -0
  211. package/dist/update-notifier.d.ts.map +1 -0
  212. package/dist/update-notifier.js +265 -0
  213. package/dist/update-notifier.js.map +1 -0
  214. package/package.json +2 -2
@@ -0,0 +1,264 @@
1
+ import { commandSpec } from "../command-metadata.js";
2
+ export const AUDIO_COMMAND_SPECS = [
3
+ commandSpec({
4
+ command: ["audio", "add"],
5
+ usage: "blitzreels audio add --project-id ID --asset-id ID [--at 0] [--duration 30] [--volume 0.03] [--fade-in 0.5] [--fade-out 0.5] [--loop true]",
6
+ flags: [
7
+ "project-id",
8
+ "asset-id",
9
+ "at",
10
+ "duration",
11
+ "volume",
12
+ "fade-in",
13
+ "fade-out",
14
+ "loop",
15
+ ],
16
+ kernelOperationIds: [],
17
+ }),
18
+ commandSpec({
19
+ command: ["audio", "update"],
20
+ usage: "blitzreels audio update --project-id ID --timeline-item-id ID [--duration 30] [--volume 0.03] [--fade-in 0.5] [--fade-out 0.5]",
21
+ flags: [
22
+ "project-id",
23
+ "timeline-item-id",
24
+ "duration",
25
+ "volume",
26
+ "fade-in",
27
+ "fade-out",
28
+ ],
29
+ kernelOperationIds: ["timeline.item.audio.update"],
30
+ }),
31
+ commandSpec({
32
+ command: ["audio", "search"],
33
+ usage: "blitzreels audio search --query QUERY [--provider all|openverse|freesound|wikimedia|remotion] [--license cc0|public_domain|no_attribution|attribution|all] [--audio-type music|sound_effect|ambient|other] [--min-duration 1] [--max-duration 30] [--limit 20] [--page 1] [--json]",
34
+ flags: [
35
+ "query",
36
+ "provider",
37
+ "license",
38
+ "audio-type",
39
+ "min-duration",
40
+ "max-duration",
41
+ "limit",
42
+ "page",
43
+ ],
44
+ }),
45
+ commandSpec({
46
+ command: ["audio", "import"],
47
+ usage: "blitzreels audio import --provider openverse|freesound|wikimedia|remotion --external-id ID [--folder-id ID|root] [--project-id ID] [--at 0] [--duration 30] [--volume 0.03] [--fade-in 0.5] [--fade-out 0.5] [--loop true] [--audio-type music|sound_effect|ambient|other]",
48
+ flags: [
49
+ "provider",
50
+ "external-id",
51
+ "folder-id",
52
+ "project-id",
53
+ "at",
54
+ "duration",
55
+ "volume",
56
+ "fade-in",
57
+ "fade-out",
58
+ "loop",
59
+ "audio-type",
60
+ ],
61
+ }),
62
+ ];
63
+ export function createAudioCommandOperation({ helpers, }) {
64
+ return {
65
+ name: "audio",
66
+ matches: ({ command }) => command[0] === "audio",
67
+ handle: ({ context }) => handleAudioCommand({ context, helpers }),
68
+ buildDryRun: ({ context, spec }) => buildAudioDryRun({ context, spec, helpers }),
69
+ };
70
+ }
71
+ async function handleAudioCommand({ context, helpers, }) {
72
+ const action = context.args.command[1];
73
+ const flags = context.args.flags;
74
+ if (action === "add") {
75
+ const result = await context.client.audio.add({
76
+ projectId: helpers.requireStringFlag({ flags, name: "project-id" }),
77
+ assetId: helpers.requireStringFlag({ flags, name: "asset-id" }),
78
+ startSeconds: helpers.parseTimecode({
79
+ value: helpers.getStringFlag({ flags, name: "at" }) ?? "0",
80
+ }),
81
+ durationSeconds: helpers.getNumberFlag({ flags, name: "duration" }),
82
+ volume: helpers.getNumberFlag({ flags, name: "volume" }),
83
+ fadeInSeconds: helpers.getNumberFlag({ flags, name: "fade-in" }),
84
+ fadeOutSeconds: helpers.getNumberFlag({ flags, name: "fade-out" }),
85
+ loop: helpers.getOptionalBooleanFlag({ flags, name: "loop" }),
86
+ });
87
+ helpers.printResult({
88
+ json: context.json,
89
+ value: result,
90
+ human: [
91
+ `Inserted ${result.summary.inserted}/${result.summary.total} audio item(s).`,
92
+ ],
93
+ });
94
+ return true;
95
+ }
96
+ if (action === "update") {
97
+ const result = await context.client.audio.update({
98
+ projectId: helpers.requireStringFlag({ flags, name: "project-id" }),
99
+ timelineItemId: helpers.requireStringFlag({
100
+ flags,
101
+ name: "timeline-item-id",
102
+ }),
103
+ durationSeconds: helpers.getNumberFlag({ flags, name: "duration" }),
104
+ volume: helpers.getNumberFlag({ flags, name: "volume" }),
105
+ fadeInSeconds: helpers.getNumberFlag({ flags, name: "fade-in" }),
106
+ fadeOutSeconds: helpers.getNumberFlag({ flags, name: "fade-out" }),
107
+ });
108
+ helpers.printResult({
109
+ json: context.json,
110
+ value: result,
111
+ human: [`Audio updated: ${result.timeline_item_id}`],
112
+ });
113
+ return true;
114
+ }
115
+ if (action === "search") {
116
+ const result = await context.client.audioLibrary.search({
117
+ query: helpers.requireStringFlag({ flags, name: "query" }),
118
+ provider: helpers.parseAudioLibraryProviderFilter({
119
+ value: helpers.getStringFlag({ flags, name: "provider" }),
120
+ }),
121
+ license: helpers.parseAudioLibraryLicense({
122
+ value: helpers.getStringFlag({ flags, name: "license" }),
123
+ }),
124
+ audioType: helpers.parseAudioLibraryType({
125
+ value: helpers.getStringFlag({ flags, name: "audio-type" }),
126
+ }),
127
+ minDurationSeconds: helpers.getNumberFlag({
128
+ flags,
129
+ name: "min-duration",
130
+ }),
131
+ maxDurationSeconds: helpers.getNumberFlag({
132
+ flags,
133
+ name: "max-duration",
134
+ }),
135
+ limit: helpers.getNumberFlag({ flags, name: "limit" }),
136
+ page: helpers.getNumberFlag({ flags, name: "page" }),
137
+ });
138
+ helpers.printResult({
139
+ json: context.json,
140
+ value: result,
141
+ human: [
142
+ ...result.warnings.map((warning) => `Warning: ${warning}`),
143
+ ...result.items.map((item) => `${item.provider}:${item.external_id} ${item.title} ${item.duration_seconds ?? "-"}s ${item.license_code}`),
144
+ ],
145
+ });
146
+ return true;
147
+ }
148
+ if (action === "import") {
149
+ const result = await context.client.audioLibrary.importAsset({
150
+ provider: helpers.parseAudioLibraryProvider({
151
+ value: helpers.requireStringFlag({ flags, name: "provider" }),
152
+ }),
153
+ externalId: helpers.requireStringFlag({ flags, name: "external-id" }),
154
+ folderId: helpers.parseFolderIdFlag({ flags, name: "folder-id" }),
155
+ projectId: helpers.getStringFlag({ flags, name: "project-id" }),
156
+ startSeconds: helpers.parseTimecode({
157
+ value: helpers.getStringFlag({ flags, name: "at" }) ?? "0",
158
+ }),
159
+ durationSeconds: helpers.parseNullableNumberFlag({
160
+ flags,
161
+ name: "duration",
162
+ }),
163
+ volume: helpers.getNumberFlag({ flags, name: "volume" }),
164
+ fadeInSeconds: helpers.getNumberFlag({ flags, name: "fade-in" }),
165
+ fadeOutSeconds: helpers.getNumberFlag({ flags, name: "fade-out" }),
166
+ loop: helpers.getOptionalBooleanFlag({ flags, name: "loop" }),
167
+ audioType: helpers.parseAudioLibraryType({
168
+ value: helpers.getStringFlag({ flags, name: "audio-type" }),
169
+ }),
170
+ });
171
+ helpers.printResult({
172
+ json: context.json,
173
+ value: result,
174
+ human: [
175
+ `${result.imported ? "Imported" : "Reused"} ${result.asset.name} (${result.asset.id}).`,
176
+ `Provider request: ${result.provider_request.provider}:${result.provider_request.external_id} retryable=${result.provider_request.retryable}`,
177
+ result.timeline_item_id
178
+ ? `Inserted on timeline as ${result.timeline_item_id}.`
179
+ : "No timeline insert requested.",
180
+ ],
181
+ });
182
+ return true;
183
+ }
184
+ return false;
185
+ }
186
+ function buildAudioDryRun({ context, spec, helpers, }) {
187
+ const action = context.args.command[1];
188
+ const flags = context.args.flags;
189
+ if (action === "add") {
190
+ return helpers.dryRunRequest({
191
+ spec,
192
+ method: "POST",
193
+ path: `/projects/${encodeURIComponent(helpers.requireStringFlag({ flags, name: "project-id" }))}/timeline/audio`,
194
+ body: {
195
+ items: [
196
+ {
197
+ asset_id: helpers.requireStringFlag({ flags, name: "asset-id" }),
198
+ start_seconds: helpers.parseTimecode({
199
+ value: helpers.getStringFlag({ flags, name: "at" }) ?? "0",
200
+ }),
201
+ duration_seconds: helpers.getNumberFlag({
202
+ flags,
203
+ name: "duration",
204
+ }),
205
+ volume: helpers.getNumberFlag({ flags, name: "volume" }),
206
+ fade_in_seconds: helpers.getNumberFlag({
207
+ flags,
208
+ name: "fade-in",
209
+ }),
210
+ fade_out_seconds: helpers.getNumberFlag({
211
+ flags,
212
+ name: "fade-out",
213
+ }),
214
+ loop: helpers.getOptionalBooleanFlag({ flags, name: "loop" }),
215
+ },
216
+ ],
217
+ },
218
+ });
219
+ }
220
+ if (action === "import") {
221
+ return helpers.dryRunRequest({
222
+ spec,
223
+ method: "POST",
224
+ path: "/audio-library/import",
225
+ body: {
226
+ provider: helpers.parseAudioLibraryProvider({
227
+ value: helpers.requireStringFlag({ flags, name: "provider" }),
228
+ }),
229
+ external_id: helpers.requireStringFlag({ flags, name: "external-id" }),
230
+ folder_id: helpers.parseFolderIdFlag({ flags, name: "folder-id" }),
231
+ project_id: helpers.getStringFlag({ flags, name: "project-id" }),
232
+ start_seconds: helpers.parseTimecode({
233
+ value: helpers.getStringFlag({ flags, name: "at" }) ?? "0",
234
+ }),
235
+ duration_seconds: helpers.parseNullableNumberFlag({
236
+ flags,
237
+ name: "duration",
238
+ }),
239
+ volume: helpers.getNumberFlag({ flags, name: "volume" }),
240
+ fade_in_seconds: helpers.getNumberFlag({ flags, name: "fade-in" }),
241
+ fade_out_seconds: helpers.getNumberFlag({ flags, name: "fade-out" }),
242
+ loop: helpers.getOptionalBooleanFlag({ flags, name: "loop" }),
243
+ audio_type: helpers.parseAudioLibraryType({
244
+ value: helpers.getStringFlag({ flags, name: "audio-type" }),
245
+ }),
246
+ },
247
+ });
248
+ }
249
+ if (action === "update") {
250
+ return helpers.dryRunRequest({
251
+ spec,
252
+ method: "PATCH",
253
+ path: `/projects/${encodeURIComponent(helpers.requireStringFlag({ flags, name: "project-id" }))}/timeline/audio/${encodeURIComponent(helpers.requireStringFlag({ flags, name: "timeline-item-id" }))}`,
254
+ body: {
255
+ duration_seconds: helpers.getNumberFlag({ flags, name: "duration" }),
256
+ volume: helpers.getNumberFlag({ flags, name: "volume" }),
257
+ fade_in_seconds: helpers.getNumberFlag({ flags, name: "fade-in" }),
258
+ fade_out_seconds: helpers.getNumberFlag({ flags, name: "fade-out" }),
259
+ },
260
+ });
261
+ }
262
+ return undefined;
263
+ }
264
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/commands/audio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { CliContext } from "../cli-types.js";
2
+ export type AuthRuntimeHelpers = {
3
+ printResult: (params: {
4
+ json: boolean;
5
+ value: unknown;
6
+ human: string[];
7
+ fields?: string[];
8
+ }) => void;
9
+ };
10
+ export declare function createAuthRuntime({ helpers, }: {
11
+ helpers: AuthRuntimeHelpers;
12
+ }): {
13
+ loginWithBrowser: (params: {
14
+ context: CliContext;
15
+ }) => Promise<void>;
16
+ resolveDisplayEnvironment: (params: {
17
+ baseUrl: string | undefined;
18
+ environment: string;
19
+ }) => string;
20
+ setApiKey: (params: {
21
+ context: CliContext;
22
+ }) => Promise<void>;
23
+ };
24
+ //# sourceMappingURL=auth-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-runtime.d.ts","sourceRoot":"","sources":["../../src/commands/auth-runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgBlD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,KAAK,IAAI,CAAC;CACZ,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,GACR,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GAAG;IACF,gBAAgB,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,UAAU,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,yBAAyB,EAAE,CAAC,MAAM,EAAE;QAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;KACrB,KAAK,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,UAAU,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAMA"}
@@ -0,0 +1,169 @@
1
+ import { spawn } from "node:child_process";
2
+ import { readJsonResponse } from "../cli-http.js";
3
+ import { persistLoggedInApiKey, storeApiKey } from "../cli-runtime.js";
4
+ import { sleep } from "../cli-timing.js";
5
+ export function createAuthRuntime({ helpers, }) {
6
+ return {
7
+ loginWithBrowser: (params) => loginWithBrowser({ ...params, helpers }),
8
+ resolveDisplayEnvironment,
9
+ setApiKey: (params) => setApiKey({ ...params, helpers }),
10
+ };
11
+ }
12
+ async function setApiKey({ context, helpers, }) {
13
+ const apiKey = context.invocation.flags.string({ name: "api-key" }) ??
14
+ process.env.BLITZREELS_API_KEY;
15
+ if (!apiKey) {
16
+ throw new Error("Pass --api-key or set BLITZREELS_API_KEY.");
17
+ }
18
+ const stored = await storeApiKey({
19
+ apiKey,
20
+ baseUrl: context.invocation.flags.string({ name: "base-url" }),
21
+ });
22
+ helpers.printResult({
23
+ json: context.json,
24
+ value: { configPath: stored.configPath, keyStorage: stored.keyStorage },
25
+ human: [`API key saved to ${stored.configPath}`],
26
+ });
27
+ }
28
+ async function loginWithBrowser({ context, helpers, }) {
29
+ const appUrl = resolveAppUrl({ baseUrl: context.config.baseUrl });
30
+ const deviceUrl = `${appUrl}/api/cli/auth/device`;
31
+ const startResponse = await fetch(deviceUrl, {
32
+ method: "POST",
33
+ headers: { Accept: "application/json" },
34
+ });
35
+ const login = parseDeviceLoginResponse({
36
+ value: await readJsonResponse({
37
+ response: startResponse,
38
+ url: deviceUrl,
39
+ action: "start CLI login",
40
+ }),
41
+ });
42
+ const shouldOpenBrowser = !context.invocation.flags.boolean({
43
+ name: "no-browser",
44
+ });
45
+ if (shouldOpenBrowser) {
46
+ openBrowser({ url: login.verification_uri_complete });
47
+ }
48
+ const loginInstructions = [
49
+ `First copy your one-time code: ${login.user_code}`,
50
+ `Then open: ${login.verification_uri_complete}`,
51
+ "Confirm the matching code in your browser, then click Connect CLI.",
52
+ "Waiting for browser confirmation...",
53
+ ];
54
+ if (context.json) {
55
+ console.error(loginInstructions.join("\n"));
56
+ }
57
+ else {
58
+ helpers.printResult({
59
+ json: context.json,
60
+ value: {
61
+ user_code: login.user_code,
62
+ verification_uri: login.verification_uri_complete,
63
+ expires_in: login.expires_in,
64
+ },
65
+ human: loginInstructions,
66
+ });
67
+ }
68
+ const startedAt = Date.now();
69
+ const timeoutMs = Math.min(login.expires_in * 1000, context.invocation.flags.number({ name: "timeout-ms" }) ??
70
+ login.expires_in * 1000);
71
+ const intervalMs = Math.max(1000, login.interval * 1000);
72
+ while (Date.now() - startedAt <= timeoutMs) {
73
+ await sleep({ ms: intervalMs });
74
+ const tokenUrl = `${appUrl}/api/cli/auth/token`;
75
+ const pollResponse = await fetch(tokenUrl, {
76
+ method: "POST",
77
+ headers: {
78
+ Accept: "application/json",
79
+ "Content-Type": "application/json",
80
+ },
81
+ body: JSON.stringify({ device_code: login.device_code }),
82
+ });
83
+ const result = parseDeviceTokenResponse({
84
+ value: await readJsonResponse({
85
+ response: pollResponse,
86
+ url: tokenUrl,
87
+ action: "poll CLI login",
88
+ }),
89
+ });
90
+ if (result.status === "approved" && result.api_key) {
91
+ await persistLoggedInApiKey({
92
+ apiKey: result.api_key,
93
+ baseUrl: context.config.baseUrl,
94
+ });
95
+ helpers.printResult({
96
+ json: context.json,
97
+ value: { success: true, key_prefix: result.key_prefix ?? "" },
98
+ human: [`Logged in. API key prefix: ${result.key_prefix ?? "saved"}`],
99
+ });
100
+ return;
101
+ }
102
+ if (result.status === "expired" ||
103
+ result.status === "denied" ||
104
+ result.status === "invalid" ||
105
+ result.status === "consumed") {
106
+ throw new Error(`Login failed: ${result.status}.`);
107
+ }
108
+ }
109
+ throw new Error("Timed out waiting for browser confirmation.");
110
+ }
111
+ function resolveDisplayEnvironment({ baseUrl, environment, }) {
112
+ if (environment === "test" &&
113
+ (baseUrl?.includes("localhost") || baseUrl?.includes("127.0.0.1"))) {
114
+ return "local";
115
+ }
116
+ return environment;
117
+ }
118
+ function resolveAppUrl({ baseUrl }) {
119
+ const url = new URL(baseUrl ?? "https://www.blitzreels.com/api/v1");
120
+ return `${url.protocol}//${url.host}`;
121
+ }
122
+ function openBrowser({ url }) {
123
+ const command = process.platform === "darwin"
124
+ ? "open"
125
+ : process.platform === "win32"
126
+ ? "cmd"
127
+ : "xdg-open";
128
+ const args = process.platform === "win32" ? ["/c", "start", "", url] : [url];
129
+ const child = spawn(command, args, {
130
+ detached: true,
131
+ stdio: "ignore",
132
+ });
133
+ child.unref();
134
+ }
135
+ function parseDeviceLoginResponse({ value, }) {
136
+ if (!value || typeof value !== "object") {
137
+ throw new Error("CLI login endpoint returned an invalid response.");
138
+ }
139
+ const record = value;
140
+ if (typeof record.device_code !== "string" ||
141
+ typeof record.user_code !== "string" ||
142
+ typeof record.verification_uri_complete !== "string" ||
143
+ typeof record.expires_in !== "number" ||
144
+ typeof record.interval !== "number") {
145
+ throw new Error("CLI login endpoint returned an incomplete response.");
146
+ }
147
+ return {
148
+ device_code: record.device_code,
149
+ user_code: record.user_code,
150
+ verification_uri_complete: record.verification_uri_complete,
151
+ expires_in: record.expires_in,
152
+ interval: record.interval,
153
+ };
154
+ }
155
+ function parseDeviceTokenResponse({ value, }) {
156
+ if (!value || typeof value !== "object") {
157
+ throw new Error("CLI login polling endpoint returned an invalid response.");
158
+ }
159
+ const record = value;
160
+ if (typeof record.status !== "string") {
161
+ throw new Error("CLI login polling endpoint returned no status.");
162
+ }
163
+ return {
164
+ status: record.status,
165
+ api_key: typeof record.api_key === "string" ? record.api_key : undefined,
166
+ key_prefix: typeof record.key_prefix === "string" ? record.key_prefix : undefined,
167
+ };
168
+ }
169
+ //# sourceMappingURL=auth-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-runtime.js","sourceRoot":"","sources":["../../src/commands/auth-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA0BzC,MAAM,UAAU,iBAAiB,CAAC,EAChC,OAAO,GAGR;IAQC,OAAO;QACL,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;QACtE,yBAAyB;QACzB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,EACvB,OAAO,EACP,OAAO,GAIR;IACC,MAAM,MAAM,GACV,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;QAC/B,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;KAC/D,CAAC,CAAC;IACH,OAAO,CAAC,WAAW,CAAC;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;QACvE,KAAK,EAAE,CAAC,oBAAoB,MAAM,CAAC,UAAU,EAAE,CAAC;KACjD,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,EAC9B,OAAO,EACP,OAAO,GAIR;IACC,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,GAAG,MAAM,sBAAsB,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,wBAAwB,CAAC;QACrC,KAAK,EAAE,MAAM,gBAAgB,CAAC;YAC5B,QAAQ,EAAE,aAAa;YACvB,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,iBAAiB;SAC1B,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1D,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;IACH,IAAI,iBAAiB,EAAE,CAAC;QACtB,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,iBAAiB,GAAG;QACxB,kCAAkC,KAAK,CAAC,SAAS,EAAE;QACnD,cAAc,KAAK,CAAC,yBAAyB,EAAE;QAC/C,oEAAoE;QACpE,qCAAqC;KACtC,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,WAAW,CAAC;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE;gBACL,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,gBAAgB,EAAE,KAAK,CAAC,yBAAyB;gBACjD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B;YACD,KAAK,EAAE,iBAAiB;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,KAAK,CAAC,UAAU,GAAG,IAAI,EACvB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACrD,KAAK,CAAC,UAAU,GAAG,IAAI,CAC1B,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAEzD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3C,MAAM,KAAK,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,MAAM,qBAAqB,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YACzC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,wBAAwB,CAAC;YACtC,KAAK,EAAE,MAAM,gBAAgB,CAAC;gBAC5B,QAAQ,EAAE,YAAY;gBACtB,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,gBAAgB;aACzB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,qBAAqB,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;aAChC,CAAC,CAAC;YACH,OAAO,CAAC,WAAW,CAAC;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE;gBAC7D,KAAK,EAAE,CAAC,8BAA8B,MAAM,CAAC,UAAU,IAAI,OAAO,EAAE,CAAC;aACtE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IACE,MAAM,CAAC,MAAM,KAAK,SAAS;YAC3B,MAAM,CAAC,MAAM,KAAK,QAAQ;YAC1B,MAAM,CAAC,MAAM,KAAK,SAAS;YAC3B,MAAM,CAAC,MAAM,KAAK,UAAU,EAC5B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,yBAAyB,CAAC,EACjC,OAAO,EACP,WAAW,GAIZ;IACC,IACE,WAAW,KAAK,MAAM;QACtB,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,EAClE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,OAAO,EAAmC;IACjE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,mCAAmC,CAAC,CAAC;IACpE,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,GAAG,EAAmB;IAC3C,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,UAAU,CAAC;IACnB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QACjC,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,EAChC,KAAK,GAGN;IACC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IACE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,OAAO,MAAM,CAAC,yBAAyB,KAAK,QAAQ;QACpD,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QACrC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;QAC3D,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,EAChC,KAAK,GAGN;IACC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACxE,UAAU,EACR,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { CliContext } from "../cli-types.js";
2
+ import { type CommandSpec } from "../command-metadata.js";
3
+ import type { CommandOperation } from "./command-operation.js";
4
+ export declare const AUTH_COMMAND_SPECS: CommandSpec[];
5
+ export type AuthCommandHelpers = {
6
+ loginWithBrowser: (params: {
7
+ context: CliContext;
8
+ }) => Promise<void>;
9
+ printResult: (params: {
10
+ json: boolean;
11
+ value: unknown;
12
+ human: string[];
13
+ fields?: string[];
14
+ }) => void;
15
+ resolveDisplayEnvironment: (params: {
16
+ baseUrl: string | undefined;
17
+ environment: string;
18
+ }) => string;
19
+ setApiKey: (params: {
20
+ context: CliContext;
21
+ }) => Promise<void>;
22
+ };
23
+ export declare function createAuthCommandOperation({ helpers, }: {
24
+ helpers: AuthCommandHelpers;
25
+ }): CommandOperation;
26
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,kBAAkB,EAAE,WAAW,EAc3C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,UAAU,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,KAAK,IAAI,CAAC;IACX,yBAAyB,EAAE,CAAC,MAAM,EAAE;QAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;KACrB,KAAK,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,UAAU,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,EACzC,OAAO,GACR,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GAAG,gBAAgB,CA6CnB"}
@@ -0,0 +1,59 @@
1
+ import { commandSpec } from "../command-metadata.js";
2
+ export const AUTH_COMMAND_SPECS = [
3
+ commandSpec({
4
+ command: ["auth", "login"],
5
+ usage: "blitzreels auth login [--no-browser] [--timeout-ms 120000]",
6
+ flags: ["no-browser", "timeout-ms"],
7
+ }),
8
+ commandSpec({
9
+ command: ["auth", "set-key"],
10
+ usage: "blitzreels auth set-key --api-key KEY [--base-url URL]",
11
+ }),
12
+ commandSpec({
13
+ command: ["auth", "whoami"],
14
+ usage: "blitzreels auth whoami [--json]",
15
+ }),
16
+ ];
17
+ export function createAuthCommandOperation({ helpers, }) {
18
+ return {
19
+ name: "auth",
20
+ matches: ({ command }) => command[0] === "auth",
21
+ handle: async ({ context }) => {
22
+ const [, action] = context.args.command;
23
+ if (action === "set-key") {
24
+ await helpers.setApiKey({ context });
25
+ return true;
26
+ }
27
+ if (action === "login") {
28
+ await helpers.loginWithBrowser({ context });
29
+ return true;
30
+ }
31
+ if (action === "whoami") {
32
+ const result = await context.client.auth.validate();
33
+ const displayEnvironment = helpers.resolveDisplayEnvironment({
34
+ baseUrl: context.config.baseUrl,
35
+ environment: result.environment,
36
+ });
37
+ const value = {
38
+ ...result,
39
+ display_environment: displayEnvironment,
40
+ };
41
+ helpers.printResult({
42
+ json: context.json,
43
+ value,
44
+ human: [
45
+ `Workspace: ${result.organization_id}`,
46
+ `User: ${result.user_id}`,
47
+ `Plan: ${result.plan}`,
48
+ `Environment: ${displayEnvironment}`,
49
+ `Docs: ${result.docs_url}`,
50
+ ],
51
+ });
52
+ return true;
53
+ }
54
+ return false;
55
+ },
56
+ buildDryRun: () => undefined,
57
+ };
58
+ }
59
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGvE,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,WAAW,CAAC;QACV,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC1B,KAAK,EAAE,4DAA4D;QACnE,KAAK,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;KACpC,CAAC;IACF,WAAW,CAAC;QACV,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;QAC5B,KAAK,EAAE,wDAAwD;KAChE,CAAC;IACF,WAAW,CAAC;QACV,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC3B,KAAK,EAAE,iCAAiC;KACzC,CAAC;CACH,CAAC;AAiBF,MAAM,UAAU,0BAA0B,CAAC,EACzC,OAAO,GAGR;IACC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM;QAC/C,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAExC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpD,MAAM,kBAAkB,GAAG,OAAO,CAAC,yBAAyB,CAAC;oBAC3D,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;oBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC,CAAC;gBACH,MAAM,KAAK,GAAG;oBACZ,GAAG,MAAM;oBACT,mBAAmB,EAAE,kBAAkB;iBACxC,CAAC;gBACF,OAAO,CAAC,WAAW,CAAC;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK;oBACL,KAAK,EAAE;wBACL,cAAc,MAAM,CAAC,eAAe,EAAE;wBACtC,SAAS,MAAM,CAAC,OAAO,EAAE;wBACzB,SAAS,MAAM,CAAC,IAAI,EAAE;wBACtB,gBAAgB,kBAAkB,EAAE;wBACpC,SAAS,MAAM,CAAC,QAAQ,EAAE;qBAC3B;iBACF,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QACD,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS;KAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,66 @@
1
+ import type { CliContext, Flags } from "../cli-types.js";
2
+ import type { CommandSpec } from "../command-metadata.js";
3
+ import type { DryRunPreview } from "../preview-first-edit.js";
4
+ export type CaptionsCommandHelpers = {
5
+ dryRunRequest: (params: {
6
+ spec: CommandSpec;
7
+ method: string;
8
+ path: string;
9
+ query?: Record<string, unknown>;
10
+ body: unknown;
11
+ followUpRequests?: DryRunPreview["follow_up_requests"];
12
+ notes?: string[];
13
+ }) => DryRunPreview;
14
+ getNumberFlag: (params: {
15
+ flags: Flags;
16
+ name: string;
17
+ }) => number | undefined;
18
+ getOptionalBooleanFlag: (params: {
19
+ flags: Flags;
20
+ name: string;
21
+ }) => boolean | undefined;
22
+ getStringFlag: (params: {
23
+ flags: Flags;
24
+ name: string;
25
+ }) => string | undefined;
26
+ parseCsvFlag: (params: {
27
+ flags: Flags;
28
+ name: string;
29
+ }) => string[] | undefined;
30
+ parseCsvRequiredFlag: (params: {
31
+ flags: Flags;
32
+ name: string;
33
+ }) => string[];
34
+ parseNullableJsonObjectFlag: (params: {
35
+ flags: Flags;
36
+ name: string;
37
+ }) => Record<string, unknown> | null | undefined;
38
+ parseTimecode: (params: {
39
+ value: string;
40
+ }) => number;
41
+ parseWordTextUpdatesFlag: (params: {
42
+ flags: Flags;
43
+ name: string;
44
+ fileName: string | undefined;
45
+ }) => Array<{
46
+ word_id: string;
47
+ new_text: string;
48
+ }>;
49
+ printResult: (params: {
50
+ json: boolean;
51
+ value: unknown;
52
+ human: string[];
53
+ fields?: string[];
54
+ }) => void;
55
+ requireStringFlag: (params: {
56
+ flags: Flags;
57
+ name: string;
58
+ }) => string;
59
+ };
60
+ export type CaptionsCommandHandlerParams = {
61
+ context: CliContext;
62
+ helpers: CaptionsCommandHelpers;
63
+ action: string | undefined;
64
+ subaction: string | undefined;
65
+ };
66
+ //# sourceMappingURL=caption-command-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caption-command-types.d.ts","sourceRoot":"","sources":["../../src/commands/caption-command-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,CAAC,MAAM,EAAE;QACtB,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC;QACd,gBAAgB,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;QACvD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,KAAK,aAAa,CAAC;IACpB,aAAa,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9E,sBAAsB,EAAE,CAAC,MAAM,EAAE;QAC/B,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,OAAO,GAAG,SAAS,CAAC;IAC1B,aAAa,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9E,YAAY,EAAE,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,oBAAoB,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,EAAE,CAAC;IAC3E,2BAA2B,EAAE,CAAC,MAAM,EAAE;QACpC,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,aAAa,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IACrD,wBAAwB,EAAE,CAAC,MAAM,EAAE;QACjC,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,KAAK,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,KAAK,IAAI,CAAC;IACX,iBAAiB,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,CAAC"}