screenci 0.0.15 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -26
- package/dist/cli.js +5 -5
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/src/browserLaunchOptions.d.ts +5 -0
- package/dist/src/browserLaunchOptions.d.ts.map +1 -0
- package/dist/src/browserLaunchOptions.js +23 -0
- package/dist/src/browserLaunchOptions.js.map +1 -0
- package/dist/src/{caption.d.ts → cue.d.ts} +80 -74
- package/dist/src/cue.d.ts.map +1 -0
- package/dist/src/{caption.js → cue.js} +120 -90
- package/dist/src/cue.js.map +1 -0
- package/dist/src/events.d.ts +27 -27
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/events.js +21 -21
- package/dist/src/events.js.map +1 -1
- package/dist/src/instrument.js +3 -3
- package/dist/src/instrument.js.map +1 -1
- package/dist/src/recordingData.d.ts +16 -16
- package/dist/src/recordingData.d.ts.map +1 -1
- package/dist/src/types.d.ts +4 -4
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/video.d.ts +3 -3
- package/dist/src/video.d.ts.map +1 -1
- package/dist/src/video.js +11 -25
- package/dist/src/video.js.map +1 -1
- package/dist/src/voices.d.ts +18 -18
- package/dist/src/voices.js +15 -15
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/skills/screenci/SKILL.md +20 -18
- package/skills/screenci/references/record.md +9 -6
- package/dist/src/caption.d.ts.map +0 -1
- package/dist/src/caption.js.map +0 -1
|
@@ -3,7 +3,7 @@ import { isInsideHide } from './hide.js';
|
|
|
3
3
|
import { access, readFile } from 'fs/promises';
|
|
4
4
|
import { createHash } from 'crypto';
|
|
5
5
|
import { dirname, resolve } from 'path';
|
|
6
|
-
// One frame at 24fps — ensures at least one rendered frame captures each
|
|
6
|
+
// One frame at 24fps — ensures at least one rendered frame captures each cue state.
|
|
7
7
|
export const ONE_FRAME_MS = 1000 / 24;
|
|
8
8
|
// Blocking sleep — spin until the elapsed time has passed
|
|
9
9
|
let sleepFn = (ms) => {
|
|
@@ -16,19 +16,19 @@ export function setSleepFn(fn) {
|
|
|
16
16
|
sleepFn = fn;
|
|
17
17
|
}
|
|
18
18
|
let activeRecorder = null;
|
|
19
|
-
let
|
|
19
|
+
let cueStarted = false;
|
|
20
20
|
const registeredCustomVoiceRefs = new Set();
|
|
21
21
|
/** Maps local asset path → SHA-256 hash, populated during validateCustomVoiceRefs. */
|
|
22
|
-
const
|
|
23
|
-
export function
|
|
22
|
+
const videoCueFileHashes = new Map();
|
|
23
|
+
export function setActiveCueRecorder(recorder) {
|
|
24
24
|
activeRecorder = recorder;
|
|
25
25
|
}
|
|
26
|
-
export function
|
|
27
|
-
|
|
26
|
+
export function resetCueChain() {
|
|
27
|
+
cueStarted = false;
|
|
28
28
|
}
|
|
29
29
|
export function resetRegisteredCustomVoiceRefs() {
|
|
30
30
|
registeredCustomVoiceRefs.clear();
|
|
31
|
-
|
|
31
|
+
videoCueFileHashes.clear();
|
|
32
32
|
}
|
|
33
33
|
export async function validateCustomVoiceRefs(testFilePath) {
|
|
34
34
|
const testDir = dirname(testFilePath);
|
|
@@ -53,7 +53,7 @@ export async function validateCustomVoiceRefs(testFilePath) {
|
|
|
53
53
|
.update(fileBuffer)
|
|
54
54
|
.digest('hex');
|
|
55
55
|
}
|
|
56
|
-
for (const assetPath of
|
|
56
|
+
for (const assetPath of videoCueFileHashes.keys()) {
|
|
57
57
|
const candidates = [assetPath, resolve(testDir, assetPath)];
|
|
58
58
|
let fileBuffer = null;
|
|
59
59
|
for (const candidate of candidates) {
|
|
@@ -66,9 +66,9 @@ export async function validateCustomVoiceRefs(testFilePath) {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
if (fileBuffer === null) {
|
|
69
|
-
throw new Error(`Video
|
|
69
|
+
throw new Error(`Video cue asset file not found: ${assetPath}`);
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
videoCueFileHashes.set(assetPath, createHash('sha256').update(fileBuffer).digest('hex'));
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
function toRecordedVoice(voice) {
|
|
@@ -85,79 +85,98 @@ function toRecordedVoice(voice) {
|
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
/**
|
|
88
|
-
* Auto-ends any currently active
|
|
89
|
-
* Called internally at the start of every
|
|
88
|
+
* Auto-ends any currently active cue before starting a new one.
|
|
89
|
+
* Called internally at the start of every narration controller.
|
|
90
90
|
*/
|
|
91
|
-
function
|
|
92
|
-
if (!
|
|
91
|
+
function cueAutoEnd() {
|
|
92
|
+
if (!cueStarted || activeRecorder === null)
|
|
93
93
|
return;
|
|
94
|
-
activeRecorder.
|
|
94
|
+
activeRecorder.addCueEnd('auto');
|
|
95
95
|
sleepFn(2 * ONE_FRAME_MS);
|
|
96
|
-
|
|
96
|
+
cueStarted = false;
|
|
97
97
|
}
|
|
98
|
-
async function
|
|
99
|
-
if (activeRecorder === null || !
|
|
98
|
+
async function doWait() {
|
|
99
|
+
if (activeRecorder === null || !cueStarted)
|
|
100
100
|
return;
|
|
101
101
|
if (isInsideHide())
|
|
102
|
-
throw new Error('Cannot call
|
|
103
|
-
activeRecorder.
|
|
102
|
+
throw new Error('Cannot call wait() inside hide()');
|
|
103
|
+
activeRecorder.addCueEnd('wait');
|
|
104
104
|
sleepFn(2 * ONE_FRAME_MS);
|
|
105
|
-
|
|
105
|
+
cueStarted = false;
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
108
|
-
* Creates a set of typed
|
|
108
|
+
* Creates a set of typed narration controllers, one per key in the map.
|
|
109
109
|
*
|
|
110
110
|
* Each controller has `start()` and `end()`.
|
|
111
|
-
* At render time screenci generates
|
|
111
|
+
* At render time screenci generates narration, and syncs the audio to the
|
|
112
112
|
* recording. You write text; the voice is handled for you.
|
|
113
113
|
*
|
|
114
114
|
* The top-level `voice` applies to all languages. Override it per-language via
|
|
115
115
|
* the `voice` field inside each language entry. Only language-level overrides
|
|
116
116
|
* may set `seed`.
|
|
117
117
|
*
|
|
118
|
-
* TypeScript enforces that every language has the same
|
|
118
|
+
* TypeScript enforces that every language has the same cue keys.
|
|
119
119
|
* Forget a translation key → compile error.
|
|
120
120
|
*
|
|
121
121
|
* @example
|
|
122
122
|
* ```ts
|
|
123
|
-
* const
|
|
123
|
+
* const narration = createNarration({
|
|
124
124
|
* voice: { name: voices.Ava, style: 'Clear and friendly' },
|
|
125
125
|
* languages: {
|
|
126
|
-
* en: {
|
|
126
|
+
* en: { cues: { intro: 'Welcome.', next: 'Click here.' } },
|
|
127
127
|
* fi: {
|
|
128
128
|
* voice: { name: voices.Nora, style: 'Selkeä opastus', seed: 42 },
|
|
129
|
-
*
|
|
129
|
+
* cues: { intro: 'Tervetuloa.', next: 'Napsauta tästä.' },
|
|
130
130
|
* },
|
|
131
131
|
* },
|
|
132
132
|
* })
|
|
133
133
|
*
|
|
134
|
-
* // Await a
|
|
135
|
-
* await
|
|
134
|
+
* // Await a narration segment directly to start it:
|
|
135
|
+
* await narration.intro
|
|
136
136
|
* await page.goto('/dashboard')
|
|
137
137
|
*
|
|
138
|
-
* // Consecutive
|
|
139
|
-
* await
|
|
140
|
-
* await
|
|
138
|
+
* // Consecutive narration segments sequence automatically:
|
|
139
|
+
* await narration.intro
|
|
140
|
+
* await narration.next // ends intro, then starts next
|
|
141
141
|
*
|
|
142
142
|
* // Wait for audio to finish before an action:
|
|
143
|
-
* await
|
|
144
|
-
* await
|
|
143
|
+
* await narration.intro
|
|
144
|
+
* await narration.wait()
|
|
145
145
|
* await page.click('#start')
|
|
146
146
|
* ```
|
|
147
147
|
*/
|
|
148
|
-
export function
|
|
149
|
-
return
|
|
148
|
+
export function createNarration(input) {
|
|
149
|
+
return buildCuesFromInput(input.voice, input.languages);
|
|
150
|
+
}
|
|
151
|
+
function normalizeCueMapValue(value) {
|
|
152
|
+
if (typeof value === 'string') {
|
|
153
|
+
return { type: 'text', text: value };
|
|
154
|
+
}
|
|
155
|
+
if ('text' in value) {
|
|
156
|
+
return { type: 'text', text: value.text };
|
|
157
|
+
}
|
|
158
|
+
const mediaPath = 'media' in value ? value.media : value.path;
|
|
159
|
+
return {
|
|
160
|
+
type: 'file',
|
|
161
|
+
path: mediaPath,
|
|
162
|
+
...(value.subtitle !== undefined && { subtitle: value.subtitle }),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
function getLanguageCues(entry) {
|
|
166
|
+
if (entry === undefined)
|
|
167
|
+
return undefined;
|
|
168
|
+
return entry.cues;
|
|
150
169
|
}
|
|
151
170
|
function voiceToKeyString(voice) {
|
|
152
171
|
if (isCustomVoiceRef(voice))
|
|
153
172
|
return `custom:${voice.path}`;
|
|
154
173
|
return voice;
|
|
155
174
|
}
|
|
156
|
-
function
|
|
175
|
+
function buildCuesFromInput(topVoice, languages) {
|
|
157
176
|
const langs = Object.keys(languages);
|
|
158
177
|
const firstLang = langs[0];
|
|
159
178
|
if (firstLang === undefined) {
|
|
160
|
-
throw new Error('
|
|
179
|
+
throw new Error('createNarration requires at least one language in "languages"');
|
|
161
180
|
}
|
|
162
181
|
// Resolve effective voice and metadata per language
|
|
163
182
|
const resolvedVoices = new Map();
|
|
@@ -209,30 +228,38 @@ function buildCaptionsFromInput(topVoice, languages) {
|
|
|
209
228
|
if (!firstEntry)
|
|
210
229
|
return {};
|
|
211
230
|
const result = {};
|
|
212
|
-
|
|
231
|
+
const firstCues = getLanguageCues(firstEntry);
|
|
232
|
+
if (firstCues === undefined)
|
|
233
|
+
return {};
|
|
234
|
+
for (const key in firstCues) {
|
|
213
235
|
const keyStr = key;
|
|
214
|
-
|
|
236
|
+
const normalizedByLang = new Map();
|
|
237
|
+
// Normalize shorthand values and determine if any language uses a file entry for this key.
|
|
215
238
|
let hasFileEntry = false;
|
|
216
239
|
for (const lang of langs) {
|
|
217
|
-
const val = languages[lang]?.
|
|
218
|
-
if (val !== undefined
|
|
219
|
-
|
|
220
|
-
|
|
240
|
+
const val = getLanguageCues(languages[lang])?.[keyStr];
|
|
241
|
+
if (val !== undefined) {
|
|
242
|
+
const normalized = normalizeCueMapValue(val);
|
|
243
|
+
normalizedByLang.set(lang, normalized);
|
|
244
|
+
if (normalized.type === 'file') {
|
|
245
|
+
hasFileEntry = true;
|
|
246
|
+
videoCueFileHashes.set(normalized.path, '');
|
|
247
|
+
}
|
|
221
248
|
}
|
|
222
249
|
}
|
|
223
250
|
if (hasFileEntry) {
|
|
224
251
|
const fileStartFn = async () => {
|
|
225
252
|
if (isInsideHide())
|
|
226
|
-
throw new Error('Cannot start
|
|
253
|
+
throw new Error('Cannot start narration inside hide()');
|
|
227
254
|
if (activeRecorder === null)
|
|
228
255
|
return;
|
|
229
|
-
|
|
256
|
+
cueAutoEnd();
|
|
230
257
|
for (const lang of langs) {
|
|
231
258
|
activeRecorder.registerVoiceForLang(lang, resolvedVoiceMeta.get(lang));
|
|
232
259
|
}
|
|
233
260
|
const videoTranslations = {};
|
|
234
261
|
for (const lang of langs) {
|
|
235
|
-
const val =
|
|
262
|
+
const val = normalizedByLang.get(lang);
|
|
236
263
|
if (val === undefined)
|
|
237
264
|
continue;
|
|
238
265
|
const voice = resolvedVoices.get(lang);
|
|
@@ -242,9 +269,9 @@ function buildCaptionsFromInput(topVoice, languages) {
|
|
|
242
269
|
const style = meta?.style;
|
|
243
270
|
const accent = meta?.accent;
|
|
244
271
|
const pacing = meta?.pacing;
|
|
245
|
-
if (
|
|
272
|
+
if (val.type === 'text') {
|
|
246
273
|
videoTranslations[lang] = {
|
|
247
|
-
text: val,
|
|
274
|
+
text: val.text,
|
|
248
275
|
voice: toRecordedVoice(voice),
|
|
249
276
|
...(region !== undefined && { region }),
|
|
250
277
|
...(modelType !== undefined && { modelType }),
|
|
@@ -254,12 +281,15 @@ function buildCaptionsFromInput(topVoice, languages) {
|
|
|
254
281
|
};
|
|
255
282
|
}
|
|
256
283
|
else {
|
|
257
|
-
videoTranslations[lang] = entryToVideoTranslation(
|
|
284
|
+
videoTranslations[lang] = entryToVideoTranslation({
|
|
285
|
+
path: val.path,
|
|
286
|
+
...(val.subtitle !== undefined && { subtitle: val.subtitle }),
|
|
287
|
+
});
|
|
258
288
|
}
|
|
259
289
|
}
|
|
260
|
-
|
|
290
|
+
cueStarted = true;
|
|
261
291
|
sleepFn(2 * ONE_FRAME_MS);
|
|
262
|
-
activeRecorder.
|
|
292
|
+
activeRecorder.addVideoCueStart(keyStr, undefined, undefined, undefined, videoTranslations);
|
|
263
293
|
};
|
|
264
294
|
result[keyStr] = {
|
|
265
295
|
then(resolve, reject) {
|
|
@@ -270,17 +300,17 @@ function buildCaptionsFromInput(topVoice, languages) {
|
|
|
270
300
|
else {
|
|
271
301
|
const textStartFn = async () => {
|
|
272
302
|
if (isInsideHide())
|
|
273
|
-
throw new Error('Cannot start
|
|
303
|
+
throw new Error('Cannot start narration inside hide()');
|
|
274
304
|
if (activeRecorder === null)
|
|
275
305
|
return;
|
|
276
|
-
|
|
306
|
+
cueAutoEnd();
|
|
277
307
|
for (const lang of langs) {
|
|
278
308
|
activeRecorder.registerVoiceForLang(lang, resolvedVoiceMeta.get(lang));
|
|
279
309
|
}
|
|
280
310
|
const textTranslations = {};
|
|
281
311
|
for (const lang of langs) {
|
|
282
|
-
const val =
|
|
283
|
-
if (val !== undefined &&
|
|
312
|
+
const val = normalizedByLang.get(lang);
|
|
313
|
+
if (val !== undefined && val.type === 'text') {
|
|
284
314
|
const voice = resolvedVoices.get(lang);
|
|
285
315
|
const region = languages[lang]?.region;
|
|
286
316
|
const meta = resolvedVoiceMeta.get(lang);
|
|
@@ -289,7 +319,7 @@ function buildCaptionsFromInput(topVoice, languages) {
|
|
|
289
319
|
const accent = meta?.accent;
|
|
290
320
|
const pacing = meta?.pacing;
|
|
291
321
|
textTranslations[lang] = {
|
|
292
|
-
text: val,
|
|
322
|
+
text: val.text,
|
|
293
323
|
voice: toRecordedVoice(voice),
|
|
294
324
|
...(region !== undefined && { region }),
|
|
295
325
|
...(modelType !== undefined && { modelType }),
|
|
@@ -299,9 +329,9 @@ function buildCaptionsFromInput(topVoice, languages) {
|
|
|
299
329
|
};
|
|
300
330
|
}
|
|
301
331
|
}
|
|
302
|
-
|
|
332
|
+
cueStarted = true;
|
|
303
333
|
sleepFn(2 * ONE_FRAME_MS);
|
|
304
|
-
activeRecorder.
|
|
334
|
+
activeRecorder.addCueStart('', keyStr, undefined, textTranslations);
|
|
305
335
|
};
|
|
306
336
|
result[keyStr] = {
|
|
307
337
|
then(resolve, reject) {
|
|
@@ -311,54 +341,54 @@ function buildCaptionsFromInput(topVoice, languages) {
|
|
|
311
341
|
}
|
|
312
342
|
}
|
|
313
343
|
;
|
|
314
|
-
result.
|
|
344
|
+
result.wait = doWait;
|
|
315
345
|
return result;
|
|
316
346
|
}
|
|
317
347
|
function entryToVideoTranslation(entry) {
|
|
318
348
|
const path = typeof entry === 'string' ? entry : entry.path;
|
|
319
349
|
const subtitle = typeof entry === 'string' ? undefined : entry.subtitle;
|
|
320
|
-
const assetHash =
|
|
350
|
+
const assetHash = videoCueFileHashes.get(path);
|
|
321
351
|
if (!assetHash)
|
|
322
|
-
throw new Error(`Video
|
|
352
|
+
throw new Error(`Video cue asset hash missing for path: ${path}`);
|
|
323
353
|
return {
|
|
324
354
|
assetHash,
|
|
325
355
|
assetPath: path,
|
|
326
356
|
...(subtitle !== undefined && { subtitle }),
|
|
327
357
|
};
|
|
328
358
|
}
|
|
329
|
-
export function
|
|
330
|
-
// Distinguish single-language vs multi-language by checking if any value has a `
|
|
359
|
+
export function createVideoCues(firstArg) {
|
|
360
|
+
// Distinguish single-language vs multi-language by checking if any value has a `cues` key
|
|
331
361
|
const firstValue = Object.values(firstArg)[0];
|
|
332
362
|
if (firstValue !== undefined &&
|
|
333
363
|
typeof firstValue === 'object' &&
|
|
334
364
|
!Array.isArray(firstValue) &&
|
|
335
|
-
'
|
|
336
|
-
typeof firstValue.
|
|
337
|
-
return
|
|
365
|
+
'cues' in firstValue &&
|
|
366
|
+
typeof firstValue.cues === 'object') {
|
|
367
|
+
return buildMultiLangVideoCues(firstArg);
|
|
338
368
|
}
|
|
339
|
-
return
|
|
369
|
+
return buildSingleLangVideoCues(firstArg);
|
|
340
370
|
}
|
|
341
|
-
function
|
|
371
|
+
function buildSingleLangVideoCues(cuesMap) {
|
|
342
372
|
const result = {};
|
|
343
|
-
for (const key in
|
|
344
|
-
const entry =
|
|
373
|
+
for (const key in cuesMap) {
|
|
374
|
+
const entry = cuesMap[key];
|
|
345
375
|
if (entry === undefined)
|
|
346
376
|
continue;
|
|
347
377
|
const assetPath = typeof entry === 'string' ? entry : entry.path;
|
|
348
378
|
const subtitle = typeof entry === 'string' ? undefined : entry.subtitle;
|
|
349
|
-
|
|
379
|
+
videoCueFileHashes.set(assetPath, '');
|
|
350
380
|
const startFn = async () => {
|
|
351
381
|
if (isInsideHide())
|
|
352
|
-
throw new Error('Cannot start
|
|
382
|
+
throw new Error('Cannot start narration inside hide()');
|
|
353
383
|
if (activeRecorder === null)
|
|
354
384
|
return;
|
|
355
|
-
|
|
356
|
-
const assetHash =
|
|
385
|
+
cueAutoEnd();
|
|
386
|
+
const assetHash = videoCueFileHashes.get(assetPath);
|
|
357
387
|
if (!assetHash)
|
|
358
|
-
throw new Error(`Video
|
|
359
|
-
|
|
388
|
+
throw new Error(`Video cue asset hash missing for path: ${assetPath}`);
|
|
389
|
+
cueStarted = true;
|
|
360
390
|
sleepFn(2 * ONE_FRAME_MS);
|
|
361
|
-
activeRecorder.
|
|
391
|
+
activeRecorder.addVideoCueStart(key, assetPath, assetHash, subtitle);
|
|
362
392
|
};
|
|
363
393
|
result[key] = {
|
|
364
394
|
then(resolve, reject) {
|
|
@@ -367,38 +397,38 @@ function buildSingleLangVideoCaptions(captionsMap) {
|
|
|
367
397
|
};
|
|
368
398
|
}
|
|
369
399
|
;
|
|
370
|
-
result.
|
|
400
|
+
result.wait = doWait;
|
|
371
401
|
return result;
|
|
372
402
|
}
|
|
373
|
-
function
|
|
403
|
+
function buildMultiLangVideoCues(languagesMap) {
|
|
374
404
|
const langs = Object.keys(languagesMap);
|
|
375
405
|
const firstLang = langs[0];
|
|
376
406
|
if (firstLang === undefined) {
|
|
377
407
|
const empty = {};
|
|
378
|
-
empty.
|
|
408
|
+
empty.wait = doWait;
|
|
379
409
|
return empty;
|
|
380
410
|
}
|
|
381
411
|
const result = {};
|
|
382
|
-
for (const key in languagesMap[firstLang].
|
|
412
|
+
for (const key in languagesMap[firstLang].cues) {
|
|
383
413
|
const keyStr = key;
|
|
384
414
|
const translations = {};
|
|
385
415
|
for (const lang of langs) {
|
|
386
|
-
const entry = languagesMap[lang].
|
|
416
|
+
const entry = languagesMap[lang].cues[keyStr];
|
|
387
417
|
if (entry !== undefined) {
|
|
388
418
|
const assetPath = typeof entry === 'string' ? entry : entry.path;
|
|
389
|
-
|
|
419
|
+
videoCueFileHashes.set(assetPath, '');
|
|
390
420
|
translations[lang] = entryToVideoTranslation(entry);
|
|
391
421
|
}
|
|
392
422
|
}
|
|
393
423
|
const startFn = async () => {
|
|
394
424
|
if (isInsideHide())
|
|
395
|
-
throw new Error('Cannot start
|
|
425
|
+
throw new Error('Cannot start narration inside hide()');
|
|
396
426
|
if (activeRecorder === null)
|
|
397
427
|
return;
|
|
398
|
-
|
|
399
|
-
|
|
428
|
+
cueAutoEnd();
|
|
429
|
+
cueStarted = true;
|
|
400
430
|
sleepFn(2 * ONE_FRAME_MS);
|
|
401
|
-
activeRecorder.
|
|
431
|
+
activeRecorder.addVideoCueStart(keyStr, undefined, undefined, undefined, translations);
|
|
402
432
|
};
|
|
403
433
|
result[key] = {
|
|
404
434
|
then(resolve, reject) {
|
|
@@ -407,7 +437,7 @@ function buildMultiLangVideoCaptions(languagesMap) {
|
|
|
407
437
|
};
|
|
408
438
|
}
|
|
409
439
|
;
|
|
410
|
-
result.
|
|
440
|
+
result.wait = doWait;
|
|
411
441
|
return result;
|
|
412
442
|
}
|
|
413
|
-
//# sourceMappingURL=
|
|
443
|
+
//# sourceMappingURL=cue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cue.js","sourceRoot":"","sources":["../../src/cue.ts"],"names":[],"mappings":"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"}
|
package/dist/src/events.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AutoZoomOptions,
|
|
1
|
+
import type { AutoZoomOptions, CueConfig, Easing, RecordOptions, RenderOptions, ResolvedRenderOptions } from './types.js';
|
|
2
2
|
import type { VoiceKey } from './voices.js';
|
|
3
3
|
export type VideoStartEvent = {
|
|
4
4
|
type: 'videoStart';
|
|
@@ -54,7 +54,7 @@ export type MouseWaitEvent = {
|
|
|
54
54
|
* A recorded user input action containing one or more inner mouse events.
|
|
55
55
|
* mouseMove, mouseShow, and mouseHide subtypes each contain exactly one inner event.
|
|
56
56
|
* All input events must not overlap in time; recording will throw if they do.
|
|
57
|
-
*
|
|
57
|
+
* Cues are automatically prevented from falling inside any input event's time range.
|
|
58
58
|
*/
|
|
59
59
|
export type InputEvent = {
|
|
60
60
|
type: 'input';
|
|
@@ -67,7 +67,7 @@ export type RecordingCustomVoiceRef = {
|
|
|
67
67
|
/** Present only in recording phase (for CLI upload); stripped from submitted data. */
|
|
68
68
|
assetPath?: string;
|
|
69
69
|
};
|
|
70
|
-
export type
|
|
70
|
+
export type CueTranslation = {
|
|
71
71
|
text: string;
|
|
72
72
|
voice: VoiceKey | RecordingCustomVoiceRef;
|
|
73
73
|
/** BCP-47 region code, e.g. 'en-US'. Overrides the base language for TTS synthesis. */
|
|
@@ -86,31 +86,31 @@ export type CaptionTranslation = {
|
|
|
86
86
|
*/
|
|
87
87
|
seed?: number;
|
|
88
88
|
};
|
|
89
|
-
export type
|
|
90
|
-
type: '
|
|
89
|
+
export type CueStartEvent = {
|
|
90
|
+
type: 'cueStart';
|
|
91
91
|
timeMs: number;
|
|
92
92
|
name: string;
|
|
93
93
|
/** Single-language API (backward compat) */
|
|
94
94
|
text?: string;
|
|
95
|
-
|
|
95
|
+
cueConfig?: CueConfig;
|
|
96
96
|
/** Multi-language API — all language translations keyed by language code */
|
|
97
|
-
translations?: Record<string,
|
|
97
|
+
translations?: Record<string, CueTranslation>;
|
|
98
98
|
};
|
|
99
|
-
export type
|
|
100
|
-
type: '
|
|
99
|
+
export type CueEndEvent = {
|
|
100
|
+
type: 'cueEnd';
|
|
101
101
|
timeMs: number;
|
|
102
|
-
reason?: 'auto' | '
|
|
102
|
+
reason?: 'auto' | 'wait';
|
|
103
103
|
};
|
|
104
|
-
/** File-based video
|
|
104
|
+
/** File-based video cue translation. assetPath is present only in the local
|
|
105
105
|
* recording phase (for CLI upload) and is stripped before submitting to the backend. */
|
|
106
|
-
export type
|
|
106
|
+
export type VideoCueTranslationFile = {
|
|
107
107
|
assetHash: string;
|
|
108
108
|
/** Local file path — present only during recording; stripped from submitted data. */
|
|
109
109
|
assetPath?: string;
|
|
110
110
|
subtitle?: string;
|
|
111
111
|
};
|
|
112
|
-
/** TTS-based video
|
|
113
|
-
export type
|
|
112
|
+
/** TTS-based video cue translation — generates audio via text-to-speech. */
|
|
113
|
+
export type VideoCueTranslationTTS = {
|
|
114
114
|
text: string;
|
|
115
115
|
voice: VoiceKey | RecordingCustomVoiceRef;
|
|
116
116
|
/** BCP-47 region code, e.g. 'en-US'. Overrides the base language for TTS synthesis. */
|
|
@@ -129,9 +129,9 @@ export type VideoCaptionTranslationTTS = {
|
|
|
129
129
|
*/
|
|
130
130
|
seed?: number;
|
|
131
131
|
};
|
|
132
|
-
export type
|
|
133
|
-
export type
|
|
134
|
-
type: '
|
|
132
|
+
export type VideoCueTranslation = VideoCueTranslationFile | VideoCueTranslationTTS;
|
|
133
|
+
export type VideoCueStartEvent = {
|
|
134
|
+
type: 'videoCueStart';
|
|
135
135
|
timeMs: number;
|
|
136
136
|
name: string;
|
|
137
137
|
/** Single-language API: SHA-256 hash of the pre-recorded asset. */
|
|
@@ -141,7 +141,7 @@ export type VideoCaptionStartEvent = {
|
|
|
141
141
|
/** Optional subtitle text. Words are spread with equal timing at render time. */
|
|
142
142
|
subtitle?: string;
|
|
143
143
|
/** Multi-language API — per-language translations keyed by language code. */
|
|
144
|
-
translations?: Record<string,
|
|
144
|
+
translations?: Record<string, VideoCueTranslation>;
|
|
145
145
|
};
|
|
146
146
|
export type AssetStartEvent = {
|
|
147
147
|
type: 'assetStart';
|
|
@@ -179,7 +179,7 @@ export type AutoZoomEndEvent = {
|
|
|
179
179
|
easing: string;
|
|
180
180
|
duration: number;
|
|
181
181
|
};
|
|
182
|
-
export type RecordingEvent = VideoStartEvent | InputEvent |
|
|
182
|
+
export type RecordingEvent = VideoStartEvent | InputEvent | CueStartEvent | CueEndEvent | VideoCueStartEvent | AssetStartEvent | HideStartEvent | HideEndEvent | AutoZoomStartEvent | AutoZoomEndEvent;
|
|
183
183
|
export type VoiceLanguageMeta = {
|
|
184
184
|
/** Voice key string: a built-in voice name or an external voice key. */
|
|
185
185
|
name: string;
|
|
@@ -201,7 +201,7 @@ export type VoiceLanguageMeta = {
|
|
|
201
201
|
};
|
|
202
202
|
export type RecordingMetadata = {
|
|
203
203
|
videoName: string;
|
|
204
|
-
/** Language codes present in multi-language
|
|
204
|
+
/** Language codes present in multi-language cues, e.g. `['en', 'de']`. Omitted when no multi-language cues are used. */
|
|
205
205
|
languages?: string[];
|
|
206
206
|
};
|
|
207
207
|
export type RecordingData = {
|
|
@@ -218,9 +218,9 @@ export interface IEventRecorder {
|
|
|
218
218
|
* Throws if the event's time span overlaps with any previously recorded input event.
|
|
219
219
|
*/
|
|
220
220
|
addInput(subType: InputEvent['subType'], elementRect: ElementRect | undefined, events: InputEvent['events']): void;
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
221
|
+
addCueStart(text: string, name: string, cueConfig?: CueConfig, translations?: Record<string, CueTranslation>): void;
|
|
222
|
+
addCueEnd(reason?: 'auto' | 'wait'): void;
|
|
223
|
+
addVideoCueStart(name: string, assetPath: string | undefined, assetHash: string | undefined, subtitle?: string, translations?: Record<string, VideoCueTranslation>): void;
|
|
224
224
|
addAssetStart(name: string, path: string, audio: number, fullScreen: boolean): void;
|
|
225
225
|
addHideStart(): void;
|
|
226
226
|
addHideEnd(): void;
|
|
@@ -228,7 +228,7 @@ export interface IEventRecorder {
|
|
|
228
228
|
addAutoZoomEnd(options?: AutoZoomOptions): void;
|
|
229
229
|
/**
|
|
230
230
|
* Registers voice metadata seen during recording.
|
|
231
|
-
* Kept for API compatibility; voice settings are stored per
|
|
231
|
+
* Kept for API compatibility; voice settings are stored per cue event.
|
|
232
232
|
*/
|
|
233
233
|
registerVoiceForLang(lang: string, meta: VoiceLanguageMeta): void;
|
|
234
234
|
getEvents(): RecordingEvent[];
|
|
@@ -245,9 +245,9 @@ export declare class EventRecorder implements IEventRecorder {
|
|
|
245
245
|
private normalizeCentering;
|
|
246
246
|
start(): void;
|
|
247
247
|
addInput(subType: InputEvent['subType'], elementRect: ElementRect | undefined, events: InputEvent['events']): void;
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
addCueStart(text: string, name: string, cueConfig?: CueConfig, translations?: Record<string, CueTranslation>): void;
|
|
249
|
+
addCueEnd(reason?: 'auto' | 'wait'): void;
|
|
250
|
+
addVideoCueStart(name: string, assetPath: string | undefined, assetHash: string | undefined, subtitle?: string, translations?: Record<string, VideoCueTranslation>): void;
|
|
251
251
|
addAssetStart(name: string, path: string, audio: number, fullScreen: boolean): void;
|
|
252
252
|
addHideStart(): void;
|
|
253
253
|
addHideEnd(): void;
|
package/dist/src/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
|