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
package/dist/src/cue.js CHANGED
@@ -1,16 +1,15 @@
1
+ import { parseTimelineOffset } from './timelineOffset.js';
2
+ import { validateCrop, resolveSourceTrim } from './sourceTrim.js';
1
3
  import { supportedLanguages, voices, } from './voices.js';
2
4
  import { isCustomVoiceRef } from './customVoiceRef.js';
3
5
  import { MAX_AUDIO_LEVEL } from './asset.js';
4
6
  import { isInsideHide } from './hide.js';
5
7
  import { logger } from './logger.js';
6
- import { readFile } from 'fs/promises';
7
- import { createHash } from 'crypto';
8
- import { dirname, resolve } from 'path';
8
+ import { assetCandidatePaths, hashAssetFile, prewarmAssetFile, } from './assetHash.js';
9
9
  import { getScreenCIRuntimeContext, getRuntimeCueRecorder, resetCueRuntimeState, setRuntimeCueRecorder, } from './runtimeContext.js';
10
10
  import { resolveRecordingTimingDuration } from './runtimeMode.js';
11
11
  // One frame at 24fps — ensures at least one rendered frame captures each cue state.
12
12
  export const ONE_FRAME_MS = 1000 / 24;
13
- const ELEVENLABS_DOCS_URL = 'https://screenci.com/docs/guides/narration-and-localization';
14
13
  // Blocking sleep — spin until the elapsed time has passed
