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,4 +1,5 @@
1
1
  import { supportedLanguages } from './voices.js';
2
+ import { validateCrop, resolveSourceTrim } from './sourceTrim.js';
2
3
  const SUPPORTED_LANGUAGE_SET = new Set(supportedLanguages);
3
4
  function dedupe(values) {
4
5
  const seen = new Set();
@@ -27,7 +28,7 @@ function collectSeededNames(seed) {
27
28
  }
28
29
  return out;
29
30
  }
30
- function normalizeCueValue(name, value) {
31
+ export function normalizeCueValue(name, value) {
31
32
  if (typeof value === 'string') {
32
33
  return { kind: 'text', text: value };
33
34
  }
@@ -44,11 +45,18 @@ function normalizeCueValue(name, value) {
44
45
  throw new Error(`localize(): narration cue "${name}" must be a string, a { cue } object, or a { media | path } object.`);
45
46
  }
46
47
  const path = 'media' in value ? value.media : value.path;
48
+ const label = `localize() narration cue "${name}" media "${path}"`;
49
+ if (value.crop !== undefined)
50
+ validateCrop(label, value.crop);
51
+ const { sourceStart, sourceEnd } = resolveSourceTrim(label, value.start, value.end);
47
52
  return {
48
53
  kind: 'media',
49
54
  path,
50
55
  ...(value.subtitle !== undefined && { subtitle: value.subtitle }),
51
56
  ...(value.volume !== undefined && { volume: value.volume }),
57
+ ...(value.crop !== undefined && { crop: value.crop }),
58
+ ...(sourceStart !== undefined && { sourceStart }),
59
+ ...(sourceEnd !== undefined && { sourceEnd }),
52
60
  };
53
61
  }
54
62
  /** Languages a seeded map provides values for, in first-seen order. */
@@ -107,7 +115,7 @@ function normalizeNarration(input) {
107
115
  seedLangs: seedLanguages(input),
108
116
  };
109
117
  }
