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
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type NarrationCue } from './cue.js';
|
|
2
|
+
import type { NormalizedLocalize } from './localize.js';
|
|
3
|
+
import type { TextOverrides } from './runtimeMode.js';
|
|
4
|
+
import type { TopLevelVoiceConfig } from './voiceConfig.js';
|
|
5
|
+
import type { RenderOptions } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* The config/global default narration voice from a recording's render options.
|
|
8
|
+
* This is the lowest-priority entry in the voice cascade: the localize `voice`
|
|
9
|
+
* (per-language) and per-cue `voice` override it. When render options are
|
|
10
|
+
* deferred to Studio (`video.studio({ renderOptions: true })`) there is no code
|
|
11
|
+
* voice here (Studio owns it at render).
|
|
12
|
+
*/
|
|
13
|
+
export declare function narrationVoiceConfigFromRenderOptions(renderOptions: RenderOptions | undefined, studioRenderOptions: boolean): TopLevelVoiceConfig | undefined;
|
|
14
|
+
/** Narration markers keyed by cue name. Markers carry timing, never text. */
|
|
15
|
+
export type NarrationMarkers = Record<string, NarrationCue>;
|
|
16
|
+
/** Per-language text field values, keyed by field name. */
|
|
17
|
+
export type TextValues = Record<string, string>;
|
|
18
|
+
/**
|
|
19
|
+
* Build the `narration` marker object for a localized recording. Seeded cues
|
|
20
|
+
* emit translations carrying the resolved voice + spoken text (filtered to the
|
|
21
|
+
* active language by the recorder); Studio-managed cues emit studio cues whose
|
|
22
|
+
* text is owned by Studio. The markers expose only timing, never the text.
|
|
23
|
+
*
|
|
24
|
+
* The narration voice is resolved per `(cue, language)`: per-cue `voice` →
|
|
25
|
+
* localize `voiceByLang` → the config/global `defaultVoice` → a built-in voice.
|
|
26
|
+
*/
|
|
27
|
+
export declare function buildNarrationMarkers(localize: NormalizedLocalize | undefined, defaultVoice?: TopLevelVoiceConfig, studioNarration?: readonly string[]): NarrationMarkers;
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the `text` field values for the active language: a Studio override (if
|
|
30
|
+
* present, from {@link parseTextOverrides}) wins over the code-declared seed.
|
|
31
|
+
* A Studio-managed field has no seed, so until it is set in Studio it resolves
|
|
32
|
+
* to the empty string (the recording still succeeds, and Studio learns the field
|
|
33
|
+
* from the emitted declaration and flags it as needing input).
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildTextValues(localize: NormalizedLocalize | undefined, language: string | undefined, overrides?: TextOverrides | null, studioText?: readonly string[]): TextValues;
|
|
36
|
+
/** A localized text declaration emitted to the backend at recording start. */
|
|
37
|
+
export type TextDeclaration = {
|
|
38
|
+
/** Every field name (seeded then Studio-managed), in declared order. */
|
|
39
|
+
fields: string[];
|
|
40
|
+
/** Studio-managed field names (declared via `studio.text`, no code seed). */
|
|
41
|
+
studioFields: string[];
|
|
42
|
+
/** Code seeds keyed `{ [language]: { [field]: value } }`. Omitted when empty. */
|
|
43
|
+
seed?: Record<string, Record<string, string>>;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Build the declaration of `text` fields to emit at recording start so the
|
|
47
|
+
* backend learns which fields exist and their code seeds. In a per-language pass
|
|
48
|
+
* `language` is the active language and only its seeds are included (mirroring
|
|
49
|
+
* how cue translations carry a single language). Returns `null` when the spec
|
|
50
|
+
* declares no `text`.
|
|
51
|
+
*/
|
|
52
|
+
export declare function buildTextDeclaration(localize: NormalizedLocalize | undefined, language: string | undefined, studioText?: readonly string[]): TextDeclaration | null;
|
|
53
|
+
//# sourceMappingURL=localizeRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localizeRuntime.d.ts","sourceRoot":"","sources":["../../src/localizeRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;GAMG;AACH,wBAAgB,qCAAqC,CACnD,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,mBAAmB,EAAE,OAAO,GAC3B,mBAAmB,GAAG,SAAS,CAKjC;AAED,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAE3D,2DAA2D;AAC3D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,EACxC,YAAY,CAAC,EAAE,mBAAmB,EAClC,eAAe,GAAE,SAAS,MAAM,EAAO,GACtC,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,kBAAkB,GAAG,SAAS,EACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,CAAC,EAAE,aAAa,GAAG,IAAI,EAChC,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,UAAU,CAgBZ;AAED,8EAA8E;AAC9E,MAAM,MAAM,eAAe,GAAG;IAC5B,wEAAwE;IACxE,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC9C,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,EACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,eAAe,GAAG,IAAI,CAqBxB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { buildLocalizedNarrationCues, buildStudioNarrationCues, } from './cue.js';
|
|
2
|
+
/**
|
|
3
|
+
* The config/global default narration voice from a recording's render options.
|
|
4
|
+
* This is the lowest-priority entry in the voice cascade: the localize `voice`
|
|
5
|
+
* (per-language) and per-cue `voice` override it. When render options are
|
|
6
|
+
* deferred to Studio (`video.studio({ renderOptions: true })`) there is no code
|
|
7
|
+
* voice here (Studio owns it at render).
|
|
8
|
+
*/
|
|
9
|
+
export function narrationVoiceConfigFromRenderOptions(renderOptions, studioRenderOptions) {
|
|
10
|
+
if (studioRenderOptions || renderOptions === undefined) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
return renderOptions.narration?.voice;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Build the `narration` marker object for a localized recording. Seeded cues
|
|
17
|
+
* emit translations carrying the resolved voice + spoken text (filtered to the
|
|
18
|
+
* active language by the recorder); Studio-managed cues emit studio cues whose
|
|
19
|
+
* text is owned by Studio. The markers expose only timing, never the text.
|
|
20
|
+
*
|
|
21
|
+
* The narration voice is resolved per `(cue, language)`: per-cue `voice` →
|
|
22
|
+
* localize `voiceByLang` → the config/global `defaultVoice` → a built-in voice.
|
|
23
|
+
*/
|
|
24
|
+
export function buildNarrationMarkers(localize, defaultVoice, studioNarration = []) {
|
|
25
|
+
const seeded = localize
|
|
26
|
+
? buildLocalizedNarrationCues(localize.narration, localize.voiceByLang, defaultVoice)
|
|
27
|
+
: {};
|
|
28
|
+
if (studioNarration.length === 0)
|
|
29
|
+
return seeded;
|
|
30
|
+
return { ...seeded, ...buildStudioNarrationCues(studioNarration) };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Resolve the `text` field values for the active language: a Studio override (if
|
|
34
|
+
* present, from {@link parseTextOverrides}) wins over the code-declared seed.
|
|
35
|
+
* A Studio-managed field has no seed, so until it is set in Studio it resolves
|
|
36
|
+
* to the empty string (the recording still succeeds, and Studio learns the field
|
|
37
|
+
* from the emitted declaration and flags it as needing input).
|
|
38
|
+
*/
|
|
39
|
+
export function buildTextValues(localize, language, overrides, studioText = []) {
|
|
40
|
+
const text = localize?.text;
|
|
41
|
+
const fieldNames = [...(text?.fieldNames ?? []), ...studioText];
|
|
42
|
+
if (fieldNames.length === 0)
|
|
43
|
+
return {};
|
|
44
|
+
const override = language !== undefined ? overrides?.[language] : undefined;
|
|
45
|
+
const seed = language !== undefined && text
|
|
46
|
+
? text.seedByLang[language]
|
|
47
|
+
: undefined;
|
|
48
|
+
const values = {};
|
|
49
|
+
for (const field of fieldNames) {
|
|
50
|
+
values[field] = override?.[field] ?? seed?.[field] ?? '';
|
|
51
|
+
}
|
|
52
|
+
return values;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Build the declaration of `text` fields to emit at recording start so the
|
|
56
|
+
* backend learns which fields exist and their code seeds. In a per-language pass
|
|
57
|
+
* `language` is the active language and only its seeds are included (mirroring
|
|
58
|
+
* how cue translations carry a single language). Returns `null` when the spec
|
|
59
|
+
* declares no `text`.
|
|
60
|
+
*/
|
|
61
|
+
export function buildTextDeclaration(localize, language, studioText = []) {
|
|
62
|
+
const text = localize?.text;
|
|
63
|
+
const seededFields = text?.fieldNames ?? [];
|
|
64
|
+
const fields = [...seededFields, ...studioText];
|
|
65
|
+
if (fields.length === 0)
|
|
66
|
+
return null;
|
|
67
|
+
const declaration = {
|
|
68
|
+
fields,
|
|
69
|
+
studioFields: [...studioText],
|
|
70
|
+
};
|
|
71
|
+
if (language !== undefined && text) {
|
|
72
|
+
const langSeed = text.seedByLang[language];
|
|
73
|
+
if (langSeed !== undefined && Object.keys(langSeed).length > 0) {
|
|
74
|
+
declaration.seed = { [language]: langSeed };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return declaration;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=localizeRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localizeRuntime.js","sourceRoot":"","sources":["../../src/localizeRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,GAEzB,MAAM,UAAU,CAAA;AAMjB;;;;;;GAMG;AACH,MAAM,UAAU,qCAAqC,CACnD,aAAwC,EACxC,mBAA4B;IAE5B,IAAI,mBAAmB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,CAAA;AACvC,CAAC;AAQD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAwC,EACxC,YAAkC,EAClC,kBAAqC,EAAE;IAEvC,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,2BAA2B,CACzB,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,WAAW,EACpB,YAAY,CACb;QACH,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAC/C,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAA;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAwC,EACxC,QAA4B,EAC5B,SAAgC,EAChC,aAAgC,EAAE;IAElC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAA;IAC3B,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAA;IAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEtC,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3E,MAAM,IAAI,GACR,QAAQ,KAAK,SAAS,IAAI,IAAI;QAC5B,CAAC,CAAE,IAAI,CAAC,UAAqD,CAAC,QAAQ,CAAC;QACvE,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,MAAM,GAAe,EAAE,CAAA;IAC7B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAC1D,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAwC,EACxC,QAA4B,EAC5B,aAAgC,EAAE;IAElC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAA;IAC3B,MAAM,YAAY,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAA;IAC3C,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,UAAU,CAAC,CAAA;IAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEpC,MAAM,WAAW,GAAoB;QACnC,MAAM;QACN,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;KAC9B,CAAA;IAED,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,EAAE,CAAC;QACnC,MAAM,QAAQ,GACZ,IAAI,CAAC,UACN,CAAC,QAAQ,CAAC,CAAA;QACX,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC"}
|
|
@@ -113,7 +113,7 @@ export type CueStartEvent = {
|
|
|
113
113
|
type: 'cueStart';
|
|
114
114
|
timeMs: number;
|
|
115
115
|
name: string;
|
|
116
|
-
/** Cue declared via
|
|
116
|
+
/** Cue declared via the Studio-managed (name-only) narration form — text and voice come from Studio. */
|
|
117
117
|
studio?: true;
|
|
118
118
|
text?: string;
|
|
119
119
|
cueConfig?: CueConfig;
|
|
@@ -153,7 +153,7 @@ export type VideoCueStartEvent = {
|
|
|
153
153
|
type: 'videoCueStart';
|
|
154
154
|
timeMs: number;
|
|
155
155
|
name: string;
|
|
156
|
-
/** Cue declared via
|
|
156
|
+
/** Cue declared via the Studio-managed (name-only) narration form whose Studio entry is a media file. */
|
|
157
157
|
studio?: true;
|
|
158
158
|
assetHash?: string;
|
|
159
159
|
assetPath?: string;
|
|
@@ -196,8 +196,9 @@ export type VideoAssetStartEvent = {
|
|
|
196
196
|
};
|
|
197
197
|
export type AssetStartEvent = ImageAssetStartEvent | VideoAssetStartEvent;
|
|
198
198
|
/**
|
|
199
|
-
*
|
|
200
|
-
* configured in Studio, so the recording only marks
|
|
199
|
+
* Studio-managed overlay declared via `video.studio({ overlays: [...] })`. The
|
|
200
|
+
* file and display options are configured in Studio, so the recording only marks
|
|
201
|
+
* the timeline point.
|
|
201
202
|
*/
|
|
202
203
|
export type StudioAssetStartEvent = {
|
|
203
204
|
type: 'assetStart';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordingData.d.ts","sourceRoot":"","sources":["../../src/recordingData.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"recordingData.d.ts","sourceRoot":"","sources":["../../src/recordingData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Page } from '@playwright/test';
|
|
2
2
|
import { type IEventRecorder, type ElementRect } from './events.js';
|
|
3
3
|
import type { AutoZoomOptions, RecordOptions, RenderOptions } from './types.js';
|
|
4
|
-
import type { StudioRenderOptionsSentinel } from './studio.js';
|
|
5
4
|
import type { ScreenshotCropRecord } from './crop.js';
|
|
6
5
|
export type CurrentZoomViewport = {
|
|
7
6
|
focusPoint: {
|
|
@@ -72,7 +71,7 @@ export type ScreenCIRuntimeContext = {
|
|
|
72
71
|
/** Resolved capture options for the active recording, when available. */
|
|
73
72
|
recordOptions: RecordOptions | null;
|
|
74
73
|
/** Base render options for the active recording (drive a still's framing). */
|
|
75
|
-
renderOptions: RenderOptions |
|
|
74
|
+
renderOptions: RenderOptions | undefined;
|
|
76
75
|
/**
|
|
77
76
|
* Crop recorded for the current `screenshot()` fixture capture, or null for the
|
|
78
77
|
* full image. Set via the `crop` fixture argument and read by the fixture at
|
|
@@ -109,7 +108,7 @@ export declare function createScreenCIRuntimeContext(overrides?: {
|
|
|
109
108
|
testFilePath?: string | null;
|
|
110
109
|
recordingDir?: string | null;
|
|
111
110
|
recordOptions?: RecordOptions | null;
|
|
112
|
-
renderOptions?: RenderOptions |
|
|
111
|
+
renderOptions?: RenderOptions | undefined;
|
|
113
112
|
}): ScreenCIRuntimeContext;
|
|
114
113
|
export declare function runWithScreenCIRuntimeContext<T>(context: ScreenCIRuntimeContext, fn: () => T): T;
|
|
115
114
|
export declare function getScreenCIRuntimeContext(): ScreenCIRuntimeContext;
|
|
@@ -130,7 +129,7 @@ export declare function setRuntimePage(page: Page | null): void;
|
|
|
130
129
|
export declare function getRuntimePage(): Page | null;
|
|
131
130
|
export declare function getRuntimeRecordingDir(): string | null;
|
|
132
131
|
export declare function getRuntimeRecordOptions(): RecordOptions | null;
|
|
133
|
-
export declare function getRuntimeRenderOptions(): RenderOptions |
|
|
132
|
+
export declare function getRuntimeRenderOptions(): RenderOptions | undefined;
|
|
134
133
|
export declare function setRuntimeCrop(crop: ScreenshotCropRecord | null): void;
|
|
135
134
|
export declare function getRuntimeCrop(): ScreenshotCropRecord | undefined;
|
|
136
135
|
export declare function resetCueRuntimeState(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeContext.d.ts","sourceRoot":"","sources":["../../src/runtimeContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"runtimeContext.d.ts","sourceRoot":"","sources":["../../src/runtimeContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeContext.js","sourceRoot":"","sources":["../../src/runtimeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EACL,mBAAmB,GAGpB,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"runtimeContext.js","sourceRoot":"","sources":["../../src/runtimeContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import type { AspectRatio, FPS, Quality } from './types.js';
|
|
1
2
|
export declare const SCREENCI_RECORDING_ENV = "SCREENCI_RECORDING";
|
|
2
3
|
export declare const SCREENCI_MOCK_RECORD_ENV = "SCREENCI_MOCK_RECORD";
|
|
4
|
+
export declare const SCREENCI_LANGUAGES_ENV = "SCREENCI_LANGUAGES";
|
|
5
|
+
export declare const SCREENCI_TEXT_OVERRIDES_ENV = "SCREENCI_TEXT_OVERRIDES";
|
|
6
|
+
export declare const SCREENCI_RECORD_OPTIONS_ENV = "SCREENCI_RECORD_OPTIONS";
|
|
3
7
|
export declare const SCREENCI_DISABLE_RECORDING_TIMINGS_ENV = "SCREENCI_DISABLE_RECORDING_TIMINGS";
|
|
4
8
|
export declare const SCREENCI_DEBUG_TIMING_ENV = "SCREENCI_DEBUG_TIMING";
|
|
5
9
|
/**
|
|
@@ -12,4 +16,47 @@ export declare function isScreenciRecordingEnabled(env?: NodeJS.ProcessEnv): boo
|
|
|
12
16
|
export declare function isScreenciMockRecordEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
13
17
|
export declare function shouldSimulateRecordingTimings(env?: NodeJS.ProcessEnv): boolean;
|
|
14
18
|
export declare function resolveRecordingTimingDuration(durationMs: number, env?: NodeJS.ProcessEnv): number;
|
|
19
|
+
/**
|
|
20
|
+
* Parse the comma-separated language filter set by `screenci record
|
|
21
|
+
* --languages fi,en`. Returns `null` when unset or empty (meaning "record every
|
|
22
|
+
* declared language"); otherwise the trimmed, de-duplicated list in the order
|
|
23
|
+
* given. The per-language builder intersects this with each video's declared
|
|
24
|
+
* languages so a run never records or renders more than was asked for.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseRequestedLanguages(env?: NodeJS.ProcessEnv): string[] | null;
|
|
27
|
+
/** Per-language text field overrides: `{ [language]: { [field]: value } }`. */
|
|
28
|
+
export type TextOverrides = Record<string, Record<string, string>>;
|
|
29
|
+
/**
|
|
30
|
+
* Parse Studio text-field overrides injected for a re-record. Because the
|
|
31
|
+
* recording process never reaches the backend, Studio edits are passed in via
|
|
32
|
+
* `SCREENCI_TEXT_OVERRIDES` (a JSON map of language -> field -> value), set by
|
|
33
|
+
* the CLI from the backend before the recording runs. Returns `null` when unset
|
|
34
|
+
* or malformed, so the `text` fixture falls back to the code-declared seed.
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseTextOverrides(env?: NodeJS.ProcessEnv): TextOverrides | null;
|
|
37
|
+
/** Studio record-option overrides per video name: `{ [videoName]: {...} }`. */
|
|
38
|
+
export type RecordOptionsOverrides = Record<string, {
|
|
39
|
+
aspectRatio?: AspectRatio;
|
|
40
|
+
quality?: Quality;
|
|
41
|
+
fps?: FPS;
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* Parse Studio record-option overrides injected for a re-record. Record options
|
|
45
|
+
* (aspect ratio, quality, fps) change the captured viewport/encode, so Studio
|
|
46
|
+
* edits are fetched by the CLI before recording and passed in via
|
|
47
|
+
* `SCREENCI_RECORD_OPTIONS` (a JSON map of video name -> options). Returns `null`
|
|
48
|
+
* when unset or malformed, so the `recordOptions` fixture keeps the code values.
|
|
49
|
+
* Unknown fields/values are dropped.
|
|
50
|
+
*/
|
|
51
|
+
export declare function parseRecordOptions(env?: NodeJS.ProcessEnv): RecordOptionsOverrides | null;
|
|
52
|
+
/**
|
|
53
|
+
* Merge Studio record-option overrides over the code-declared record options.
|
|
54
|
+
* Only the Studio-owned fields (aspect ratio, quality, fps) are overridden; the
|
|
55
|
+
* rest (encoder, performance, deviceScaleFactor) stay from code. Pure.
|
|
56
|
+
*/
|
|
57
|
+
export declare function mergeStudioRecordOptions<T extends {
|
|
58
|
+
aspectRatio?: AspectRatio;
|
|
59
|
+
quality?: Quality;
|
|
60
|
+
fps?: FPS;
|
|
61
|
+
}>(codeRecordOptions: T, studio: RecordOptionsOverrides[string] | undefined): T;
|
|
15
62
|
//# sourceMappingURL=runtimeMode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeMode.d.ts","sourceRoot":"","sources":["../../src/runtimeMode.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,uBAAuB,CAAA;AAC1D,eAAO,MAAM,wBAAwB,yBAAyB,CAAA;AAC9D,eAAO,MAAM,sCAAsC,uCACb,CAAA;AACtC,eAAO,MAAM,yBAAyB,0BAA0B,CAAA;AAEhE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAED,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED,wBAAgB,2BAA2B,CACzC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAUT;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAER"}
|
|
1
|
+
{"version":3,"file":"runtimeMode.d.ts","sourceRoot":"","sources":["../../src/runtimeMode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3D,eAAO,MAAM,sBAAsB,uBAAuB,CAAA;AAC1D,eAAO,MAAM,wBAAwB,yBAAyB,CAAA;AAC9D,eAAO,MAAM,sBAAsB,uBAAuB,CAAA;AAC1D,eAAO,MAAM,2BAA2B,4BAA4B,CAAA;AACpE,eAAO,MAAM,2BAA2B,4BAA4B,CAAA;AACpE,eAAO,MAAM,sCAAsC,uCACb,CAAA;AACtC,eAAO,MAAM,yBAAyB,0BAA0B,CAAA;AAEhE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAED,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED,wBAAgB,2BAA2B,CACzC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAUT;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,EAAE,GAAG,IAAI,CAcjB;AAED,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAElE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,GAAG,IAAI,CAqBtB;AAED,+EAA+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC,MAAM,EACN;IAAE,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAA;CAAE,CAC5D,CAAA;AAcD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,sBAAsB,GAAG,IAAI,CA4B/B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,CAAC,SAAS;IAAE,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAA;CAAE,EACrE,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,CAAC,CAU7E"}
|
package/dist/src/runtimeMode.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export const SCREENCI_RECORDING_ENV = 'SCREENCI_RECORDING';
|
|
2
2
|
export const SCREENCI_MOCK_RECORD_ENV = 'SCREENCI_MOCK_RECORD';
|
|
3
|
+
export const SCREENCI_LANGUAGES_ENV = 'SCREENCI_LANGUAGES';
|
|
4
|
+
export const SCREENCI_TEXT_OVERRIDES_ENV = 'SCREENCI_TEXT_OVERRIDES';
|
|
5
|
+
export const SCREENCI_RECORD_OPTIONS_ENV = 'SCREENCI_RECORD_OPTIONS';
|
|
3
6
|
export const SCREENCI_DISABLE_RECORDING_TIMINGS_ENV = 'SCREENCI_DISABLE_RECORDING_TIMINGS';
|
|
4
7
|
export const SCREENCI_DEBUG_TIMING_ENV = 'SCREENCI_DEBUG_TIMING';
|
|
5
8
|
/**
|
|
@@ -29,4 +32,125 @@ export function shouldSimulateRecordingTimings(env = process.env) {
|
|
|
29
32
|
export function resolveRecordingTimingDuration(durationMs, env = process.env) {
|
|
30
33
|
return shouldSimulateRecordingTimings(env) ? durationMs : 0;
|
|
31
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse the comma-separated language filter set by `screenci record
|
|
37
|
+
* --languages fi,en`. Returns `null` when unset or empty (meaning "record every
|
|
38
|
+
* declared language"); otherwise the trimmed, de-duplicated list in the order
|
|
39
|
+
* given. The per-language builder intersects this with each video's declared
|
|
40
|
+
* languages so a run never records or renders more than was asked for.
|
|
41
|
+
*/
|
|
42
|
+
export function parseRequestedLanguages(env = process.env) {
|
|
43
|
+
const raw = env[SCREENCI_LANGUAGES_ENV];
|
|
44
|
+
if (raw === undefined)
|
|
45
|
+
return null;
|
|
46
|
+
const seen = new Set();
|
|
47
|
+
const languages = [];
|
|
48
|
+
for (const part of raw.split(',')) {
|
|
49
|
+
const trimmed = part.trim();
|
|
50
|
+
if (trimmed.length === 0 || seen.has(trimmed))
|
|
51
|
+
continue;
|
|
52
|
+
seen.add(trimmed);
|
|
53
|
+
languages.push(trimmed);
|
|
54
|
+
}
|
|
55
|
+
return languages.length > 0 ? languages : null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Parse Studio text-field overrides injected for a re-record. Because the
|
|
59
|
+
* recording process never reaches the backend, Studio edits are passed in via
|
|
60
|
+
* `SCREENCI_TEXT_OVERRIDES` (a JSON map of language -> field -> value), set by
|
|
61
|
+
* the CLI from the backend before the recording runs. Returns `null` when unset
|
|
62
|
+
* or malformed, so the `text` fixture falls back to the code-declared seed.
|
|
63
|
+
*/
|
|
64
|
+
export function parseTextOverrides(env = process.env) {
|
|
65
|
+
const raw = env[SCREENCI_TEXT_OVERRIDES_ENV];
|
|
66
|
+
if (raw === undefined || raw.trim().length === 0)
|
|
67
|
+
return null;
|
|
68
|
+
try {
|
|
69
|
+
const parsed = JSON.parse(raw);
|
|
70
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
71
|
+
return null;
|
|
72
|
+
const result = {};
|
|
73
|
+
for (const [language, fields] of Object.entries(parsed)) {
|
|
74
|
+
if (typeof fields !== 'object' || fields === null)
|
|
75
|
+
continue;
|
|
76
|
+
const perLanguage = {};
|
|
77
|
+
for (const [field, value] of Object.entries(fields)) {
|
|
78
|
+
if (typeof value === 'string')
|
|
79
|
+
perLanguage[field] = value;
|
|
80
|
+
}
|
|
81
|
+
result[language] = perLanguage;
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const VALID_ASPECT_RATIOS = new Set([
|
|
90
|
+
'16:9',
|
|
91
|
+
'9:16',
|
|
92
|
+
'1:1',
|
|
93
|
+
'4:3',
|
|
94
|
+
'3:4',
|
|
95
|
+
'5:4',
|
|
96
|
+
'4:5',
|
|
97
|
+
]);
|
|
98
|
+
const VALID_QUALITIES = new Set(['720p', '1080p', '1440p', '2160p']);
|
|
99
|
+
const VALID_FPS = new Set([24, 30, 60]);
|
|
100
|
+
/**
|
|
101
|
+
* Parse Studio record-option overrides injected for a re-record. Record options
|
|
102
|
+
* (aspect ratio, quality, fps) change the captured viewport/encode, so Studio
|
|
103
|
+
* edits are fetched by the CLI before recording and passed in via
|
|
104
|
+
* `SCREENCI_RECORD_OPTIONS` (a JSON map of video name -> options). Returns `null`
|
|
105
|
+
* when unset or malformed, so the `recordOptions` fixture keeps the code values.
|
|
106
|
+
* Unknown fields/values are dropped.
|
|
107
|
+
*/
|
|
108
|
+
export function parseRecordOptions(env = process.env) {
|
|
109
|
+
const raw = env[SCREENCI_RECORD_OPTIONS_ENV];
|
|
110
|
+
if (raw === undefined || raw.trim().length === 0)
|
|
111
|
+
return null;
|
|
112
|
+
try {
|
|
113
|
+
const parsed = JSON.parse(raw);
|
|
114
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
115
|
+
return null;
|
|
116
|
+
const result = {};
|
|
117
|
+
for (const [videoName, options] of Object.entries(parsed)) {
|
|
118
|
+
if (typeof options !== 'object' || options === null)
|
|
119
|
+
continue;
|
|
120
|
+
const o = options;
|
|
121
|
+
const entry = {};
|
|
122
|
+
if (VALID_ASPECT_RATIOS.has(o.aspectRatio)) {
|
|
123
|
+
entry.aspectRatio = o.aspectRatio;
|
|
124
|
+
}
|
|
125
|
+
if (VALID_QUALITIES.has(o.quality)) {
|
|
126
|
+
entry.quality = o.quality;
|
|
127
|
+
}
|
|
128
|
+
if (typeof o.fps === 'number' && VALID_FPS.has(o.fps)) {
|
|
129
|
+
entry.fps = o.fps;
|
|
130
|
+
}
|
|
131
|
+
result[videoName] = entry;
|
|
132
|
+
}
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Merge Studio record-option overrides over the code-declared record options.
|
|
141
|
+
* Only the Studio-owned fields (aspect ratio, quality, fps) are overridden; the
|
|
142
|
+
* rest (encoder, performance, deviceScaleFactor) stay from code. Pure.
|
|
143
|
+
*/
|
|
144
|
+
export function mergeStudioRecordOptions(codeRecordOptions, studio) {
|
|
145
|
+
if (studio === undefined)
|
|
146
|
+
return codeRecordOptions;
|
|
147
|
+
return {
|
|
148
|
+
...codeRecordOptions,
|
|
149
|
+
...(studio.aspectRatio !== undefined && {
|
|
150
|
+
aspectRatio: studio.aspectRatio,
|
|
151
|
+
}),
|
|
152
|
+
...(studio.quality !== undefined && { quality: studio.quality }),
|
|
153
|
+
...(studio.fps !== undefined && { fps: studio.fps }),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
32
156
|
//# sourceMappingURL=runtimeMode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeMode.js","sourceRoot":"","sources":["../../src/runtimeMode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtimeMode.js","sourceRoot":"","sources":["../../src/runtimeMode.ts"],"names":[],"mappings":"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"}
|
package/dist/src/screenshot.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { TestType, PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWorkerArgs, PlaywrightWorkerOptions, TestDetails, TestInfo } from '@playwright/test';
|
|
2
2
|
import type { RecordOptions, RenderOptions, ScreenCIPage } from './types.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { StudioDeclaration } from './studio.js';
|
|
4
|
+
import { type OverlayController } from './asset.js';
|
|
4
5
|
import type { CropTarget, CropOptions } from './crop.js';
|
|
6
|
+
import type { VideoBuilder } from './builder.js';
|
|
7
|
+
import type { NormalizedLocalize } from './localize.js';
|
|
8
|
+
import { type TextValues } from './localizeRuntime.js';
|
|
5
9
|
/**
|
|
6
10
|
* The `crop` fixture argument. Call it inside a `screenshot()` body to crop the
|
|
7
11
|
* implicit end-of-body capture to a locator or pixel region. Replaces the
|
|
@@ -10,10 +14,42 @@ import type { CropTarget, CropOptions } from './crop.js';
|
|
|
10
14
|
export type CropFixture = (target: CropTarget, options?: CropOptions) => Promise<void>;
|
|
11
15
|
type ScreenshotFixtureOptions = {
|
|
12
16
|
recordOptions: RecordOptions;
|
|
13
|
-
renderOptions: RenderOptions |
|
|
17
|
+
renderOptions: RenderOptions | undefined;
|
|
18
|
+
/** Active language for this pass; see {@link video} for details. Internal. */
|
|
19
|
+
_screenciLanguage: string | undefined;
|
|
20
|
+
/** Grouping name written to `metadata.videoName`. Internal. */
|
|
21
|
+
_screenciVideoName: string | undefined;
|
|
22
|
+
/** The normalized localize spec, set by `screenshot.localize(...)`. Internal. */
|
|
23
|
+
_screenciLocalize: NormalizedLocalize | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* The studio declaration, set by `screenshot.studio(...)`. Drives the
|
|
26
|
+
* render/record deferral flags and the Studio-managed `text` and `overlays`
|
|
27
|
+
* fixtures. A still is silent, so narration/audio declarations are ignored.
|
|
28
|
+
* Internal.
|
|
29
|
+
*/
|
|
30
|
+
_screenciStudio: StudioDeclaration | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Absolute path of the `.screenci` script that registered this test, captured
|
|
33
|
+
* by the fan-out builder. Asset paths are resolved relative to it, since
|
|
34
|
+
* `testInfo.file` points at the builder module, not the script. Internal.
|
|
35
|
+
*/
|
|
36
|
+
_screenciSourceFile: string | undefined;
|
|
14
37
|
};
|
|
15
38
|
type ScreenshotFixtures = {
|
|
16
39
|
crop: CropFixture;
|
|
40
|
+
/** The language being captured in this pass; `undefined` outside per-language mode. */
|
|
41
|
+
language: string | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Injected text field values for the active language, keyed by the field names
|
|
44
|
+
* declared in `screenshot.localize(...)`. A still is silent, so there is no
|
|
45
|
+
* `narration` fixture.
|
|
46
|
+
*/
|
|
47
|
+
text: TextValues;
|
|
48
|
+
/**
|
|
49
|
+
* Overlay controllers for the Studio-managed overlay names declared in
|
|
50
|
+
* `screenshot.studio({ overlays: [...] })`. Empty when none are declared.
|
|
51
|
+
*/
|
|
52
|
+
overlays: Record<string, OverlayController>;
|
|
17
53
|
};
|
|
18
54
|
type ScreenshotType = TestType<PlaywrightTestArgs & PlaywrightTestOptions & ScreenshotFixtureOptions & ScreenshotFixtures & PlaywrightWorkerArgs & PlaywrightWorkerOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
|
|
19
55
|
type ScreenshotArgs = Omit<PlaywrightTestArgs, 'page'> & {
|
|
@@ -60,6 +96,24 @@ interface Screenshot extends ScreenshotCallSignatures {
|
|
|
60
96
|
fixme: Screenshot & ConditionalOverloads;
|
|
61
97
|
fail: Screenshot & ConditionalOverloads;
|
|
62
98
|
slow: Screenshot & ((condition?: boolean, description?: string) => void);
|
|
99
|
+
/**
|
|
100
|
+
* Capture one localized screenshot per declared language. By default each
|
|
101
|
+
* language is captured in its own pass with the browser `locale` set from the
|
|
102
|
+
* language, and the body receives the active `language` and `text` values.
|
|
103
|
+
* Chainable with `.each(...)`.
|
|
104
|
+
*/
|
|
105
|
+
localize: VideoBuilder<ScreenshotArgs>['localize'];
|
|
106
|
+
/**
|
|
107
|
+
* Defer render/record options and declare Studio-managed text and overlays,
|
|
108
|
+
* configured in the ScreenCI web app. Stills are silent, so narration and
|
|
109
|
+
* audio declarations are ignored. Chainable with `.localize(...)` / `.each(...)`.
|
|
110
|
+
*/
|
|
111
|
+
studio: VideoBuilder<ScreenshotArgs>['studio'];
|
|
112
|
+
/**
|
|
113
|
+
* Produce a separate screenshot per variant (viewport, theme, ...). Each
|
|
114
|
+
* variant has its own identity and history. Chainable with `.languages(...)`.
|
|
115
|
+
*/
|
|
116
|
+
each: VideoBuilder<ScreenshotArgs>['each'];
|
|
63
117
|
beforeEach(inner: (args: ScreenshotArgs, testInfo: TestInfo) => Promise<void> | void): void;
|
|
64
118
|
beforeEach(title: string, inner: (args: ScreenshotArgs, testInfo: TestInfo) => Promise<void> | void): void;
|
|
65
119
|
afterEach(inner: (args: ScreenshotArgs, testInfo: TestInfo) => Promise<void> | void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/screenshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,EACX,QAAQ,EACT,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/screenshot.ts"],"names":[],"mappings":"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"}
|