screenci 0.0.75 → 0.0.78

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.
Files changed (226) hide show
  1. package/dist/cli.d.ts +62 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +699 -229
  4. package/dist/cli.js.map +1 -1
  5. package/dist/docs/manifest.d.ts +277 -91
  6. package/dist/docs/manifest.d.ts.map +1 -1
  7. package/dist/docs/manifest.js +101 -30
  8. package/dist/docs/manifest.js.map +1 -1
  9. package/dist/docs/video-sources/camera-and-zooming.screenci.d.ts +2 -0
  10. package/dist/docs/video-sources/camera-and-zooming.screenci.d.ts.map +1 -0
  11. package/dist/docs/video-sources/camera-and-zooming.screenci.js +57 -0
  12. package/dist/docs/video-sources/camera-and-zooming.screenci.js.map +1 -0
  13. package/dist/docs/video-sources/installation.screenci.js +19 -10
  14. package/dist/docs/video-sources/installation.screenci.js.map +1 -1
  15. package/dist/docs/video-sources/landing.screenci.js +6 -8
  16. package/dist/docs/video-sources/landing.screenci.js.map +1 -1
  17. package/dist/docs/video-sources/languages.screenci.d.ts +2 -0
  18. package/dist/docs/video-sources/languages.screenci.d.ts.map +1 -0
  19. package/dist/docs/video-sources/languages.screenci.js +68 -0
  20. package/dist/docs/video-sources/languages.screenci.js.map +1 -0
  21. package/dist/docs/video-sources/locator-highlight-animated.screenci.js +4 -5
  22. package/dist/docs/video-sources/locator-highlight-animated.screenci.js.map +1 -1
  23. package/dist/docs/video-sources/locator-highlight-still.screenci.js +3 -4
  24. package/dist/docs/video-sources/locator-highlight-still.screenci.js.map +1 -1
  25. package/dist/docs/video-sources/narration.screenci.d.ts +2 -0
  26. package/dist/docs/video-sources/narration.screenci.d.ts.map +1 -0
  27. package/dist/docs/video-sources/narration.screenci.js +71 -0
  28. package/dist/docs/video-sources/narration.screenci.js.map +1 -0
  29. package/dist/docs/video-sources/public-urls-and-embeds.screenci.d.ts +2 -0
  30. package/dist/docs/video-sources/public-urls-and-embeds.screenci.d.ts.map +1 -0
  31. package/dist/docs/video-sources/public-urls-and-embeds.screenci.js +60 -0
  32. package/dist/docs/video-sources/public-urls-and-embeds.screenci.js.map +1 -0
  33. package/dist/docs/video-sources/speaking-style.screenci.d.ts +2 -0
  34. package/dist/docs/video-sources/speaking-style.screenci.d.ts.map +1 -0
  35. package/dist/docs/video-sources/speaking-style.screenci.js +76 -0
  36. package/dist/docs/video-sources/speaking-style.screenci.js.map +1 -0
  37. package/dist/docs/video-sources/studio.screenci.js +8 -10
  38. package/dist/docs/video-sources/studio.screenci.js.map +1 -1
  39. package/dist/docs/video-sources/vertical-video.screenci.d.ts +2 -0
  40. package/dist/docs/video-sources/vertical-video.screenci.d.ts.map +1 -0
  41. package/dist/docs/video-sources/vertical-video.screenci.js +58 -0
  42. package/dist/docs/video-sources/vertical-video.screenci.js.map +1 -0
  43. package/dist/docs/videos.d.ts +20 -0
  44. package/dist/docs/videos.d.ts.map +1 -1
  45. package/dist/docs/videos.js +25 -0
  46. package/dist/docs/videos.js.map +1 -1
  47. package/dist/e2e/instrument.e2e.js +60 -1
  48. package/dist/e2e/instrument.e2e.js.map +1 -1
  49. package/dist/e2e/redact.e2e.d.ts +2 -0
  50. package/dist/e2e/redact.e2e.d.ts.map +1 -0
  51. package/dist/e2e/redact.e2e.js +161 -0
  52. package/dist/e2e/redact.e2e.js.map +1 -0
  53. package/dist/index.d.ts +12 -6
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +8 -2
  56. package/dist/index.js.map +1 -1
  57. package/dist/src/asset.d.ts +174 -14
  58. package/dist/src/asset.d.ts.map +1 -1
  59. package/dist/src/asset.js +320 -39
  60. package/dist/src/asset.js.map +1 -1
  61. package/dist/src/assetHash.d.ts +27 -0
  62. package/dist/src/assetHash.d.ts.map +1 -0
  63. package/dist/src/assetHash.js +0 -0
  64. package/dist/src/assetHash.js.map +1 -0
  65. package/dist/src/audio.d.ts +20 -1
  66. package/dist/src/audio.d.ts.map +1 -1
  67. package/dist/src/audio.js +126 -24
  68. package/dist/src/audio.js.map +1 -1
  69. package/dist/src/autoZoom.d.ts.map +1 -1
  70. package/dist/src/autoZoom.js +3 -1
  71. package/dist/src/autoZoom.js.map +1 -1
  72. package/dist/src/browserLaunchOptions.d.ts +24 -2
  73. package/dist/src/browserLaunchOptions.d.ts.map +1 -1
  74. package/dist/src/browserLaunchOptions.js +57 -3
  75. package/dist/src/browserLaunchOptions.js.map +1 -1
  76. package/dist/src/builder.d.ts +229 -136
  77. package/dist/src/builder.d.ts.map +1 -1
  78. package/dist/src/builder.js +264 -77
  79. package/dist/src/builder.js.map +1 -1
  80. package/dist/src/callerFile.d.ts +12 -0
  81. package/dist/src/callerFile.d.ts.map +1 -0
  82. package/dist/src/callerFile.js +46 -0
  83. package/dist/src/callerFile.js.map +1 -0
  84. package/dist/src/changeFocus.d.ts.map +1 -1
  85. package/dist/src/changeFocus.js +109 -36
  86. package/dist/src/changeFocus.js.map +1 -1
  87. package/dist/src/config.d.ts.map +1 -1
  88. package/dist/src/config.js +15 -0
  89. package/dist/src/config.js.map +1 -1
  90. package/dist/src/cue.d.ts +29 -17
  91. package/dist/src/cue.d.ts.map +1 -1
  92. package/dist/src/cue.js +138 -61
  93. package/dist/src/cue.js.map +1 -1
  94. package/dist/src/declare.d.ts +63 -0
  95. package/dist/src/declare.d.ts.map +1 -0
  96. package/dist/src/declare.js +111 -0
  97. package/dist/src/declare.js.map +1 -0
  98. package/dist/src/defaults.d.ts +23 -0
  99. package/dist/src/defaults.d.ts.map +1 -1
  100. package/dist/src/defaults.js +27 -3
  101. package/dist/src/defaults.js.map +1 -1
  102. package/dist/src/events.d.ts +339 -25
  103. package/dist/src/events.d.ts.map +1 -1
  104. package/dist/src/events.js +250 -26
  105. package/dist/src/events.js.map +1 -1
  106. package/dist/src/htmlRasterizer.d.ts +10 -0
  107. package/dist/src/htmlRasterizer.d.ts.map +1 -1
  108. package/dist/src/htmlRasterizer.js +12 -2
  109. package/dist/src/htmlRasterizer.js.map +1 -1
  110. package/dist/src/init.d.ts +2 -0
  111. package/dist/src/init.d.ts.map +1 -1
  112. package/dist/src/init.js +81 -33
  113. package/dist/src/init.js.map +1 -1
  114. package/dist/src/instrument.d.ts.map +1 -1
  115. package/dist/src/instrument.js +164 -8
  116. package/dist/src/instrument.js.map +1 -1
  117. package/dist/src/locales.d.ts.map +1 -1
  118. package/dist/src/locales.js +1 -0
  119. package/dist/src/locales.js.map +1 -1
  120. package/dist/src/localize.d.ts +26 -17
  121. package/dist/src/localize.d.ts.map +1 -1
  122. package/dist/src/localize.js +19 -11
  123. package/dist/src/localize.js.map +1 -1
  124. package/dist/src/localizeRuntime.d.ts +29 -33
  125. package/dist/src/localizeRuntime.d.ts.map +1 -1
  126. package/dist/src/localizeRuntime.js +74 -49
  127. package/dist/src/localizeRuntime.js.map +1 -1
  128. package/dist/src/logger.d.ts +5 -0
  129. package/dist/src/logger.d.ts.map +1 -1
  130. package/dist/src/logger.js +7 -0
  131. package/dist/src/logger.js.map +1 -1
  132. package/dist/src/manualZoom.d.ts.map +1 -1
  133. package/dist/src/manualZoom.js +8 -5
  134. package/dist/src/manualZoom.js.map +1 -1
  135. package/dist/src/narrationVisibility.d.ts +19 -0
  136. package/dist/src/narrationVisibility.d.ts.map +1 -0
  137. package/dist/src/narrationVisibility.js +26 -0
  138. package/dist/src/narrationVisibility.js.map +1 -0
  139. package/dist/src/openBrowser.d.ts +34 -0
  140. package/dist/src/openBrowser.d.ts.map +1 -0
  141. package/dist/src/openBrowser.js +62 -0
  142. package/dist/src/openBrowser.js.map +1 -0
  143. package/dist/src/recordingData.d.ts +27 -0
  144. package/dist/src/recordingData.d.ts.map +1 -1
  145. package/dist/src/recordingSize.d.ts +32 -0
  146. package/dist/src/recordingSize.d.ts.map +1 -0
  147. package/dist/src/recordingSize.js +54 -0
  148. package/dist/src/recordingSize.js.map +1 -0
  149. package/dist/src/redact.d.ts +68 -0
  150. package/dist/src/redact.d.ts.map +1 -0
  151. package/dist/src/redact.js +138 -0
  152. package/dist/src/redact.js.map +1 -0
  153. package/dist/src/redactController.d.ts +61 -0
  154. package/dist/src/redactController.d.ts.map +1 -0
  155. package/dist/src/redactController.js +232 -0
  156. package/dist/src/redactController.js.map +1 -0
  157. package/dist/src/runtimeContext.d.ts +32 -0
  158. package/dist/src/runtimeContext.d.ts.map +1 -1
  159. package/dist/src/runtimeContext.js +21 -0
  160. package/dist/src/runtimeContext.js.map +1 -1
  161. package/dist/src/runtimeMode.d.ts +15 -7
  162. package/dist/src/runtimeMode.d.ts.map +1 -1
  163. package/dist/src/runtimeMode.js +17 -6
  164. package/dist/src/runtimeMode.js.map +1 -1
  165. package/dist/src/screenAudio.d.ts +88 -0
  166. package/dist/src/screenAudio.d.ts.map +1 -0
  167. package/dist/src/screenAudio.js +0 -0
  168. package/dist/src/screenAudio.js.map +1 -0
  169. package/dist/src/screenAudioSink.d.ts +46 -0
  170. package/dist/src/screenAudioSink.d.ts.map +1 -0
  171. package/dist/src/screenAudioSink.js +77 -0
  172. package/dist/src/screenAudioSink.js.map +1 -0
  173. package/dist/src/screenshot.d.ts +27 -29
  174. package/dist/src/screenshot.d.ts.map +1 -1
  175. package/dist/src/screenshot.js +39 -24
  176. package/dist/src/screenshot.js.map +1 -1
  177. package/dist/src/sourceTrim.d.ts +29 -0
  178. package/dist/src/sourceTrim.d.ts.map +1 -0
  179. package/dist/src/sourceTrim.js +76 -0
  180. package/dist/src/sourceTrim.js.map +1 -0
  181. package/dist/src/stillCapture.d.ts +5 -0
  182. package/dist/src/stillCapture.d.ts.map +1 -1
  183. package/dist/src/stillCapture.js +11 -1
  184. package/dist/src/stillCapture.js.map +1 -1
  185. package/dist/src/studio.d.ts +69 -57
  186. package/dist/src/studio.d.ts.map +1 -1
  187. package/dist/src/studio.js +16 -38
  188. package/dist/src/studio.js.map +1 -1
  189. package/dist/src/timelineOffset.d.ts +46 -0
  190. package/dist/src/timelineOffset.d.ts.map +1 -0
  191. package/dist/src/timelineOffset.js +66 -0
  192. package/dist/src/timelineOffset.js.map +1 -0
  193. package/dist/src/titleValidation.d.ts +38 -0
  194. package/dist/src/titleValidation.d.ts.map +1 -1
  195. package/dist/src/titleValidation.js +42 -0
  196. package/dist/src/titleValidation.js.map +1 -1
  197. package/dist/src/types.d.ts +218 -2
  198. package/dist/src/types.d.ts.map +1 -1
  199. package/dist/src/types.js +1 -1
  200. package/dist/src/types.js.map +1 -1
  201. package/dist/src/video.d.ts +74 -60
  202. package/dist/src/video.d.ts.map +1 -1
  203. package/dist/src/video.js +201 -39
  204. package/dist/src/video.js.map +1 -1
  205. package/dist/src/voiceSampleAudio.d.ts +34 -0
  206. package/dist/src/voiceSampleAudio.d.ts.map +1 -0
  207. package/dist/src/voiceSampleAudio.js +105 -0
  208. package/dist/src/voiceSampleAudio.js.map +1 -0
  209. package/dist/src/voices.d.ts +2 -2
  210. package/dist/src/voices.d.ts.map +1 -1
  211. package/dist/src/voices.js +8 -3
  212. package/dist/src/voices.js.map +1 -1
  213. package/dist/src/zoom.d.ts +1 -0
  214. package/dist/src/zoom.d.ts.map +1 -1
  215. package/dist/src/zoom.js +3 -0
  216. package/dist/src/zoom.js.map +1 -1
  217. package/dist/tsconfig.tsbuildinfo +1 -1
  218. package/package.json +3 -2
  219. package/skills/screenci/SKILL.md +2 -2
  220. package/skills/screenci/references/init.md +4 -3
  221. package/skills/screenci/references/record.md +1 -1
  222. package/templates/recordings/assets/logo.png +0 -0
  223. package/dist/docs/video-sources/public-urls.screenci.d.ts +0 -2
  224. package/dist/docs/video-sources/public-urls.screenci.d.ts.map +0 -1
  225. package/dist/docs/video-sources/public-urls.screenci.js +0 -41
  226. package/dist/docs/video-sources/public-urls.screenci.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"browserLaunchOptions.js","sourceRoot":"","sources":["../../src/browserLaunchOptions.ts"],"names":[],"mappings":"AAAA,MAAM,uBAAuB,GAAG;IAC9B,qBAAqB;IACrB,0BAA0B;IAC1B,yBAAyB,EAAE,uBAAuB;IAClD,gCAAgC,EAAE,6BAA6B;IAC/D,2BAA2B;IAC3B,oBAAoB,EAAE,4CAA4C;IAClE,gBAAgB,EAAE,oBAAoB;IACtC,mBAAmB,EAAE,qCAAqC;CAClD,CAAA;AAEV,MAAM,UAAU,wBAAwB,CAAC,YAAqB;IAM5D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,CAAC,GAAG,uBAAuB,CAAC;KACnC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"browserLaunchOptions.js","sourceRoot":"","sources":["../../src/browserLaunchOptions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAA;AAEzD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,GAAG,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAA;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,oBAA4B,EAC5B,mBAA4B;IAE5B,OAAO,oBAAoB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAA;AACzD,CAAC;AAED,MAAM,uBAAuB,GAAG;IAC9B,qBAAqB;IACrB,0BAA0B;IAC1B,yBAAyB,EAAE,uBAAuB;IAClD,gCAAgC,EAAE,6BAA6B;IAC/D,2BAA2B;IAC3B,oBAAoB,EAAE,4CAA4C;IAClE,gBAAgB,EAAE,oBAAoB;IACtC,mBAAmB,EAAE,qCAAqC;CAClD,CAAA;AAEV,MAAM,UAAU,wBAAwB,CACtC,YAAqB,EACrB,mBAAmB,GAAG,KAAK;IAQ3B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,sDAAsD;IACtD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAC,GAAG,uBAAuB,CAAC;YAClC,iBAAiB,EAAE,EAAE;SACtB,CAAA;IACH,CAAC;IAED,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,YAAY;IACZ,EAAE;IACF,wEAAwE;IACxE,6EAA6E;IAC7E,wEAAwE;IACxE,6EAA6E;IAC7E,oEAAoE;IACpE,EAAE;IACF,8EAA8E;IAC9E,oEAAoE;IACpE,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,+EAA+E;IAC/E,2DAA2D;IAC3D,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,CAAC,GAAG,uBAAuB,EAAE,gBAAgB,CAAC;QACpD,iBAAiB,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;KAClD,CAAA;AACH,CAAC"}