110
- function normalizeText(input) {
118
+ function normalizeValues(input) {
111
119
  const hasSeed = input !== undefined && Object.keys(input).length > 0;
112
120
  if (!hasSeed) {
113
121
  return { normalized: null, seedLangs: [] };
@@ -147,19 +155,19 @@ function normalizeVoice(voice, languages) {
147
155
  return out;
148
156
  }
149
157
  /**
150
- * Normalize and validate a localize spec: resolve narration/text into seeded
158
+ * Normalize and validate a localize spec: resolve narration/values into seeded
151
159
  * values + Studio name lists, infer the language set (union of seeded keys and
152
160
  * the explicit `languages`), and validate disjointness, identical seeded keys,
153
161
  * and voice coverage. Pure and exported for testing.
154
162
  */
155
163
  export function normalizeLocalizeSpec(spec) {
156
164
  const { normalized: narration, seedLangs: narrationLangs } = normalizeNarration(spec.narration);
157
- const { normalized: text, seedLangs: textLangs } = normalizeText(spec.text);
165
+ const { normalized: values, seedLangs: valuesLangs } = normalizeValues(spec.values);
158
166
  const hasExplicitLanguages = spec.languages !== undefined && spec.languages.length > 0;
159
- if (narration === null && text === null && !hasExplicitLanguages) {
160
- throw new Error('localize(): nothing to localize. Provide narration and/or text (seeded maps), or pass `languages: [...]` when every cue/field is Studio-managed via video.studio({...}).');
167
+ if (narration === null && values === null && !hasExplicitLanguages) {
168
+ throw new Error('localize(): nothing to localize. Provide narration and/or values (seeded maps), or pass `languages: [...]` when every cue/field is Studio-managed via video.studio({...}).');
161
169
  }
162
- const seededLanguages = dedupe([...narrationLangs, ...textLangs]);
170
+ const seededLanguages = dedupe([...narrationLangs, ...valuesLangs]);
163
171
  let languages;
164
172
  if (hasExplicitLanguages) {
165
173
  languages = dedupe([...spec.languages, ...seededLanguages]);
@@ -168,7 +176,7 @@ export function normalizeLocalizeSpec(spec) {
168
176
  languages = seededLanguages;
169
177
  }
170
178
  else {
171
- throw new Error('localize(): no languages. Pass `languages: [...]`, or seed narration/text with per-language values.');
179
+ throw new Error('localize(): no languages. Pass `languages: [...]`, or seed narration/values with per-language values.');
172
180
  }
173
181
  for (const lang of languages) {
174
182
  if (!SUPPORTED_LANGUAGE_SET.has(lang)) {
@@ -178,8 +186,8 @@ export function normalizeLocalizeSpec(spec) {
178
186
  if (narration !== null) {
179
187
  assertIdenticalSeededKeys('narration', narration.seedByLang, narration.seededNames, languages);
180
188
  }
181
- if (text !== null) {
182
- assertIdenticalSeededKeys('text', text.seedByLang, text.seededNames, languages);
189
+ if (values !== null) {
190
+ assertIdenticalSeededKeys('values', values.seedByLang, values.seededNames, languages);
183
191
  }
184
192
  const voiceByLang = normalizeVoice(spec.voice, languages);
185
193
  return {
@@ -188,7 +196,7 @@ export function normalizeLocalizeSpec(spec) {
188
196
  browserLocale: spec.browserLocale ?? true,
189
197
  ...(spec.locales !== undefined && { locales: spec.locales }),
190
198
  narration,
191
- text,
199
+ values,
192
200
  voiceByLang,
193
201
  };
194
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"localize.js","sourceRoot":"","sources":["../../src/localize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localize.js","sourceRoot":"","sources":["../../src/localize.ts"],"names":[],"mappings":"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"}
@@ -1,53 +1,49 @@
1
1
  import { type NarrationCue } from './cue.js';
2
- import type { NormalizedLocalize } from './localize.js';
3
- import type { TextOverrides } from './runtimeMode.js';
2
+ import { type LocalizeNarrationValue, type VoiceConfig } from './localize.js';
3
+ import type { NormalizedFeature } from './declare.js';
4
+ import type { ValuesOverrides } from './runtimeMode.js';
4
5
  import type { TopLevelVoiceConfig } from './voiceConfig.js';
5
6
  import type { RenderOptions } from './types.js';
6
7
  /**
7
8
  * 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).
9
+ * Lowest-priority entry in the voice cascade: the per-cue `voice` overrides it.
10
+ * When render options are deferred to Studio there is no code voice here.
12
11
  */
13
12
  export declare function narrationVoiceConfigFromRenderOptions(renderOptions: RenderOptions | undefined, studioRenderOptions: boolean): TopLevelVoiceConfig | undefined;
14
13
  /** Narration markers keyed by cue name. Markers carry timing, never text. */
15
14
  export type NarrationMarkers = Record<string, NarrationCue>;
16
- /** Per-language text field values, keyed by field name. */
17
- export type TextValues = Record<string, string>;
15
+ /** Per-language values fields, keyed by field name. */
16
+ export type Values = Record<string, string>;
18
17
  /**
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.
18
+ * Build the `narration` marker object. Code cues emit translations (resolved per
19
+ * `(cue, language)`, filtered to the active language by the recorder); studio
20
+ * (array) cues emit studio cue starts whose text is owned by the web app.
26
21
  */
27
- export declare function buildNarrationMarkers(localize: NormalizedLocalize | undefined, defaultVoice?: TopLevelVoiceConfig, studioNarration?: readonly string[]): NarrationMarkers;
22
+ export declare function buildNarrationMarkers(narration: NormalizedFeature<LocalizeNarrationValue> | null | undefined, languages: string[], defaultVoice?: TopLevelVoiceConfig, voiceByLang?: Partial<Record<string, VoiceConfig>>, anchorFile?: string): NarrationMarkers;
28
23
  /**
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).
24
+ * Resolve the `values` fields for the active language: a Studio override wins
25
+ * over the per-language seed, which wins over the shared value, then the empty
26
+ * string (Studio-owned fields stay empty until set in the web app).
34
27
  */
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. */
28
+ export declare function buildValues(feature: NormalizedFeature<string> | null | undefined, language: string | undefined, overrides?: ValuesOverrides | null): Values;
29
+ /** A localized values declaration emitted to the backend at recording start. */
30
+ export type ValuesDeclaration = {
31
+ /** Every field name (code then Studio-managed), in declared order. */
39
32
  fields: string[];
40
- /** Studio-managed field names (declared via `studio.text`, no code seed). */
33
+ /** Studio-managed field names (`studio([...])`/`studio({...})`). */
41
34
  studioFields: string[];
42
- /** Code seeds keyed `{ [language]: { [field]: value } }`. Omitted when empty. */
35
+ /**
36
+ * Seeds keyed `{ [language]: { [field]: value } }`: code-owned fields and seeded
37
+ * Studio fields (`studio({...})`). A seeded Studio field appears in both
38
+ * `studioFields` (the web app owns it) and `seed` (its initial value). Omitted
39
+ * when empty.
40
+ */
43
41
  seed?: Record<string, Record<string, string>>;
44
42
  };
45
43
  /**
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`.
44
+ * Build the declaration of `values` fields to emit at recording start so the
45
+ * backend learns which fields exist (and their code seeds) and can present the
46
+ * Studio-managed ones for the user to fill. Returns `null` when none declared.
51
47
  */
52
- export declare function buildTextDeclaration(localize: NormalizedLocalize | undefined, language: string | undefined, studioText?: readonly string[]): TextDeclaration | null;
48
+ export declare function buildValuesDeclaration(feature: NormalizedFeature<string> | null | undefined, language: string | undefined): ValuesDeclaration | null;
53
49
  //# sourceMappingURL=localizeRuntime.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"localizeRuntime.d.ts","sourceRoot":"","sources":["../../src/localizeRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EAEL,KAAK,sBAAsB,EAG3B,KAAK,WAAW,EACjB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;GAIG;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,uDAAuD;AACvD,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAkC3C;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,IAAI,GAAG,SAAS,EACvE,SAAS,EAAE,MAAM,EAAE,EACnB,YAAY,CAAC,EAAE,mBAAmB,EAClC,WAAW,GAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM,EAItD,UAAU,CAAC,EAAE,MAAM,GAClB,gBAAgB,CAQlB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACrD,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,GACjC,MAAM,CAUR;AAED,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,sEAAsE;IACtE,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,oEAAoE;IACpE,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC9C,CAAA;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACrD,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,iBAAiB,GAAG,IAAI,CAyB1B"}
@@ -1,10 +1,9 @@
1
- import { buildLocalizedNarrationCues, buildStudioNarrationCues, } from './cue.js';
1
+ import { buildLocalizedNarrationCues } from './cue.js';
2
+ import { normalizeCueValue, } from './localize.js';
2
3
  /**
3
4
  * 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).
5
+ * Lowest-priority entry in the voice cascade: the per-cue `voice` overrides it.
6
+ * When render options are deferred to Studio there is no code voice here.
8
7
  */
9
8
  export function narrationVoiceConfigFromRenderOptions(renderOptions, studioRenderOptions) {
10
9
  if (studioRenderOptions || renderOptions === undefined) {
@@ -13,65 +12,91 @@ export function narrationVoiceConfigFromRenderOptions(renderOptions, studioRende
13
12
  return renderOptions.narration?.voice;
14
13
  }
15
14
  /**
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.
15
+ * Convert a per-feature narration declaration into the normalized shape the voice
16
+ * / translation pipeline consumes. Each language resolves `byLang[lang] ?? shared`
17
+ * (the fallback-to-shared rule); a studio (array) declaration carries names only.
23
18
  */
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) };
19
+ function featureToNormalizedNarration(feature, languages) {
20
+ if (feature === null)
21
+ return null;
22
+ const seedByLang = {};
23
+ for (const lang of languages) {
24
+ const cues = {};
25
+ // Seed every named cue that has a value: code-owned cues and seeded Studio
26
+ // cues (`studio({...})`). Blank Studio cues (`studio([...])`) have no value, so
27
+ // they carry no seed (the web app owns their text). `buildLocalizedNarrationCues`
28
+ // short-circuits Studio names, so a seed here is backend-facing metadata only.
29
+ for (const name of feature.names) {
30
+ const value = feature.byLang[lang]?.[name] ?? feature.shared[name];
31
+ if (value !== undefined)
32
+ cues[name] = normalizeCueValue(name, value);
33
+ }
34
+ if (Object.keys(cues).length > 0)
35
+ seedByLang[lang] = cues;
36
+ }
37
+ return {
38
+ cueNames: feature.names,
39
+ studioNames: feature.studioNames,
40
+ seededNames: feature.codeNames,
41
+ seedByLang,
42
+ };
31
43
  }
32
44
  /**
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).
45
+ * Build the `narration` marker object. Code cues emit translations (resolved per
46
+ * `(cue, language)`, filtered to the active language by the recorder); studio
47
+ * (array) cues emit studio cue starts whose text is owned by the web app.
38
48
  */
39
- export function buildTextValues(localize, language, overrides, studioText = []) {
40
- const text = localize?.text;
41
- const fieldNames = [...(text?.fieldNames ?? []), ...studioText];
42
- if (fieldNames.length === 0)
49
+ export function buildNarrationMarkers(narration, languages, defaultVoice, voiceByLang = {},
50
+ // The `.screenci` script that media paths resolve against. When provided, the
51
+ // file-backed cues' media is pre-warmed (hashed) up front so their start()
52
+ // does not pay the read on the recording timeline. Omitted outside recording.
53
+ anchorFile) {
54
+ const normalized = featureToNormalizedNarration(narration ?? null, languages);
55
+ return buildLocalizedNarrationCues(normalized, voiceByLang, defaultVoice, anchorFile);
56
+ }
57
+ /**
58
+ * Resolve the `values` fields for the active language: a Studio override wins
59
+ * over the per-language seed, which wins over the shared value, then the empty
60
+ * string (Studio-owned fields stay empty until set in the web app).
61
+ */
62
+ export function buildValues(feature, language, overrides) {
63
+ if (!feature || feature.names.length === 0)
43
64
  return {};
44
65
  const override = language !== undefined ? overrides?.[language] : undefined;
45
- const seed = language !== undefined && text
46
- ? text.seedByLang[language]
47
- : undefined;
66
+ const langSeed = language !== undefined ? feature.byLang[language] : undefined;
48
67
  const values = {};
49
- for (const field of fieldNames) {
50
- values[field] = override?.[field] ?? seed?.[field] ?? '';
68
+ for (const field of feature.names) {
69
+ values[field] =
70
+ override?.[field] ?? langSeed?.[field] ?? feature.shared[field] ?? '';
51
71
  }
52
72
  return values;
53
73
  }
54
74
  /**
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`.
75
+ * Build the declaration of `values` fields to emit at recording start so the
76
+ * backend learns which fields exist (and their code seeds) and can present the
77
+ * Studio-managed ones for the user to fill. Returns `null` when none declared.
60
78
  */
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)
79
+ export function buildValuesDeclaration(feature, language) {
80
+ if (!feature || feature.names.length === 0)
66
81
  return null;
67
82
  const declaration = {
68
- fields,
69
- studioFields: [...studioText],
83
+ fields: feature.names,
84
+ studioFields: feature.studioNames,
70
85
  };
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 };
86
+ if (language !== undefined) {
87
+ const merged = {
88
+ ...feature.shared,
89
+ ...(feature.byLang[language] ?? {}),
90
+ };
91
+ // Seed every named field that has a value: code-owned fields and seeded Studio
92
+ // fields (`studio({...})`). Blank Studio fields (`studio([...])`) have no value.
93
+ const codeSeed = {};
94
+ for (const field of feature.names) {
95
+ if (merged[field] !== undefined)
96
+ codeSeed[field] = merged[field];
97
+ }
98
+ if (Object.keys(codeSeed).length > 0) {
99
+ declaration.seed = { [language]: codeSeed };
75
100
  }
76
101
  }
77
102
  return declaration;
@@ -1 +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"}
1
+ {"version":3,"file":"localizeRuntime.js","sourceRoot":"","sources":["../../src/localizeRuntime.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  export declare const logger: {
2
2
  info: (...args: unknown[]) => void;
3
3
  warn: (...args: unknown[]) => void;
4
+ /**
5
+ * Informational message printed in cyan. Use for non-error notices surfaced
6
+ * to the author (for example, backend `notices` shown at record time).
7
+ */
8
+ notice: (message: string) => void;
4
9
  error: (...args: unknown[]) => void;
5
10
  };
6
11
  export default logger;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;oBACD,OAAO,EAAE;oBAGT,OAAO,EAAE;qBAGR,OAAO,EAAE;CAG3B,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;oBACD,OAAO,EAAE;oBAGT,OAAO,EAAE;IAGzB;;;OAGG;sBACe,MAAM;qBAGP,OAAO,EAAE;CAG3B,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -6,6 +6,13 @@ export const logger = {
6
6
  warn: (...args) => {
7
7
  console.warn(pc.yellow('WARNING'), ...args);
8
8
  },
9
+ /**
10
+ * Informational message printed in cyan. Use for non-error notices surfaced
11
+ * to the author (for example, backend `notices` shown at record time).
12
+ */
13
+ notice: (message) => {
14
+ console.log(pc.cyan(message));
15
+ },
9
16
  error: (...args) => {
10
17
  console.error(...args);
11
18
  },
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;IAC7C,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IACxB,CAAC;CACF,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;IAC7C,CAAC;IACD;;;OAGG;IACH,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAC/B,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IACxB,CAAC;CACF,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"manualZoom.d.ts","sourceRoot":"","sources":["../../src/manualZoom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,kBAAkB,CAAA;AAqBrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AASjD,MAAM,MAAM,eAAe,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AACtD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,eAAe,CAAA;AAiIlD,wBAAsB,MAAM,CAC1B,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,SAAS,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6D5E"}
1
+ {"version":3,"file":"manualZoom.d.ts","sourceRoot":"","sources":["../../src/manualZoom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,kBAAkB,CAAA;AAsBrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AASjD,MAAM,MAAM,eAAe,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AACtD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,eAAe,CAAA;AAoIlD,wBAAsB,MAAM,CAC1B,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,SAAS,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8D5E"}
@@ -2,7 +2,7 @@ import { DEFAULT_ZOOM_OPTIONS } from './defaults.js';
2
2
  import { ScreenciError } from './errors.js';
3
3
  import { changeFocus, resolveFixedFocusViewportSize, resolveTargetRectPosition, } from './changeFocus.js';
4
4
  import { getActiveAutoZoomRecorder, getActiveZoomPage, getAutoZoomState, setCurrentZoomViewport, setZoomMode, } from './autoZoom.js';
5
- import { buildZoomEvent, resolveAutoZoomOptions, resolveZoomTarget, } from './zoom.js';
5
+ import { buildZoomEvent, resolveAutoZoomOptions, resolveEffectiveDuration, resolveZoomTarget, } from './zoom.js';
6
6
  import { resolveRecordingTimingDuration } from './runtimeMode.js';
7
7
  function sleep(ms) {
8
8
  return new Promise((resolve) => setTimeout(resolve, resolveRecordingTimingDuration(ms)));
@@ -59,13 +59,15 @@ async function zoomToPoint(point, options = {}) {
59
59
  }),
60
60
  currentZoomEnd,
61
61
  });
62
+ const isZoomOut = targetViewport.width >= currentZoomEnd.size.widthPx;
63
+ const effectiveDuration = resolveEffectiveDuration(resolvedOptions, isZoomOut);
62
64
  const focusChangeStartMs = Date.now();
63
65
  if (resolvedOptions.preZoomDelay > 0) {
64
66
  await sleep(resolvedOptions.preZoomDelay);
65
67
  }
66
68
  const zoomStartMs = Date.now();
67
- if (resolvedOptions.duration > 0) {
68
- await sleep(resolvedOptions.duration);
69
+ if (effectiveDuration > 0) {
70
+ await sleep(effectiveDuration);
69
71
  }
70
72
  const zoomEndMs = Date.now();
71
73
  if (resolvedOptions.postZoomDelay > 0) {
@@ -142,13 +144,14 @@ export async function resetZoom(options = {}) {
142
144
  heightPx: viewport.viewportSize.height,
143
145
  },
144
146
  };
147
+ const resetDuration = resolvedOptions.zoomOutDuration;
145
148
  const focusChangeStartMs = Date.now();
146
149
  if (resolvedOptions.preZoomDelay > 0) {
147
150
  await sleep(resolvedOptions.preZoomDelay);
148
151
  }
149
152
  const zoomStartMs = Date.now();
150
- if (resolvedOptions.duration > 0) {
151
- await sleep(resolvedOptions.duration);
153
+ if (resetDuration > 0) {
154
+ await sleep(resetDuration);
152
155
  }
153
156
  const zoomEndMs = Date.now();
154
157
  if (resolvedOptions.postZoomDelay > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"manualZoom.js","sourceRoot":"","sources":["../../src/manualZoom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manualZoom.js","sourceRoot":"","sources":["../../src/manualZoom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Hides the narration (camera PIP) from this point on.
3
+ *
4
+ * Call {@link showNarration} to make it visible again.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * await hideNarration()
9
+ * await page.getByRole('button', { name: 'Submit' }).click()
10
+ * await showNarration()
11
+ * ```
12
+ */
13
+ export declare function hideNarration(): Promise<void>;
14
+ /**
15
+ * Shows the narration (camera PIP) after it was hidden by {@link hideNarration}.
16
+ * No-op when the narration is already visible.
17
+ */
18
+ export declare function showNarration(): Promise<void>;
19
+ //# sourceMappingURL=narrationVisibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrationVisibility.d.ts","sourceRoot":"","sources":["../../src/narrationVisibility.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAGnD;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAGnD"}
@@ -0,0 +1,26 @@
1
+ import { getActiveHideRecorder } from './timelineBlock.js';
2
+ /**
3
+ * Hides the narration (camera PIP) from this point on.
4
+ *
5
+ * Call {@link showNarration} to make it visible again.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * await hideNarration()
10
+ * await page.getByRole('button', { name: 'Submit' }).click()
11
+ * await showNarration()
12
+ * ```
13
+ */
14
+ export async function hideNarration() {
15
+ const recorder = getActiveHideRecorder();
16
+ recorder.addNarrationHide();
17
+ }
18
+ /**
19
+ * Shows the narration (camera PIP) after it was hidden by {@link hideNarration}.
20
+ * No-op when the narration is already visible.
21
+ */
22
+ export async function showNarration() {
23
+ const recorder = getActiveHideRecorder();
24
+ recorder.addNarrationShow();
25
+ }
26
+ //# sourceMappingURL=narrationVisibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrationVisibility.js","sourceRoot":"","sources":["../../src/narrationVisibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAA;IACxC,QAAQ,CAAC,gBAAgB,EAAE,CAAA;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAA;IACxC,QAAQ,CAAC,gBAAgB,EAAE,CAAA;AAC7B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { spawn } from 'child_process';
2
+ export type BrowserOpenSpec = {
3
+ command: string;
4
+ args: string[];
5
+ };
6
+ export type OpenBrowserResult = {
7
+ opened: true;
8
+ } | {
9
+ opened: false;
10
+ reason: string;
11
+ };
12
+ /**
13
+ * Resolve the platform-specific command that opens a URL in the default
14
+ * browser: `open` on macOS, `cmd /c start` on Windows, and `xdg-open`
15
+ * everywhere else (Linux, BSD). The empty `""` on Windows is `start`'s window
16
+ * title argument, so a quoted URL is not consumed as the title.
17
+ */
18
+ export declare function resolveBrowserOpenSpec(url: string, platform?: NodeJS.Platform): BrowserOpenSpec;
19
+ /**
20
+ * Try to open `url` in the user's default browser. Best-effort: a synchronous
21
+ * spawn failure or an asynchronous launch error (e.g. `xdg-open` missing on a
22
+ * minimal Linux box) resolves to `{ opened: false, reason }` instead of
23
+ * throwing. A resolved `{ opened: true }` only means the launch was dispatched,
24
+ * not that a browser window actually appeared, so callers still surface the
25
+ * link as a fallback.
26
+ *
27
+ * Dependency-injected (`platform`, `spawnFn`) so tests can drive both outcomes
28
+ * without a real terminal or browser.
29
+ */
30
+ export declare function openUrlInBrowser(url: string, options?: {
31
+ platform?: NodeJS.Platform;
32
+ spawnFn?: typeof spawn;
33
+ }): Promise<OpenBrowserResult>;
34
+ //# sourceMappingURL=openBrowser.d.ts.map