screenci 0.0.70 → 0.0.72
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 +13 -13
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +184 -5
- package/dist/cli.js.map +1 -1
- package/dist/docs/manifest.d.ts +34 -34
- package/dist/docs/manifest.d.ts.map +1 -1
- package/dist/docs/manifest.js +20 -12
- package/dist/docs/manifest.js.map +1 -1
- package/dist/docs/video-sources/installation.screenci.js +13 -12
- package/dist/docs/video-sources/installation.screenci.js.map +1 -1
- package/dist/docs/video-sources/landing.screenci.js +16 -9
- package/dist/docs/video-sources/landing.screenci.js.map +1 -1
- package/dist/docs/video-sources/locator-highlight-animated.screenci.js +14 -26
- package/dist/docs/video-sources/locator-highlight-animated.screenci.js.map +1 -1
- package/dist/docs/video-sources/locator-highlight-still.screenci.js +5 -10
- package/dist/docs/video-sources/locator-highlight-still.screenci.js.map +1 -1
- package/dist/docs/video-sources/product-pitch.screenci.js +97 -32
- package/dist/docs/video-sources/product-pitch.screenci.js.map +1 -1
- package/dist/docs/video-sources/public-urls.screenci.js +16 -9
- package/dist/docs/video-sources/public-urls.screenci.js.map +1 -1
- package/dist/docs/video-sources/studio.screenci.js +42 -27
- package/dist/docs/video-sources/studio.screenci.js.map +1 -1
- package/dist/docs/videos.d.ts +4 -15
- package/dist/docs/videos.d.ts.map +1 -1
- package/dist/docs/videos.js +6 -22
- package/dist/docs/videos.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/src/asset.d.ts +8 -23
- package/dist/src/asset.d.ts.map +1 -1
- package/dist/src/asset.js +10 -32
- package/dist/src/asset.js.map +1 -1
- package/dist/src/audio.d.ts +6 -24
- package/dist/src/audio.d.ts.map +1 -1
- package/dist/src/audio.js +10 -35
- package/dist/src/audio.js.map +1 -1
- package/dist/src/builder.d.ts +214 -0
- package/dist/src/builder.d.ts.map +1 -0
- package/dist/src/builder.js +212 -0
- package/dist/src/builder.js.map +1 -0
- package/dist/src/cue.d.ts +40 -123
- package/dist/src/cue.d.ts.map +1 -1
- package/dist/src/cue.js +190 -30
- package/dist/src/cue.js.map +1 -1
- package/dist/src/events.d.ts +80 -15
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/events.js +72 -6
- package/dist/src/events.js.map +1 -1
- package/dist/src/init.d.ts.map +1 -1
- package/dist/src/init.js +26 -14
- package/dist/src/init.js.map +1 -1
- package/dist/src/locales.d.ts +19 -0
- package/dist/src/locales.d.ts.map +1 -0
- package/dist/src/locales.js +60 -0
- package/dist/src/locales.js.map +1 -0
- package/dist/src/localize.d.ts +135 -0
- package/dist/src/localize.d.ts.map +1 -0
- package/dist/src/localize.js +195 -0
- package/dist/src/localize.js.map +1 -0
- package/dist/src/localizeRuntime.d.ts +53 -0
- package/dist/src/localizeRuntime.d.ts.map +1 -0
- package/dist/src/localizeRuntime.js +79 -0
- package/dist/src/localizeRuntime.js.map +1 -0
- package/dist/src/recordingData.d.ts +5 -4
- package/dist/src/recordingData.d.ts.map +1 -1
- package/dist/src/runtimeContext.d.ts +3 -4
- package/dist/src/runtimeContext.d.ts.map +1 -1
- package/dist/src/runtimeContext.js.map +1 -1
- package/dist/src/runtimeMode.d.ts +47 -0
- package/dist/src/runtimeMode.d.ts.map +1 -1
- package/dist/src/runtimeMode.js +124 -0
- package/dist/src/runtimeMode.js.map +1 -1
- package/dist/src/screenshot.d.ts +56 -2
- package/dist/src/screenshot.d.ts.map +1 -1
- package/dist/src/screenshot.js +47 -10
- package/dist/src/screenshot.js.map +1 -1
- package/dist/src/stillCapture.d.ts +2 -3
- package/dist/src/stillCapture.d.ts.map +1 -1
- package/dist/src/stillCapture.js.map +1 -1
- package/dist/src/studio.d.ts +55 -22
- package/dist/src/studio.d.ts.map +1 -1
- package/dist/src/studio.js +38 -12
- package/dist/src/studio.js.map +1 -1
- package/dist/src/types.d.ts +18 -5
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/video.d.ts +149 -13
- package/dist/src/video.d.ts.map +1 -1
- package/dist/src/video.js +91 -24
- package/dist/src/video.js.map +1 -1
- package/dist/src/voiceConfig.d.ts +110 -0
- package/dist/src/voiceConfig.d.ts.map +1 -0
- package/dist/src/voiceConfig.js +2 -0
- package/dist/src/voiceConfig.js.map +1 -0
- package/dist/src/voices.d.ts +27 -23
- package/dist/src/voices.d.ts.map +1 -1
- package/dist/src/voices.js +7 -4
- package/dist/src/voices.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/skills/screenci/SKILL.md +39 -30
- package/dist/docs/video-sources/cli.screenci.d.ts +0 -2
- package/dist/docs/video-sources/cli.screenci.d.ts.map +0 -1
- package/dist/docs/video-sources/cli.screenci.js +0 -36
- package/dist/docs/video-sources/cli.screenci.js.map +0 -1
package/dist/src/video.d.ts
CHANGED
|
@@ -2,11 +2,23 @@ import type { TestType, PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWor
|
|
|
2
2
|
import type { Recorder } from 'playwright-recorder-plus';
|
|
3
3
|
import type { RecordOptions, RenderOptions, ScreenCIPage, VideoEncoderPreset } from './types.js';
|
|
4
4
|
import type { Page } from '@playwright/test';
|
|
5
|
-
import type {
|
|
5
|
+
import type { StudioDeclaration } from './studio.js';
|
|
6
6
|
export { getDimensions } from './dimensions.js';
|
|
7
|
+
import type { VideoBuilder } from './builder.js';
|
|
8
|
+
import type { NormalizedLocalize } from './localize.js';
|
|
9
|
+
import { type NarrationMarkers, type TextDeclaration, type TextValues } from './localizeRuntime.js';
|
|
10
|
+
import { type OverlayController } from './asset.js';
|
|
11
|
+
import { type AudioController } from './audio.js';
|
|
7
12
|
import { EventRecorder } from './events.js';
|
|
8
13
|
import { createScreenCIRuntimeContext } from './runtimeContext.js';
|
|
9
14
|
export declare const POST_VIDEO_PAUSE = 500;
|
|
15
|
+
/**
|
|
16
|
+
* The record options actually used for the capture: when record options are
|
|
17
|
+
* deferred to Studio (`video.studio({ recordOptions: true })`), the values
|
|
18
|
+
* fetched before recording (keyed by video name) override the code-declared
|
|
19
|
+
* aspect ratio, quality, and fps. Otherwise the code values are used as-is.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveEffectiveRecordOptions(recordOptions: RecordOptions, studio: StudioDeclaration | undefined, videoName: string): RecordOptions;
|
|
10
22
|
type DeferredRecordingStop = {
|
|
11
23
|
recorder: Recorder;
|
|
12
24
|
};
|
|
@@ -68,15 +80,82 @@ export declare function withActiveRecordingContext<T>(params: {
|
|
|
68
80
|
* `.start()`ed without `.end()` stays visible in the still.
|
|
69
81
|
*/
|
|
70
82
|
unendedOverlays?: 'throw' | 'autoEnd';
|
|
83
|
+
/**
|
|
84
|
+
* Localized `text` field declaration to emit once at recording start so the
|
|
85
|
+
* backend learns which fields exist and their seeds. `null`/omitted when the
|
|
86
|
+
* spec declares no `text`.
|
|
87
|
+
*/
|
|
88
|
+
textDeclaration?: TextDeclaration | null;
|
|
71
89
|
}): Promise<T>;
|
|
72
90
|
type VideoFixtureOptions = {
|
|
73
91
|
recordOptions: RecordOptions;
|
|
74
|
-
renderOptions: RenderOptions |
|
|
92
|
+
renderOptions: RenderOptions | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* Active language for this recording pass, set by `video.languages(...)` in
|
|
95
|
+
* per-language mode. `undefined` in shared mode and single-language videos.
|
|
96
|
+
* Internal: prefer the `language` fixture in test bodies.
|
|
97
|
+
*/
|
|
98
|
+
_screenciLanguage: string | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Grouping name written to `metadata.videoName`, set by the fan-out builders
|
|
101
|
+
* so per-language passes (which use unique test titles) still group into one
|
|
102
|
+
* video. Falls back to the test title. Internal.
|
|
103
|
+
*/
|
|
104
|
+
_screenciVideoName: string | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* The normalized localize spec for this video, set by `video.localize(...)`.
|
|
107
|
+
* Drives the `narration` and `text` fixtures. Internal.
|
|
108
|
+
*/
|
|
109
|
+
_screenciLocalize: NormalizedLocalize | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* The studio declaration for this video, set by `video.studio(...)`. Drives
|
|
112
|
+
* the render/record deferral flags and the Studio-managed `narration`, `text`,
|
|
113
|
+
* `overlays`, and `audio` fixtures. Internal.
|
|
114
|
+
*/
|
|
115
|
+
_screenciStudio: StudioDeclaration | undefined;
|
|
116
|
+
/**
|
|
117
|
+
* Absolute path of the `.screenci` script that registered this test, captured
|
|
118
|
+
* by the fan-out builder. Asset paths are resolved relative to it, since
|
|
119
|
+
* `testInfo.file` points at the builder module, not the script. Internal.
|
|
120
|
+
*/
|
|
121
|
+
_screenciSourceFile: string | undefined;
|
|
122
|
+
};
|
|
123
|
+
type VideoRuntimeFixtures = {
|
|
124
|
+
/**
|
|
125
|
+
* The language being recorded in this pass, for per-language navigation
|
|
126
|
+
* (e.g. `page.goto('/' + language)`). `undefined` in shared mode and
|
|
127
|
+
* non-localized videos.
|
|
128
|
+
*/
|
|
129
|
+
language: string | undefined;
|
|
130
|
+
/**
|
|
131
|
+
* Narration markers keyed by the cue names declared in `video.localize(...)`.
|
|
132
|
+
* Each marker records timing (`()`, `.start()`, `.end()`); the text is owned by
|
|
133
|
+
* the localize spec / Studio and is never exposed here.
|
|
134
|
+
*/
|
|
135
|
+
narration: NarrationMarkers;
|
|
136
|
+
/**
|
|
137
|
+
* Injected text field values for the active language, keyed by the field names
|
|
138
|
+
* declared in `video.localize(...)`. Use them to fill localized content into
|
|
139
|
+
* the page.
|
|
140
|
+
*/
|
|
141
|
+
text: TextValues;
|
|
142
|
+
/**
|
|
143
|
+
* Overlay controllers for the Studio-managed overlay names declared in
|
|
144
|
+
* `video.studio({ overlays: [...] })`. Each is callable with `start()`/`end()`;
|
|
145
|
+
* the file and placement come from Studio. Empty when none are declared.
|
|
146
|
+
*/
|
|
147
|
+
overlays: Record<string, OverlayController>;
|
|
148
|
+
/**
|
|
149
|
+
* Background-audio controllers for the Studio-managed track names declared in
|
|
150
|
+
* `video.studio({ audio: [...] })`. Each is callable with `start()`/`end()`;
|
|
151
|
+
* the file, volume, and repeat come from Studio. Empty when none are declared.
|
|
152
|
+
*/
|
|
153
|
+
audio: Record<string, AudioController>;
|
|
75
154
|
};
|
|
76
|
-
type VideoType = TestType<PlaywrightTestArgs & PlaywrightTestOptions & VideoFixtureOptions & PlaywrightWorkerArgs & PlaywrightWorkerOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
|
|
155
|
+
type VideoType = TestType<PlaywrightTestArgs & PlaywrightTestOptions & VideoFixtureOptions & VideoRuntimeFixtures & PlaywrightWorkerArgs & PlaywrightWorkerOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
|
|
77
156
|
type VideoArgs = Omit<PlaywrightTestArgs, 'page'> & {
|
|
78
157
|
page: ScreenCIPage;
|
|
79
|
-
} & PlaywrightTestOptions & VideoFixtureOptions & PlaywrightWorkerArgs & PlaywrightWorkerOptions;
|
|
158
|
+
} & PlaywrightTestOptions & VideoFixtureOptions & VideoRuntimeFixtures & PlaywrightWorkerArgs & PlaywrightWorkerOptions;
|
|
80
159
|
type VideoBody = (args: VideoArgs, testInfo: TestInfo) => void | Promise<void>;
|
|
81
160
|
/** Conditional overloads shared by skip / fixme / fail */
|
|
82
161
|
type ConditionalOverloads = ((condition?: boolean, description?: string) => void) & ((condition?: boolean, callback?: () => string) => void);
|
|
@@ -165,6 +244,61 @@ interface Video extends VideoCallSignatures {
|
|
|
165
244
|
fail: Video & ConditionalOverloads;
|
|
166
245
|
/** Mark this test as slow, with optional conditional overload. */
|
|
167
246
|
slow: Video & ((condition?: boolean, description?: string) => void);
|
|
247
|
+
/**
|
|
248
|
+
* Record one localized pass per language. By default each language is recorded
|
|
249
|
+
* in its own pass with the browser `locale` set from the language; the body
|
|
250
|
+
* receives the active `language`, the `narration` markers, and the `text`
|
|
251
|
+
* values. Pass `mode: 'shared'` for a single capture shared across languages.
|
|
252
|
+
*
|
|
253
|
+
* Chainable with `.each(...)`.
|
|
254
|
+
*
|
|
255
|
+
* @example
|
|
256
|
+
* ```ts
|
|
257
|
+
* video.localize({
|
|
258
|
+
* narration: { en: { intro: 'Welcome.' }, fi: { intro: 'Tervetuloa.' } },
|
|
259
|
+
* text: { en: { heading: 'Dashboard' }, fi: { heading: 'Hallinta' } },
|
|
260
|
+
* })('Tutorial', async ({ page, language, narration, text }) => {
|
|
261
|
+
* await page.goto('/' + language)
|
|
262
|
+
* await page.getByTestId('heading').fill(text.heading ?? '')
|
|
263
|
+
* await narration.intro()
|
|
264
|
+
* })
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
localize: VideoBuilder<VideoArgs>['localize'];
|
|
268
|
+
/**
|
|
269
|
+
* Defer render/record options and declare Studio-managed narration, text,
|
|
270
|
+
* overlays, and audio, configured in the ScreenCI web app. Chainable with
|
|
271
|
+
* `.localize(...)` / `.each(...)`.
|
|
272
|
+
*
|
|
273
|
+
* @example
|
|
274
|
+
* ```ts
|
|
275
|
+
* video
|
|
276
|
+
* .studio({ recordOptions: true, narration: ['intro'], overlays: ['logo'] })
|
|
277
|
+
* .localize({ languages: ['en', 'fi'] })(
|
|
278
|
+
* 'Product demo',
|
|
279
|
+
* async ({ page, narration, overlays }) => {
|
|
280
|
+
* await overlays.logo()
|
|
281
|
+
* await narration.intro()
|
|
282
|
+
* }
|
|
283
|
+
* )
|
|
284
|
+
* ```
|
|
285
|
+
*/
|
|
286
|
+
studio: VideoBuilder<VideoArgs>['studio'];
|
|
287
|
+
/**
|
|
288
|
+
* Produce a separate video per variant (viewport, theme, ...). Each variant
|
|
289
|
+
* has its own video identity and history. Chainable with `.languages(...)`.
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```ts
|
|
293
|
+
* video.each([
|
|
294
|
+
* { key: 'mobile', recordOptions: { aspectRatio: '9:16' } },
|
|
295
|
+
* { key: 'desktop', recordOptions: { aspectRatio: '16:9' } },
|
|
296
|
+
* ])('Landing', async ({ page }) => {
|
|
297
|
+
* await page.goto('/')
|
|
298
|
+
* })
|
|
299
|
+
* ```
|
|
300
|
+
*/
|
|
301
|
+
each: VideoBuilder<VideoArgs>['each'];
|
|
168
302
|
/** Run a hook before each test in the current suite. */
|
|
169
303
|
beforeEach(inner: (args: VideoArgs, testInfo: TestInfo) => Promise<void> | void): void;
|
|
170
304
|
beforeEach(title: string, inner: (args: VideoArgs, testInfo: TestInfo) => Promise<void> | void): void;
|
|
@@ -190,17 +324,19 @@ interface Video extends VideoCallSignatures {
|
|
|
190
324
|
* @example
|
|
191
325
|
* Basic usage:
|
|
192
326
|
* ```ts
|
|
193
|
-
* import {
|
|
327
|
+
* import { video, voices } from 'screenci'
|
|
194
328
|
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
* en: {
|
|
198
|
-
* homepage: 'User navigates to homepage.',
|
|
199
|
-
* signup: 'Clicks the sign up button.',
|
|
200
|
-
* },
|
|
201
|
-
* })
|
|
329
|
+
* // Voice is a render option; the localized text is declared with localize.
|
|
330
|
+
* video.use({ renderOptions: { narration: { voice: { name: voices.Ava } } } })
|
|
202
331
|
*
|
|
203
|
-
* video(
|
|
332
|
+
* video.localize({
|
|
333
|
+
* narration: {
|
|
334
|
+
* en: {
|
|
335
|
+
* homepage: 'User navigates to homepage.',
|
|
336
|
+
* signup: 'Clicks the sign up button.',
|
|
337
|
+
* },
|
|
338
|
+
* },
|
|
339
|
+
* })('Tutorial', async ({ page, narration }) => {
|
|
204
340
|
* await page.goto('https://example.com')
|
|
205
341
|
* await narration.homepage()
|
|
206
342
|
*
|
package/dist/src/video.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/video.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,EACX,QAAQ,EACT,MAAM,kBAAkB,CAAA;AAIzB,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,0BAA0B,CAAA;AAEpE,OAAO,KAAK,EAIV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EACnB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/video.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,EACX,QAAQ,EACT,MAAM,kBAAkB,CAAA;AAIzB,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,0BAA0B,CAAA;AAEpE,OAAO,KAAK,EAIV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EACnB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAK/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAA;AAQnB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAU3C,OAAO,EACL,4BAA4B,EAU7B,MAAM,qBAAqB,CAAA;AAW5B,eAAO,MAAM,gBAAgB,MAAM,CAAA;AAEnC;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,iBAAiB,GAAG,SAAS,EACrC,SAAS,EAAE,MAAM,GAChB,aAAa,CAMf;AAED,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAA;AAID,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,qBAAqB,EAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CAYf;AA0CD,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAUnC;AAuDD;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,kBAA0C,GAClD,SAAS,MAAM,EAAE,CAEnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,MAAM,EAAE,CASV;AAOD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,IAAI,CAaN;AAsCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,GAC9D,IAAI,CAON;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,EAC/D,QAAQ,EAAE,aAAa,GACtB,IAAI,CAMN;AAED,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,MAAM,EAAE;IAC1D,cAAc,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAA;IAC/D,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,aAAa,CAAA;IACvB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CACzC,GAAG,OAAO,CAAC,CAAC,CAAC,CAwDb;AAED,KAAK,mBAAmB,GAAG;IACzB,aAAa,EAAE,aAAa,CAAA;IAC5B,aAAa,EAAE,aAAa,GAAG,SAAS,CAAA;IACxC;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC;;;OAGG;IACH,iBAAiB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACjD;;;;OAIG;IACH,eAAe,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC9C;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAA;CACxC,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B;;;;OAIG;IACH,SAAS,EAAE,gBAAgB,CAAA;IAC3B;;;;OAIG;IACH,IAAI,EAAE,UAAU,CAAA;IAChB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC3C;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CACvC,CAAA;AAsUD,KAAK,SAAS,GAAG,QAAQ,CACvB,kBAAkB,GAChB,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,uBAAuB,EACzB,oBAAoB,GAAG,uBAAuB,CAC/C,CAAA;AAED,KAAK,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;IAClD,IAAI,EAAE,YAAY,CAAA;CACnB,GAAG,qBAAqB,GACvB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,uBAAuB,CAAA;AAEzB,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAE9E,0DAA0D;AAC1D,KAAK,oBAAoB,GAAG,CAAC,CAC3B,SAAS,CAAC,EAAE,OAAO,EACnB,WAAW,CAAC,EAAE,MAAM,KACjB,IAAI,CAAC,GACR,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,MAAM,KAAK,IAAI,CAAC,CAAA;AAE1D,UAAU,mBAAmB;IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;CAC7D;AAED;;;;;;;GAOG;AACH,UAAU,KAAM,SAAQ,mBAAmB;IACzC,0BAA0B;IAC1B,IAAI,EAAE,KAAK,CAAA;IACX,2DAA2D;IAC3D,IAAI,EAAE,KAAK,GAAG,oBAAoB,CAAA;IAClC,oEAAoE;IACpE,KAAK,EAAE,KAAK,GAAG,oBAAoB,CAAA;IACnC,+EAA+E;IAC/E,IAAI,EAAE,KAAK,GAAG,oBAAoB,CAAA;IAClC,kEAAkE;IAClE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,CAAA;IAEnE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;IAE7C;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAA;IAEzC;;;;;;;;;;;;;OAaG;IACH,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;IAErC,wDAAwD;IACxD,UAAU,CACR,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACnE,IAAI,CAAA;IACP,UAAU,CACR,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACnE,IAAI,CAAA;IACP,uDAAuD;IACvD,SAAS,CACP,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACnE,IAAI,CAAA;IACP,SAAS,CACP,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACnE,IAAI,CAAA;IAGP,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;IAC/B,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;IACjC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;IAC/B,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACrB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC3B,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACvB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC3B,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,KAAK,EAA4B,KAAK,CAAA"}
|
package/dist/src/video.js
CHANGED
|
@@ -2,15 +2,18 @@ import { test as base } from '@playwright/test';
|
|
|
2
2
|
import { mkdir, rm } from 'fs/promises';
|
|
3
3
|
import { join, relative } from 'path';
|
|
4
4
|
import { attachRecorder } from 'playwright-recorder-plus';
|
|
5
|
+
import { studioOptionFlags } from './studio.js';
|
|
5
6
|
export { getDimensions } from './dimensions.js';
|
|
6
7
|
import { getDimensions, getViewportCenter } from './dimensions.js';
|
|
7
8
|
import { resetCueChain } from './cue.js';
|
|
8
9
|
import { setActiveCueRecorder } from './cue.js';
|
|
10
|
+
import { createVideoBuilder } from './builder.js';
|
|
11
|
+
import { buildNarrationMarkers, buildTextDeclaration, buildTextValues, narrationVoiceConfigFromRenderOptions, } from './localizeRuntime.js';
|
|
9
12
|
import { setActiveHideRecorder } from './hide.js';
|
|
10
13
|
import { setActiveAutoZoomRecorder, setActiveZoomPage } from './autoZoom.js';
|
|
11
|
-
import { setActiveAssetRecorder } from './asset.js';
|
|
14
|
+
import { setActiveAssetRecorder, buildStudioOverlays, } from './asset.js';
|
|
12
15
|
import { flushPendingOverlays } from './overlayFlush.js';
|
|
13
|
-
import { setActiveAudioRecorder } from './audio.js';
|
|
16
|
+
import { setActiveAudioRecorder, buildStudioAudioTracks, } from './audio.js';
|
|
14
17
|
import { DEFAULT_VIDEO_OPTIONS, DEFAULT_ASPECT_RATIO, DEFAULT_QUALITY, DEFAULT_FPS, DEFAULT_VIDEO_ENCODER, } from './defaults.js';
|
|
15
18
|
import { EventRecorder } from './events.js';
|
|
16
19
|
import { bindClickRecorderToPage, instrumentBrowser, instrumentContext, setActiveClickRecorder, } from './instrument.js';
|
|
@@ -19,10 +22,21 @@ import { setMousePosition } from './mouse.js';
|
|
|
19
22
|
import { getChromiumLaunchOptions } from './browserLaunchOptions.js';
|
|
20
23
|
import { createScreenCIRuntimeContext, runWithScreenCIRuntimeContext, setActiveScreenCIRuntimeContext, setRuntimeAssetRecorder, setRuntimeAudioRecorder, setRuntimeAutoZoomRecorder, setRuntimeClickRecorder, setRuntimeCueRecorder, setRuntimeHideRecorder, setRuntimePage, } from './runtimeContext.js';
|
|
21
24
|
import { escapeFileSystemPathSegment } from './fileSystemName.js';
|
|
22
|
-
import { resolveRecordingTimingDuration } from './runtimeMode.js';
|
|
25
|
+
import { resolveRecordingTimingDuration, parseTextOverrides, parseRecordOptions, mergeStudioRecordOptions, } from './runtimeMode.js';
|
|
23
26
|
import { buildScreenCIContextOptions } from './contextOptions.js';
|
|
24
27
|
import { bindStillCaptureToPage } from './stillCapture.js';
|
|
25
28
|
export const POST_VIDEO_PAUSE = 500;
|
|
29
|
+
/**
|
|
30
|
+
* The record options actually used for the capture: when record options are
|
|
31
|
+
* deferred to Studio (`video.studio({ recordOptions: true })`), the values
|
|
32
|
+
* fetched before recording (keyed by video name) override the code-declared
|
|
33
|
+
* aspect ratio, quality, and fps. Otherwise the code values are used as-is.
|
|
34
|
+
*/
|
|
35
|
+
export function resolveEffectiveRecordOptions(recordOptions, studio, videoName) {
|
|
36
|
+
if (!studioOptionFlags(studio).recordOptions)
|
|
37
|
+
return recordOptions;
|
|
38
|
+
return mergeStudioRecordOptions(recordOptions, parseRecordOptions()?.[videoName]);
|
|
39
|
+
}
|
|
26
40
|
export async function finalizeDeferredRecordingStops(entries) {
|
|
27
41
|
await Promise.all(entries.map(async ({ recorder }) => {
|
|
28
42
|
const stopResult = await recorder.stop();
|
|
@@ -206,7 +220,7 @@ export function autoEndOpenOverlays(runtimeContext, recorder) {
|
|
|
206
220
|
runtimeContext.asset.activeRuns.clear();
|
|
207
221
|
}
|
|
208
222
|
export async function withActiveRecordingContext(params) {
|
|
209
|
-
const { runtimeContext, page, recorder, fn, unendedOverlays = 'throw', } = params;
|
|
223
|
+
const { runtimeContext, page, recorder, fn, unendedOverlays = 'throw', textDeclaration, } = params;
|
|
210
224
|
setActiveScreenCIRuntimeContext(runtimeContext);
|
|
211
225
|
try {
|
|
212
226
|
return await runWithScreenCIRuntimeContext(runtimeContext, async () => {
|
|
@@ -226,6 +240,9 @@ export async function withActiveRecordingContext(params) {
|
|
|
226
240
|
setActiveClickRecorder(recorder);
|
|
227
241
|
bindClickRecorderToPage(page, recorder);
|
|
228
242
|
setRuntimePage(page);
|
|
243
|
+
if (textDeclaration) {
|
|
244
|
+
recorder.addTextDeclare(textDeclaration.fields, textDeclaration.studioFields, textDeclaration.seed);
|
|
245
|
+
}
|
|
229
246
|
const result = await fn();
|
|
230
247
|
if (unendedOverlays === 'autoEnd') {
|
|
231
248
|
autoEndOpenOverlays(runtimeContext, recorder);
|
|
@@ -249,6 +266,26 @@ export async function withActiveRecordingContext(params) {
|
|
|
249
266
|
const _videoBase = base.extend({
|
|
250
267
|
recordOptions: [DEFAULT_VIDEO_OPTIONS, { option: true }],
|
|
251
268
|
renderOptions: [undefined, { option: true }],
|
|
269
|
+
_screenciLanguage: [undefined, { option: true }],
|
|
270
|
+
_screenciVideoName: [undefined, { option: true }],
|
|
271
|
+
_screenciLocalize: [undefined, { option: true }],
|
|
272
|
+
_screenciStudio: [undefined, { option: true }],
|
|
273
|
+
_screenciSourceFile: [undefined, { option: true }],
|
|
274
|
+
language: async ({ _screenciLanguage }, use) => {
|
|
275
|
+
await use(_screenciLanguage);
|
|
276
|
+
},
|
|
277
|
+
narration: async ({ _screenciLocalize, _screenciStudio, renderOptions }, use) => {
|
|
278
|
+
await use(buildNarrationMarkers(_screenciLocalize, narrationVoiceConfigFromRenderOptions(renderOptions, studioOptionFlags(_screenciStudio).renderOptions), _screenciStudio?.narration ?? []));
|
|
279
|
+
},
|
|
280
|
+
text: async ({ _screenciLocalize, _screenciStudio, _screenciLanguage }, use) => {
|
|
281
|
+
await use(buildTextValues(_screenciLocalize, _screenciLanguage, parseTextOverrides(), _screenciStudio?.text ?? []));
|
|
282
|
+
},
|
|
283
|
+
overlays: async ({ _screenciStudio }, use) => {
|
|
284
|
+
await use(buildStudioOverlays(_screenciStudio?.overlays ?? []));
|
|
285
|
+
},
|
|
286
|
+
audio: async ({ _screenciStudio }, use) => {
|
|
287
|
+
await use(buildStudioAudioTracks(_screenciStudio?.audio ?? []));
|
|
288
|
+
},
|
|
252
289
|
recordingFinalizationQueue: [
|
|
253
290
|
async ({}, use) => {
|
|
254
291
|
const queue = [];
|
|
@@ -270,12 +307,14 @@ const _videoBase = base.extend({
|
|
|
270
307
|
await browser.close();
|
|
271
308
|
}
|
|
272
309
|
},
|
|
273
|
-
context: async ({ browser, recordOptions, colorScheme, locale, timezoneId, userAgent, geolocation, permissions, extraHTTPHeaders, httpCredentials, ignoreHTTPSErrors, offline, storageState, baseURL, bypassCSP, acceptDownloads, javaScriptEnabled, hasTouch, isMobile, }, use) => {
|
|
274
|
-
// Configure browser context. The viewport is derived from recordOptions
|
|
275
|
-
//
|
|
276
|
-
//
|
|
277
|
-
|
|
278
|
-
const
|
|
310
|
+
context: async ({ browser, recordOptions, _screenciStudio, _screenciVideoName, colorScheme, locale, timezoneId, userAgent, geolocation, permissions, extraHTTPHeaders, httpCredentials, ignoreHTTPSErrors, offline, storageState, baseURL, bypassCSP, acceptDownloads, javaScriptEnabled, hasTouch, isMobile, }, use, testInfo) => {
|
|
311
|
+
// Configure browser context. The viewport is derived from recordOptions
|
|
312
|
+
// (with Studio record-option overrides applied when deferred); other
|
|
313
|
+
// Playwright `use` options (colorScheme, locale, storageState, ...) are
|
|
314
|
+
// forwarded so they take effect on the context screenci creates.
|
|
315
|
+
const effectiveRecordOptions = resolveEffectiveRecordOptions(recordOptions, _screenciStudio, _screenciVideoName ?? testInfo.title);
|
|
316
|
+
const aspectRatio = effectiveRecordOptions.aspectRatio ?? DEFAULT_ASPECT_RATIO;
|
|
317
|
+
const quality = effectiveRecordOptions.quality ?? DEFAULT_QUALITY;
|
|
279
318
|
const dimensions = getDimensions(aspectRatio, quality);
|
|
280
319
|
const shouldRecord = process.env.SCREENCI_RECORDING === 'true';
|
|
281
320
|
// deviceScaleFactor is intentionally not applied to video: the screencast
|
|
@@ -311,16 +350,34 @@ const _videoBase = base.extend({
|
|
|
311
350
|
await context.close();
|
|
312
351
|
}
|
|
313
352
|
},
|
|
314
|
-
page: async ({ context, recordOptions, renderOptions, recordingFinalizationQueue }, use, testInfo) => {
|
|
353
|
+
page: async ({ context, recordOptions: codeRecordOptions, renderOptions, recordingFinalizationQueue, _screenciLanguage, _screenciLocalize, _screenciStudio, _screenciVideoName, _screenciSourceFile, }, use, testInfo) => {
|
|
315
354
|
// Only record when explicitly enabled (record command)
|
|
316
355
|
const shouldRecord = process.env.SCREENCI_RECORDING === 'true';
|
|
317
|
-
|
|
356
|
+
// Apply Studio record-option overrides (when deferred) so the capture,
|
|
357
|
+
// serialized recordOptions, and viewport all use the effective values.
|
|
358
|
+
const recordOptions = resolveEffectiveRecordOptions(codeRecordOptions, _screenciStudio, _screenciVideoName ?? testInfo.title);
|
|
359
|
+
const recorder = new EventRecorder(renderOptions, recordOptions, studioOptionFlags(_screenciStudio));
|
|
360
|
+
// Declared `text` fields (and the active language's seeds) emitted once at
|
|
361
|
+
// recording start so the backend/Studio learn them.
|
|
362
|
+
const textDeclaration = buildTextDeclaration(_screenciLocalize, _screenciLanguage, _screenciStudio?.text ?? []);
|
|
363
|
+
// Asset paths are authored relative to the user's script. Playwright reports
|
|
364
|
+
// `testInfo.file` as the builder module that registered the test, so prefer
|
|
365
|
+
// the script path captured at the call site.
|
|
366
|
+
const testFilePath = _screenciSourceFile ?? testInfo.file;
|
|
367
|
+
// In per-language mode each pass records one language; this filters cue
|
|
368
|
+
// translations and stamps metadata so the upload becomes a single language
|
|
369
|
+
// version. `null` (shared / single-language) keeps every language.
|
|
370
|
+
recorder.setActiveLanguage(_screenciLanguage ?? null);
|
|
371
|
+
// Per-language passes use a unique test title (so each gets its own
|
|
372
|
+
// recording directory) but share one `videoName` so they group as language
|
|
373
|
+
// versions of one video. Plain videos fall back to the test title.
|
|
374
|
+
const videoName = _screenciVideoName ?? testInfo.title;
|
|
318
375
|
if (!shouldRecord) {
|
|
319
376
|
const page = await context.newPage();
|
|
320
377
|
const runtimeContext = createScreenCIRuntimeContext({
|
|
321
378
|
recorder,
|
|
322
379
|
page,
|
|
323
|
-
testFilePath
|
|
380
|
+
testFilePath,
|
|
324
381
|
recordOptions,
|
|
325
382
|
renderOptions,
|
|
326
383
|
});
|
|
@@ -331,6 +388,7 @@ const _videoBase = base.extend({
|
|
|
331
388
|
runtimeContext,
|
|
332
389
|
page,
|
|
333
390
|
recorder,
|
|
391
|
+
textDeclaration,
|
|
334
392
|
fn: async () => {
|
|
335
393
|
await use(page);
|
|
336
394
|
},
|
|
@@ -363,7 +421,7 @@ const _videoBase = base.extend({
|
|
|
363
421
|
const runtimeContext = createScreenCIRuntimeContext({
|
|
364
422
|
recorder,
|
|
365
423
|
page,
|
|
366
|
-
testFilePath
|
|
424
|
+
testFilePath,
|
|
367
425
|
recordingDir: videoDir,
|
|
368
426
|
recordOptions,
|
|
369
427
|
renderOptions,
|
|
@@ -385,6 +443,7 @@ const _videoBase = base.extend({
|
|
|
385
443
|
runtimeContext,
|
|
386
444
|
page,
|
|
387
445
|
recorder,
|
|
446
|
+
textDeclaration,
|
|
388
447
|
fn: async () => {
|
|
389
448
|
await use(page);
|
|
390
449
|
// Do not end video abruptly.
|
|
@@ -398,7 +457,7 @@ const _videoBase = base.extend({
|
|
|
398
457
|
await page.close();
|
|
399
458
|
if (testInfo.status === 'passed') {
|
|
400
459
|
const configDir = process.env.SCREENCI_CONFIG_DIR ?? process.cwd();
|
|
401
|
-
await recorder.writeToFile(videoDir,
|
|
460
|
+
await recorder.writeToFile(videoDir, videoName, relative(configDir, testFilePath));
|
|
402
461
|
}
|
|
403
462
|
}
|
|
404
463
|
},
|
|
@@ -412,17 +471,19 @@ const _videoBase = base.extend({
|
|
|
412
471
|
* @example
|
|
413
472
|
* Basic usage:
|
|
414
473
|
* ```ts
|
|
415
|
-
* import {
|
|
474
|
+
* import { video, voices } from 'screenci'
|
|
416
475
|
*
|
|
417
|
-
*
|
|
418
|
-
*
|
|
419
|
-
* en: {
|
|
420
|
-
* homepage: 'User navigates to homepage.',
|
|
421
|
-
* signup: 'Clicks the sign up button.',
|
|
422
|
-
* },
|
|
423
|
-
* })
|
|
476
|
+
* // Voice is a render option; the localized text is declared with localize.
|
|
477
|
+
* video.use({ renderOptions: { narration: { voice: { name: voices.Ava } } } })
|
|
424
478
|
*
|
|
425
|
-
* video(
|
|
479
|
+
* video.localize({
|
|
480
|
+
* narration: {
|
|
481
|
+
* en: {
|
|
482
|
+
* homepage: 'User navigates to homepage.',
|
|
483
|
+
* signup: 'Clicks the sign up button.',
|
|
484
|
+
* },
|
|
485
|
+
* },
|
|
486
|
+
* })('Tutorial', async ({ page, narration }) => {
|
|
426
487
|
* await page.goto('https://example.com')
|
|
427
488
|
* await narration.homepage()
|
|
428
489
|
*
|
|
@@ -432,4 +493,10 @@ const _videoBase = base.extend({
|
|
|
432
493
|
* ```
|
|
433
494
|
*/
|
|
434
495
|
export const video = _videoBase;
|
|
496
|
+
// Attach the chainable fan-out builders. They register through the same test
|
|
497
|
+
// instance, so per-language / per-variant passes inherit every video fixture.
|
|
498
|
+
const _rootBuilder = createVideoBuilder(_videoBase);
|
|
499
|
+
video.localize = _rootBuilder.localize;
|
|
500
|
+
video.studio = _rootBuilder.studio;
|
|
501
|
+
video.each = _rootBuilder.each;
|
|
435
502
|
//# sourceMappingURL=video.js.map
|
package/dist/src/video.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAU/C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAczD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,qBAAqB,GACtB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAQnC,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAgC;IAEhC,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACxC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CACT,kFAAkF,CACnF,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,CAAC,SAAS,CAAA;IAC1B,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC7B,UAAU,CAAC,OAAO,EAAE,8BAA8B,CAAC,EAAE,CAAC,CAAC,CACxD,CAAA;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,KAAW,EACX,SAAwB;IAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BE;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAU,EACV,UAA6C;IAE7C,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACpD,MACE,IAAI,CAAC,KAGN,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;IAC3C,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAEtC,OAAO,cAAc,CAAA;AACvB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,0BAA0B,GAG5B;IACF,KAAK,EAAE;QACL,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;QACV,MAAM;QACN,IAAI;QACJ,OAAO;QACP,YAAY;QACZ,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;KACb;IACD,IAAI,EAAE;QACJ,MAAM;QACN,SAAS;QACT,SAAS;QACT,WAAW;QACX,MAAM;QACN,IAAI;QACJ,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;KACb;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,UAA8B,qBAAqB;IAEnD,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAC1C,WAA8B,EAC9B,WAA8B;IAE9B,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,+EAA+E;YAC7E,uFAAuF,CAC1F,CAAA;IACH,CAAC;IACD,OAAO,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,GAAG,WAAW,CAAC,CAAA;AAChE,CAAC;AAOD;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAkB,EAClB,WAA8B;IAE9B,MAAM,MAAM,GAAI,QAAwC,CAAC,MAAM,CAAA;IAC/D,MAAM,OAAO,GAAG,MAAM,EAAE,aAAa,CAAA;IACrC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,yEAAyE;YACvE,uFAAuF,CAC1F,CAAA;IACH,CAAC;IACD,MAAM,CAAC,aAAa,GAAG,4BAA4B,CACjD,OAAmB,EACnB,WAAW,CACZ,CAAA;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,IAAU,EACV,UAAkB,EAClB,GAAQ,EACR,OAAgB,EAChB,WAAwB,EACxB,OAA2B;IAE3B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAE7D,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAA+B,EAAE;QACrE,IAAI,EAAE,UAAU;QAChB,gBAAgB,EAAE,UAAU;QAC5B,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QACvB,GAAG;QACH,WAAW,EAAE,GAAG;KACjB,CAAC,CAAA;IAEF,6EAA6E;IAC7E,4EAA4E;IAC5E,qEAAqE;IACrE,yBAAyB,CAAC,QAAQ,EAAE,6BAA6B,CAAC,OAAO,CAAC,CAAC,CAK1E;IACC,QAGD,CAAC,aAAa,GAAG,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAA;IAEhD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,cAA+D;IAE/D,MAAM,IAAI,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;IACxD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxD,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,6GAA6G,CAC5I,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAA+D,EAC/D,QAAuB;IAEvB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAC1D,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClC,GAAG,CAAC,eAAe,EAAE,CAAA;IACvB,CAAC;IACD,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAI,MAWnD;IACC,MAAM,EACJ,cAAc,EACd,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,eAAe,GAAG,OAAO,GAC1B,GAAG,MAAM,CAAA;IAEV,+BAA+B,CAAC,cAAc,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,OAAO,MAAM,6BAA6B,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;YACpE,aAAa,EAAE,CAAA;YACf,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YAC/B,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YAChC,0BAA0B,CAAC,QAAQ,CAAC,CAAA;YACpC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;YACjC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;YACjC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;YACjC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;YAC9B,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YAC/B,yBAAyB,CAAC,QAAQ,CAAC,CAAA;YACnC,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACvB,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YAChC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YAChC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YAChC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YACvC,cAAc,CAAC,IAAI,CAAC,CAAA;YAEpB,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;YACzB,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,mBAAmB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;YAC/C,CAAC;iBAAM,CAAC;gBACN,sBAAsB,CAAC,cAAc,CAAC,CAAA;YACxC,CAAC;YACD,uEAAuE;YACvE,yEAAyE;YACzE,sEAAsE;YACtE,0EAA0E;YAC1E,iBAAiB;YACjB,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAA;YACpC,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,+BAA+B,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAG5B;IACA,aAAa,EAAE,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACxD,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5C,0BAA0B,EAAE;QAC1B,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YAChB,MAAM,KAAK,GAA4B,EAAE,CAAA;YACzC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;YAEhB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpE,OAAM;YACR,CAAC;YAED,MAAM,8BAA8B,CAAC,KAAK,CAAC,CAAA;QAC7C,CAAC;QACD,EAAE,KAAK,EAAE,QAAQ,EAAE;KACpB;IAED,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAA;QAC9D,MAAM,aAAa,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAA;QAE5D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAC/D,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC1B,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;QAClB,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAC1B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EACZ,EACE,OAAO,EACP,aAAa,EACb,WAAW,EACX,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,OAAO,EACP,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,QAAQ,GACT,EACD,GAAG,EACH,EAAE;QACF,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,IAAI,oBAAoB,CAAA;QACrE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,eAAe,CAAA;QACxD,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACtD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAA;QAE9D,0EAA0E;QAC1E,qDAAqD;QACrD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,2BAA2B,CAAC;YAC1B,UAAU;YACV,kBAAkB,EAAE,YAAY;YAChC,SAAS,EAAE;gBACT,WAAW;gBACX,MAAM;gBACN,UAAU;gBACV,SAAS;gBACT,WAAW;gBACX,WAAW;gBACX,gBAAgB;gBAChB,eAAe;gBACf,iBAAiB;gBACjB,OAAO;gBACP,YAAY;gBACZ,OAAO;gBACP,SAAS;gBACT,eAAe;gBACf,iBAAiB;gBACjB,QAAQ;gBACR,QAAQ;aACT;SACF,CAAC,CACH,CAAA;QAED,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAE1B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;IACH,CAAC;IAED,IAAI,EAAE,KAAK,EACT,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,0BAA0B,EAAE,EACrE,GAAG,EACH,QAAQ,EACR,EAAE;QACF,uDAAuD;QACvD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAA;QAC9D,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QAEhE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;YACpC,MAAM,cAAc,GAAG,4BAA4B,CAAC;gBAClD,QAAQ;gBACR,IAAI;gBACJ,YAAY,EAAE,QAAQ,CAAC,IAAI;gBAC3B,aAAa;gBACb,aAAa;aACd,CAAC,CAAA;YACF,sBAAsB,CAAC,IAAI,CAAC,CAAA;YAC5B,MAAM,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YACxC,QAAQ,CAAC,KAAK,EAAE,CAAA;YAChB,MAAM,0BAA0B,CAAC;gBAC/B,cAAc;gBACd,IAAI;gBACJ,QAAQ;gBACR,EAAE,EAAE,KAAK,IAAI,EAAE;oBACb,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;gBACjB,CAAC;aACF,CAAC,CAAA;YACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAClB,OAAM;QACR,CAAC;QAED,oBAAoB;QACpB,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,IAAI,oBAAoB,CAAA;QACrE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,eAAe,CAAA;QACxD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,IAAI,WAAW,CAAA;QAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,qBAAqB,CAAA;QAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAEtD,MAAM,aAAa,GAAG,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAEjE,kDAAkD;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,CAAA;QAEhE,kDAAkD;QAClD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAE1C,+CAA+C;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;QAEjD,yDAAyD;QACzD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACpC,MAAM,cAAc,GAAG,4BAA4B,CAAC;YAClD,QAAQ;YACR,IAAI;YACJ,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,YAAY,EAAE,QAAQ;YACtB,aAAa;YACb,aAAa;SACd,CAAC,CAAA;QAEF,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAExC,gEAAgE;QAChE,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAE9B,yEAAyE;QACzE,sCAAsC;QACtC,MAAM,IAAI,CAAC,cAAc,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAA;QAE/D,MAAM,cAAc,GAAG,MAAM,wBAAwB,CACnD,IAAI,EACJ,SAAS,EACT,GAAG,EACH,OAAO,EACP,WAAW,EACX,OAAO,CACR,CAAA;QAED,MAAM,6BAA6B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACrD,MAAM,cAAc,CAAC,KAAK,EAAE,CAAA;QAC5B,sFAAsF;QACtF,QAAQ,CAAC,KAAK,EAAE,CAAA;QAEhB,IAAI,CAAC;YACH,MAAM,0BAA0B,CAAC;gBAC/B,cAAc;gBACd,IAAI;gBACJ,QAAQ;gBACR,EAAE,EAAE,KAAK,IAAI,EAAE;oBACb,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;oBAEf,6BAA6B;oBAC7B,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAA;gBAC/B,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,cAAc,CAAC,KAAK,EAAE,CAAA;YAC5B,0BAA0B,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAA;YAE7D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAElB,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;gBAClE,MAAM,QAAQ,CAAC,WAAW,CACxB,QAAQ,EACR,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CACnC,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAA;AAgJF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,UAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/video.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { ModelVoiceKey, ElevenLabsVoiceKey, CustomVoiceRef, ModelType } from './voices.js';
|
|
2
|
+
/**
|
|
3
|
+
* Voice configuration types. Kept in a leaf module (depends only on `voices.ts`)
|
|
4
|
+
* so both `cue.ts` and `types.ts` can import them: voice is configured as a
|
|
5
|
+
* render option (`renderOptions.narration`), which lives in `types.ts`, while
|
|
6
|
+
* the narration runtime in `cue.ts` consumes the same shapes.
|
|
7
|
+
*
|
|
8
|
+
* ElevenLabs voices support only the numeric `eleven_multilingual_v2` settings;
|
|
9
|
+
* built-in model voices support expressive/consistent model controls.
|
|
10
|
+
*/
|
|
11
|
+
type ElevenLabsVoiceSettings = {
|
|
12
|
+
/** Voice stability for ElevenLabs `eleven_multilingual_v2`. Valid range: 0 to 1. */
|
|
13
|
+
stability?: number;
|
|
14
|
+
/** Similarity enhancement for ElevenLabs `eleven_multilingual_v2`. Valid range: 0 to 1. */
|
|
15
|
+
similarityBoost?: number;
|
|
16
|
+
/** Style exaggeration for ElevenLabs `eleven_multilingual_v2`. Valid range: 0 to 1. */
|
|
17
|
+
style?: number;
|
|
18
|
+
/** Playback speed for ElevenLabs `eleven_multilingual_v2`. Valid range: 0.7 to 1.2. */
|
|
19
|
+
speed?: number;
|
|
20
|
+
/** Enables ElevenLabs speaker boost. Defaults to `true`. */
|
|
21
|
+
useSpeakerBoost?: boolean;
|
|
22
|
+
};
|
|
23
|
+
type ElevenLabsVoiceConfig = ElevenLabsVoiceSettings & {
|
|
24
|
+
name: ElevenLabsVoiceKey | CustomVoiceRef;
|
|
25
|
+
modelType?: never;
|
|
26
|
+
accent?: never;
|
|
27
|
+
pacing?: never;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Default voice shared across all languages. `seed` is not allowed here — use a
|
|
31
|
+
* per-language voice override instead.
|
|
32
|
+
*/
|
|
33
|
+
export type TopLevelVoiceConfig = ElevenLabsVoiceConfig | {
|
|
34
|
+
name: ModelVoiceKey;
|
|
35
|
+
/** Speaking style prompt for expressive synthesis. Business tier only. Implies `expressive` model type. */
|
|
36
|
+
style: string;
|
|
37
|
+
/** Can be omitted when `style` is set — `expressive` is implied. Business tier only. */
|
|
38
|
+
modelType?: 'expressive';
|
|
39
|
+
/**
|
|
40
|
+
* Accent description for expressive synthesis.
|
|
41
|
+
* The more specific, the better — e.g. `'Southern American English'` or `'Received Pronunciation British'`.
|
|
42
|
+
* Omitted from the prompt when not set — the voice uses its natural default.
|
|
43
|
+
*/
|
|
44
|
+
accent?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Pacing description for expressive synthesis.
|
|
47
|
+
* Describes the overall speed and tempo — e.g. `'Measured and deliberate'` or `'Brisk and energetic'`.
|
|
48
|
+
*/
|
|
49
|
+
pacing?: string;
|
|
50
|
+
} | {
|
|
51
|
+
name: ModelVoiceKey;
|
|
52
|
+
style?: never;
|
|
53
|
+
accent?: never;
|
|
54
|
+
/** Speaking rate for consistent synthesis. Valid range: 0.25 to 2. */
|
|
55
|
+
pacing?: number;
|
|
56
|
+
/** TTS model type — `modelTypes.expressive` or `modelTypes.consistent`. Defaults to `consistent`. */
|
|
57
|
+
modelType?: Exclude<ModelType, 'expressive'> | undefined;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Per-language voice override. Can override the default voice name and set a
|
|
61
|
+
* `seed` for TTS generation.
|
|
62
|
+
*
|
|
63
|
+
* The voice name discriminates provider-specific settings: built-in model voices
|
|
64
|
+
* use expressive/consistent controls, ElevenLabs voices use the numeric
|
|
65
|
+
* `eleven_multilingual_v2` controls.
|
|
66
|
+
*/
|
|
67
|
+
export type LangNarrationOverride = (ElevenLabsVoiceConfig & {
|
|
68
|
+
/**
|
|
69
|
+
* Integer seed included in the audio cache key and forwarded to ElevenLabs.
|
|
70
|
+
* A different seed always forces regeneration.
|
|
71
|
+
*/
|
|
72
|
+
seed?: number;
|
|
73
|
+
}) | {
|
|
74
|
+
name: ModelVoiceKey;
|
|
75
|
+
/**
|
|
76
|
+
* Integer seed included in the audio cache key. A different seed always forces
|
|
77
|
+
* regeneration. Consistent output is not guaranteed across all voice types.
|
|
78
|
+
*/
|
|
79
|
+
seed?: number;
|
|
80
|
+
/** Speaking style prompt for expressive synthesis. Business tier only. Implies `expressive` model type. */
|
|
81
|
+
style: string;
|
|
82
|
+
/** Can be omitted when `style` is set — `expressive` is implied. Business tier only. */
|
|
83
|
+
modelType?: 'expressive';
|
|
84
|
+
/**
|
|
85
|
+
* Accent description for expressive synthesis.
|
|
86
|
+
* The more specific, the better — e.g. `'Southern American English'` or `'Received Pronunciation British'`.
|
|
87
|
+
* Omitted from the prompt when not set — the voice uses its natural default.
|
|
88
|
+
*/
|
|
89
|
+
accent?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Pacing description for expressive synthesis.
|
|
92
|
+
* Describes the overall speed and tempo — e.g. `'Measured and deliberate'` or `'Brisk and energetic'`.
|
|
93
|
+
*/
|
|
94
|
+
pacing?: string;
|
|
95
|
+
} | {
|
|
96
|
+
name: ModelVoiceKey;
|
|
97
|
+
/**
|
|
98
|
+
* Integer seed included in the audio cache key. A different seed always forces
|
|
99
|
+
* regeneration. Consistent output is not guaranteed across all voice types.
|
|
100
|
+
*/
|
|
101
|
+
seed?: number;
|
|
102
|
+
style?: never;
|
|
103
|
+
accent?: never;
|
|
104
|
+
/** Speaking rate for consistent synthesis. Valid range: 0.25 to 2. */
|
|
105
|
+
pacing?: number;
|
|
106
|
+
/** TTS model type — `modelTypes.expressive` or `modelTypes.consistent`. Defaults to `consistent`. */
|
|
107
|
+
modelType?: Exclude<ModelType, 'expressive'> | undefined;
|
|
108
|
+
};
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=voiceConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voiceConfig.d.ts","sourceRoot":"","sources":["../../src/voiceConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,SAAS,EACV,MAAM,aAAa,CAAA;AAEpB;;;;;;;;GAQG;AACH,KAAK,uBAAuB,GAAG;IAC7B,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,KAAK,qBAAqB,GAAG,uBAAuB,GAAG;IACrD,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAAA;IACzC,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,MAAM,CAAC,EAAE,KAAK,CAAA;CACf,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAA;IACb,wFAAwF;IACxF,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qGAAqG;IACrG,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,SAAS,CAAA;CACzD,CAAA;AAEL;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAC7B,CAAC,qBAAqB,GAAG;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAC,GACF;IACE,IAAI,EAAE,aAAa,CAAA;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAA;IACb,wFAAwF;IACxF,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qGAAqG;IACrG,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,SAAS,CAAA;CACzD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voiceConfig.js","sourceRoot":"","sources":["../../src/voiceConfig.ts"],"names":[],"mappings":""}
|