@@ -1,16 +1,16 @@
1
1
  import type { TestDetails, TestInfo } from '@playwright/test';
2
2
  import type { RecordOptions } from './types.js';
3
3
  import type { NarrationCue } from './cue.js';
4
- import type { OverlayController } from './asset.js';
5
- import type { AudioController } from './audio.js';
6
- import type { NarrationMarkers, TextValues } from './localizeRuntime.js';
7
- import { type LocalizeSpec, type LocalizeNarrationValue, type NormalizedLocalize } from './localize.js';
8
- import { type StudioDeclaration } from './studio.js';
4
+ import type { OverlayController, OverlayControllerFor, OverlayInputOrFactory } from './asset.js';
5
+ import type { AudioController, AudioInput } from './audio.js';
6
+ import type { LocalizeNarrationValue, VoiceConfig } from './localize.js';
7
+ import type { Lang } from './voices.js';
8
+ import { type FeatureArg, type NormalizedFeature } from './declare.js';
9
+ import { STUDIO, type StudioNames, type StudioPending, type StudioSeeded } from './studio.js';
9
10
  /**
10
11
  * One variant in a generic `video.each(...)` fan-out. Each variant produces a
11
12
  * separate video (its own identity and stored history), differing only in its
12
- * recording options and/or forwarded Playwright `use` options (e.g. a viewport
13
- * via `recordOptions.aspectRatio`, or a theme via `use.colorScheme`).
13
+ * recording options and/or forwarded Playwright `use` options.
14
14
  */
