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,175 @@
|
|
|
1
|
+
import { commandSpec } from "../command-metadata.js";
|
|
2
|
+
export const STOCK_LIBRARY_COMMAND_SPECS = [
|
|
3
|
+
commandSpec({
|
|
4
|
+
command: ["stock", "search"],
|
|
5
|
+
usage: "blitzreels stock search --query QUERY --asset-type image|video|audio [--provider pexels|freesound] [--orientation landscape|portrait|square] [--limit 20] [--page 1] [--json]",
|
|
6
|
+
flags: ["query", "asset-type", "provider", "orientation", "limit", "page"],
|
|
7
|
+
}),
|
|
8
|
+
commandSpec({
|
|
9
|
+
command: ["stock", "import"],
|
|
10
|
+
usage: "blitzreels stock import --provider pexels|freesound --provider-asset-id ID --asset-type image|video|audio [--variant-id ID] [--folder-id ID|root] [--audio-type sound_effect|ambient|background_music|other]",
|
|
11
|
+
flags: [
|
|
12
|
+
"provider",
|
|
13
|
+
"provider-asset-id",
|
|
14
|
+
"asset-type",
|
|
15
|
+
"variant-id",
|
|
16
|
+
"folder-id",
|
|
17
|
+
"audio-type",
|
|
18
|
+
],
|
|
19
|
+
}),
|
|
20
|
+
commandSpec({
|
|
21
|
+
command: ["library", "search"],
|
|
22
|
+
usage: "blitzreels library search [--query QUERY] [--asset-type image|video|audio] [--audio-type music|sound_effect|ambient|background_music|other] [--limit 20] [--offset 0] [--json]",
|
|
23
|
+
flags: ["query", "asset-type", "audio-type", "limit", "offset"],
|
|
24
|
+
description: "Search the BlitzReels global B-roll library.",
|
|
25
|
+
}),
|
|
26
|
+
commandSpec({
|
|
27
|
+
command: ["library", "import"],
|
|
28
|
+
usage: "blitzreels library import --library-asset-id ID [--folder-id ID|root]",
|
|
29
|
+
flags: ["library-asset-id", "folder-id"],
|
|
30
|
+
description: "Import a global B-roll library asset into workspace media.",
|
|
31
|
+
}),
|
|
32
|
+
];
|
|
33
|
+
export function createStockLibraryCommandOperation({ helpers, }) {
|
|
34
|
+
return {
|
|
35
|
+
name: "stock-library",
|
|
36
|
+
matches: ({ command }) => command[0] === "stock" || command[0] === "library",
|
|
37
|
+
handle: async ({ context }) => {
|
|
38
|
+
const [group, action] = context.args.command;
|
|
39
|
+
const flags = context.args.flags;
|
|
40
|
+
if (group === "stock" && action === "search") {
|
|
41
|
+
const result = await context.client.stockMedia.search({
|
|
42
|
+
query: helpers.requireStringFlag({ flags, name: "query" }),
|
|
43
|
+
assetType: helpers.parseStockAssetType({
|
|
44
|
+
value: helpers.requireStringFlag({
|
|
45
|
+
flags,
|
|
46
|
+
name: "asset-type",
|
|
47
|
+
}),
|
|
48
|
+
}),
|
|
49
|
+
provider: helpers.parseStockProvider({
|
|
50
|
+
value: helpers.getStringFlag({ flags, name: "provider" }),
|
|
51
|
+
}),
|
|
52
|
+
orientation: helpers.parseStockOrientation({
|
|
53
|
+
value: helpers.getStringFlag({
|
|
54
|
+
flags,
|
|
55
|
+
name: "orientation",
|
|
56
|
+
}),
|
|
57
|
+
}),
|
|
58
|
+
limit: helpers.getNumberFlag({ flags, name: "limit" }),
|
|
59
|
+
page: helpers.getNumberFlag({ flags, name: "page" }),
|
|
60
|
+
});
|
|
61
|
+
helpers.printResult({
|
|
62
|
+
json: context.json,
|
|
63
|
+
value: result,
|
|
64
|
+
human: [
|
|
65
|
+
...result.warnings.map((warning) => `Warning: ${warning}`),
|
|
66
|
+
...result.items.map((item) => `${item.provider}:${item.provider_asset_id} ${item.asset_type} ${item.title} ${item.duration_seconds ?? "-"}s ${item.license_code}`),
|
|
67
|
+
],
|
|
68
|
+
});
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (group === "stock" && action === "import") {
|
|
72
|
+
const result = await context.client.stockMedia.importAsset({
|
|
73
|
+
provider: helpers.parseRequiredStockProvider({
|
|
74
|
+
value: helpers.requireStringFlag({
|
|
75
|
+
flags,
|
|
76
|
+
name: "provider",
|
|
77
|
+
}),
|
|
78
|
+
}),
|
|
79
|
+
providerAssetId: helpers.requireStringFlag({
|
|
80
|
+
flags,
|
|
81
|
+
name: "provider-asset-id",
|
|
82
|
+
}),
|
|
83
|
+
assetType: helpers.parseStockAssetType({
|
|
84
|
+
value: helpers.requireStringFlag({
|
|
85
|
+
flags,
|
|
86
|
+
name: "asset-type",
|
|
87
|
+
}),
|
|
88
|
+
}),
|
|
89
|
+
variantId: helpers.parseNullableStringFlag({
|
|
90
|
+
flags,
|
|
91
|
+
name: "variant-id",
|
|
92
|
+
}),
|
|
93
|
+
folderId: helpers.parseFolderIdFlag({
|
|
94
|
+
flags,
|
|
95
|
+
name: "folder-id",
|
|
96
|
+
}),
|
|
97
|
+
audioType: helpers.parseStockAudioType({
|
|
98
|
+
value: helpers.getStringFlag({ flags, name: "audio-type" }),
|
|
99
|
+
}),
|
|
100
|
+
});
|
|
101
|
+
helpers.printResult({
|
|
102
|
+
json: context.json,
|
|
103
|
+
value: result,
|
|
104
|
+
human: [
|
|
105
|
+
`${result.imported ? "Imported" : "Reused"} ${result.asset.name} (${result.asset.id}).`,
|
|
106
|
+
],
|
|
107
|
+
});
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
if (group === "library" && action === "search") {
|
|
111
|
+
const result = await context.client.library.search({
|
|
112
|
+
query: helpers.getStringFlag({ flags, name: "query" }),
|
|
113
|
+
assetType: helpers.parseNullableStockAssetType({
|
|
114
|
+
value: helpers.getStringFlag({
|
|
115
|
+
flags,
|
|
116
|
+
name: "asset-type",
|
|
117
|
+
}),
|
|
118
|
+
}),
|
|
119
|
+
audioType: helpers.parseGlobalBrollAudioType({
|
|
120
|
+
value: helpers.getStringFlag({ flags, name: "audio-type" }),
|
|
121
|
+
}),
|
|
122
|
+
limit: helpers.getNumberFlag({ flags, name: "limit" }),
|
|
123
|
+
offset: helpers.getNumberFlag({ flags, name: "offset" }),
|
|
124
|
+
});
|
|
125
|
+
helpers.printResult({
|
|
126
|
+
json: context.json,
|
|
127
|
+
value: result,
|
|
128
|
+
human: result.items.map((item) => `${item.id} ${item.asset_type} ${item.title} ${item.duration_seconds ?? "-"}s ${item.license_code}`),
|
|
129
|
+
});
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
if (group === "library" && action === "import") {
|
|
133
|
+
const result = await context.client.library.importAsset({
|
|
134
|
+
libraryAssetId: helpers.requireStringFlag({
|
|
135
|
+
flags,
|
|
136
|
+
name: "library-asset-id",
|
|
137
|
+
}),
|
|
138
|
+
folderId: helpers.parseFolderIdFlag({
|
|
139
|
+
flags,
|
|
140
|
+
name: "folder-id",
|
|
141
|
+
}),
|
|
142
|
+
});
|
|
143
|
+
helpers.printResult({
|
|
144
|
+
json: context.json,
|
|
145
|
+
value: result,
|
|
146
|
+
human: [
|
|
147
|
+
`${result.imported ? "Imported" : "Reused"} ${result.asset.name} (${result.asset.id}).`,
|
|
148
|
+
],
|
|
149
|
+
});
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
return false;
|
|
153
|
+
},
|
|
154
|
+
buildDryRun: ({ context, spec }) => {
|
|
155
|
+
const [group, action] = context.args.command;
|
|
156
|
+
if (group !== "library" || action !== "import") {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
const flags = context.args.flags;
|
|
160
|
+
const libraryAssetId = helpers.requireStringFlag({
|
|
161
|
+
flags,
|
|
162
|
+
name: "library-asset-id",
|
|
163
|
+
});
|
|
164
|
+
return helpers.dryRunRequest({
|
|
165
|
+
spec,
|
|
166
|
+
method: "POST",
|
|
167
|
+
path: `/library/broll/${encodeURIComponent(libraryAssetId)}/import`,
|
|
168
|
+
body: {
|
|
169
|
+
folder_id: helpers.parseFolderIdFlag({ flags, name: "folder-id" }),
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=stock-library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stock-library.js","sourceRoot":"","sources":["../../src/commands/stock-library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type CommandSpec } from "../command-metadata.js";
|
|
2
|
+
import type { CommandOperation } from "./command-operation.js";
|
|
3
|
+
export declare const SYSTEM_COMMAND_SPECS: CommandSpec[];
|
|
4
|
+
export type SystemCommandHelpers = {
|
|
5
|
+
commandSpecs: CommandSpec[];
|
|
6
|
+
printResult: (params: {
|
|
7
|
+
json: boolean;
|
|
8
|
+
value: unknown;
|
|
9
|
+
human: string[];
|
|
10
|
+
fields?: string[];
|
|
11
|
+
}) => void;
|
|
12
|
+
};
|
|
13
|
+
export declare function createSystemCommandOperation({ helpers, }: {
|
|
14
|
+
helpers: SystemCommandHelpers;
|
|
15
|
+
}): CommandOperation;
|
|
16
|
+
//# sourceMappingURL=system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/commands/system.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,wBAAwB,CAAC;AAOvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,oBAAoB,EAAE,WAAW,EAsD7C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,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,4BAA4B,CAAC,EAC3C,OAAO,GACR,EAAE;IACD,OAAO,EAAE,oBAAoB,CAAC;CAC/B,GAAG,gBAAgB,CAWnB"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { buildAgentContext, buildAgentContextIndex, buildAgentContextLines, } from "../agent-context.js";
|
|
2
|
+
import { CliUsageError } from "../cli-errors.js";
|
|
3
|
+
import { CLI_VERSION } from "../cli-runtime.js";
|
|
4
|
+
import { commandSpec } from "../command-metadata.js";
|
|
5
|
+
import { buildDoctorLines, buildVersionLines, getUpdateStatus, isVersionLessThan, } from "../update-notifier.js";
|
|
6
|
+
export const SYSTEM_COMMAND_SPECS = [
|
|
7
|
+
commandSpec({
|
|
8
|
+
command: ["version"],
|
|
9
|
+
usage: "blitzreels version [--json]",
|
|
10
|
+
}),
|
|
11
|
+
commandSpec({
|
|
12
|
+
command: ["doctor"],
|
|
13
|
+
usage: "blitzreels doctor [--json]",
|
|
14
|
+
}),
|
|
15
|
+
commandSpec({
|
|
16
|
+
command: ["agent-context"],
|
|
17
|
+
usage: "blitzreels agent-context [--command 'projects list'|--full] [--json]",
|
|
18
|
+
flags: [
|
|
19
|
+
"command",
|
|
20
|
+
{
|
|
21
|
+
name: "full",
|
|
22
|
+
type: "boolean",
|
|
23
|
+
required: false,
|
|
24
|
+
default: false,
|
|
25
|
+
description: "Return the full command contract.",
|
|
26
|
+
hidden: false,
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
description: "Print a machine-readable map of BlitzReels CLI commands.",
|
|
30
|
+
examples: [
|
|
31
|
+
"blitzreels agent-context --json",
|
|
32
|
+
"blitzreels agent-context --command 'media attach' --json",
|
|
33
|
+
"blitzreels agent-context --full --json",
|
|
34
|
+
],
|
|
35
|
+
requiresAuth: false,
|
|
36
|
+
}),
|
|
37
|
+
commandSpec({
|
|
38
|
+
command: ["schema"],
|
|
39
|
+
usage: "blitzreels schema [--command 'projects list'|--full] [--json]",
|
|
40
|
+
flags: [
|
|
41
|
+
"command",
|
|
42
|
+
{
|
|
43
|
+
name: "full",
|
|
44
|
+
type: "boolean",
|
|
45
|
+
required: false,
|
|
46
|
+
default: false,
|
|
47
|
+
description: "Return the full command contract.",
|
|
48
|
+
hidden: false,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
description: "Alias for agent-context.",
|
|
52
|
+
examples: [
|
|
53
|
+
"blitzreels schema --json",
|
|
54
|
+
"blitzreels schema --command 'captions words style' --json",
|
|
55
|
+
"blitzreels schema --full --json",
|
|
56
|
+
],
|
|
57
|
+
requiresAuth: false,
|
|
58
|
+
}),
|
|
59
|
+
];
|
|
60
|
+
export function createSystemCommandOperation({ helpers, }) {
|
|
61
|
+
return {
|
|
62
|
+
name: "system",
|
|
63
|
+
matches: ({ command }) => command[0] === "version" ||
|
|
64
|
+
command[0] === "doctor" ||
|
|
65
|
+
command[0] === "agent-context" ||
|
|
66
|
+
command[0] === "schema",
|
|
67
|
+
handle: ({ context }) => handleSystemCommand({ context, helpers }),
|
|
68
|
+
buildDryRun: () => undefined,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
async function handleSystemCommand({ context, helpers, }) {
|
|
72
|
+
const [group] = context.args.command;
|
|
73
|
+
if (group === "version") {
|
|
74
|
+
const update = await getUpdateStatus({
|
|
75
|
+
baseUrl: context.config.baseUrl,
|
|
76
|
+
cachePolicy: "refresh",
|
|
77
|
+
});
|
|
78
|
+
helpers.printResult({
|
|
79
|
+
json: context.json,
|
|
80
|
+
value: {
|
|
81
|
+
current: CLI_VERSION,
|
|
82
|
+
latest: update.manifest.latest,
|
|
83
|
+
update_available: update.updateAvailable,
|
|
84
|
+
upgrade: update.manifest.upgrade,
|
|
85
|
+
changelog_url: update.manifest.url,
|
|
86
|
+
},
|
|
87
|
+
human: buildVersionLines({ update }),
|
|
88
|
+
});
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
if (group === "doctor") {
|
|
92
|
+
const update = await getUpdateStatus({
|
|
93
|
+
baseUrl: context.config.baseUrl,
|
|
94
|
+
cachePolicy: "refresh",
|
|
95
|
+
});
|
|
96
|
+
helpers.printResult({
|
|
97
|
+
json: context.json,
|
|
98
|
+
value: {
|
|
99
|
+
cli: {
|
|
100
|
+
current: CLI_VERSION,
|
|
101
|
+
latest: update.manifest.latest,
|
|
102
|
+
update_available: update.updateAvailable,
|
|
103
|
+
supported: !isVersionLessThan({
|
|
104
|
+
left: CLI_VERSION,
|
|
105
|
+
right: update.manifest.minSupported,
|
|
106
|
+
}),
|
|
107
|
+
},
|
|
108
|
+
config: {
|
|
109
|
+
api_key: context.config.apiKey ? "configured" : "missing",
|
|
110
|
+
base_url: context.config.baseUrl ?? "https://www.blitzreels.com/api/v1",
|
|
111
|
+
key_storage: context.config.keyStorage ?? "none",
|
|
112
|
+
},
|
|
113
|
+
upgrade: update.manifest.upgrade,
|
|
114
|
+
},
|
|
115
|
+
human: buildDoctorLines({ context, update }),
|
|
116
|
+
});
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
if (group === "agent-context" || group === "schema") {
|
|
120
|
+
const commandFilter = context.invocation.flags.string({ name: "command" });
|
|
121
|
+
const full = context.invocation.flags.boolean({ name: "full" });
|
|
122
|
+
if (commandFilter !== undefined && full) {
|
|
123
|
+
throw new CliUsageError({
|
|
124
|
+
code: "invalid_flag_value",
|
|
125
|
+
message: "Use --command or --full, not both.",
|
|
126
|
+
usage: group === "schema"
|
|
127
|
+
? "blitzreels schema [--command 'projects list'|--full] [--json]"
|
|
128
|
+
: "blitzreels agent-context [--command 'projects list'|--full] [--json]",
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
const result = commandFilter !== undefined || full
|
|
132
|
+
? buildAgentContext({
|
|
133
|
+
commandFilter,
|
|
134
|
+
commandSpecs: helpers.commandSpecs,
|
|
135
|
+
surfaceName: group,
|
|
136
|
+
})
|
|
137
|
+
: buildAgentContextIndex({ commandSpecs: helpers.commandSpecs });
|
|
138
|
+
helpers.printResult({
|
|
139
|
+
json: context.json,
|
|
140
|
+
value: result,
|
|
141
|
+
human: buildAgentContextLines({ value: result }),
|
|
142
|
+
});
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/commands/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CliContext, Flags } from "../cli-types.js";
|
|
2
|
+
export declare function hasTextStyleFlags({ flags }: {
|
|
3
|
+
flags: Flags;
|
|
4
|
+
}): boolean;
|
|
5
|
+
export declare function buildTextOverlaySpec({ text, name, durationSeconds, flags, }: {
|
|
6
|
+
text: string;
|
|
7
|
+
name: string | undefined;
|
|
8
|
+
durationSeconds: number;
|
|
9
|
+
flags: Flags;
|
|
10
|
+
}): Record<string, unknown>;
|
|
11
|
+
export declare function buildTitleCardSpec({ text, name, durationSeconds, flags, }: {
|
|
12
|
+
text: string;
|
|
13
|
+
name: string | undefined;
|
|
14
|
+
durationSeconds: number;
|
|
15
|
+
flags: Flags;
|
|
16
|
+
}): Record<string, unknown>;
|
|
17
|
+
export declare function buildUpdatedTextSpec({ context, projectId, contentItemId, nextText, flags, }: {
|
|
18
|
+
context: CliContext;
|
|
19
|
+
projectId: string;
|
|
20
|
+
contentItemId: string;
|
|
21
|
+
nextText: string | undefined;
|
|
22
|
+
flags: Flags;
|
|
23
|
+
}): Promise<Record<string, unknown>>;
|
|
24
|
+
//# sourceMappingURL=text-overlay-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-overlay-spec.d.ts","sourceRoot":"","sources":["../../src/commands/text-overlay-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAwBzD,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG,OAAO,CAEtE;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiD1B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6D1B;AAED,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,GACN,EAAE;IACD,OAAO,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;CACd,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAanC"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
const TEXT_STYLE_FLAG_NAMES = [
|
|
2
|
+
"font-family",
|
|
3
|
+
"font-size",
|
|
4
|
+
"font-weight",
|
|
5
|
+
"color",
|
|
6
|
+
"background-color",
|
|
7
|
+
"padding-x",
|
|
8
|
+
"padding-y",
|
|
9
|
+
"border-radius",
|
|
10
|
+
"top",
|
|
11
|
+
"left",
|
|
12
|
+
"text-align",
|
|
13
|
+
"text-shadow",
|
|
14
|
+
"no-background",
|
|
15
|
+
];
|
|
16
|
+
export function hasTextStyleFlags({ flags }) {
|
|
17
|
+
return TEXT_STYLE_FLAG_NAMES.some((name) => name in flags);
|
|
18
|
+
}
|
|
19
|
+
export function buildTextOverlaySpec({ text, name, durationSeconds, flags, }) {
|
|
20
|
+
const durationInFrames = Math.max(1, Math.round(durationSeconds * 30));
|
|
21
|
+
const top = getStringFlag({ flags, name: "top" }) ?? "18%";
|
|
22
|
+
const left = getStringFlag({ flags, name: "left" }) ?? "50%";
|
|
23
|
+
const textStyle = buildTextStyle({ flags });
|
|
24
|
+
return {
|
|
25
|
+
id: `cli-${Date.now()}`,
|
|
26
|
+
fps: 30,
|
|
27
|
+
mode: "elements",
|
|
28
|
+
name: name ?? text,
|
|
29
|
+
fonts: [String(textStyle.fontFamily ?? "Inter")],
|
|
30
|
+
width: 1080,
|
|
31
|
+
height: 1920,
|
|
32
|
+
defaults: {
|
|
33
|
+
color: textStyle.color,
|
|
34
|
+
fontSize: textStyle.fontSize,
|
|
35
|
+
fontFamily: textStyle.fontFamily,
|
|
36
|
+
},
|
|
37
|
+
elements: [
|
|
38
|
+
{
|
|
39
|
+
id: `group-${Date.now()}`,
|
|
40
|
+
type: "group",
|
|
41
|
+
style: {
|
|
42
|
+
top,
|
|
43
|
+
left,
|
|
44
|
+
display: "inline-flex",
|
|
45
|
+
opacity: 1,
|
|
46
|
+
position: "absolute",
|
|
47
|
+
transform: "translate(-50%, -50%)",
|
|
48
|
+
alignItems: "center",
|
|
49
|
+
flexDirection: "column",
|
|
50
|
+
},
|
|
51
|
+
children: [
|
|
52
|
+
{
|
|
53
|
+
id: `text-${Date.now()}`,
|
|
54
|
+
type: "text",
|
|
55
|
+
style: textStyle,
|
|
56
|
+
layout: "none",
|
|
57
|
+
content: text,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
metadata: {
|
|
63
|
+
kind: "overlay",
|
|
64
|
+
createdBy: "blitzreels-cli",
|
|
65
|
+
},
|
|
66
|
+
durationInFrames,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export function buildTitleCardSpec({ text, name, durationSeconds, flags, }) {
|
|
70
|
+
const durationInFrames = Math.max(1, Math.round(durationSeconds * 30));
|
|
71
|
+
const textStyle = {
|
|
72
|
+
...buildTextStyle({ flags }),
|
|
73
|
+
color: getStringFlag({ flags, name: "color" }) ?? "#000000",
|
|
74
|
+
backgroundColor: getBooleanFlag({ flags, name: "no-background" }) === true
|
|
75
|
+
? "transparent"
|
|
76
|
+
: (getStringFlag({ flags, name: "background-color" }) ?? "#FFFFFF"),
|
|
77
|
+
fontSize: getNumberFlag({ flags, name: "font-size" }) ?? 56,
|
|
78
|
+
fontWeight: getStringFlag({ flags, name: "font-weight" }) ?? "800",
|
|
79
|
+
padding: `${getNumberFlag({ flags, name: "padding-y" }) ?? 20}px ${getNumberFlag({ flags, name: "padding-x" }) ?? 34}px`,
|
|
80
|
+
borderRadius: getNumberFlag({ flags, name: "border-radius" }) ?? 18,
|
|
81
|
+
textShadow: getStringFlag({ flags, name: "text-shadow" }) ?? "none",
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
id: `cli-title-${Date.now()}`,
|
|
85
|
+
fps: 30,
|
|
86
|
+
mode: "elements",
|
|
87
|
+
name: name ?? text,
|
|
88
|
+
fonts: [String(textStyle.fontFamily ?? "Inter")],
|
|
89
|
+
width: 1080,
|
|
90
|
+
height: 1920,
|
|
91
|
+
defaults: {
|
|
92
|
+
color: textStyle.color,
|
|
93
|
+
fontSize: textStyle.fontSize,
|
|
94
|
+
fontFamily: textStyle.fontFamily,
|
|
95
|
+
},
|
|
96
|
+
elements: [
|
|
97
|
+
{
|
|
98
|
+
id: `title-group-${Date.now()}`,
|
|
99
|
+
type: "group",
|
|
100
|
+
style: {
|
|
101
|
+
top: getStringFlag({ flags, name: "top" }) ?? "12%",
|
|
102
|
+
left: getStringFlag({ flags, name: "left" }) ?? "50%",
|
|
103
|
+
display: "inline-flex",
|
|
104
|
+
opacity: 1,
|
|
105
|
+
position: "absolute",
|
|
106
|
+
transform: "translate(-50%, -50%)",
|
|
107
|
+
alignItems: "center",
|
|
108
|
+
flexDirection: "column",
|
|
109
|
+
},
|
|
110
|
+
children: [
|
|
111
|
+
{
|
|
112
|
+
id: `title-text-${Date.now()}`,
|
|
113
|
+
type: "text",
|
|
114
|
+
style: textStyle,
|
|
115
|
+
layout: "none",
|
|
116
|
+
content: text,
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
metadata: {
|
|
122
|
+
kind: "title_card",
|
|
123
|
+
createdBy: "blitzreels-cli",
|
|
124
|
+
},
|
|
125
|
+
durationInFrames,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
export async function buildUpdatedTextSpec({ context, projectId, contentItemId, nextText, flags, }) {
|
|
129
|
+
const items = await context.client.text.list({ projectId });
|
|
130
|
+
const item = items.data.find((candidate) => candidate.content_item_id === contentItemId);
|
|
131
|
+
if (!item?.spec) {
|
|
132
|
+
throw new Error(`Content item ${contentItemId} has no editable text spec.`);
|
|
133
|
+
}
|
|
134
|
+
return applyTextStyleToSpec({
|
|
135
|
+
spec: item.spec,
|
|
136
|
+
text: nextText,
|
|
137
|
+
flags,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
function buildTextStyle({ flags }) {
|
|
141
|
+
const noBackground = getBooleanFlag({ flags, name: "no-background" });
|
|
142
|
+
const textShadow = getStringFlag({ flags, name: "text-shadow" });
|
|
143
|
+
const backgroundColor = noBackground
|
|
144
|
+
? "transparent"
|
|
145
|
+
: (getStringFlag({ flags, name: "background-color" }) ??
|
|
146
|
+
"rgba(17, 24, 39, 0.86)");
|
|
147
|
+
return {
|
|
148
|
+
color: getStringFlag({ flags, name: "color" }) ?? "#FFFFFF",
|
|
149
|
+
padding: `${getNumberFlag({ flags, name: "padding-y" }) ?? 12}px ${getNumberFlag({ flags, name: "padding-x" }) ?? 24}px`,
|
|
150
|
+
fontSize: getNumberFlag({ flags, name: "font-size" }) ?? 48,
|
|
151
|
+
textAlign: parseTextAlign({
|
|
152
|
+
value: getStringFlag({ flags, name: "text-align" }) ?? "center",
|
|
153
|
+
}),
|
|
154
|
+
fontFamily: getStringFlag({ flags, name: "font-family" }) ?? "Inter",
|
|
155
|
+
fontWeight: getStringFlag({ flags, name: "font-weight" }) ?? "700",
|
|
156
|
+
lineHeight: 1.12,
|
|
157
|
+
textShadow: textShadow ?? (noBackground ? "0 8px 22px rgba(0, 0, 0, 0.52)" : "none"),
|
|
158
|
+
borderRadius: getNumberFlag({ flags, name: "border-radius" }) ?? 18,
|
|
159
|
+
letterSpacing: 0,
|
|
160
|
+
backgroundColor,
|
|
161
|
+
bubbleJoinStyle: "reverse-radius",
|
|
162
|
+
boxDecorationBreak: "clone",
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
function applyTextStyleToSpec({ spec, text, flags, }) {
|
|
166
|
+
const cloned = JSON.parse(JSON.stringify(spec));
|
|
167
|
+
const elements = Array.isArray(cloned.elements) ? cloned.elements : [];
|
|
168
|
+
const firstGroup = elements.find((element) => Boolean(element) &&
|
|
169
|
+
typeof element === "object" &&
|
|
170
|
+
element.type === "group");
|
|
171
|
+
const children = Array.isArray(firstGroup?.children)
|
|
172
|
+
? firstGroup.children
|
|
173
|
+
: [];
|
|
174
|
+
const firstText = children.find((child) => Boolean(child) &&
|
|
175
|
+
typeof child === "object" &&
|
|
176
|
+
child.type === "text");
|
|
177
|
+
if (!firstText) {
|
|
178
|
+
throw new Error("Text overlay spec has no editable text element.");
|
|
179
|
+
}
|
|
180
|
+
firstText.style = {
|
|
181
|
+
...(firstText.style ?? {}),
|
|
182
|
+
...buildTextStyle({ flags }),
|
|
183
|
+
};
|
|
184
|
+
if (text !== undefined) {
|
|
185
|
+
firstText.content = text;
|
|
186
|
+
}
|
|
187
|
+
if (firstGroup) {
|
|
188
|
+
const style = (firstGroup.style ??
|
|
189
|
+
{});
|
|
190
|
+
firstGroup.style = {
|
|
191
|
+
...style,
|
|
192
|
+
top: getStringFlag({ flags, name: "top" }) ?? style.top,
|
|
193
|
+
left: getStringFlag({ flags, name: "left" }) ?? style.left,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
return cloned;
|
|
197
|
+
}
|
|
198
|
+
function getStringFlag({ flags, name, }) {
|
|
199
|
+
const value = flags[name];
|
|
200
|
+
if (value === undefined || value === true) {
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
return String(value);
|
|
204
|
+
}
|
|
205
|
+
function getBooleanFlag({ flags, name, }) {
|
|
206
|
+
return flags[name] === true || flags[name] === "true";
|
|
207
|
+
}
|
|
208
|
+
function getNumberFlag({ flags, name, }) {
|
|
209
|
+
const value = getStringFlag({ flags, name });
|
|
210
|
+
if (value === undefined) {
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
const parsed = Number(value);
|
|
214
|
+
if (!Number.isFinite(parsed)) {
|
|
215
|
+
throw new Error(`--${name} must be a number.`);
|
|
216
|
+
}
|
|
217
|
+
return parsed;
|
|
218
|
+
}
|
|
219
|
+
function parseTextAlign({ value, }) {
|
|
220
|
+
if (value === "left" ||
|
|
221
|
+
value === "center" ||
|
|
222
|
+
value === "right" ||
|
|
223
|
+
value === "justify") {
|
|
224
|
+
return value;
|
|
225
|
+
}
|
|
226
|
+
throw new Error("--text-align must be left, center, right, or justify.");
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=text-overlay-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-overlay-spec.js","sourceRoot":"","sources":["../../src/commands/text-overlay-spec.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG;IAC5B,aAAa;IACb,WAAW;IACX,aAAa;IACb,OAAO;IACP,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,eAAe;IACf,KAAK;IACL,MAAM;IACN,YAAY;IACZ,aAAa;IACb,eAAe;CACP,CAAC;AAQX,MAAM,UAAU,iBAAiB,CAAC,EAAE,KAAK,EAAoB;IAC3D,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACnC,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,KAAK,GAMN;IACC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC;IAC3D,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC;IAC7D,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,OAAO;QACL,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;QACvB,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI,IAAI,IAAI;QAClB,KAAK,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;QAChD,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE;YACR,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;SACjC;QACD,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,GAAG;oBACH,IAAI;oBACJ,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,uBAAuB;oBAClC,UAAU,EAAE,QAAQ;oBACpB,aAAa,EAAE,QAAQ;iBACxB;gBACD,QAAQ,EAAE;oBACR;wBACE,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;wBACxB,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,SAAS;wBAChB,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,IAAI;qBACd;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,gBAAgB;SAC5B;QACD,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,KAAK,GAMN;IACC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,SAAS,GAAkB;QAC/B,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC;QAC5B,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,SAAS;QAC3D,eAAe,EACb,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,KAAK,IAAI;YACvD,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,IAAI,SAAS,CAAC;QACvE,QAAQ,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE;QAC3D,UAAU,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,IAAI,KAAK;QAClE,OAAO,EAAE,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,MAC3D,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,EACjD,IAAI;QACJ,YAAY,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,IAAI,EAAE;QACnE,UAAU,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,IAAI,MAAM;KACpE,CAAC;IACF,OAAO;QACL,EAAE,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE;QAC7B,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI,IAAI,IAAI;QAClB,KAAK,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;QAChD,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE;YACR,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;SACjC;QACD,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,GAAG,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK;oBACnD,IAAI,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,KAAK;oBACrD,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,uBAAuB;oBAClC,UAAU,EAAE,QAAQ;oBACpB,aAAa,EAAE,QAAQ;iBACxB;gBACD,QAAQ,EAAE;oBACR;wBACE,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE;wBAC9B,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,SAAS;wBAChB,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,IAAI;qBACd;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,gBAAgB;SAC5B;QACD,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,OAAO,EACP,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,GAON;IACC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAC1B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,eAAe,KAAK,aAAa,CAC3D,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gBAAgB,aAAa,6BAA6B,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,oBAAoB,CAAC;QAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,QAAQ;QACd,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,KAAK,EAAoB;IACjD,MAAM,YAAY,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IACjE,MAAM,eAAe,GAAG,YAAY;QAClC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;YACnD,wBAAwB,CAAC,CAAC;IAC9B,OAAO;QACL,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,SAAS;QAC3D,OAAO,EAAE,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,MAC3D,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,EACjD,IAAI;QACJ,QAAQ,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE;QAC3D,SAAS,EAAE,cAAc,CAAC;YACxB,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,QAAQ;SAChE,CAAC;QACF,UAAU,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,IAAI,OAAO;QACpE,UAAU,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,IAAI,KAAK;QAClE,UAAU,EAAE,IAAI;QAChB,UAAU,EACR,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1E,YAAY,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,IAAI,EAAE;QACnE,aAAa,EAAE,CAAC;QAChB,eAAe;QACf,eAAe,EAAE,gBAAgB;QACjC,kBAAkB,EAAE,OAAO;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAC5B,IAAI,EACJ,IAAI,EACJ,KAAK,GAKN;IACC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAA4B,CAAC;IAC3E,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAC9B,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,OAAO,CAAC;QAChB,OAAO,OAAO,KAAK,QAAQ;QAC1B,OAAmC,CAAC,IAAI,KAAK,OAAO,CACjB,CAAC;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;QAClD,CAAC,CAAC,UAAU,CAAC,QAAQ;QACrB,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAC7B,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,CAAC,KAAK,CAAC;QACd,OAAO,KAAK,KAAK,QAAQ;QACxB,KAAiC,CAAC,IAAI,KAAK,MAAM,CACd,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,SAAS,CAAC,KAAK,GAAG;QAChB,GAAG,CAAE,SAAS,CAAC,KAA6C,IAAI,EAAE,CAAC;QACnE,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC;KAC7B,CAAC;IACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,CAAE,UAAU,CAAC,KAA6C;YACtE,EAAE,CAA4B,CAAC;QACjC,UAAU,CAAC,KAAK,GAAG;YACjB,GAAG,KAAK;YACR,GAAG,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG;YACvD,IAAI,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI;SAC3D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,KAAK,EACL,IAAI,GAIL;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,KAAK,EACL,IAAI,GAIL;IACC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,KAAK,EACL,IAAI,GAIL;IACC,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,oBAAoB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,KAAK,GAGN;IACC,IACE,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,SAAS,EACnB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAC3E,CAAC"}
|