15
14
  let sleepFn = (ms) => {
16
15
  const end = performance.now() + ms;
@@ -44,44 +43,44 @@ export async function validateCustomVoiceRefs(_testFilePath) {
44
43
  // current test file path from the runtime context, so there is nothing to
45
44
  // pre-validate here.
46
45
  }
46
+ const warnedMissingAssetPaths = new Set();
47
+ function warnMissingNarrationAsset(assetPath) {
48
+ if (warnedMissingAssetPaths.has(assetPath))
49
+ return;
50
+ warnedMissingAssetPaths.add(assetPath);
51
+ logger.warn(`Locally missing narration media: ${assetPath}. It will be reused from a previous upload of this video if available, otherwise the upload fails.`);
52
+ }
53
+ export function resetMissingNarrationAssetWarnings() {
54
+ warnedMissingAssetPaths.clear();
55
+ }
56
+ /**
57
+ * Hashes a narration media file for upload and caching. Returns undefined when
58
+ * the file is absent locally: the asset is then recovered from a previous upload
59
+ * of this video (matched by path) at upload time, so a gitignored media file
60
+ * does not have to be committed. See resolveMissingUploadAssets in cli.ts.
61
+ */
47
62
  async function resolveAssetFileHash(assetPath, testFilePath) {
48
- const candidates = [assetPath];
49
- if (testFilePath !== null) {
50
- const testDir = dirname(testFilePath);
51
- candidates.push(resolve(testDir, assetPath));
52
- }
53
- for (const candidate of candidates) {
54
- try {
55
- const fileBuffer = await readFile(candidate);
56
- return createHash('sha256').update(fileBuffer).digest('hex');
57
- }
58
- catch {
59
- // try next candidate
60
- }
61
- }
62
- throw new Error(`Asset file not found: ${assetPath}`);
63
+ // Cached + pre-warmable: see assetHash.ts. When the file was pre-warmed before
64
+ // the recording clock started, this returns the cached hash without a disk read
65
+ // so the cue's start() lands right after the previous action instead of trailing
66
+ // it by the file-read latency.
67
+ return hashAssetFile(assetCandidatePaths(assetPath, testFilePath));
63
68
  }
64
69
  async function toRecordedVoice(voice) {
65
70
  if (!isCustomVoiceRef(voice))
66
71
  return voice;
67
72
  const testFilePath = getScreenCIRuntimeContext().testFilePath;
73
+ // A custom voice sample is read at record time to identify it for cloning, so
74
+ // unlike narration media it must be present locally.
75
+ const assetHash = await resolveAssetFileHash(voice.path, testFilePath);
76
+ if (assetHash === undefined) {
77
+ throw new Error(`Asset file not found: ${voice.path}`);
78
+ }
68
79
  return {
69
- assetHash: await resolveAssetFileHash(voice.path, testFilePath),
80
+ assetHash,
70
81
  assetPath: voice.path,
71
82
  };
72
83
  }
73
- function usesElevenLabsVoice(voice) {
74
- if (isCustomVoiceRef(voice))
75
- return true;
76
- return voice.startsWith('elevenlabs:');
77
- }
78
- function assertElevenLabsApiKeyConfigured(voice, location) {
79
- if (!usesElevenLabsVoice(voice))
80
- return;
81
- if (process.env.ELEVENLABS_API_KEY?.trim())
82
- return;
83
- throw new Error(`${location} uses an ElevenLabs voice, but ELEVENLABS_API_KEY is not set. Add ELEVENLABS_API_KEY to your env file or process environment. See ${ELEVENLABS_DOCS_URL}.`);
84
- }
85
84
  /**
86
85
  * Auto-ends any currently active cue before starting a new one.
87
86
  * Called internally at the start of every narration controller.
@@ -204,9 +203,31 @@ export function assertNarrationLanguagesMatch(input, declared) {
204
203
  parts.push(`unexpected ${unexpected.join(', ')}`);
205
204
  throw new Error(`[screenci] narration languages must match the video's declared languages (${declared.join(', ')}): ${parts.join('; ')}.`);
206
205
  }
206
+ function cueTrailingArgs(volume, until) {
207
+ const tail = [];
208
+ if (until !== undefined) {
209
+ tail[0] = volume;
210
+ tail[1] = until;
211
+ }
212
+ else if (volume !== undefined) {
213
+ tail[0] = volume;
214
+ }
215
+ return tail;
216
+ }
217
+ function resolveCueAnchor(until) {
218
+ if (until === undefined)
219
+ return undefined;
220
+ if (typeof until !== 'string') {
221
+ throw new Error(`narration positions must be a string such as '0:05' or '56%', got ${typeof until}`);
222
+ }
223
+ const parsed = parseTimelineOffset(until);
224
+ return parsed.kind === 'percent'
225
+ ? { percent: parsed.fraction }
226
+ : { outputMs: parsed.ms };
227
+ }
207
228
  function createCueController(name, emitStart) {
208
229
  let didRegisterName = false;
209
- const start = async (startedWithExplicitStart = true) => {
230
+ const start = async (startedWithExplicitStart = true, until) => {
210
231
  if (isInsideHide())
211
232
  throw new Error('Cannot start narration inside hide()');
212
233
  const recorder = getRuntimeCueRecorder();
@@ -219,7 +240,7 @@ function createCueController(name, emitStart) {
219
240
  const run = createActiveCueRun(startedWithExplicitStart);
220
241
  context.cue.activeCueName = name;
221
242
  context.cue.activeCueRun = run;
222
- await emitStart(recorder);
243
+ await emitStart(recorder, until);
223
244
  };
224
245
  const end = async () => {
225
246
  if (isInsideHide())
@@ -233,11 +254,15 @@ function createCueController(name, emitStart) {
233
254
  await endActiveCue();
234
255
  await run.finished;
235
256
  };
236
- const cue = (async () => {
237
- await start(false);
257
+ const block = async (until) => {
258
+ await start(false, until);
238
259
  sleepForCueFrameGap();
239
260
  await end();
261
+ };
262
+ const cue = (async () => {
263
+ await block();
240
264
  });
265
+ cue.until = (position) => block(resolveCueAnchor(position));
241
266
  cue.start = start;
242
267
  cue.end = end;
243
268
  return cue;
@@ -254,9 +279,9 @@ function createCueController(name, emitStart) {
254
279
  export function buildStudioNarrationCues(names) {
255
280
  const result = {};
256
281
  for (const name of names) {
257
- result[name] = createCueController(name, (recorder) => {
282
+ result[name] = createCueController(name, (recorder, until) => {
258
283
  sleepForCueFrameGap();
259
- recorder.addStudioCueStart(name);
284
+ recorder.addStudioCueStart(name, until);
260
285
  });
261
286
  }
262
287
  return result;
@@ -285,11 +310,18 @@ function normalizeCueMapValue(value) {
285
310
  };
286
311
  }
287
312
  const mediaPath = 'media' in value ? value.media : value.path;
313
+ const label = `Narration cue media "${mediaPath}"`;
314
+ if (value.crop !== undefined)
315
+ validateCrop(label, value.crop);
316
+ const { sourceStart, sourceEnd } = resolveSourceTrim(label, value.start, value.end);
288
317
  return {
289
318
  type: 'file',
290
319
  path: mediaPath,
291
320
  ...(value.subtitle !== undefined && { subtitle: value.subtitle }),
292
321
  ...(value.volume !== undefined && { volume: value.volume }),
322
+ ...(value.crop !== undefined && { crop: value.crop }),
323
+ ...(sourceStart !== undefined && { sourceStart }),
324
+ ...(sourceEnd !== undefined && { sourceEnd }),
293
325
  };
294
326
  }
295
327
  function getLanguageCues(lang, entry) {
@@ -379,7 +411,6 @@ function buildCuesFromInput(topVoice, languages) {
379
411
  const effectiveModelType = typeof effectiveStyle === 'string'
380
412
  ? 'expressive'
381
413
  : (langOverride?.modelType ?? topVoice.modelType);
382
- assertElevenLabsApiKeyConfigured(effectiveVoiceName, `createNarration(${lang})`);
383
414
  resolvedVoices.set(lang, effectiveVoiceName);
384
415
  resolvedVoiceMeta.set(lang, {
385
416
  name: voiceToKeyString(effectiveVoiceName),
@@ -431,7 +462,7 @@ function buildCuesFromInput(topVoice, languages) {
431
462
  }
432
463
  }
433
464
  if (hasFileEntry) {
434
- result[keyStr] = createCueController(keyStr, async (recorder) => {
465
+ result[keyStr] = createCueController(keyStr, async (recorder, until) => {
435
466
  const testFilePath = getScreenCIRuntimeContext().testFilePath;
436
467
  for (const lang of langs) {
437
468
  recorder.registerVoiceForLang(lang, resolvedVoiceMeta.get(lang));
@@ -471,18 +502,22 @@ function buildCuesFromInput(topVoice, languages) {
471
502
  videoTranslations[lang] = await entryToVideoTranslation(testFilePath, {
472
503
  path: val.path,
473
504
  ...(val.subtitle !== undefined && { subtitle: val.subtitle }),
505
+ ...(val.crop !== undefined && { crop: val.crop }),
506
+ ...(val.sourceStart !== undefined && {
507
+ sourceStart: val.sourceStart,
508
+ }),
509
+ ...(val.sourceEnd !== undefined && {
510
+ sourceEnd: val.sourceEnd,
511
+ }),
474
512
  });
475
513
  }
476
514
  }
477
515
  sleepForCueFrameGap();
478
- recorder.addVideoCueStart(keyStr, undefined, undefined, undefined, videoTranslations,
479
- // Spread so the volume arg is omitted entirely (not passed as
480
- // undefined) when no per-cue volume was set.
481
- ...(cueVolume !== undefined ? [cueVolume] : []));
516
+ recorder.addVideoCueStart(keyStr, undefined, undefined, undefined, videoTranslations, ...cueTrailingArgs(cueVolume, until));
482
517
  });
483
518
  }
484
519
  else {
485
- result[keyStr] = createCueController(keyStr, async (recorder) => {
520
+ result[keyStr] = createCueController(keyStr, async (recorder, until) => {
486
521
  for (const lang of langs) {
487
522
  recorder.registerVoiceForLang(lang, resolvedVoiceMeta.get(lang));
488
523
  }
@@ -517,10 +552,7 @@ function buildCuesFromInput(topVoice, languages) {
517
552
  }
518
553
  }
519
554
  sleepForCueFrameGap();
520
- recorder.addCueStart('', keyStr, undefined, textTranslations,
521
- // Spread so the volume arg is omitted entirely (not passed as
522
- // undefined) when no per-cue volume was set.
523
- ...(cueVolume !== undefined ? [cueVolume] : []));
555
+ recorder.addCueStart('', keyStr, undefined, textTranslations, ...cueTrailingArgs(cueVolume, until));
524
556
  });
525
557
  }
526
558
  }
@@ -529,10 +561,19 @@ function buildCuesFromInput(topVoice, languages) {
529
561
  async function entryToVideoTranslation(testFilePath, entry) {
530
562
  const path = typeof entry === 'string' ? entry : entry.path;
531
563
  const subtitle = typeof entry === 'string' ? undefined : entry.subtitle;
564
+ const crop = typeof entry === 'string' ? undefined : entry.crop;
565
+ const sourceStart = typeof entry === 'string' ? undefined : entry.sourceStart;
566
+ const sourceEnd = typeof entry === 'string' ? undefined : entry.sourceEnd;
567
+ const assetHash = await resolveAssetFileHash(path, testFilePath);
568
+ if (assetHash === undefined)
569
+ warnMissingNarrationAsset(path);
532
570
  return {
533
- assetHash: await resolveAssetFileHash(path, testFilePath),
571
+ ...(assetHash !== undefined && { assetHash }),
534
572
  assetPath: path,
535
573
  ...(subtitle !== undefined && { subtitle }),
574
+ ...(crop !== undefined && { crop }),
575
+ ...(sourceStart !== undefined && { sourceStart }),
576
+ ...(sourceEnd !== undefined && { sourceEnd }),
536
577
  };
537
578
  }
538
579
  /**
@@ -600,21 +641,51 @@ function translationVoiceFields(meta) {
600
641
  * recorder filters to the active language). Studio-managed cues emit studio cue
601
642
  * starts whose content is owned by Studio.
602
643
  */
603
- export function buildLocalizedNarrationCues(narration, voiceByLang, defaultVoice) {
644
+ /**
645
+ * Pre-warm (hash) every file-backed narration cue's media before recording, so a
646
+ * video cue's start() reuses the cached hash rather than reading the file on the
647
+ * timeline. Walks each language's seeded cues and pre-warms the media path of
648
+ * every file entry. Fire-and-forget per path (see {@link prewarmAssetFile}).
649
+ */
650
+ function prewarmNarrationMedia(narration, anchorFile) {
651
+ for (const langCues of Object.values(narration.seedByLang)) {
652
+ for (const value of Object.values(langCues ?? {})) {
653
+ if (value.kind === 'media') {
654
+ prewarmAssetFile(value.path, anchorFile);
655
+ }
656
+ }
657
+ }
658
+ }
659
+ export function buildLocalizedNarrationCues(narration, voiceByLang, defaultVoice,
660
+ // The `.screenci` script media paths are resolved relative to. When provided,
661
+ // every file-backed cue's media is pre-warmed (hashed) now, before the
662
+ // recording clock starts, so the cue's start() reuses the cached hash instead
663
+ // of paying the file read on the timeline. Omitted (no pre-warm) outside the
664
+ // recording fixture, where the anchor and timing do not apply.
665
+ anchorFile) {
604
666
  if (narration === null)
605
667
  return {};
668
+ if (anchorFile !== undefined) {
669
+ prewarmNarrationMedia(narration, anchorFile);
670
+ }
606
671
  const studioSet = new Set(narration.studioNames);
607
672
  const result = {};
608
673
  for (const cueName of narration.cueNames) {
609
- if (studioSet.has(cueName)) {
610
- result[cueName] = createCueController(cueName, (recorder) => {
674
+ const isStudio = studioSet.has(cueName);
675
+ // Languages that seed this cue, with the per-(cue, language) voice resolved.
676
+ const langs = Object.keys(narration.seedByLang).filter((lang) => narration.seedByLang[lang]?.[cueName] !== undefined);
677
+ // A blank studio cue (`studio([...])`, no seed) is text-less: the web app
678
+ // fills it and the render is held until then. A seeded studio cue
679
+ // (`studio({...})`) falls through and emits its seed translations like a code
680
+ // cue, but tagged `studio` so the web app can still override it (a Studio edit
681
+ // wins over the seed) and so the render is not held.
682
+ if (isStudio && langs.length === 0) {
683
+ result[cueName] = createCueController(cueName, (recorder, until) => {
611
684
  sleepForCueFrameGap();
612
- recorder.addStudioCueStart(cueName);
685
+ recorder.addStudioCueStart(cueName, until);
613
686
  });
614
687
  continue;
615
688
  }
616
- // Languages that seed this cue, with the per-(cue, language) voice resolved.
617
- const langs = Object.keys(narration.seedByLang).filter((lang) => narration.seedByLang[lang]?.[cueName] !== undefined);
618
689
  let hasFileEntry = false;
619
690
  // Volume is per-cue (a render-time mix property): the first language that
620
691
  // sets a volume for this cue wins.
@@ -633,11 +704,10 @@ export function buildLocalizedNarrationCues(narration, voiceByLang, defaultVoice
633
704
  voiceByLang[lang] ??
634
705
  defaultVoice ?? { name: voices.Sophie };
635
706
  const { name, meta } = resolveVoiceMeta(config);
636
- assertElevenLabsApiKeyConfigured(name, `localize narration (${lang})`);
637
707
  return { value, voice: name, meta };
638
708
  };
639
709
  if (hasFileEntry) {
640
- result[cueName] = createCueController(cueName, async (recorder) => {
710
+ result[cueName] = createCueController(cueName, async (recorder, until) => {
641
711
  const testFilePath = getScreenCIRuntimeContext().testFilePath;
642
712
  const resolved = new Map(langs.map((lang) => [lang, resolveLang(lang)]));
643
713
  for (const lang of langs) {
@@ -661,15 +731,22 @@ export function buildLocalizedNarrationCues(narration, voiceByLang, defaultVoice
661
731
  ...(value.subtitle !== undefined && {
662
732
  subtitle: value.subtitle,
663
733
  }),
734
+ ...(value.crop !== undefined && { crop: value.crop }),
735
+ ...(value.sourceStart !== undefined && {
736
+ sourceStart: value.sourceStart,
737
+ }),
738
+ ...(value.sourceEnd !== undefined && {
739
+ sourceEnd: value.sourceEnd,
740
+ }),
664
741
  });
665
742
  }
666
743
  }
667
744
  sleepForCueFrameGap();
668
- recorder.addVideoCueStart(cueName, undefined, undefined, undefined, videoTranslations, ...(cueVolume !== undefined ? [cueVolume] : []));
745
+ recorder.addVideoCueStart(cueName, undefined, undefined, undefined, videoTranslations, cueVolume, until, isStudio);
669
746
  });
670
747
  }
671
748
  else {
672
- result[cueName] = createCueController(cueName, async (recorder) => {
749
+ result[cueName] = createCueController(cueName, async (recorder, until) => {
673
750
  const resolved = new Map(langs.map((lang) => [lang, resolveLang(lang)]));
674
751
  for (const lang of langs) {
675
752
  recorder.registerVoiceForLang(lang, resolved.get(lang).meta);
@@ -688,7 +765,7 @@ export function buildLocalizedNarrationCues(narration, voiceByLang, defaultVoice
688
765
  };
689
766
  }
690
767
  sleepForCueFrameGap();
691
- recorder.addCueStart('', cueName, undefined, textTranslations, ...(cueVolume !== undefined ? [cueVolume] : []));
768
+ recorder.addCueStart('', cueName, undefined, textTranslations, cueVolume, until, isStudio);
692
769
  });
693
770
  }
694
771
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cue.js","sourceRoot":"","sources":["../../src/cue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cue.js","sourceRoot":"","sources":["../../src/cue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { type StudioNames, type StudioSeeded } from './studio.js';
2
+ import { type Lang } from './voices.js';
3
+ /**
4
+ * The per-feature declaration argument, shared by `video.narration`/`text`/
5
+ * `overlays`/`audio` (and the `screenshot` subset). The argument *shape* decides
6
+ * ownership and localization:
7
+ *
8
+ * - **Studio-owned** (`studio(['intro', 'cta'])`): the names are owned by the
9
+ * ScreenCI web app. Their content is configured there; code only declares that
10
+ * they exist. `studio({ intro: 'Hi' })` additionally seeds initial values the
11
+ * web app starts from but may override.
12
+ * - **Content-major object** (`{ intro: 'Hi' }`): a flat `name -> value` map of
13
+ * code-defined values, shared across every language.
14
+ * - **Language-major object** (`{ fr: { intro: 'Salut' }, default: { intro: 'Hi' } }`):
15
+ * top-level keys are language codes (plus an optional `default`). Each language
16
+ * maps `name -> value`; `default` supplies the shared fallback for any name a
17
+ * language omits.
18
+ *
19
+ * A bare array (`['intro']`) is no longer accepted: wrap it with `studio([...])`.
20
+ *
21
+ * Disambiguation (see {@link isLanguageKey}): an object is treated as
22
+ * language-major iff *every* top-level key is a supported language code or the
23
+ * literal `default`. There is deliberately no `languages:` wrapper. As a result a
24
+ * content name may not be a bare language code or `default` (rejected by
25
+ * {@link normalizeFeature}).
26
+ */
27
+ export type FeatureArg<V> = StudioNames | StudioSeeded<ContentMajor<V> | LanguageMajor<V>> | ContentMajor<V> | LanguageMajor<V>;
28
+ /** Flat `name -> value`, shared across all languages. */
29
+ export type ContentMajor<V> = Record<string, V>;
30
+ /** `language -> (name -> value)`, with `default` as the shared fallback. */
31
+ export type LanguageMajor<V> = {
32
+ default?: Record<string, V>;
33
+ } & Partial<Record<Lang, Record<string, V>>>;
34
+ /**
35
+ * The normalized form every feature collapses to. Both object spellings produce a
36
+ * `shared` map (the all-languages / `default` values) plus a `byLang` overrides
37
+ * map; the array form produces `studioNames` only.
38
+ */
39
+ export type NormalizedFeature<V> = {
40
+ /** All declared content names, in declaration order (studio names for arrays). */
41
+ names: string[];
42
+ /** Studio/web-owned names (array form). Empty for object forms. */
43
+ studioNames: string[];
44
+ /** Code-defined names (object forms). Empty for the array form. */
45
+ codeNames: string[];
46
+ /** Shared/default value per code name. */
47
+ shared: Record<string, V>;
48
+ /** Per-language overrides: `language -> (name -> value)`. */
49
+ byLang: Partial<Record<string, Record<string, V>>>;
50
+ /** Languages contributed by this feature (the keys of `byLang`). */
51
+ languages: string[];
52
+ };
53
+ /** Whether a top-level object key denotes a language (or the `default` fallback). */
54
+ export declare function isLanguageKey(key: string): boolean;
55
+ /**
56
+ * Normalizes a {@link FeatureArg} into a {@link NormalizedFeature}. Pure; the
57
+ * single source of truth for the array / content-major / language-major split,
58
+ * unit-tested directly.
59
+ *
60
+ * @param feature label used in error messages, e.g. `'narration'`.
61
+ */
62
+ export declare function normalizeFeature<V>(feature: string, arg: FeatureArg<V>): NormalizedFeature<V>;
63
+ //# sourceMappingURL=declare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declare.d.ts","sourceRoot":"","sources":["../../src/declare.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAsB,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IACpB,WAAW,GACX,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAChD,YAAY,CAAC,CAAC,CAAC,GACf,aAAa,CAAC,CAAC,CAAC,CAAA;AAEpB,yDAAyD;AACzD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAE/C,4EAA4E;AAC5E,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;CAC5B,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5C;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,kFAAkF;IAClF,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,mEAAmE;IACnE,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,mEAAmE;IACnE,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACzB,6DAA6D;IAC7D,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,oEAAoE;IACpE,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAKD,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GACjB,iBAAiB,CAAC,CAAC,CAAC,CA+EtB"}