15
15
  export type EachVariant = {
16
16
  /** Stable label appended to the video name, e.g. `'mobile'` or `'dark'`. */
@@ -20,6 +20,53 @@ export type EachVariant = {
20
20
  /** Forwarded Playwright `use` options for this variant, e.g. `{ colorScheme: 'dark' }`. */
21
21
  use?: Record<string, unknown>;
22
22
  };
23
+ /** Capture strategy across languages. */
24
+ export type LocalizeMode = 'shared' | 'per-language';
25
+ /**
26
+ * Recording-level localization config, declared via `video.languages(...)`. It
27
+ * drives the registration-time fan-out (one Playwright test per language), so it
28
+ * lives on a builder method rather than in `recordOptions` (a run-time option).
29
+ *
30
+ * `languages` may be `'studio'` (set via `video.languages(studio())`), meaning the
31
+ * set is owned by the ScreenCI web app and injected at record time through the same
32
+ * channel as `--languages`. When the web has selected none yet and there is no
33
+ * `studioSeed`, the set is empty and the render stays pending (the recording still
34
+ * runs so its declared schema reaches the backend to be filled). A `studioSeed`
35
+ * (from `video.languages(studio(['en', 'fi']))`) supplies the initial set the web
36
+ * app starts from but may change.
37
+ */
38
+ export type RecordingLocalize = {
39
+ languages: readonly Lang[] | 'studio';
40
+ mode?: LocalizeMode;
41
+ locales?: Partial<Record<Lang, string>>;
42
+ browserLocale?: boolean;
43
+ /** Initial web-owned set when `languages === 'studio'` (`studio(['en', ...])`). */
44
+ studioSeed?: readonly Lang[];
45
+ };
46
+ /**
47
+ * The capture config for `video.languages(...)`. Code-owns the set when passed
48
+ * directly; the web app owns it (and may edit these fields later) when wrapped in
49
+ * `studio({ ... })`. `languages` may be omitted to infer the set from the
50
+ * per-feature keys (e.g. `narration({ en, fi })`), the usual pairing with
51
+ * `mode: 'shared'`.
52
+ */
53
+ export type LanguagesConfig = {
54
+ languages?: readonly Lang[];
55
+ mode?: LocalizeMode;
56
+ locales?: Partial<Record<Lang, string>>;
57
+ browserLocale?: boolean;
58
+ };
59
+ /**
60
+ * The argument accepted by `video.languages(...)`:
61
+ *
62
+ * - `['en', 'fi']` or `{ languages, mode, ... }`: code owns the config.
63
+ * - `studio()`: the web app owns the set (nothing seeded, render pending).
64
+ * - `studio(['en', 'fi'])`: the web app owns the set, seeded with these languages.
65
+ * - `studio({ languages, mode, ... })`: the web app owns the whole config, seeded
66
+ * with these values (it can edit the set, and later the mode/locales, from the
67
+ * web).
68
+ */
69
+ export type LanguagesArg = StudioPending | StudioNames | StudioSeeded<LanguagesConfig> | readonly Lang[] | LanguagesConfig;
23
70
  /** A single Playwright test to register, fully resolved from the fan-out specs. */
24
71
  export type Registration = {
25
72
  /** Label for the wrapping `describe` block (scopes per-test `use` options). */
@@ -28,7 +75,7 @@ export type Registration = {
28
75
  leafTitle: string;
29
76
  /** Grouping key written to `metadata.videoName`; shared across a video's languages. */
30
77
  videoName: string;
31
- /** Active language for this pass, or `null` in shared / no-localize mode. */
78
+ /** Active language for this pass, or `null` in shared / single-language mode. */
32
79
  language: string | null;
33
80
  /** Browser locale for this pass, or `null` to leave the default. */
34
81
  locale: string | null;
@@ -36,29 +83,69 @@ export type Registration = {
36
83
  recordOptions: Partial<RecordOptions> | null;
37
84
  /** Forwarded Playwright `use` options for this pass, or `null` for none. */
38
85
  use: Record<string, unknown> | null;
39
- /** The normalized localize spec for this video, or `null` when not localized. */
40
- localize: NormalizedLocalize | null;
41
- /** The studio declaration for this video, or `null` when not studio-managed. */
42
- studio: StudioDeclaration | null;
86
+ /** Per-feature declarations carried into the fixtures. */
87
+ narration: NormalizedFeature<LocalizeNarrationValue> | null;
88
+ values: NormalizedFeature<string> | null;
89
+ overlays: NormalizedFeature<OverlayInputOrFactory> | null;
90
+ audio: NormalizedFeature<AudioInput> | null;
91
+ /** Resolved recording-level localize config (languages/mode/locales). */
92
+ recordingLocalize: ResolvedRecordingLocalize;
93
+ };
94
+ /** The recording-level localize config after registration-time resolution. */
95
+ export type ResolvedRecordingLocalize = {
96
+ /** Every language this video records (the resolved set). */
97
+ languages: string[];
98
+ /**
99
+ * Every language this video *defines* (the full code-defined / web-owned set),
100
+ * independent of the `--languages` render filter. `languages` is the subset
101
+ * actually rendered this run; `availableLanguages` is the complete set so the
102
+ * app knows which languages exist even when only some were rendered. A render
103
+ * restricted to `--languages fr` still reports `de`, `en`, ... here, so the app
104
+ * does not treat them as removed-from-code.
105
+ */
106
+ availableLanguages: string[];
107
+ mode: LocalizeMode;
108
+ browserLocale: boolean;
109
+ locales?: Partial<Record<Lang, string>>;
110
+ /** Whether the set is owned by the web app (`video.languages(studio())`). */
111
+ studioOwned: boolean;
112
+ /** Studio-owned set with nothing selected yet: record for metadata, do not render. */
113
+ pending: boolean;
114
+ /**
115
+ * Whether the languages were explicitly declared (via `video.languages(...)`,
116
+ * `'studio'`, or per-feature keys) rather than the implicit `['en']` default. A
117
+ * plain video with no language info stays language-agnostic (no `[lang]` tag).
118
+ */
119
+ explicit: boolean;
43
120
  };
44
121
  /**
45
- * Expand the localize / each fan-out specs into the concrete list of Playwright
46
- * tests to register. Pure and exported for testing.
122
+ * Resolve the recorded language set at registration time. Priority:
123
+ * 1. `video.languages(studio())` -> web-owned: the UNION of the web's current
124
+ * selection (`requestedLanguages`, injected at record time), the `studioSeed`
125
+ * (`studio(['en', ...])`), and the per-feature language keys defined in code.
126
+ * Empty (none anywhere) => pending.
127
+ * 2. explicit `video.languages([...])`.
128
+ * 3. union of per-feature language keys (e.g. `narration({ fr })` -> French).
129
+ * 4. default `['en']`.
130
+ * The `requestedLanguages` filter (CLI / studio injection) intersects 2-4; for the
131
+ * web-owned set (1) it is unioned in instead, since the web only adds languages.
132
+ */
133
+ export declare function resolveRecordingLocalize(state: BuilderState, requestedLanguages: string[] | null): ResolvedRecordingLocalize;
134
+ /**
135
+ * Expand the fan-out specs into the concrete list of Playwright tests to
136
+ * register. Pure and exported for testing.
47
137
  *
48
- * - With no `localize`, each variant yields a single language-agnostic test.
49
- * - In `'shared'` mode, each variant yields one test that carries every language
50
- * (narration is overdubbed at render); the `--languages` filter does not split
51
- * a shared recording.
52
- * - In `'per-language'` mode, each variant yields one test per language,
53
- * intersected with the `--languages` filter when present. A variant whose
54
- * languages are entirely filtered out yields nothing. The browser locale is set
55
- * per language unless `browserLocale` is `false`.
138
+ * - A single resolved language (default, or one inferred/declared) yields one
139
+ * language-agnostic test (`language: null`).
140
+ * - `'shared'` mode yields one test carrying every language (overdubbed at
141
+ * render); the `--languages` filter does not split a shared recording.
142
+ * - `'per-language'` mode yields one test per resolved language.
143
+ * - A studio-owned set with nothing selected yet yields one pending test that
144
+ * records (so its schema reaches the backend) but renders nothing.
56
145
  */
57
146
  export declare function expandRegistrations(params: {
58
147
  baseTitle: string;
59
- localize: NormalizedLocalize | null;
60
- studio: StudioDeclaration | null;
61
- eachVariants: EachVariant[] | null;
148
+ state: BuilderState;
62
149
  requestedLanguages: string[] | null;
63
150
  }): Registration[];
64
151
  type TestCall = {
@@ -77,138 +164,144 @@ type RegistrarTest = TestCall & {
77
164
  /** Converts a union type to an intersection: `A | B` -> `A & B`. */
78
165
  type UnionToIntersection<U> = (U extends unknown ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
79
166
  /**
80
- * Union of every inner key across all languages of a seeded map `M` (e.g. the
81
- * cue names of `{ en: { intro, save }, fi: { intro, save } }`). Uses each
82
- * language's key set before intersecting, so each language must cover the union
83
- * (the identical-keys guarantee, enforced via {@link EnforceIdenticalKeys}).
167
+ * The content names declared by a {@link FeatureArg}. For a Studio marker
168
+ * (`studio([...])`/`studio({...})`) the declared names (or the seed's names); for
169
+ * objects, the union of content-major top-level keys (those that are not language
170
+ * codes or `default`) and the language-major inner keys.
84
171
  */
85
- type SeededKeys<M> = [M] extends [object] ? Extract<keyof UnionToIntersection<{
86
- [L in keyof M]-?: NonNullable<M[L]> extends Record<string, unknown> ? Record<keyof NonNullable<M[L]> & string, unknown> : never;
87
- }[keyof M]>, string> : never;
88
- /** Studio-managed names from a `video.studio({...})` name list. */
89
- type StudioNamesOf<N> = N extends readonly string[] ? N[number] : never;
90
- /** Seeded cue names (declared in the per-language `narration` map). */
91
- type CueNamesOf<S> = S extends {
92
- narration: infer M;
93
- } ? SeededKeys<M> : never;
94
- /** Seeded `text` field names (declared in the per-language `text` map). */
95
- type FieldNamesOf<S> = S extends {
96
- text: infer T;
97
- } ? SeededKeys<T> : never;
172
+ type LangKey = Lang | 'default';
173
+ type LangMajorNamesOf<A> = NonNullable<{
174
+ [K in keyof A & LangKey]: A[K] extends Record<string, unknown> ? Extract<keyof A[K], string> : never;
175
+ }[keyof A & LangKey]>;
176
+ /** Names declared by a Studio marker's `names` tuple. */
177
+ type StudioNamesOf<A> = A extends {
178
+ readonly names: infer N;
179
+ } ? N extends readonly string[] ? N[number] : never : never;
180
+ export type FeatureNamesOf<A> = A extends {
181
+ readonly [STUDIO]: true;
182
+ } ? A extends {
183
+ readonly seed: infer S;
184
+ } ? FeatureNamesOf<S> : StudioNamesOf<A> : A extends object ? Extract<Exclude<keyof A, LangKey>, string> | LangMajorNamesOf<A> : never;
98
185
  /**
99
- * Constrains a seeded map so every language declares the same key set: each
100
- * language is required to provide every key that appears in any language. A
101
- * missing key fails to compile; an unrelated extra key is not part of the union,
102
- * so it is rejected as excess.
186
+ * Builds a feature's fixture controller map so each declared name is a *real*
187
+ * property mapped homomorphically from the object that declared it, rather than
188
+ * a synthesized `Record<Union, V>` entry.
189
+ *
190
+ * Why this matters: `Record<FeatureNamesOf<A>, V>` collapses the names into a
191
+ * string-literal union and then re-synthesizes fresh properties, which severs
192
+ * the link back to the literal that declared each name. An editor then has no
193
+ * source location to jump to, so control-clicking `narration.intro` cannot land
194
+ * on the `intro:` line. A homomorphic map (`[K in keyof Src]`) keeps each
195
+ * property's declaration symbol, which is exactly what "Go to Definition"
196
+ * follows. The `-readonly`/`-?` modifiers drop the modifiers that `const`
197
+ * inference adds to the source literal, so the resolved value type stays
198
+ * identical to the old `Record` form (only navigability is gained).
199
+ *
200
+ * The blank Studio form (`studio([...])`) has no declaring object in code (its
201
+ * content lives in the web app), so it keeps the plain `Record` mapping and is not
202
+ * navigable. A seeded Studio form (`studio({...})`) recurses into its seed object,
203
+ * so it stays navigable like the content-major form.
103
204
  */
104
- type EnforceIdenticalKeys<M, Value> = {
105
- [L in keyof M]: Record<SeededKeys<M>, Value>;
205
+ type ContentMajorControllers<A, V> = {
206
+ -readonly [K in keyof A as K extends LangKey ? never : Extract<K, string>]-?: V;
106
207
  };
208
+ type LangMajorControllers<A, V> = UnionToIntersection<{
209
+ [L in Extract<keyof A, LangKey>]: A[L] extends Record<string, unknown> ? {
210
+ -readonly [K in keyof A[L] as Extract<K, string>]-?: V;
211
+ } : never;
212
+ }[Extract<keyof A, LangKey>]>;
213
+ type FeatureControllers<A, V> = A extends {
214
+ readonly [STUDIO]: true;
215
+ } ? A extends {
216
+ readonly seed: infer S;
217
+ } ? FeatureControllers<S, V> : Record<StudioNamesOf<A>, V> : [Extract<Exclude<keyof A, LangKey>, string>] extends [never] ? LangMajorControllers<A, V> : ContentMajorControllers<A, V>;
107
218
  /**
108
- * Refines a localize spec so its `narration`/`text` maps have identical keys
109
- * across languages. Intersected with the inferred spec `S` at the `.localize`
110
- * call site so a dropped per-language key is a compile error.
111
- */
112
- type ValidateLocalizeSpec<S> = (S extends {
113
- narration: infer M;
114
- } ? {
115
- narration: EnforceIdenticalKeys<M, LocalizeNarrationValue>;
116
- } : object) & (S extends {
117
- text: infer T;
118
- } ? {
119
- text: EnforceIdenticalKeys<T, string>;
120
- } : object);
121
- type NarrationOverrideFor<S> = [CueNamesOf<S>] extends [never] ? NarrationMarkers : Record<CueNamesOf<S>, NarrationCue>;
122
- /**
123
- * The `text` fixture type for a spec: every field is a `string`. A seeded field
124
- * carries its per-language value; a Studio-managed field (`studio.text`) is the
125
- * empty string until it is set in Studio (the recording still succeeds). In
126
- * `shared` mode there is no per-language injection, so seeded fields are also
127
- * empty until provided.
219
+ * Overlays mirror {@link FeatureControllers} but resolve each name's controller
220
+ * type from its declared input (`OverlayControllerFor<A[K]>`), so the precise
221
+ * controller variant is preserved alongside navigability. Language-major and
222
+ * Studio names fall back to the broad {@link OverlayController}, matching the
223
+ * prior behavior.
128
224
  */
129
- type TextOverrideFor<S> = [FieldNamesOf<S>] extends [never] ? TextValues : Record<FieldNamesOf<S>, string>;
130
- /**
131
- * The fixture arg overrides a `localize(spec)` contributes: `narration` typed to
132
- * the spec's cue names (only when the medium has narration) and `text` typed to
133
- * its field names. Keys absent from `Args` (e.g. `narration` on a screenshot)
134
- * are not added.
135
- */
136
- type LocalizeOverrides<Args, S> = ('narration' extends keyof Args ? {
137
- narration: NarrationOverrideFor<S>;
138
- } : object) & ('text' extends keyof Args ? {
139
- text: TextOverrideFor<S>;
140
- } : object);
141
- /** Studio-managed names of each kind declared in a `video.studio({...})` spec. */
142
- type StudioNarrationNamesOf<SD> = SD extends {
143
- narration: infer N;
144
- } ? StudioNamesOf<N> : never;
145
- type StudioTextNamesOf<SD> = SD extends {
146
- text: infer N;
147
- } ? StudioNamesOf<N> : never;
148
- type StudioOverlayNamesOf<SD> = SD extends {
149
- overlays: infer N;
150
- } ? StudioNamesOf<N> : never;
151
- type StudioAudioNamesOf<SD> = SD extends {
152
- audio: infer N;
153
- } ? StudioNamesOf<N> : never;
154
- /**
155
- * The fixture arg overrides a `studio(decl)` contributes: each declared name
156
- * list types its fixture (`narration`/`text`/`overlays`/`audio`) to the exact
157
- * names so a typo is a compile error. Keys absent from `Args` (e.g. `narration`
158
- * on a screenshot) or kinds not declared are not added. When combined with
159
- * `localize(...)`, the per-fixture records intersect, unioning the names.
160
- */
161
- type StudioOverrides<Args, SD> = ('narration' extends keyof Args ? [StudioNarrationNamesOf<SD>] extends [never] ? object : {
162
- narration: Record<StudioNarrationNamesOf<SD>, NarrationCue>;
163
- } : object) & ('text' extends keyof Args ? [StudioTextNamesOf<SD>] extends [never] ? object : {
164
- text: Record<StudioTextNamesOf<SD>, string>;
165
- } : object) & ('overlays' extends keyof Args ? [StudioOverlayNamesOf<SD>] extends [never] ? object : {
166
- overlays: Record<StudioOverlayNamesOf<SD>, OverlayController>;
167
- } : object) & ('audio' extends keyof Args ? [StudioAudioNamesOf<SD>] extends [never] ? object : {
168
- audio: Record<StudioAudioNamesOf<SD>, AudioController>;
169
- } : object);
170
- type MergeArgs<Args, O> = Omit<Args, keyof O> & O;
225
+ type OverlayContentMajorControllers<A> = {
226
+ -readonly [K in keyof A as K extends LangKey ? never : Extract<K, string>]-?: OverlayControllerFor<A[K]>;
227
+ };
228
+ type OverlayLangMajorControllers<A> = UnionToIntersection<{
229
+ [L in Extract<keyof A, LangKey>]: A[L] extends Record<string, unknown> ? {
230
+ -readonly [K in keyof A[L] as Extract<K, string>]-?: OverlayController;
231
+ } : never;
232
+ }[Extract<keyof A, LangKey>]>;
233
+ type OverlayControllers<A> = A extends {
234
+ readonly [STUDIO]: true;
235
+ } ? A extends {
236
+ readonly seed: infer S;
237
+ } ? OverlayControllers<S> : Record<StudioNamesOf<A>, OverlayController> : [Extract<Exclude<keyof A, LangKey>, string>] extends [never] ? OverlayLangMajorControllers<A> : OverlayContentMajorControllers<A>;
238
+ type NarrationOverrideFor<Args, A> = 'narration' extends keyof Args ? [FeatureNamesOf<A>] extends [never] ? object : {
239
+ narration: FeatureControllers<A, NarrationCue>;
240
+ } : object;
241
+ type ValuesOverrideFor<Args, A> = 'values' extends keyof Args ? [FeatureNamesOf<A>] extends [never] ? object : {
242
+ values: FeatureControllers<A, string>;
243
+ } : object;
244
+ type OverlayOverrideFor<Args, A> = 'overlays' extends keyof Args ? [FeatureNamesOf<A>] extends [never] ? object : {
245
+ overlays: OverlayControllers<A>;
246
+ } : object;
247
+ type AudioOverrideFor<Args, A> = 'audio' extends keyof Args ? [FeatureNamesOf<A>] extends [never] ? object : {
248
+ audio: FeatureControllers<A, AudioController>;
249
+ } : object;
250
+ type MergeArgs<Args, O> = {
251
+ [K in keyof Args | keyof O]: K extends keyof O ? O[K] : K extends keyof Args ? Args[K] : never;
252
+ };
171
253
  type BodyFn<Args> = (args: Args, testInfo: TestInfo) => void | Promise<void>;
172
254
  /**
173
- * A chainable fan-out builder. Callable to register the test(s), and exposes
174
- * `.localize()` / `.each()` to refine the fan-out before the terminal call. `O`
175
- * accumulates the typed fixture overrides from `.localize(...)` so the body sees
176
- * `narration`/`text` typed to the spec's names.
255
+ * A chainable fan-out builder. Callable to register the test(s), and exposes the
256
+ * per-feature declaration methods plus `.languages()` / `.each()` to refine the
257
+ * fan-out. `O` accumulates the typed fixture overrides so the body sees
258
+ * `narration`/`values`/`overlays`/`audio` typed to the declared names.
177
259
  */
178
260
  type BuilderTerminal<Args, O> = {
179
261
  (title: string, body: BodyFn<MergeArgs<Args, O>>): void;
180
262
  (title: string, details: TestDetails, body: BodyFn<MergeArgs<Args, O>>): void;
181
263
  };
182
- export interface VideoBuilder<Args, O = object> extends BuilderTerminal<Args, O> {
183
- /** Record one localized pass per language (or one shared capture). */
184
- localize<const S extends LocalizeSpec>(spec: S & ValidateLocalizeSpec<S>): VideoBuilder<Args, O & LocalizeOverrides<Args, S>>;
185
- /**
186
- * Defer render/record options and declare Studio-managed narration, text,
187
- * overlays, and audio (configured in the ScreenCI web app). The declared name
188
- * lists type the matching fixtures to the exact names.
189
- */
190
- studio<const SD extends StudioDeclaration>(declaration: SD): VideoBuilder<Args, O & StudioOverrides<Args, SD>>;
264
+ /** The fixture keys a medium supports (videos: all; screenshots: values+overlays). */
265
+ export type FeatureKey = 'narration' | 'values' | 'overlays' | 'audio';
266
+ export interface MediaBuilder<Args, O = object> extends BuilderTerminal<Args, O> {
267
+ /** Declare narration cues: Studio-owned (`studio([...])`) or code values (object). */
268
+ narration<const A extends FeatureArg<LocalizeNarrationValue>>(arg: A): MediaBuilder<Args, O & NarrationOverrideFor<Args, A>>;
269
+ /** Declare on-screen values fields. */
270
+ values<const A extends FeatureArg<string>>(arg: A): MediaBuilder<Args, O & ValuesOverrideFor<Args, A>>;
271
+ /** Declare overlays. */
272
+ overlays<const A extends FeatureArg<OverlayInputOrFactory>>(arg: A): MediaBuilder<Args, O & OverlayOverrideFor<Args, A>>;
273
+ /** Declare background-audio tracks. */
274
+ audio<const A extends FeatureArg<AudioInput>>(arg: A): MediaBuilder<Args, O & AudioOverrideFor<Args, A>>;
275
+ /** Declare the recorded language set / capture mode. */
276
+ languages(arg: LanguagesArg): MediaBuilder<Args, O>;
191
277
  /** Produce a separate video per variant (viewport, theme, ...). */
192
- each(variants: EachVariant[]): VideoBuilder<Args, O>;
193
- /** Register the localized test(s) with `test.only`. */
278
+ each(variants: EachVariant[]): MediaBuilder<Args, O>;
194
279
  only: BuilderTerminal<Args, O>;
195
- /** Register the localized test(s) with `test.skip`. */
196
280
  skip: BuilderTerminal<Args, O>;
197
- /** Register the localized test(s) with `test.fixme`. */
198
281
  fixme: BuilderTerminal<Args, O>;
199
- /** Register the localized test(s) with `test.fail`. */
200
282
  fail: BuilderTerminal<Args, O>;
201
283
  }
202
- type BuilderState = {
203
- localize: NormalizedLocalize | null;
204
- studio: StudioDeclaration | null;
284
+ /** Backwards-compatible alias used by the video/screenshot entry points. */
285
+ export type VideoBuilder<Args, O = object> = MediaBuilder<Args, O>;
286
+ export type BuilderState = {
287
+ narration: NormalizedFeature<LocalizeNarrationValue> | null;
288
+ values: NormalizedFeature<string> | null;
289
+ overlays: NormalizedFeature<OverlayInputOrFactory> | null;
290
+ audio: NormalizedFeature<AudioInput> | null;
291
+ recordingLocalize: RecordingLocalize | null;
205
292
  eachVariants: EachVariant[] | null;
293
+ /** Fixtures this medium supports; declaring an unsupported one throws. */
294
+ features: ReadonlySet<FeatureKey>;
206
295
  };
296
+ /** The full set of feature fixtures for videos. */
297
+ export declare const VIDEO_FEATURES: ReadonlySet<FeatureKey>;
298
+ /** Stills are silent: only values + overlays. */
299
+ export declare const SCREENSHOT_FEATURES: ReadonlySet<FeatureKey>;
207
300
  /**
208
- * Create a fan-out builder bound to a registrar test instance. `video.localize`
209
- * and `video.each` are the `localize`/`each` methods of a root builder created
210
- * with this factory. `Args` is the medium's fixture arg type (video/screenshot).
301
+ * Create a fan-out builder bound to a registrar test instance. `Args` is the
302
+ * medium's fixture arg type (video/screenshot); `features` selects which
303
+ * per-feature methods are valid for the medium.
211
304
  */
212
- export declare function createVideoBuilder<Args>(test: RegistrarTest, state?: BuilderState): VideoBuilder<Args>;
213
- export {};
305
+ export declare function createVideoBuilder<Args>(test: RegistrarTest, features?: ReadonlySet<FeatureKey>, state?: BuilderState): MediaBuilder<Args>;
306
+ export type { VoiceConfig };
214
307
  //# sourceMappingURL=builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"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"}