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.
- package/README.md +55 -25
- package/dist/agent-context.d.ts +68 -0
- package/dist/agent-context.d.ts.map +1 -0
- package/dist/agent-context.js +214 -0
- package/dist/agent-context.js.map +1 -0
- package/dist/cli-command-routing.d.ts +27 -0
- package/dist/cli-command-routing.d.ts.map +1 -0
- package/dist/cli-command-routing.js +236 -0
- package/dist/cli-command-routing.js.map +1 -0
- package/dist/cli-errors.d.ts +31 -0
- package/dist/cli-errors.d.ts.map +1 -0
- package/dist/cli-errors.js +27 -0
- package/dist/cli-errors.js.map +1 -0
- package/dist/cli-flag-reader.d.ts +61 -0
- package/dist/cli-flag-reader.d.ts.map +1 -0
- package/dist/cli-flag-reader.js +207 -0
- package/dist/cli-flag-reader.js.map +1 -0
- package/dist/cli-http.d.ts +6 -0
- package/dist/cli-http.d.ts.map +1 -0
- package/dist/cli-http.js +42 -0
- package/dist/cli-http.js.map +1 -0
- package/dist/cli-presenter.d.ts +24 -0
- package/dist/cli-presenter.d.ts.map +1 -0
- package/dist/cli-presenter.js +161 -0
- package/dist/cli-presenter.js.map +1 -0
- package/dist/cli-runtime.d.ts +1 -2
- package/dist/cli-runtime.d.ts.map +1 -1
- package/dist/cli-runtime.js +2 -2
- package/dist/cli-runtime.js.map +1 -1
- package/dist/cli-timing.d.ts +4 -0
- package/dist/cli-timing.d.ts.map +1 -0
- package/dist/cli-timing.js +6 -0
- package/dist/cli-timing.js.map +1 -0
- package/dist/cli-types.d.ts +52 -0
- package/dist/cli-types.d.ts.map +1 -1
- package/dist/cli-value-parsers.d.ts +76 -0
- package/dist/cli-value-parsers.d.ts.map +1 -0
- package/dist/cli-value-parsers.js +271 -0
- package/dist/cli-value-parsers.js.map +1 -0
- package/dist/command-metadata.d.ts +11 -5
- package/dist/command-metadata.d.ts.map +1 -1
- package/dist/command-metadata.js +64 -9
- package/dist/command-metadata.js.map +1 -1
- package/dist/command-registry.d.ts +1 -1
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +44 -853
- package/dist/command-registry.js.map +1 -1
- package/dist/commands/ai-edit.d.ts +45 -0
- package/dist/commands/ai-edit.d.ts.map +1 -0
- package/dist/commands/ai-edit.js +370 -0
- package/dist/commands/ai-edit.js.map +1 -0
- package/dist/commands/api.d.ts +20 -0
- package/dist/commands/api.d.ts.map +1 -0
- package/dist/commands/api.js +56 -0
- package/dist/commands/api.js.map +1 -0
- package/dist/commands/audio.d.ts +65 -0
- package/dist/commands/audio.d.ts.map +1 -0
- package/dist/commands/audio.js +264 -0
- package/dist/commands/audio.js.map +1 -0
- package/dist/commands/auth-runtime.d.ts +24 -0
- package/dist/commands/auth-runtime.d.ts.map +1 -0
- package/dist/commands/auth-runtime.js +169 -0
- package/dist/commands/auth-runtime.js.map +1 -0
- package/dist/commands/auth.d.ts +26 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +59 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/caption-command-types.d.ts +66 -0
- package/dist/commands/caption-command-types.d.ts.map +1 -0
- package/dist/commands/caption-command-types.js +2 -0
- package/dist/commands/caption-command-types.js.map +1 -0
- package/dist/commands/caption-dry-run.d.ts +66 -0
- package/dist/commands/caption-dry-run.d.ts.map +1 -0
- package/dist/commands/caption-dry-run.js +225 -0
- package/dist/commands/caption-dry-run.js.map +1 -0
- package/dist/commands/caption-overrides.d.ts +43 -0
- package/dist/commands/caption-overrides.d.ts.map +1 -0
- package/dist/commands/caption-overrides.js +245 -0
- package/dist/commands/caption-overrides.js.map +1 -0
- package/dist/commands/caption-selection.d.ts +72 -0
- package/dist/commands/caption-selection.d.ts.map +1 -0
- package/dist/commands/caption-selection.js +89 -0
- package/dist/commands/caption-selection.js.map +1 -0
- package/dist/commands/caption-style-commands.d.ts +3 -0
- package/dist/commands/caption-style-commands.d.ts.map +1 -0
- package/dist/commands/caption-style-commands.js +240 -0
- package/dist/commands/caption-style-commands.js.map +1 -0
- package/dist/commands/caption-style-flags.d.ts +30 -0
- package/dist/commands/caption-style-flags.d.ts.map +1 -0
- package/dist/commands/caption-style-flags.js +257 -0
- package/dist/commands/caption-style-flags.js.map +1 -0
- package/dist/commands/caption-text-updates.d.ts +21 -0
- package/dist/commands/caption-text-updates.d.ts.map +1 -0
- package/dist/commands/caption-text-updates.js +23 -0
- package/dist/commands/caption-text-updates.js.map +1 -0
- package/dist/commands/captions-specs.d.ts +3 -0
- package/dist/commands/captions-specs.d.ts.map +1 -0
- package/dist/commands/captions-specs.js +241 -0
- package/dist/commands/captions-specs.js.map +1 -0
- package/dist/commands/captions.d.ts +7 -0
- package/dist/commands/captions.d.ts.map +1 -0
- package/dist/commands/captions.js +203 -0
- package/dist/commands/captions.js.map +1 -0
- package/dist/commands/clip-runtime.d.ts +67 -0
- package/dist/commands/clip-runtime.d.ts.map +1 -0
- package/dist/commands/clip-runtime.js +194 -0
- package/dist/commands/clip-runtime.js.map +1 -0
- package/dist/commands/clips.d.ts +66 -0
- package/dist/commands/clips.d.ts.map +1 -0
- package/dist/commands/clips.js +625 -0
- package/dist/commands/clips.js.map +1 -0
- package/dist/commands/command-operation.d.ts +26 -0
- package/dist/commands/command-operation.d.ts.map +1 -0
- package/dist/commands/command-operation.js +18 -0
- package/dist/commands/command-operation.js.map +1 -0
- package/dist/commands/editing-workflow-runtime.d.ts +42 -0
- package/dist/commands/editing-workflow-runtime.d.ts.map +1 -0
- package/dist/commands/editing-workflow-runtime.js +128 -0
- package/dist/commands/editing-workflow-runtime.js.map +1 -0
- package/dist/commands/editing-workflows.d.ts +70 -0
- package/dist/commands/editing-workflows.d.ts.map +1 -0
- package/dist/commands/editing-workflows.js +252 -0
- package/dist/commands/editing-workflows.js.map +1 -0
- package/dist/commands/effects-runtime.d.ts +64 -0
- package/dist/commands/effects-runtime.d.ts.map +1 -0
- package/dist/commands/effects-runtime.js +100 -0
- package/dist/commands/effects-runtime.js.map +1 -0
- package/dist/commands/effects.d.ts +69 -0
- package/dist/commands/effects.d.ts.map +1 -0
- package/dist/commands/effects.js +281 -0
- package/dist/commands/effects.js.map +1 -0
- package/dist/commands/exports.d.ts +16 -5
- package/dist/commands/exports.d.ts.map +1 -1
- package/dist/commands/exports.js +119 -2
- package/dist/commands/exports.js.map +1 -1
- package/dist/commands/faceless.d.ts +44 -0
- package/dist/commands/faceless.d.ts.map +1 -0
- package/dist/commands/faceless.js +587 -0
- package/dist/commands/faceless.js.map +1 -0
- package/dist/commands/formats.d.ts +41 -0
- package/dist/commands/formats.d.ts.map +1 -0
- package/dist/commands/formats.js +140 -0
- package/dist/commands/formats.js.map +1 -0
- package/dist/commands/jobs.d.ts +20 -0
- package/dist/commands/jobs.d.ts.map +1 -0
- package/dist/commands/jobs.js +40 -0
- package/dist/commands/jobs.js.map +1 -0
- package/dist/commands/media-assets.d.ts +100 -0
- package/dist/commands/media-assets.d.ts.map +1 -0
- package/dist/commands/media-assets.js +644 -0
- package/dist/commands/media-assets.js.map +1 -0
- package/dist/commands/media-overlays.d.ts +52 -0
- package/dist/commands/media-overlays.d.ts.map +1 -0
- package/dist/commands/media-overlays.js +314 -0
- package/dist/commands/media-overlays.js.map +1 -0
- package/dist/commands/media-runtime.d.ts +61 -0
- package/dist/commands/media-runtime.d.ts.map +1 -0
- package/dist/commands/media-runtime.js +239 -0
- package/dist/commands/media-runtime.js.map +1 -0
- package/dist/commands/onboarding.d.ts +51 -0
- package/dist/commands/onboarding.d.ts.map +1 -0
- package/dist/commands/onboarding.js +452 -0
- package/dist/commands/onboarding.js.map +1 -0
- package/dist/commands/project-read.d.ts +40 -0
- package/dist/commands/project-read.d.ts.map +1 -0
- package/dist/commands/project-read.js +184 -0
- package/dist/commands/project-read.js.map +1 -0
- package/dist/commands/projects.d.ts +16 -5
- package/dist/commands/projects.d.ts.map +1 -1
- package/dist/commands/projects.js +139 -2
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/stock-library.d.ts +72 -0
- package/dist/commands/stock-library.d.ts.map +1 -0
- package/dist/commands/stock-library.js +175 -0
- package/dist/commands/stock-library.js.map +1 -0
- package/dist/commands/system.d.ts +16 -0
- package/dist/commands/system.d.ts.map +1 -0
- package/dist/commands/system.js +147 -0
- package/dist/commands/system.js.map +1 -0
- package/dist/commands/text-overlay-spec.d.ts +24 -0
- package/dist/commands/text-overlay-spec.d.ts.map +1 -0
- package/dist/commands/text-overlay-spec.js +228 -0
- package/dist/commands/text-overlay-spec.js.map +1 -0
- package/dist/commands/text-overlays.d.ts +67 -0
- package/dist/commands/text-overlays.d.ts.map +1 -0
- package/dist/commands/text-overlays.js +272 -0
- package/dist/commands/text-overlays.js.map +1 -0
- package/dist/commands/timeline-runtime.d.ts +105 -0
- package/dist/commands/timeline-runtime.d.ts.map +1 -0
- package/dist/commands/timeline-runtime.js +508 -0
- package/dist/commands/timeline-runtime.js.map +1 -0
- package/dist/commands/timeline.d.ts +120 -0
- package/dist/commands/timeline.d.ts.map +1 -0
- package/dist/commands/timeline.js +621 -0
- package/dist/commands/timeline.js.map +1 -0
- package/dist/commands/workspace-defaults.d.ts +12 -0
- package/dist/commands/workspace-defaults.d.ts.map +1 -0
- package/dist/commands/workspace-defaults.js +115 -0
- package/dist/commands/workspace-defaults.js.map +1 -0
- package/dist/commands/workspace.d.ts +50 -0
- package/dist/commands/workspace.d.ts.map +1 -0
- package/dist/commands/workspace.js +116 -0
- package/dist/commands/workspace.js.map +1 -0
- package/dist/index.js +485 -5035
- package/dist/index.js.map +1 -1
- package/dist/preview-first-edit.d.ts +9 -1
- package/dist/preview-first-edit.d.ts.map +1 -1
- package/dist/preview-first-edit.js +16 -4
- package/dist/preview-first-edit.js.map +1 -1
- package/dist/update-notifier.d.ts +43 -0
- package/dist/update-notifier.d.ts.map +1 -0
- package/dist/update-notifier.js +265 -0
- package/dist/update-notifier.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|