@argo-video/cli 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +104 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +126 -7
- package/dist/cli.js.map +1 -1
- package/dist/clip.d.ts +12 -0
- package/dist/clip.d.ts.map +1 -0
- package/dist/clip.js +78 -0
- package/dist/clip.js.map +1 -0
- package/dist/config.d.ts +18 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/dashboard.d.ts +22 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/dist/dashboard.js +186 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/export.d.ts +13 -2
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +136 -16
- package/dist/export.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/media.d.ts +2 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +18 -0
- package/dist/media.js.map +1 -0
- package/dist/pipeline.d.ts +8 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +59 -53
- package/dist/pipeline.js.map +1 -1
- package/dist/preview.d.ts +13 -0
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +27 -10
- package/dist/preview.js.map +1 -1
- package/dist/progress.d.ts +8 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +67 -0
- package/dist/progress.js.map +1 -0
- package/dist/speed-ramp.d.ts +39 -0
- package/dist/speed-ramp.d.ts.map +1 -0
- package/dist/speed-ramp.js +184 -0
- package/dist/speed-ramp.js.map +1 -0
- package/dist/timeline.d.ts +19 -0
- package/dist/timeline.d.ts.map +1 -0
- package/dist/timeline.js +82 -0
- package/dist/timeline.js.map +1 -0
- package/dist/transitions.d.ts +15 -0
- package/dist/transitions.d.ts.map +1 -0
- package/dist/transitions.js +124 -0
- package/dist/transitions.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -129,7 +129,12 @@ export default defineConfig({
|
|
|
129
129
|
browser: 'webkit', // webkit > firefox > chromium on macOS
|
|
130
130
|
// deviceScaleFactor: 2, // enable after webkit 2x fix
|
|
131
131
|
},
|
|
132
|
-
export: {
|
|
132
|
+
export: {
|
|
133
|
+
preset: 'slow', crf: 16,
|
|
134
|
+
transition: { type: 'fade-through-black', durationMs: 2000 }, // scene transitions (2s+ recommended)
|
|
135
|
+
speedRamp: { gapSpeed: 2.0 }, // speed up gaps between scenes
|
|
136
|
+
formats: ['gif', '9:16'], // additional export formats
|
|
137
|
+
},
|
|
133
138
|
overlays: {
|
|
134
139
|
autoBackground: true,
|
|
135
140
|
// defaultPlacement: 'top-right',
|
|
@@ -139,6 +144,36 @@ export default defineConfig({
|
|
|
139
144
|
|
|
140
145
|
> **Tip:** Use `browser: 'webkit'` for sharper video on macOS. Chromium has a [known video capture quality issue](https://github.com/microsoft/playwright/issues/31424). Set `deviceScaleFactor: 2` for retina-quality recordings (captured at 2x, downscaled with lanczos in export).
|
|
141
146
|
|
|
147
|
+
### Mobile Demos
|
|
148
|
+
|
|
149
|
+
Record mobile-viewport demos with touch support:
|
|
150
|
+
|
|
151
|
+
```ts
|
|
152
|
+
// In your demo script
|
|
153
|
+
test.use({
|
|
154
|
+
viewport: { width: 390, height: 664 },
|
|
155
|
+
isMobile: true,
|
|
156
|
+
hasTouch: true,
|
|
157
|
+
video: { mode: 'on' as const, size: { width: 390, height: 664 } },
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Or set mobile options globally in config:
|
|
162
|
+
|
|
163
|
+
```js
|
|
164
|
+
video: {
|
|
165
|
+
width: 390,
|
|
166
|
+
height: 664,
|
|
167
|
+
browser: 'webkit',
|
|
168
|
+
isMobile: true,
|
|
169
|
+
hasTouch: true,
|
|
170
|
+
},
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
> **Important:** Set `video.size` to match the viewport in `test.use()`, otherwise the capture canvas defaults to 1920×1080 and the mobile viewport renders with gray padding. Use `.tap()` instead of `.click()` for touch interactions.
|
|
174
|
+
|
|
175
|
+
See `demos/mobile.demo.ts` for a complete mobile demo example.
|
|
176
|
+
|
|
142
177
|
### `playwright.config.ts`
|
|
143
178
|
|
|
144
179
|
Argo scaffolds this for you via `argo init`. The key settings:
|
|
@@ -177,8 +212,12 @@ argo record <demo> Record browser session
|
|
|
177
212
|
argo tts generate <manifest> Generate TTS clips from manifest
|
|
178
213
|
argo export <demo> Merge video + audio to MP4
|
|
179
214
|
argo pipeline <demo> Run all steps end-to-end
|
|
215
|
+
argo pipeline --all Run pipeline for every demo in demosDir
|
|
180
216
|
argo validate <demo> Check scene name consistency (no TTS/recording)
|
|
181
217
|
argo preview <demo> Browser-based editor for voiceover, overlays, timing
|
|
218
|
+
argo preview Multi-demo dashboard (lists all demos with status)
|
|
219
|
+
argo clip <demo> <scene> Extract a scene clip from exported video
|
|
220
|
+
argo clip <demo> <scene> --format gif Extract as palette-optimized GIF
|
|
182
221
|
argo doctor Check environment (ffmpeg, Playwright, config)
|
|
183
222
|
argo --config <path> <command> Use a custom config file
|
|
184
223
|
|
|
@@ -186,6 +225,7 @@ Options:
|
|
|
186
225
|
--browser <engine> chromium | webkit | firefox (overrides config)
|
|
187
226
|
--base-url <url> Override baseURL from config
|
|
188
227
|
--headed Run browser in visible mode
|
|
228
|
+
--all Run pipeline for all demos
|
|
189
229
|
--port <number> Preview server port (default: auto)
|
|
190
230
|
```
|
|
191
231
|
|
|
@@ -299,7 +339,69 @@ choco install ffmpeg # Windows
|
|
|
299
339
|
|
|
300
340
|
3. **Align** — Each TTS clip is placed at its scene's recorded timestamp. Overlapping clips are pushed forward with a 100ms gap. All clips are mixed into a single `narration-aligned.wav`.
|
|
301
341
|
|
|
302
|
-
4. **Export** — ffmpeg combines the screen recording (WebM) with the aligned narration (WAV) into an H.264 MP4 with chapter markers. Subtitle files (`.srt` + `.vtt`) and a scene report are generated alongside the video.
|
|
342
|
+
4. **Export** — ffmpeg combines the screen recording (WebM) with the aligned narration (WAV) into an H.264 MP4 with chapter markers. Subtitle files (`.srt` + `.vtt`) and a scene report are generated alongside the video. A progress bar shows encoding percentage during export.
|
|
343
|
+
|
|
344
|
+
### Scene Transitions
|
|
345
|
+
|
|
346
|
+
Add smooth transitions between scenes:
|
|
347
|
+
|
|
348
|
+
```js
|
|
349
|
+
export: {
|
|
350
|
+
transition: { type: 'fade-through-black', durationMs: 2000 },
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
> **Tip:** Use `durationMs: 2000` or higher for transitions that are clearly visible during narration. Short durations (500ms) look like glitches rather than intentional transitions.
|
|
355
|
+
|
|
356
|
+
Transition types: `fade-through-black`, `dissolve` (quicker dip-to-black, not a true crossfade), `wipe-left`, `wipe-right`.
|
|
357
|
+
|
|
358
|
+
> **Tip:** Content changes (page navigation, slide switches) should happen **before** `narration.mark()` so the transition fades between the old and new content. If you change content after `mark()`, the transition just pulses the same visual.
|
|
359
|
+
|
|
360
|
+
### Speed Ramp
|
|
361
|
+
|
|
362
|
+
Compress gaps between scenes (navigation, page loads) to keep demos tight:
|
|
363
|
+
|
|
364
|
+
```js
|
|
365
|
+
export: {
|
|
366
|
+
speedRamp: { gapSpeed: 2.0, minGapMs: 500 },
|
|
367
|
+
}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
`gapSpeed: 2.0` means inter-scene gaps play at 2× speed. Only gaps longer than `minGapMs` (default 500ms) are affected. Both video and audio are sped up together.
|
|
371
|
+
|
|
372
|
+
### Multi-Format Export
|
|
373
|
+
|
|
374
|
+
Export additional formats alongside the main 16:9 MP4:
|
|
375
|
+
|
|
376
|
+
```js
|
|
377
|
+
export: {
|
|
378
|
+
formats: ['1:1', '9:16', 'gif'],
|
|
379
|
+
}
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
- `1:1` — Square crop (centered) for Instagram/LinkedIn
|
|
383
|
+
- `9:16` — Vertical crop (centered) for TikTok/Reels. Note: center-crops from 16:9, so wide text may be clipped. Works best when key content is centered.
|
|
384
|
+
- `gif` — Animated GIF with palette optimization for docs/READMEs
|
|
385
|
+
|
|
386
|
+
### Batch Pipeline
|
|
387
|
+
|
|
388
|
+
Build all demos in one command:
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
npx argo pipeline --all
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
Discovers all `.scenes.json` files in `demosDir` and runs the full pipeline for each.
|
|
395
|
+
|
|
396
|
+
### Dashboard
|
|
397
|
+
|
|
398
|
+
View all demos at a glance:
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
npx argo preview
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
Opens a dashboard listing every discovered demo with build status, video size, resolution, and quick-action links. Run `argo preview <demo>` for the single-demo editor.
|
|
303
405
|
|
|
304
406
|
## Example
|
|
305
407
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA6C5C,wBAAgB,aAAa,IAAI,OAAO,CAoTvC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import { Command, Option } from 'commander';
|
|
2
2
|
import { basename } from 'node:path';
|
|
3
3
|
import { createRequire } from 'node:module';
|
|
4
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
4
5
|
import { loadConfig } from './config.js';
|
|
5
6
|
import { record } from './record.js';
|
|
6
7
|
import { generateClips } from './tts/generate.js';
|
|
7
8
|
import { exportVideo } from './export.js';
|
|
8
|
-
import { runPipeline } from './pipeline.js';
|
|
9
|
+
import { runPipeline, runBatchPipeline } from './pipeline.js';
|
|
9
10
|
import { init, initFrom } from './init.js';
|
|
10
11
|
import { startPreviewServer } from './preview.js';
|
|
12
|
+
import { startDashboardServer } from './dashboard.js';
|
|
11
13
|
import { validateDemo } from './validate.js';
|
|
12
14
|
import { runDoctor, formatDoctorResults } from './doctor.js';
|
|
15
|
+
import { getVideoDurationMs } from './media.js';
|
|
16
|
+
import { buildPlacementsFromTimingAndDurations, buildSceneDurationsFromCache, buildSceneTexts, computeHeadTrimMs, readScenesManifest, shiftPlacements, } from './timeline.js';
|
|
17
|
+
import { generateChapterMetadata } from './chapters.js';
|
|
18
|
+
import { generateSrt, generateVtt } from './subtitles.js';
|
|
19
|
+
import { applySpeedRampToTimeline } from './speed-ramp.js';
|
|
13
20
|
function validateDemoName(name) {
|
|
14
21
|
if (!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(name)) {
|
|
15
22
|
throw new Error(`Invalid demo name "${name}": only letters, numbers, hyphens, and underscores are allowed.`);
|
|
@@ -85,6 +92,40 @@ export function createProgram() {
|
|
|
85
92
|
validateDemoName(demo);
|
|
86
93
|
const configPath = program.opts().config;
|
|
87
94
|
const config = await loadConfig(process.cwd(), configPath);
|
|
95
|
+
const demoDir = `.argo/${demo}`;
|
|
96
|
+
const timingPath = `${demoDir}/.timing.json`;
|
|
97
|
+
const manifestPath = `${config.demosDir}/${demo}.scenes.json`;
|
|
98
|
+
let chapterMetadataPath;
|
|
99
|
+
let placements;
|
|
100
|
+
let totalDurationMs;
|
|
101
|
+
let headTrimMs;
|
|
102
|
+
let speedRampSegments;
|
|
103
|
+
if (existsSync(timingPath) && existsSync(manifestPath)) {
|
|
104
|
+
const timing = JSON.parse(readFileSync(timingPath, 'utf-8'));
|
|
105
|
+
const manifestEntries = readScenesManifest(manifestPath);
|
|
106
|
+
const rawVideoDurationMs = getVideoDurationMs(`${demoDir}/video.webm`);
|
|
107
|
+
const sceneDurations = buildSceneDurationsFromCache(demo, manifestEntries, { voice: config.tts.defaultVoice, speed: config.tts.defaultSpeed });
|
|
108
|
+
const untrimmedPlacements = buildPlacementsFromTimingAndDurations(timing, sceneDurations, rawVideoDurationMs);
|
|
109
|
+
const computedHeadTrimMs = computeHeadTrimMs(timing);
|
|
110
|
+
const shiftedPlacements = shiftPlacements(untrimmedPlacements, computedHeadTrimMs);
|
|
111
|
+
const shiftedDurationMs = rawVideoDurationMs - computedHeadTrimMs;
|
|
112
|
+
const speedRampPlan = applySpeedRampToTimeline(shiftedPlacements, shiftedDurationMs, config.export.speedRamp);
|
|
113
|
+
placements = speedRampPlan.placements;
|
|
114
|
+
totalDurationMs = speedRampPlan.totalDurationMs;
|
|
115
|
+
speedRampSegments = speedRampPlan.segments;
|
|
116
|
+
headTrimMs = computedHeadTrimMs > 0 ? computedHeadTrimMs : undefined;
|
|
117
|
+
chapterMetadataPath = `${demoDir}/chapters.txt`;
|
|
118
|
+
writeFileSync(chapterMetadataPath, generateChapterMetadata(placements, totalDurationMs), 'utf-8');
|
|
119
|
+
const sceneTexts = buildSceneTexts(manifestEntries);
|
|
120
|
+
if (Object.keys(sceneTexts).length > 0) {
|
|
121
|
+
mkdirSync(config.outputDir, { recursive: true });
|
|
122
|
+
writeFileSync(`${config.outputDir}/${demo}.srt`, generateSrt(placements, sceneTexts), 'utf-8');
|
|
123
|
+
writeFileSync(`${config.outputDir}/${demo}.vtt`, generateVtt(placements, sceneTexts), 'utf-8');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
console.warn(`Warning: missing timing or manifest for ${demo}; exporting without chapters, subtitles, transitions, or speed ramp.`);
|
|
128
|
+
}
|
|
88
129
|
await exportVideo({
|
|
89
130
|
demoName: demo,
|
|
90
131
|
argoDir: '.argo',
|
|
@@ -96,16 +137,23 @@ export function createProgram() {
|
|
|
96
137
|
outputHeight: config.video.height,
|
|
97
138
|
deviceScaleFactor: config.video.deviceScaleFactor,
|
|
98
139
|
thumbnailPath: config.export.thumbnailPath,
|
|
140
|
+
chapterMetadataPath,
|
|
141
|
+
formats: config.export.formats,
|
|
142
|
+
transition: chapterMetadataPath ? config.export.transition : undefined,
|
|
143
|
+
placements,
|
|
144
|
+
totalDurationMs,
|
|
145
|
+
headTrimMs,
|
|
146
|
+
speedRampSegments,
|
|
99
147
|
});
|
|
100
148
|
});
|
|
101
149
|
program
|
|
102
|
-
.command('pipeline
|
|
150
|
+
.command('pipeline [demo]')
|
|
103
151
|
.description('Run the full pipeline: TTS → record → export')
|
|
104
152
|
.addOption(new Option('--browser <engine>', 'browser engine').choices(['chromium', 'webkit', 'firefox']))
|
|
105
153
|
.option('--base-url <url>', 'override baseURL from config')
|
|
106
154
|
.option('--headed', 'run browser in headed mode (visible window)')
|
|
155
|
+
.option('--all', 'run pipeline for all demos in demosDir')
|
|
107
156
|
.action(async (demo, cmdOpts) => {
|
|
108
|
-
validateDemoName(demo);
|
|
109
157
|
const configPath = program.opts().config;
|
|
110
158
|
const loaded = await ensureTTSEngine(await loadConfig(process.cwd(), configPath));
|
|
111
159
|
let config = cmdOpts.browser
|
|
@@ -114,7 +162,20 @@ export function createProgram() {
|
|
|
114
162
|
if (cmdOpts.baseUrl) {
|
|
115
163
|
config = { ...config, baseURL: cmdOpts.baseUrl };
|
|
116
164
|
}
|
|
117
|
-
|
|
165
|
+
if (cmdOpts.all) {
|
|
166
|
+
const demos = (await import('./pipeline.js')).discoverDemos(config.demosDir);
|
|
167
|
+
const results = await runBatchPipeline(config, { headed: cmdOpts.headed });
|
|
168
|
+
if (results.length < demos.length) {
|
|
169
|
+
process.exitCode = 1;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else if (demo) {
|
|
173
|
+
validateDemoName(demo);
|
|
174
|
+
await runPipeline(demo, config, { headed: cmdOpts.headed });
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
throw new Error('Provide a demo name or use --all to run all demos.');
|
|
178
|
+
}
|
|
118
179
|
});
|
|
119
180
|
program
|
|
120
181
|
.command('validate <demo>')
|
|
@@ -152,13 +213,59 @@ export function createProgram() {
|
|
|
152
213
|
process.exitCode = 1;
|
|
153
214
|
});
|
|
154
215
|
program
|
|
155
|
-
.command('
|
|
156
|
-
.description('
|
|
216
|
+
.command('clip <demo> <scene>')
|
|
217
|
+
.description('Extract a scene clip from an exported video using chapter markers')
|
|
218
|
+
.option('--format <type>', 'output format: mp4 (default) or gif', 'mp4')
|
|
219
|
+
.option('--gif-width <pixels>', 'GIF width in pixels (default: 640)', parseInt)
|
|
220
|
+
.option('--gif-fps <fps>', 'GIF framerate (default: 10)', parseInt)
|
|
221
|
+
.action(async (demo, scene, cmdOpts) => {
|
|
222
|
+
validateDemoName(demo);
|
|
223
|
+
const configPath = program.opts().config;
|
|
224
|
+
const config = await loadConfig(process.cwd(), configPath);
|
|
225
|
+
const { extractClip } = await import('./clip.js');
|
|
226
|
+
const outputPath = await extractClip({
|
|
227
|
+
demoName: demo,
|
|
228
|
+
scene,
|
|
229
|
+
outputDir: config.outputDir,
|
|
230
|
+
format: (cmdOpts.format === 'gif' ? 'gif' : 'mp4'),
|
|
231
|
+
gifWidth: cmdOpts.gifWidth,
|
|
232
|
+
gifFps: cmdOpts.gifFps,
|
|
233
|
+
});
|
|
234
|
+
console.log(`\n✓ Clip saved to: ${outputPath}`);
|
|
235
|
+
});
|
|
236
|
+
program
|
|
237
|
+
.command('preview [demo]')
|
|
238
|
+
.description('Start a browser-based preview server (omit demo name for dashboard)')
|
|
157
239
|
.option('--port <number>', 'server port (default: auto)', parseInt)
|
|
158
240
|
.action(async (demo, cmdOpts) => {
|
|
159
|
-
validateDemoName(demo);
|
|
160
241
|
const configPath = program.opts().config;
|
|
161
242
|
const config = await loadConfig(process.cwd(), configPath);
|
|
243
|
+
if (!demo) {
|
|
244
|
+
// Dashboard mode — list all demos
|
|
245
|
+
const { url } = await startDashboardServer({
|
|
246
|
+
demosDir: config.demosDir,
|
|
247
|
+
outputDir: config.outputDir,
|
|
248
|
+
port: cmdOpts.port,
|
|
249
|
+
ttsDefaults: { voice: config.tts.defaultVoice, speed: config.tts.defaultSpeed },
|
|
250
|
+
exportConfig: {
|
|
251
|
+
preset: config.export.preset,
|
|
252
|
+
crf: config.export.crf,
|
|
253
|
+
fps: config.video.fps,
|
|
254
|
+
outputWidth: config.video.width,
|
|
255
|
+
outputHeight: config.video.height,
|
|
256
|
+
deviceScaleFactor: config.video.deviceScaleFactor,
|
|
257
|
+
thumbnailPath: config.export.thumbnailPath,
|
|
258
|
+
formats: config.export.formats,
|
|
259
|
+
transition: config.export.transition,
|
|
260
|
+
speedRamp: config.export.speedRamp,
|
|
261
|
+
},
|
|
262
|
+
});
|
|
263
|
+
console.log(`\nArgo Dashboard running at: ${url}`);
|
|
264
|
+
console.log('Press Ctrl+C to stop.\n');
|
|
265
|
+
await new Promise(() => { });
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
validateDemoName(demo);
|
|
162
269
|
const { url } = await startPreviewServer({
|
|
163
270
|
demoName: demo,
|
|
164
271
|
argoDir: '.argo',
|
|
@@ -169,6 +276,18 @@ export function createProgram() {
|
|
|
169
276
|
voice: config.tts.defaultVoice,
|
|
170
277
|
speed: config.tts.defaultSpeed,
|
|
171
278
|
},
|
|
279
|
+
exportConfig: {
|
|
280
|
+
preset: config.export.preset,
|
|
281
|
+
crf: config.export.crf,
|
|
282
|
+
fps: config.video.fps,
|
|
283
|
+
outputWidth: config.video.width,
|
|
284
|
+
outputHeight: config.video.height,
|
|
285
|
+
deviceScaleFactor: config.video.deviceScaleFactor,
|
|
286
|
+
thumbnailPath: config.export.thumbnailPath,
|
|
287
|
+
formats: config.export.formats,
|
|
288
|
+
transition: config.export.transition,
|
|
289
|
+
speedRamp: config.export.speedRamp,
|
|
290
|
+
},
|
|
172
291
|
});
|
|
173
292
|
console.log(`\nArgo Preview running at: ${url}`);
|
|
174
293
|
console.log('Press Ctrl+C to stop.\n');
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAuC,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7D,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,iEAAiE,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAkB;IAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CAAC,kFAAkF,CAAC;SAC/F,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC;SAC9D,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;IAExD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,SAAS,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;SACxG,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAiE,EAAE,EAAE;QAChG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAClH,CAAC;QACD,MAAM,OAAO,GAAI,OAAO,CAAC,OAAyB,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3E,MAAM,MAAM,CAAC,IAAI,EAAE;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO;YACP,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YACjE,OAAO;YACP,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;YACjD,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC/B,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;YAC3C,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc;YAC/C,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB;YACnD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,cAAc,CAAC,CAAC;IAE/B,GAAG;SACA,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,MAAM,aAAa,CAAC;YAClB,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YACpH,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAO;YAC1B,WAAW,EAAE,GAAG;YAChB,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,WAAW,CAAC;YAChB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;YACtB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;YACrB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;YAC/B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YACjC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;YACjD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;SAC3C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,8CAA8C,CAAC;SAC3D,SAAS,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;SACxG,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAiE,EAAE,EAAE;QAChG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO;YAC1B,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAwB,EAAE,EAAE;YACtF,CAAC,CAAC,MAAM,CAAC;QACX,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACnD,CAAC;QACD,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE3E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;YACrG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAC9D,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,oGAAoG,CAAC;SACjH,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,EAAE,QAAQ,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA0B,EAAE,EAAE;QACzD,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAAC;YACvC,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE;gBACX,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY;gBAC9B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY;aAC/B;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,qBAAqB;QACrB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,eAAe,EAAE,uDAAuD,CAAC;SAChF,MAAM,CAAC,eAAe,EAAE,oDAAoD,CAAC;SAC7E,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,IAAI;gBAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;IACrC,aAAa,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAuC,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,qCAAqC,EACrC,4BAA4B,EAC5B,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAgB,MAAM,iBAAiB,CAAC;AAGzE,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,iEAAiE,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAkB;IAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CAAC,kFAAkF,CAAC;SAC/F,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC;SAC9D,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;IAExD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,SAAS,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;SACxG,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAiE,EAAE,EAAE;QAChG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAClH,CAAC;QACD,MAAM,OAAO,GAAI,OAAO,CAAC,OAAyB,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3E,MAAM,MAAM,CAAC,IAAI,EAAE;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO;YACP,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YACjE,OAAO;YACP,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;YACjD,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC/B,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;YAC3C,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc;YAC/C,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB;YACnD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,cAAc,CAAC,CAAC;IAE/B,GAAG;SACA,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,MAAM,aAAa,CAAC;YAClB,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YACpH,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAO;YAC1B,WAAW,EAAE,GAAG;YAChB,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,SAAS,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,OAAO,eAAe,CAAC;QAC7C,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,cAAc,CAAC;QAC9D,IAAI,mBAAuC,CAAC;QAC5C,IAAI,UAAmC,CAAC;QACxC,IAAI,eAAmC,CAAC;QACxC,IAAI,UAA8B,CAAC;QACnC,IAAI,iBAAwC,CAAC;QAE7C,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAA2B,CAAC;YACvF,MAAM,eAAe,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACzD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,OAAO,aAAa,CAAC,CAAC;YACvE,MAAM,cAAc,GAAG,4BAA4B,CACjD,IAAI,EACJ,eAAe,EACf,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CACnE,CAAC;YACF,MAAM,mBAAmB,GAAG,qCAAqC,CAC/D,MAAM,EACN,cAAc,EACd,kBAAkB,CACnB,CAAC;YACF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,iBAAiB,GAAG,eAAe,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;YACnF,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;YAClE,MAAM,aAAa,GAAG,wBAAwB,CAC5C,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;YAEF,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;YACtC,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC;YAChD,iBAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;YAC3C,UAAU,GAAG,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;YAErE,mBAAmB,GAAG,GAAG,OAAO,eAAe,CAAC;YAChD,aAAa,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;YAElG,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjD,aAAa,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC/F,aAAa,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,2CAA2C,IAAI,sEAAsE,CACtH,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,CAAC;YAChB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;YACtB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;YACrB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;YAC/B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YACjC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;YACjD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;YAC1C,mBAAmB;YACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACtE,UAAU;YACV,eAAe;YACf,UAAU;YACV,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,8CAA8C,CAAC;SAC3D,SAAS,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;SACxG,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,OAAO,EAAE,wCAAwC,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAAgF,EAAE,EAAE;QAC3H,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO;YAC1B,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAwB,EAAE,EAAE;YACtF,CAAC,CAAC,MAAM,CAAC;QACX,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACnD,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE3E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;YACrG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAC9D,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,mEAAmE,CAAC;SAChF,MAAM,CAAC,iBAAiB,EAAE,qCAAqC,EAAE,KAAK,CAAC;SACvE,MAAM,CAAC,sBAAsB,EAAE,oCAAoC,EAAE,QAAQ,CAAC;SAC9E,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,EAAE,QAAQ,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,KAAa,EAAE,OAAgE,EAAE,EAAE;QAC9G,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC;YACnC,QAAQ,EAAE,IAAI;YACd,KAAK;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAkB;YACnE,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,qEAAqE,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,EAAE,QAAQ,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAA0B,EAAE,EAAE;QACrE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAE3D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,kCAAkC;YAClC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,CAAC;gBACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE;gBAC/E,YAAY,EAAE;oBACZ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;oBAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;oBACtB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;oBACrB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;oBAC/B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBACjC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;oBACjD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;oBAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;oBAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;oBACpC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;iBACnC;aACF,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAAC;YACvC,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE;gBACX,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY;gBAC9B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY;aAC/B;YACD,YAAY,EAAE;gBACZ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;gBAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACtB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;gBACrB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;gBAC/B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;gBACjC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;gBACjD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;gBAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;gBAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;gBACpC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;aACnC;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,qBAAqB;QACrB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,eAAe,EAAE,uDAAuD,CAAC;SAChF,MAAM,CAAC,eAAe,EAAE,oDAAoD,CAAC;SAC7E,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,IAAI;gBAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;IACrC,aAAa,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC"}
|
package/dist/clip.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ClipOptions {
|
|
2
|
+
demoName: string;
|
|
3
|
+
scene: string;
|
|
4
|
+
outputDir: string;
|
|
5
|
+
format?: 'mp4' | 'gif';
|
|
6
|
+
/** GIF width in pixels (default: 640) */
|
|
7
|
+
gifWidth?: number;
|
|
8
|
+
/** GIF framerate (default: 10) */
|
|
9
|
+
gifFps?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function extractClip(options: ClipOptions): Promise<string>;
|
|
12
|
+
//# sourceMappingURL=clip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clip.d.ts","sourceRoot":"","sources":["../src/clip.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAsEvE"}
|
package/dist/clip.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract a scene clip from an exported MP4 using chapter markers.
|
|
3
|
+
*
|
|
4
|
+
* Reads chapter metadata embedded in the MP4 to find the scene's
|
|
5
|
+
* start/end timestamps, then extracts a clip. Supports MP4 (copy)
|
|
6
|
+
* and GIF (palette-optimized) output.
|
|
7
|
+
*/
|
|
8
|
+
import { execFileSync } from 'node:child_process';
|
|
9
|
+
import { existsSync, mkdirSync } from 'node:fs';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
function getChapters(videoPath) {
|
|
12
|
+
const raw = execFileSync('ffprobe', [
|
|
13
|
+
'-v', 'quiet',
|
|
14
|
+
'-print_format', 'json',
|
|
15
|
+
'-show_chapters',
|
|
16
|
+
videoPath,
|
|
17
|
+
], { encoding: 'utf-8' });
|
|
18
|
+
const parsed = JSON.parse(raw);
|
|
19
|
+
return parsed.chapters ?? [];
|
|
20
|
+
}
|
|
21
|
+
export async function extractClip(options) {
|
|
22
|
+
const { demoName, scene, outputDir, format = 'mp4', gifWidth = 640, gifFps = 10 } = options;
|
|
23
|
+
const videoPath = join(outputDir, `${demoName}.mp4`);
|
|
24
|
+
if (!existsSync(videoPath)) {
|
|
25
|
+
throw new Error(`No exported video found at ${videoPath}. Run 'argo pipeline ${demoName}' first.`);
|
|
26
|
+
}
|
|
27
|
+
const chapters = getChapters(videoPath);
|
|
28
|
+
if (chapters.length === 0) {
|
|
29
|
+
throw new Error(`No chapters found in ${videoPath}. The video may have been exported without chapter markers.`);
|
|
30
|
+
}
|
|
31
|
+
const chapter = chapters.find(c => c.tags.title === scene);
|
|
32
|
+
if (!chapter) {
|
|
33
|
+
const available = chapters.map(c => c.tags.title).join(', ');
|
|
34
|
+
throw new Error(`Scene "${scene}" not found in ${demoName}. Available scenes: ${available}`);
|
|
35
|
+
}
|
|
36
|
+
const startSec = parseFloat(chapter.start_time);
|
|
37
|
+
const endSec = parseFloat(chapter.end_time);
|
|
38
|
+
const clipsDir = join(outputDir, 'clips');
|
|
39
|
+
mkdirSync(clipsDir, { recursive: true });
|
|
40
|
+
if (format === 'gif') {
|
|
41
|
+
const outputPath = join(clipsDir, `${demoName}-${scene}.gif`);
|
|
42
|
+
// Two-pass palette-optimized GIF
|
|
43
|
+
const palettePath = join(clipsDir, `.palette-${demoName}-${scene}.png`);
|
|
44
|
+
const filters = `fps=${gifFps},scale=${gifWidth}:-1:flags=lanczos`;
|
|
45
|
+
execFileSync('ffmpeg', [
|
|
46
|
+
'-ss', String(startSec),
|
|
47
|
+
'-to', String(endSec),
|
|
48
|
+
'-i', videoPath,
|
|
49
|
+
'-vf', `${filters},palettegen=stats_mode=diff`,
|
|
50
|
+
'-y', palettePath,
|
|
51
|
+
], { stdio: 'pipe' });
|
|
52
|
+
execFileSync('ffmpeg', [
|
|
53
|
+
'-ss', String(startSec),
|
|
54
|
+
'-to', String(endSec),
|
|
55
|
+
'-i', videoPath,
|
|
56
|
+
'-i', palettePath,
|
|
57
|
+
'-lavfi', `${filters}[x];[x][1:v]paletteuse=dither=bayer:bayer_scale=5`,
|
|
58
|
+
'-y', outputPath,
|
|
59
|
+
], { stdio: 'pipe' });
|
|
60
|
+
// Clean up palette
|
|
61
|
+
try {
|
|
62
|
+
execFileSync('rm', [palettePath]);
|
|
63
|
+
}
|
|
64
|
+
catch { /* ignore */ }
|
|
65
|
+
return outputPath;
|
|
66
|
+
}
|
|
67
|
+
// MP4: stream copy (fast, no re-encoding)
|
|
68
|
+
const outputPath = join(clipsDir, `${demoName}-${scene}.mp4`);
|
|
69
|
+
execFileSync('ffmpeg', [
|
|
70
|
+
'-ss', String(startSec),
|
|
71
|
+
'-to', String(endSec),
|
|
72
|
+
'-i', videoPath,
|
|
73
|
+
'-c', 'copy',
|
|
74
|
+
'-y', outputPath,
|
|
75
|
+
], { stdio: 'pipe' });
|
|
76
|
+
return outputPath;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=clip.js.map
|
package/dist/clip.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clip.js","sourceRoot":"","sources":["../src/clip.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,IAAI,EAAW,MAAM,WAAW,CAAC;AAQ1C,SAAS,WAAW,CAAC,SAAiB;IACpC,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE;QAClC,IAAI,EAAE,OAAO;QACb,eAAe,EAAE,MAAM;QACvB,gBAAgB;QAChB,SAAS;KACV,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;AAC/B,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAC5F,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,MAAM,CAAC,CAAC;IAErD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,8BAA8B,SAAS,wBAAwB,QAAQ,UAAU,CAClF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,wBAAwB,SAAS,6DAA6D,CAC/F,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,UAAU,KAAK,kBAAkB,QAAQ,uBAAuB,SAAS,EAAE,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,IAAI,KAAK,MAAM,CAAC,CAAC;QAC9D,iCAAiC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,QAAQ,IAAI,KAAK,MAAM,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,OAAO,MAAM,UAAU,QAAQ,mBAAmB,CAAC;QAEnE,YAAY,CAAC,QAAQ,EAAE;YACrB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;YACvB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG,OAAO,6BAA6B;YAC9C,IAAI,EAAE,WAAW;SAClB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtB,YAAY,CAAC,QAAQ,EAAE;YACrB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;YACvB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,GAAG,OAAO,mDAAmD;YACvE,IAAI,EAAE,UAAU;SACjB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtB,mBAAmB;QACnB,IAAI,CAAC;YAAC,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAEjE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,0CAA0C;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,IAAI,KAAK,MAAM,CAAC,CAAC;IAC9D,YAAY,CAAC,QAAQ,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,UAAU;KACjB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtB,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -19,11 +19,28 @@ export interface VideoConfig {
|
|
|
19
19
|
/** Additional Playwright browser context options (colorScheme, locale, geolocation, permissions, etc.). */
|
|
20
20
|
contextOptions?: Record<string, unknown>;
|
|
21
21
|
}
|
|
22
|
+
export type TransitionType = 'fade-through-black' | 'dissolve' | 'wipe-left' | 'wipe-right';
|
|
23
|
+
export interface TransitionConfig {
|
|
24
|
+
/** Transition type applied between scenes. */
|
|
25
|
+
type: TransitionType;
|
|
26
|
+
/** Duration of the transition in milliseconds (default 500). */
|
|
27
|
+
durationMs?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface SpeedRampConfig {
|
|
30
|
+
/** Speed multiplier for gaps between scenes (e.g., 2.0 = 2× faster). Default 1.0 (no change). */
|
|
31
|
+
gapSpeed: number;
|
|
32
|
+
/** Minimum gap duration (ms) before speed ramp is applied. Default 500. */
|
|
33
|
+
minGapMs?: number;
|
|
34
|
+
}
|
|
22
35
|
export interface ExportConfig {
|
|
23
36
|
preset: string;
|
|
24
37
|
crf: number;
|
|
25
38
|
thumbnailPath?: string;
|
|
26
|
-
formats?: Array<'1:1' | '9:16'>;
|
|
39
|
+
formats?: Array<'1:1' | '9:16' | 'gif'>;
|
|
40
|
+
/** Scene transition applied between scenes during export. */
|
|
41
|
+
transition?: TransitionConfig;
|
|
42
|
+
/** Speed up gaps between scenes. */
|
|
43
|
+
speedRamp?: SpeedRampConfig;
|
|
27
44
|
}
|
|
28
45
|
export interface OverlayConfig {
|
|
29
46
|
autoBackground: boolean;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,CAAC;AAI1B,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,aAAa,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2GAA2G;IAC3G,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* argo preview (no args) — multi-demo dashboard.
|
|
3
|
+
*
|
|
4
|
+
* Shows a landing page listing all discovered demos with status indicators,
|
|
5
|
+
* thumbnails (if MP4 exists), and links to individual preview pages.
|
|
6
|
+
*/
|
|
7
|
+
export interface DashboardOptions {
|
|
8
|
+
demosDir: string;
|
|
9
|
+
outputDir: string;
|
|
10
|
+
argoDir?: string;
|
|
11
|
+
port?: number;
|
|
12
|
+
ttsDefaults?: {
|
|
13
|
+
voice: string;
|
|
14
|
+
speed: number;
|
|
15
|
+
};
|
|
16
|
+
exportConfig?: import('./preview.js').PreviewExportConfig;
|
|
17
|
+
}
|
|
18
|
+
export declare function startDashboardServer(options: DashboardOptions): Promise<{
|
|
19
|
+
url: string;
|
|
20
|
+
close: () => void;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,YAAY,CAAC,EAAE,OAAO,cAAc,EAAE,mBAAmB,CAAC;CAC3D;AAgID,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAkEjH"}
|