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.
- package/dist/cli.d.ts +62 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +699 -229
- package/dist/cli.js.map +1 -1
- package/dist/docs/manifest.d.ts +277 -91
- package/dist/docs/manifest.d.ts.map +1 -1
- package/dist/docs/manifest.js +101 -30
- package/dist/docs/manifest.js.map +1 -1
- package/dist/docs/video-sources/camera-and-zooming.screenci.d.ts +2 -0
- package/dist/docs/video-sources/camera-and-zooming.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/camera-and-zooming.screenci.js +57 -0
- package/dist/docs/video-sources/camera-and-zooming.screenci.js.map +1 -0
- package/dist/docs/video-sources/installation.screenci.js +19 -10
- package/dist/docs/video-sources/installation.screenci.js.map +1 -1
- package/dist/docs/video-sources/landing.screenci.js +6 -8
- package/dist/docs/video-sources/landing.screenci.js.map +1 -1
- package/dist/docs/video-sources/languages.screenci.d.ts +2 -0
- package/dist/docs/video-sources/languages.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/languages.screenci.js +68 -0
- package/dist/docs/video-sources/languages.screenci.js.map +1 -0
- package/dist/docs/video-sources/locator-highlight-animated.screenci.js +4 -5
- package/dist/docs/video-sources/locator-highlight-animated.screenci.js.map +1 -1
- package/dist/docs/video-sources/locator-highlight-still.screenci.js +3 -4
- package/dist/docs/video-sources/locator-highlight-still.screenci.js.map +1 -1
- package/dist/docs/video-sources/narration.screenci.d.ts +2 -0
- package/dist/docs/video-sources/narration.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/narration.screenci.js +71 -0
- package/dist/docs/video-sources/narration.screenci.js.map +1 -0
- package/dist/docs/video-sources/public-urls-and-embeds.screenci.d.ts +2 -0
- package/dist/docs/video-sources/public-urls-and-embeds.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/public-urls-and-embeds.screenci.js +60 -0
- package/dist/docs/video-sources/public-urls-and-embeds.screenci.js.map +1 -0
- package/dist/docs/video-sources/speaking-style.screenci.d.ts +2 -0
- package/dist/docs/video-sources/speaking-style.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/speaking-style.screenci.js +76 -0
- package/dist/docs/video-sources/speaking-style.screenci.js.map +1 -0
- package/dist/docs/video-sources/studio.screenci.js +8 -10
- package/dist/docs/video-sources/studio.screenci.js.map +1 -1
- package/dist/docs/video-sources/vertical-video.screenci.d.ts +2 -0
- package/dist/docs/video-sources/vertical-video.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/vertical-video.screenci.js +58 -0
- package/dist/docs/video-sources/vertical-video.screenci.js.map +1 -0
- package/dist/docs/videos.d.ts +20 -0
- package/dist/docs/videos.d.ts.map +1 -1
- package/dist/docs/videos.js +25 -0
- package/dist/docs/videos.js.map +1 -1
- package/dist/e2e/instrument.e2e.js +60 -1
- package/dist/e2e/instrument.e2e.js.map +1 -1
- package/dist/e2e/redact.e2e.d.ts +2 -0
- package/dist/e2e/redact.e2e.d.ts.map +1 -0
- package/dist/e2e/redact.e2e.js +161 -0
- package/dist/e2e/redact.e2e.js.map +1 -0
- package/dist/index.d.ts +12 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/src/asset.d.ts +174 -14
- package/dist/src/asset.d.ts.map +1 -1
- package/dist/src/asset.js +320 -39
- package/dist/src/asset.js.map +1 -1
- package/dist/src/assetHash.d.ts +27 -0
- package/dist/src/assetHash.d.ts.map +1 -0
- package/dist/src/assetHash.js +0 -0
- package/dist/src/assetHash.js.map +1 -0
- package/dist/src/audio.d.ts +20 -1
- package/dist/src/audio.d.ts.map +1 -1
- package/dist/src/audio.js +126 -24
- package/dist/src/audio.js.map +1 -1
- package/dist/src/autoZoom.d.ts.map +1 -1
- package/dist/src/autoZoom.js +3 -1
- package/dist/src/autoZoom.js.map +1 -1
- package/dist/src/browserLaunchOptions.d.ts +24 -2
- package/dist/src/browserLaunchOptions.d.ts.map +1 -1
- package/dist/src/browserLaunchOptions.js +57 -3
- package/dist/src/browserLaunchOptions.js.map +1 -1
- package/dist/src/builder.d.ts +229 -136
- package/dist/src/builder.d.ts.map +1 -1
- package/dist/src/builder.js +264 -77
- package/dist/src/builder.js.map +1 -1
- package/dist/src/callerFile.d.ts +12 -0
- package/dist/src/callerFile.d.ts.map +1 -0
- package/dist/src/callerFile.js +46 -0
- package/dist/src/callerFile.js.map +1 -0
- package/dist/src/changeFocus.d.ts.map +1 -1
- package/dist/src/changeFocus.js +109 -36
- package/dist/src/changeFocus.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +15 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/cue.d.ts +29 -17
- package/dist/src/cue.d.ts.map +1 -1
- package/dist/src/cue.js +138 -61
- package/dist/src/cue.js.map +1 -1
- package/dist/src/declare.d.ts +63 -0
- package/dist/src/declare.d.ts.map +1 -0
- package/dist/src/declare.js +111 -0
- package/dist/src/declare.js.map +1 -0
- package/dist/src/defaults.d.ts +23 -0
- package/dist/src/defaults.d.ts.map +1 -1
- package/dist/src/defaults.js +27 -3
- package/dist/src/defaults.js.map +1 -1
- package/dist/src/events.d.ts +339 -25
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/events.js +250 -26
- package/dist/src/events.js.map +1 -1
- package/dist/src/htmlRasterizer.d.ts +10 -0
- package/dist/src/htmlRasterizer.d.ts.map +1 -1
- package/dist/src/htmlRasterizer.js +12 -2
- package/dist/src/htmlRasterizer.js.map +1 -1
- package/dist/src/init.d.ts +2 -0
- package/dist/src/init.d.ts.map +1 -1
- package/dist/src/init.js +81 -33
- package/dist/src/init.js.map +1 -1
- package/dist/src/instrument.d.ts.map +1 -1
- package/dist/src/instrument.js +164 -8
- package/dist/src/instrument.js.map +1 -1
- package/dist/src/locales.d.ts.map +1 -1
- package/dist/src/locales.js +1 -0
- package/dist/src/locales.js.map +1 -1
- package/dist/src/localize.d.ts +26 -17
- package/dist/src/localize.d.ts.map +1 -1
- package/dist/src/localize.js +19 -11
- package/dist/src/localize.js.map +1 -1
- package/dist/src/localizeRuntime.d.ts +29 -33
- package/dist/src/localizeRuntime.d.ts.map +1 -1
- package/dist/src/localizeRuntime.js +74 -49
- package/dist/src/localizeRuntime.js.map +1 -1
- package/dist/src/logger.d.ts +5 -0
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/logger.js +7 -0
- package/dist/src/logger.js.map +1 -1
- package/dist/src/manualZoom.d.ts.map +1 -1
- package/dist/src/manualZoom.js +8 -5
- package/dist/src/manualZoom.js.map +1 -1
- package/dist/src/narrationVisibility.d.ts +19 -0
- package/dist/src/narrationVisibility.d.ts.map +1 -0
- package/dist/src/narrationVisibility.js +26 -0
- package/dist/src/narrationVisibility.js.map +1 -0
- package/dist/src/openBrowser.d.ts +34 -0
- package/dist/src/openBrowser.d.ts.map +1 -0
- package/dist/src/openBrowser.js +62 -0
- package/dist/src/openBrowser.js.map +1 -0
- package/dist/src/recordingData.d.ts +27 -0
- package/dist/src/recordingData.d.ts.map +1 -1
- package/dist/src/recordingSize.d.ts +32 -0
- package/dist/src/recordingSize.d.ts.map +1 -0
- package/dist/src/recordingSize.js +54 -0
- package/dist/src/recordingSize.js.map +1 -0
- package/dist/src/redact.d.ts +68 -0
- package/dist/src/redact.d.ts.map +1 -0
- package/dist/src/redact.js +138 -0
- package/dist/src/redact.js.map +1 -0
- package/dist/src/redactController.d.ts +61 -0
- package/dist/src/redactController.d.ts.map +1 -0
- package/dist/src/redactController.js +232 -0
- package/dist/src/redactController.js.map +1 -0
- package/dist/src/runtimeContext.d.ts +32 -0
- package/dist/src/runtimeContext.d.ts.map +1 -1
- package/dist/src/runtimeContext.js +21 -0
- package/dist/src/runtimeContext.js.map +1 -1
- package/dist/src/runtimeMode.d.ts +15 -7
- package/dist/src/runtimeMode.d.ts.map +1 -1
- package/dist/src/runtimeMode.js +17 -6
- package/dist/src/runtimeMode.js.map +1 -1
- package/dist/src/screenAudio.d.ts +88 -0
- package/dist/src/screenAudio.d.ts.map +1 -0
- package/dist/src/screenAudio.js +0 -0
- package/dist/src/screenAudio.js.map +1 -0
- package/dist/src/screenAudioSink.d.ts +46 -0
- package/dist/src/screenAudioSink.d.ts.map +1 -0
- package/dist/src/screenAudioSink.js +77 -0
- package/dist/src/screenAudioSink.js.map +1 -0
- package/dist/src/screenshot.d.ts +27 -29
- package/dist/src/screenshot.d.ts.map +1 -1
- package/dist/src/screenshot.js +39 -24
- package/dist/src/screenshot.js.map +1 -1
- package/dist/src/sourceTrim.d.ts +29 -0
- package/dist/src/sourceTrim.d.ts.map +1 -0
- package/dist/src/sourceTrim.js +76 -0
- package/dist/src/sourceTrim.js.map +1 -0
- package/dist/src/stillCapture.d.ts +5 -0
- package/dist/src/stillCapture.d.ts.map +1 -1
- package/dist/src/stillCapture.js +11 -1
- package/dist/src/stillCapture.js.map +1 -1
- package/dist/src/studio.d.ts +69 -57
- package/dist/src/studio.d.ts.map +1 -1
- package/dist/src/studio.js +16 -38
- package/dist/src/studio.js.map +1 -1
- package/dist/src/timelineOffset.d.ts +46 -0
- package/dist/src/timelineOffset.d.ts.map +1 -0
- package/dist/src/timelineOffset.js +66 -0
- package/dist/src/timelineOffset.js.map +1 -0
- package/dist/src/titleValidation.d.ts +38 -0
- package/dist/src/titleValidation.d.ts.map +1 -1
- package/dist/src/titleValidation.js +42 -0
- package/dist/src/titleValidation.js.map +1 -1
- package/dist/src/types.d.ts +218 -2
- 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 +74 -60
- package/dist/src/video.d.ts.map +1 -1
- package/dist/src/video.js +201 -39
- package/dist/src/video.js.map +1 -1
- package/dist/src/voiceSampleAudio.d.ts +34 -0
- package/dist/src/voiceSampleAudio.d.ts.map +1 -0
- package/dist/src/voiceSampleAudio.js +105 -0
- package/dist/src/voiceSampleAudio.js.map +1 -0
- package/dist/src/voices.d.ts +2 -2
- package/dist/src/voices.d.ts.map +1 -1
- package/dist/src/voices.js +8 -3
- package/dist/src/voices.js.map +1 -1
- package/dist/src/zoom.d.ts +1 -0
- package/dist/src/zoom.d.ts.map +1 -1
- package/dist/src/zoom.js +3 -0
- package/dist/src/zoom.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/skills/screenci/SKILL.md +2 -2
- package/skills/screenci/references/init.md +4 -3
- package/skills/screenci/references/record.md +1 -1
- package/templates/recordings/assets/logo.png +0 -0
- package/dist/docs/video-sources/public-urls.screenci.d.ts +0 -2
- package/dist/docs/video-sources/public-urls.screenci.d.ts.map +0 -1
- package/dist/docs/video-sources/public-urls.screenci.js +0 -41
- package/dist/docs/video-sources/public-urls.screenci.js.map +0 -1
package/dist/src/events.js
CHANGED
|
@@ -17,6 +17,18 @@ function assertAutoZoomUnitIntervalOption(value, name) {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Spreads a {@link TimelineAnchorInput} into the flat `untilOutputMs`/
|
|
22
|
+
* `untilPercent` fields stored on cue and asset start events. Returns an empty
|
|
23
|
+
* object when no anchor was given, so spreading it never adds undefined keys.
|
|
24
|
+
*/
|
|
25
|
+
export function timelineAnchorFields(until) {
|
|
26
|
+
if (until === undefined)
|
|
27
|
+
return {};
|
|
28
|
+
return 'outputMs' in until
|
|
29
|
+
? { untilOutputMs: until.outputMs }
|
|
30
|
+
: { untilPercent: until.percent };
|
|
31
|
+
}
|
|
20
32
|
function readScreenciVersion() {
|
|
21
33
|
const currentFileDir = dirname(fileURLToPath(import.meta.url));
|
|
22
34
|
const packageJsonPaths = [
|
|
@@ -42,10 +54,11 @@ const SCREENCI_VERSION = readScreenciVersion();
|
|
|
42
54
|
export const NOOP_EVENT_RECORDER = {
|
|
43
55
|
start() { },
|
|
44
56
|
setActiveLanguage() { },
|
|
57
|
+
setAvailableLanguages() { },
|
|
45
58
|
addInput() { },
|
|
46
59
|
addCueStart() { },
|
|
47
60
|
addStudioCueStart() { },
|
|
48
|
-
|
|
61
|
+
addValuesDeclare() { },
|
|
49
62
|
addCueEnd() { },
|
|
50
63
|
addVideoCueStart() { },
|
|
51
64
|
addAssetStart() { },
|
|
@@ -58,6 +71,7 @@ export const NOOP_EVENT_RECORDER = {
|
|
|
58
71
|
addAudioStart() { },
|
|
59
72
|
addStudioAudioStart() { },
|
|
60
73
|
addAudioEnd() { },
|
|
74
|
+
addScreenAudioTrack() { },
|
|
61
75
|
addHideStart() { },
|
|
62
76
|
addHideEnd() { },
|
|
63
77
|
getPerformanceIntervals() {
|
|
@@ -69,17 +83,32 @@ export const NOOP_EVENT_RECORDER = {
|
|
|
69
83
|
addTimeEnd() { },
|
|
70
84
|
addAutoZoomStart() { },
|
|
71
85
|
addAutoZoomEnd() { },
|
|
86
|
+
addRecordingSizeStart() { },
|
|
87
|
+
addRecordingSizeEnd() { },
|
|
88
|
+
addNarrationHide() { },
|
|
89
|
+
addNarrationShow() { },
|
|
72
90
|
registerVoiceForLang() { },
|
|
73
91
|
getEvents() {
|
|
74
92
|
return [];
|
|
75
93
|
},
|
|
76
94
|
async writeToFile() { },
|
|
77
95
|
};
|
|
96
|
+
/** Max gap (ms) for a direct snap with no audio markers in between. */
|
|
97
|
+
const SNAP_DIRECT_MS = 5;
|
|
98
|
+
/**
|
|
99
|
+
* Extra allowance added when audio markers (cueStart etc.) are found in the
|
|
100
|
+
* gap. Matches the `sleepForAssetFrameGap` duration in asset.ts (2 frames at
|
|
101
|
+
* 24 fps), which runs at assetEnd and shows up as overhead before the next
|
|
102
|
+
* operation.
|
|
103
|
+
*/
|
|
104
|
+
const SNAP_CUE_COMPENSATION_MS = Math.ceil(2 * (1000 / 24));
|
|
78
105
|
export class EventRecorder {
|
|
79
106
|
events = [];
|
|
80
107
|
pendingOverlays = [];
|
|
81
108
|
startTime = null;
|
|
82
109
|
activeLanguage = null;
|
|
110
|
+
/** Full code-defined / web-owned language set, for metadata.availableLanguages. */
|
|
111
|
+
availableLanguages = [];
|
|
83
112
|
recordOptions;
|
|
84
113
|
renderOptions;
|
|
85
114
|
/** Which option groups are deferred to Studio (`video.studio({...})`). */
|
|
@@ -96,6 +125,53 @@ export class EventRecorder {
|
|
|
96
125
|
setActiveLanguage(lang) {
|
|
97
126
|
this.activeLanguage = lang;
|
|
98
127
|
}
|
|
128
|
+
setAvailableLanguages(languages) {
|
|
129
|
+
this.availableLanguages = languages;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Returns `timeMs` snapped to the nearest preceding `hideEnd`/`assetEnd`
|
|
133
|
+
* when two opaque transitions are back-to-back. Looks back through audio-only
|
|
134
|
+
* events (cueStart, cueEnd, videoCueStart, audioStart, audioEnd,
|
|
135
|
+
* valuesDeclare) that carry no visual frames. For a direct gap the threshold
|
|
136
|
+
* is a few ms of JS overhead; if audio markers are found in the gap the
|
|
137
|
+
* threshold is extended by {@link SNAP_CUE_COMPENSATION_MS} to cover the
|
|
138
|
+
* frame-gap sleep that ran at the preceding assetEnd.
|
|
139
|
+
*
|
|
140
|
+
* When snapping, any `cueStart`/`videoCueStart` events emitted in the gap
|
|
141
|
+
* are patched to the snapped time so narration starts at the same output
|
|
142
|
+
* position as the visual transition.
|
|
143
|
+
*/
|
|
144
|
+
snapToAdjacentTransition(timeMs) {
|
|
145
|
+
let foundAudioMarker = false;
|
|
146
|
+
for (let i = this.events.length - 1; i >= 0; i--) {
|
|
147
|
+
const event = this.events[i];
|
|
148
|
+
if (event.type === 'hideEnd' || event.type === 'assetEnd') {
|
|
149
|
+
const threshold = SNAP_DIRECT_MS + (foundAudioMarker ? SNAP_CUE_COMPENSATION_MS : 0);
|
|
150
|
+
if (timeMs - event.timeMs > threshold)
|
|
151
|
+
return timeMs;
|
|
152
|
+
const snappedTime = event.timeMs;
|
|
153
|
+
for (let j = i + 1; j < this.events.length; j++) {
|
|
154
|
+
const e = this.events[j];
|
|
155
|
+
if (e.type === 'cueStart' || e.type === 'videoCueStart') {
|
|
156
|
+
;
|
|
157
|
+
e.timeMs = snappedTime;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return snappedTime;
|
|
161
|
+
}
|
|
162
|
+
if (event.type === 'cueStart' ||
|
|
163
|
+
event.type === 'cueEnd' ||
|
|
164
|
+
event.type === 'videoCueStart' ||
|
|
165
|
+
event.type === 'audioStart' ||
|
|
166
|
+
event.type === 'audioEnd' ||
|
|
167
|
+
event.type === 'valuesDeclare') {
|
|
168
|
+
foundAudioMarker = true;
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
return timeMs;
|
|
174
|
+
}
|
|
99
175
|
normalizeCentering(options) {
|
|
100
176
|
if (options?.centering === undefined)
|
|
101
177
|
return undefined;
|
|
@@ -205,7 +281,7 @@ export class EventRecorder {
|
|
|
205
281
|
events: relativeEvents,
|
|
206
282
|
});
|
|
207
283
|
}
|
|
208
|
-
addCueStart(text, name, cueConfig, translations, volume) {
|
|
284
|
+
addCueStart(text, name, cueConfig, translations, volume, until, studio) {
|
|
209
285
|
if (this.startTime === null)
|
|
210
286
|
return;
|
|
211
287
|
const timeMs = Date.now() - this.startTime;
|
|
@@ -217,9 +293,13 @@ export class EventRecorder {
|
|
|
217
293
|
...(cueConfig !== undefined && { cueConfig }),
|
|
218
294
|
...(translations !== undefined && { translations }),
|
|
219
295
|
...(volume !== undefined && { volume }),
|
|
296
|
+
// A seeded studio cue carries its seed translations AND the studio marker, so
|
|
297
|
+
// it renders from the seed yet stays web-editable (a Studio edit overrides it).
|
|
298
|
+
...(studio === true && { studio: true }),
|
|
299
|
+
...timelineAnchorFields(until),
|
|
220
300
|
});
|
|
221
301
|
}
|
|
222
|
-
addStudioCueStart(name) {
|
|
302
|
+
addStudioCueStart(name, until) {
|
|
223
303
|
if (this.startTime === null)
|
|
224
304
|
return;
|
|
225
305
|
const timeMs = Date.now() - this.startTime;
|
|
@@ -228,14 +308,15 @@ export class EventRecorder {
|
|
|
228
308
|
timeMs,
|
|
229
309
|
name,
|
|
230
310
|
studio: true,
|
|
311
|
+
...timelineAnchorFields(until),
|
|
231
312
|
});
|
|
232
313
|
}
|
|
233
|
-
|
|
314
|
+
addValuesDeclare(fields, studioFields, seed) {
|
|
234
315
|
if (this.startTime === null)
|
|
235
316
|
return;
|
|
236
317
|
const timeMs = Date.now() - this.startTime;
|
|
237
318
|
this.events.push({
|
|
238
|
-
type: '
|
|
319
|
+
type: 'valuesDeclare',
|
|
239
320
|
timeMs,
|
|
240
321
|
fields,
|
|
241
322
|
studioFields,
|
|
@@ -252,7 +333,7 @@ export class EventRecorder {
|
|
|
252
333
|
...(reason !== undefined && { reason }),
|
|
253
334
|
});
|
|
254
335
|
}
|
|
255
|
-
addVideoCueStart(name, assetPath, assetHash, subtitle, translations, volume) {
|
|
336
|
+
addVideoCueStart(name, assetPath, assetHash, subtitle, translations, volume, until, studio) {
|
|
256
337
|
if (this.startTime === null)
|
|
257
338
|
return;
|
|
258
339
|
const timeMs = Date.now() - this.startTime;
|
|
@@ -265,12 +346,15 @@ export class EventRecorder {
|
|
|
265
346
|
...(subtitle !== undefined && { subtitle }),
|
|
266
347
|
...(translations !== undefined && { translations }),
|
|
267
348
|
...(volume !== undefined && { volume }),
|
|
349
|
+
// Seeded studio media cue: keeps its seed translations and the studio marker.
|
|
350
|
+
...(studio === true && { studio: true }),
|
|
351
|
+
...timelineAnchorFields(until),
|
|
268
352
|
});
|
|
269
353
|
}
|
|
270
354
|
addAssetStart(name, asset) {
|
|
271
355
|
if (this.startTime === null)
|
|
272
356
|
return;
|
|
273
|
-
const timeMs = Date.now() - this.startTime;
|
|
357
|
+
const timeMs = this.snapToAdjacentTransition(Date.now() - this.startTime);
|
|
274
358
|
if (asset.kind === 'image') {
|
|
275
359
|
this.events.push({
|
|
276
360
|
type: 'assetStart',
|
|
@@ -282,6 +366,13 @@ export class EventRecorder {
|
|
|
282
366
|
...(asset.durationMs !== undefined && { durationMs: asset.durationMs }),
|
|
283
367
|
fullScreen: asset.fullScreen,
|
|
284
368
|
...(asset.placement !== undefined && { placement: asset.placement }),
|
|
369
|
+
...(asset.crop !== undefined && { crop: asset.crop }),
|
|
370
|
+
...(asset.untilOutputMs !== undefined && {
|
|
371
|
+
untilOutputMs: asset.untilOutputMs,
|
|
372
|
+
}),
|
|
373
|
+
...(asset.untilPercent !== undefined && {
|
|
374
|
+
untilPercent: asset.untilPercent,
|
|
375
|
+
}),
|
|
285
376
|
});
|
|
286
377
|
return;
|
|
287
378
|
}
|
|
@@ -296,6 +387,36 @@ export class EventRecorder {
|
|
|
296
387
|
...(asset.durationMs !== undefined && { durationMs: asset.durationMs }),
|
|
297
388
|
fullScreen: asset.fullScreen,
|
|
298
389
|
...(asset.placement !== undefined && { placement: asset.placement }),
|
|
390
|
+
...(asset.untilOutputMs !== undefined && {
|
|
391
|
+
untilOutputMs: asset.untilOutputMs,
|
|
392
|
+
}),
|
|
393
|
+
...(asset.untilPercent !== undefined && {
|
|
394
|
+
untilPercent: asset.untilPercent,
|
|
395
|
+
}),
|
|
396
|
+
});
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
if (asset.kind === 'dependency') {
|
|
400
|
+
this.events.push({
|
|
401
|
+
type: 'assetStart',
|
|
402
|
+
timeMs,
|
|
403
|
+
name,
|
|
404
|
+
kind: 'dependency',
|
|
405
|
+
dependency: asset.dependency,
|
|
406
|
+
...(asset.durationMs !== undefined && { durationMs: asset.durationMs }),
|
|
407
|
+
fullScreen: asset.fullScreen,
|
|
408
|
+
...(asset.placement !== undefined && { placement: asset.placement }),
|
|
409
|
+
...(asset.crop !== undefined && { crop: asset.crop }),
|
|
410
|
+
...(asset.sourceStart !== undefined && {
|
|
411
|
+
sourceStart: asset.sourceStart,
|
|
412
|
+
}),
|
|
413
|
+
...(asset.sourceEnd !== undefined && { sourceEnd: asset.sourceEnd }),
|
|
414
|
+
...(asset.untilOutputMs !== undefined && {
|
|
415
|
+
untilOutputMs: asset.untilOutputMs,
|
|
416
|
+
}),
|
|
417
|
+
...(asset.untilPercent !== undefined && {
|
|
418
|
+
untilPercent: asset.untilPercent,
|
|
419
|
+
}),
|
|
299
420
|
});
|
|
300
421
|
return;
|
|
301
422
|
}
|
|
@@ -309,6 +430,17 @@ export class EventRecorder {
|
|
|
309
430
|
audio: asset.audio,
|
|
310
431
|
fullScreen: asset.fullScreen,
|
|
311
432
|
...(asset.placement !== undefined && { placement: asset.placement }),
|
|
433
|
+
...(asset.crop !== undefined && { crop: asset.crop }),
|
|
434
|
+
...(asset.sourceStart !== undefined && {
|
|
435
|
+
sourceStart: asset.sourceStart,
|
|
436
|
+
}),
|
|
437
|
+
...(asset.sourceEnd !== undefined && { sourceEnd: asset.sourceEnd }),
|
|
438
|
+
...(asset.untilOutputMs !== undefined && {
|
|
439
|
+
untilOutputMs: asset.untilOutputMs,
|
|
440
|
+
}),
|
|
441
|
+
...(asset.untilPercent !== undefined && {
|
|
442
|
+
untilPercent: asset.untilPercent,
|
|
443
|
+
}),
|
|
312
444
|
...(asset.speed !== undefined && { speed: asset.speed }),
|
|
313
445
|
...(asset.time !== undefined && { time: asset.time }),
|
|
314
446
|
});
|
|
@@ -316,7 +448,7 @@ export class EventRecorder {
|
|
|
316
448
|
addPendingAssetStart(name, pending) {
|
|
317
449
|
if (this.startTime === null)
|
|
318
450
|
return;
|
|
319
|
-
const timeMs = Date.now() - this.startTime;
|
|
451
|
+
const timeMs = this.snapToAdjacentTransition(Date.now() - this.startTime);
|
|
320
452
|
const event = {
|
|
321
453
|
type: 'assetStart',
|
|
322
454
|
timeMs,
|
|
@@ -329,6 +461,12 @@ export class EventRecorder {
|
|
|
329
461
|
}),
|
|
330
462
|
fullScreen: pending.fullScreen,
|
|
331
463
|
...(pending.placement !== undefined && { placement: pending.placement }),
|
|
464
|
+
...(pending.untilOutputMs !== undefined && {
|
|
465
|
+
untilOutputMs: pending.untilOutputMs,
|
|
466
|
+
}),
|
|
467
|
+
...(pending.untilPercent !== undefined && {
|
|
468
|
+
untilPercent: pending.untilPercent,
|
|
469
|
+
}),
|
|
332
470
|
};
|
|
333
471
|
this.events.push(event);
|
|
334
472
|
this.pendingOverlays.push({ event, request: pending.request });
|
|
@@ -396,10 +534,28 @@ export class EventRecorder {
|
|
|
396
534
|
...(reason !== undefined && { reason }),
|
|
397
535
|
});
|
|
398
536
|
}
|
|
537
|
+
addScreenAudioTrack(audio) {
|
|
538
|
+
this.events.push({
|
|
539
|
+
type: 'audioStart',
|
|
540
|
+
timeMs: 0,
|
|
541
|
+
// Reserved track name: the renderer recognizes `__screen` as the captured
|
|
542
|
+
// screen audio (captureAudio) and re-segments it onto the raw recording
|
|
543
|
+
// timeline (cut/paused by hides, overlays, and cue holds) rather than
|
|
544
|
+
// treating it as createAudio background music. See
|
|
545
|
+
// buildCapturedScreenAudioOverlays in apps/rendering.
|
|
546
|
+
name: '__screen',
|
|
547
|
+
path: audio.path,
|
|
548
|
+
...(audio.fileHash !== undefined && { fileHash: audio.fileHash }),
|
|
549
|
+
volume: audio.volume,
|
|
550
|
+
repeat: audio.repeat,
|
|
551
|
+
...(audio.speed !== undefined && { speed: audio.speed }),
|
|
552
|
+
...(audio.time !== undefined && { time: audio.time }),
|
|
553
|
+
});
|
|
554
|
+
}
|
|
399
555
|
addHideStart() {
|
|
400
556
|
if (this.startTime === null)
|
|
401
557
|
return;
|
|
402
|
-
const timeMs = Date.now() - this.startTime;
|
|
558
|
+
const timeMs = this.snapToAdjacentTransition(Date.now() - this.startTime);
|
|
403
559
|
this.events.push({ type: 'hideStart', timeMs });
|
|
404
560
|
}
|
|
405
561
|
addHideEnd() {
|
|
@@ -491,19 +647,52 @@ export class EventRecorder {
|
|
|
491
647
|
duration: resolvedOptions.duration,
|
|
492
648
|
});
|
|
493
649
|
}
|
|
650
|
+
addRecordingSizeStart(size, options) {
|
|
651
|
+
if (this.startTime === null)
|
|
652
|
+
return;
|
|
653
|
+
const timeMs = Date.now() - this.startTime;
|
|
654
|
+
this.events.push({
|
|
655
|
+
type: 'recordingSizeStart',
|
|
656
|
+
timeMs,
|
|
657
|
+
size,
|
|
658
|
+
...(options?.duration !== undefined && { duration: options.duration }),
|
|
659
|
+
...(options?.easing !== undefined && { easing: options.easing }),
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
addRecordingSizeEnd() {
|
|
663
|
+
if (this.startTime === null)
|
|
664
|
+
return;
|
|
665
|
+
const timeMs = Date.now() - this.startTime;
|
|
666
|
+
this.events.push({ type: 'recordingSizeEnd', timeMs });
|
|
667
|
+
}
|
|
668
|
+
addNarrationHide() {
|
|
669
|
+
if (this.startTime === null)
|
|
670
|
+
return;
|
|
671
|
+
const timeMs = Date.now() - this.startTime;
|
|
672
|
+
this.events.push({ type: 'narrationHide', timeMs });
|
|
673
|
+
}
|
|
674
|
+
addNarrationShow() {
|
|
675
|
+
if (this.startTime === null)
|
|
676
|
+
return;
|
|
677
|
+
const timeMs = Date.now() - this.startTime;
|
|
678
|
+
this.events.push({ type: 'narrationShow', timeMs });
|
|
679
|
+
}
|
|
494
680
|
getEvents() {
|
|
495
681
|
return [...this.events];
|
|
496
682
|
}
|
|
497
683
|
async writeToFile(dir, videoName, sourceFilePath, options) {
|
|
498
684
|
const filePath = join(dir, 'data.json');
|
|
499
685
|
// Studio mode: render options come from the Studio page. data.json still
|
|
500
|
-
// gets fully-resolved
|
|
686
|
+
// gets a fully-resolved set (so it always validates and renders), and
|
|
501
687
|
// metadata.studio.renderOptions marks the deferral for the backend.
|
|
502
688
|
const studioRenderOptions = this.studioOptions.renderOptions;
|
|
503
689
|
const studioRecordOptions = this.studioOptions.recordOptions;
|
|
504
|
-
// Resolve all defaults so data.json always contains a complete set of
|
|
505
|
-
//
|
|
506
|
-
|
|
690
|
+
// Resolve all defaults so data.json always contains a complete set of render
|
|
691
|
+
// options. `this.renderOptions` is undefined for a blank deferral
|
|
692
|
+
// (`renderOptions: studio()`) and the seed for a seeded one
|
|
693
|
+
// (`renderOptions: studio({ ... })`), so a seed renders as the starting point
|
|
694
|
+
// while the Studio flag still marks it web-owned (the web app overrides it).
|
|
695
|
+
const ro = this.renderOptions;
|
|
507
696
|
const resolved = {
|
|
508
697
|
recording: {
|
|
509
698
|
size: ro?.recording?.size ?? RENDER_OPTIONS_DEFAULTS.recording.size,
|
|
@@ -587,6 +776,14 @@ export class EventRecorder {
|
|
|
587
776
|
: languageSet.size > 0
|
|
588
777
|
? [...languageSet].sort()
|
|
589
778
|
: undefined;
|
|
779
|
+
// The full code-defined / web-owned set, regardless of which subset was
|
|
780
|
+
// rendered this run (`--languages`). The app unions this across a video's
|
|
781
|
+
// recordings to know every defined language, so one not rendered this run is
|
|
782
|
+
// not mistaken for one removed from code. Omitted for plain videos that
|
|
783
|
+
// declare no language set (availableLanguages stays empty).
|
|
784
|
+
const availableLanguages = this.availableLanguages.length > 0
|
|
785
|
+
? [...new Set(this.availableLanguages)].sort()
|
|
786
|
+
: undefined;
|
|
590
787
|
const git = getGitMetadata();
|
|
591
788
|
const studioNarration = this.events.some((event) => event.type === 'cueStart' && event.studio === true);
|
|
592
789
|
const studioAssets = this.events.some((event) => event.type === 'assetStart' &&
|
|
@@ -595,17 +792,23 @@ export class EventRecorder {
|
|
|
595
792
|
const studioAudio = this.events.some((event) => event.type === 'audioStart' &&
|
|
596
793
|
'studio' in event &&
|
|
597
794
|
event.studio === true);
|
|
795
|
+
// Whether the language set is web-owned (`video.languages(studio())`). The
|
|
796
|
+
// web uses this to decide a video may have languages added/rendered from the
|
|
797
|
+
// app (code-defined language sets cannot be changed from the web).
|
|
798
|
+
const studioLanguages = this.studioOptions.languages === true;
|
|
598
799
|
const studio = studioRenderOptions ||
|
|
599
800
|
studioRecordOptions ||
|
|
600
801
|
studioNarration ||
|
|
601
802
|
studioAssets ||
|
|
602
|
-
studioAudio
|
|
803
|
+
studioAudio ||
|
|
804
|
+
studioLanguages
|
|
603
805
|
? {
|
|
604
806
|
...(studioRenderOptions && { renderOptions: true }),
|
|
605
807
|
...(studioRecordOptions && { recordOptions: true }),
|
|
606
808
|
...(studioNarration && { narration: true }),
|
|
607
809
|
...(studioAssets && { assets: true }),
|
|
608
810
|
...(studioAudio && { audio: true }),
|
|
811
|
+
...(studioLanguages && { languages: true }),
|
|
609
812
|
}
|
|
610
813
|
: undefined;
|
|
611
814
|
const data = {
|
|
@@ -622,6 +825,7 @@ export class EventRecorder {
|
|
|
622
825
|
videoName,
|
|
623
826
|
screenciVersion: SCREENCI_VERSION,
|
|
624
827
|
...(languages !== undefined && { languages }),
|
|
828
|
+
...(availableLanguages !== undefined && { availableLanguages }),
|
|
625
829
|
...(sourceFilePath !== undefined && { sourceFilePath }),
|
|
626
830
|
...(git.commit !== undefined && { commit: git.commit }),
|
|
627
831
|
...(git.isDirty !== undefined && { isDirty: git.isDirty }),
|
|
@@ -640,21 +844,41 @@ export class EventRecorder {
|
|
|
640
844
|
* writes exactly the active language's narration.
|
|
641
845
|
*/
|
|
642
846
|
export function filterEventTranslationsToLanguage(event, language) {
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
847
|
+
// Narration cues keep the active language's translation as a single-language
|
|
848
|
+
// map (the renderer reads `translations[language]`).
|
|
849
|
+
if (event.type === 'cueStart' || event.type === 'videoCueStart') {
|
|
850
|
+
if (event.translations === undefined) {
|
|
851
|
+
return event;
|
|
852
|
+
}
|
|
853
|
+
const translation = event.translations[language];
|
|
854
|
+
if (translation === undefined) {
|
|
855
|
+
const { translations: _dropped, ...rest } = event;
|
|
856
|
+
return rest;
|
|
857
|
+
}
|
|
858
|
+
return {
|
|
859
|
+
...event,
|
|
860
|
+
translations: { [language]: translation },
|
|
861
|
+
};
|
|
648
862
|
}
|
|
649
|
-
|
|
650
|
-
|
|
863
|
+
// Asset/audio events have no per-language map in the renderer schema: fold the
|
|
864
|
+
// active language's override up into the top-level fields and drop the map, so
|
|
865
|
+
// the renderer only ever sees a single resolved language.
|
|
866
|
+
if ((event.type === 'assetStart' || event.type === 'audioStart') &&
|
|
867
|
+
'translations' in event &&
|
|
868
|
+
event.translations !== undefined) {
|
|
869
|
+
const translations = event.translations;
|
|
651
870
|
const { translations: _dropped, ...rest } = event;
|
|
652
|
-
|
|
871
|
+
const override = translations[language];
|
|
872
|
+
if (override === undefined)
|
|
873
|
+
return rest;
|
|
874
|
+
const merged = { ...rest };
|
|
875
|
+
for (const [key, value] of Object.entries(override)) {
|
|
876
|
+
if (value !== undefined)
|
|
877
|
+
merged[key] = value;
|
|
878
|
+
}
|
|
879
|
+
return merged;
|
|
653
880
|
}
|
|
654
|
-
return
|
|
655
|
-
...event,
|
|
656
|
-
translations: { [language]: translation },
|
|
657
|
-
};
|
|
881
|
+
return event;
|
|
658
882
|
}
|
|
659
883
|
function normalizeNarrationDropShadow(input, fallback) {
|
|
660
884
|
if (typeof input === 'number') {
|
package/dist/src/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Name of the cross-run overlay cache directory, kept as a sibling of the
|
|
3
|
+
* per-recording directories under `.screenci`. Rendered overlays are keyed by
|
|
4
|
+
* their deterministic input hash here so unchanged overlays are served byte for
|
|
5
|
+
* byte from a previous run (skipping both the browser render and a fresh,
|
|
6
|
+
* non-deterministic encode that would otherwise change the upload hash and force
|
|
7
|
+
* a re-upload every run). The CLI's recording-directory wipe must preserve this
|
|
8
|
+
* directory, so the name is shared from here.
|
|
9
|
+
*/
|
|
10
|
+
export declare const OVERLAY_CACHE_DIR_NAME = ".overlay-cache";
|
|
1
11
|
export declare const DEFAULT_OVERLAY_DEVICE_SCALE_FACTOR = 2;
|
|
2
12
|
export type HtmlRasterizeResult = {
|
|
3
13
|
/** Absolute path to the written PNG. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlRasterizer.d.ts","sourceRoot":"","sources":["../../src/htmlRasterizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"htmlRasterizer.d.ts","sourceRoot":"","sources":["../../src/htmlRasterizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,16 @@ import ffmpegStatic from 'ffmpeg-static';
|
|
|
8
8
|
import { getRuntimePage, getRuntimeRecordingDir } from './runtimeContext.js';
|
|
9
9
|
const ffmpegPath = ffmpegStatic;
|
|
10
10
|
const OVERLAY_ROOT_ID = 'screenci-overlay-root';
|
|
11
|
+
/**
|
|
12
|
+
* Name of the cross-run overlay cache directory, kept as a sibling of the
|
|
13
|
+
* per-recording directories under `.screenci`. Rendered overlays are keyed by
|
|
14
|
+
* their deterministic input hash here so unchanged overlays are served byte for
|
|
15
|
+
* byte from a previous run (skipping both the browser render and a fresh,
|
|
16
|
+
* non-deterministic encode that would otherwise change the upload hash and force
|
|
17
|
+
* a re-upload every run). The CLI's recording-directory wipe must preserve this
|
|
18
|
+
* directory, so the name is shared from here.
|
|
19
|
+
*/
|
|
20
|
+
export const OVERLAY_CACHE_DIR_NAME = '.overlay-cache';
|
|
11
21
|
// Render overlays at 2x pixel density so the PNG carries more detail than the
|
|
12
22
|
// on-screen overlay size. The renderer then downscales it to the placement box,
|
|
13
23
|
// which keeps text and edges crisp. 2x keeps overlays sharp at typical sizes
|
|
@@ -136,7 +146,7 @@ async function renderOverlay(recordingDir, deviceScaleFactor, html, css, capture
|
|
|
136
146
|
css,
|
|
137
147
|
html,
|
|
138
148
|
});
|
|
139
|
-
const cacheDir = join(dirname(recordingDir),
|
|
149
|
+
const cacheDir = join(dirname(recordingDir), OVERLAY_CACHE_DIR_NAME);
|
|
140
150
|
const pngPath = join(cacheDir, `${inputHash}.png`);
|
|
141
151
|
const metaPath = join(cacheDir, `${inputHash}.json`);
|
|
142
152
|
if (existsSync(pngPath) && existsSync(metaPath)) {
|
|
@@ -336,7 +346,7 @@ async function renderAnimatedOverlay(recordingDir, request) {
|
|
|
336
346
|
css: request.css ?? '',
|
|
337
347
|
html: request.html,
|
|
338
348
|
});
|
|
339
|
-
const cacheDir = join(dirname(recordingDir),
|
|
349
|
+
const cacheDir = join(dirname(recordingDir), OVERLAY_CACHE_DIR_NAME);
|
|
340
350
|
const clipPath = join(cacheDir, `${inputHash}.mp4`);
|
|
341
351
|
const metaPath = join(cacheDir, `${inputHash}.anim.json`);
|
|
342
352
|
if (existsSync(clipPath) && existsSync(metaPath)) {
|