screenci 0.0.68 → 0.0.69

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 (76) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.d.ts +3 -18
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +105 -154
  5. package/dist/cli.js.map +1 -1
  6. package/dist/docs/manifest.d.ts +13 -13
  7. package/dist/docs/manifest.js +4 -4
  8. package/dist/docs/manifest.js.map +1 -1
  9. package/dist/docs/video-sources/studio.video.d.ts +2 -0
  10. package/dist/docs/video-sources/studio.video.d.ts.map +1 -0
  11. package/dist/docs/video-sources/studio.video.js +57 -0
  12. package/dist/docs/video-sources/studio.video.js.map +1 -0
  13. package/dist/e2e/htmlRasterizer.e2e.d.ts +2 -0
  14. package/dist/e2e/htmlRasterizer.e2e.d.ts.map +1 -0
  15. package/dist/e2e/htmlRasterizer.e2e.js +107 -0
  16. package/dist/e2e/htmlRasterizer.e2e.js.map +1 -0
  17. package/dist/index.d.ts +5 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/src/asset.d.ts +141 -53
  22. package/dist/src/asset.d.ts.map +1 -1
  23. package/dist/src/asset.js +533 -78
  24. package/dist/src/asset.js.map +1 -1
  25. package/dist/src/audio.d.ts +113 -0
  26. package/dist/src/audio.d.ts.map +1 -0
  27. package/dist/src/audio.js +204 -0
  28. package/dist/src/audio.js.map +1 -0
  29. package/dist/src/defaults.d.ts +7 -1
  30. package/dist/src/defaults.d.ts.map +1 -1
  31. package/dist/src/defaults.js +7 -0
  32. package/dist/src/defaults.js.map +1 -1
  33. package/dist/src/events.d.ts +134 -6
  34. package/dist/src/events.d.ts.map +1 -1
  35. package/dist/src/events.js +73 -2
  36. package/dist/src/events.js.map +1 -1
  37. package/dist/src/htmlRasterizer.d.ts +110 -0
  38. package/dist/src/htmlRasterizer.d.ts.map +1 -0
  39. package/dist/src/htmlRasterizer.js +364 -0
  40. package/dist/src/htmlRasterizer.js.map +1 -0
  41. package/dist/src/init.d.ts +17 -0
  42. package/dist/src/init.d.ts.map +1 -1
  43. package/dist/src/init.js +127 -7
  44. package/dist/src/init.js.map +1 -1
  45. package/dist/src/linkSession.d.ts +36 -0
  46. package/dist/src/linkSession.d.ts.map +1 -0
  47. package/dist/src/linkSession.js +122 -0
  48. package/dist/src/linkSession.js.map +1 -0
  49. package/dist/src/performance.d.ts +1 -3
  50. package/dist/src/performance.d.ts.map +1 -1
  51. package/dist/src/performance.js +0 -12
  52. package/dist/src/performance.js.map +1 -1
  53. package/dist/src/recording.d.ts +1 -1
  54. package/dist/src/recording.d.ts.map +1 -1
  55. package/dist/src/recordingData.d.ts +2 -2
  56. package/dist/src/recordingData.d.ts.map +1 -1
  57. package/dist/src/runtimeContext.d.ts +38 -0
  58. package/dist/src/runtimeContext.d.ts.map +1 -1
  59. package/dist/src/runtimeContext.js +25 -0
  60. package/dist/src/runtimeContext.js.map +1 -1
  61. package/dist/src/types.d.ts +25 -7
  62. package/dist/src/types.d.ts.map +1 -1
  63. package/dist/src/types.js.map +1 -1
  64. package/dist/src/video.d.ts +34 -1
  65. package/dist/src/video.d.ts.map +1 -1
  66. package/dist/src/video.js +120 -19
  67. package/dist/src/video.js.map +1 -1
  68. package/dist/src/voices.d.ts +22 -9
  69. package/dist/src/voices.d.ts.map +1 -1
  70. package/dist/src/voices.js +6 -24
  71. package/dist/src/voices.js.map +1 -1
  72. package/dist/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +16 -2
  74. package/skills/screenci/SKILL.md +27 -5
  75. package/skills/screenci/references/init.md +2 -0
  76. package/skills/screenci/references/record.md +6 -1
package/dist/src/video.js CHANGED
@@ -9,13 +9,14 @@ import { setActiveCueRecorder } from './cue.js';
9
9
  import { setActiveHideRecorder } from './hide.js';
10
10
  import { setActiveAutoZoomRecorder, setActiveZoomPage } from './autoZoom.js';
11
11
  import { setActiveAssetRecorder } from './asset.js';
12
- import { DEFAULT_VIDEO_OPTIONS, DEFAULT_ASPECT_RATIO, DEFAULT_QUALITY, DEFAULT_FPS, } from './defaults.js';
12
+ import { setActiveAudioRecorder } from './audio.js';
13
+ import { DEFAULT_VIDEO_OPTIONS, DEFAULT_ASPECT_RATIO, DEFAULT_QUALITY, DEFAULT_FPS, DEFAULT_VIDEO_ENCODER, } from './defaults.js';
13
14
  import { EventRecorder } from './events.js';
14
15
  import { bindClickRecorderToPage, instrumentBrowser, instrumentContext, setActiveClickRecorder, } from './instrument.js';
15
16
  import { logger } from './logger.js';
16
17
  import { setMousePosition } from './mouse.js';
17
18
  import { getChromiumLaunchOptions } from './browserLaunchOptions.js';
18
- import { createScreenCIRuntimeContext, runWithScreenCIRuntimeContext, setActiveScreenCIRuntimeContext, setRuntimeAssetRecorder, setRuntimeAutoZoomRecorder, setRuntimeClickRecorder, setRuntimeCueRecorder, setRuntimeHideRecorder, setRuntimePage, } from './runtimeContext.js';
19
+ import { createScreenCIRuntimeContext, runWithScreenCIRuntimeContext, setActiveScreenCIRuntimeContext, setRuntimeAssetRecorder, setRuntimeAudioRecorder, setRuntimeAutoZoomRecorder, setRuntimeClickRecorder, setRuntimeCueRecorder, setRuntimeHideRecorder, setRuntimePage, } from './runtimeContext.js';
19
20
  import { escapeFileSystemPathSegment } from './fileSystemName.js';
20
21
  import { resolveRecordingTimingDuration } from './runtimeMode.js';
21
22
  export const POST_VIDEO_PAUSE = 500;
@@ -67,7 +68,98 @@ export async function positionMouseAtViewportCenter(page, dimensions) {
67
68
  setMousePosition(page, viewportCenter);
68
69
  return viewportCenter;
69
70
  }
70
- async function startScreencastRecording(page, outputPath, fps, quality, aspectRatio) {
71
+ /**
72
+ * Encoder arguments for the screencast's realtime first pass, per preset.
73
+ *
74
+ * We keep the recorder's realtime first pass as the final artifact (the second
75
+ * pass is disabled below via `runSecondPass`), so these are the only encoder
76
+ * settings that reach the saved recording. playwright-recorder-plus has no
77
+ * public option for the first-pass encoder, so `applyFirstPassEncoderArgs`
78
+ * overrides the recorder's internal first-pass args at runtime. Doing it at
79
+ * runtime (rather than patching the dependency on disk) means it works for
80
+ * every install: npm, pnpm and yarn, with no postinstall step.
81
+ *
82
+ * - `'sharp'` is tuned for text-heavy UI: `-tune stillimage` and a low `-crf`
83
+ * preserve sharp glyph edges, while `-preset veryfast` stays above realtime
84
+ * so the screencast stream never backpressures (which drops frames and
85
+ * shortens the timeline).
86
+ * - `'fast'` mirrors the library's original `-preset ultrafast -crf 18` for
87
+ * resource-constrained CI that cannot keep up with the sharper encode.
88
+ *
89
+ * Both use `yuv420p` so the output stays decodable by the downstream NVDEC
90
+ * CUDA render pipeline (4:4:4 H.264 is not reliably hardware-decodable).
91
+ */
92
+ const FIRST_PASS_ARGS_BY_ENCODER = {
93
+ sharp: [
94
+ '-c:v',
95
+ 'libx264',
96
+ '-preset',
97
+ 'veryfast',
98
+ '-crf',
99
+ '12',
100
+ '-tune',
101
+ 'stillimage',
102
+ '-pix_fmt',
103
+ 'yuv420p',
104
+ '-movflags',
105
+ '+faststart',
106
+ ],
107
+ fast: [
108
+ '-c:v',
109
+ 'libx264',
110
+ '-preset',
111
+ 'ultrafast',
112
+ '-crf',
113
+ '18',
114
+ '-pix_fmt',
115
+ 'yuv420p',
116
+ '-movflags',
117
+ '+faststart',
118
+ ],
119
+ };
120
+ /**
121
+ * Resolve the first-pass encoder args for a given preset. Exported for testing.
122
+ */
123
+ export function resolveRecordingFirstPassArgs(encoder = DEFAULT_VIDEO_ENCODER) {
124
+ return FIRST_PASS_ARGS_BY_ENCODER[encoder];
125
+ }
126
+ /**
127
+ * Replace the output-encoder tail of a built first-pass ffmpeg arg list.
128
+ *
129
+ * The recorder's first-pass args contain two `-c:v` flags: the first selects
130
+ * the mjpeg input decoder, the last selects the output encoder. We swap
131
+ * everything from that last `-c:v` to the end with `encoderArgs` (which start
132
+ * at their own `-c:v`), leaving the input/rate flags before it untouched.
133
+ *
134
+ * Pure and exported for testing. Throws if no output encoder is present, so a
135
+ * future change to the recorder's internals fails loudly instead of silently
136
+ * recording with the wrong encoder.
137
+ */
138
+ export function overrideFirstPassEncoderArgs(currentArgs, encoderArgs) {
139
+ const encoderStart = currentArgs.lastIndexOf('-c:v');
140
+ if (encoderStart === -1) {
141
+ throw new Error('playwright-recorder-plus first-pass args contained no output encoder (-c:v); ' +
142
+ 'cannot apply the configured capture encoder. The recorder internals may have changed.');
143
+ }
144
+ return [...currentArgs.slice(0, encoderStart), ...encoderArgs];
145
+ }
146
+ /**
147
+ * Override the recorder's first-pass encoder in place, before `start()`.
148
+ *
149
+ * `attachRecorder` builds `config.firstPassArgs` eagerly but only spawns the
150
+ * first-pass ffmpeg process on `start()`, so mutating it here (with
151
+ * `autoStart: false`) takes effect for the actual recording.
152
+ */
153
+ export function applyFirstPassEncoderArgs(recorder, encoderArgs) {
154
+ const config = recorder.config;
155
+ const current = config?.firstPassArgs;
156
+ if (!config || !Array.isArray(current)) {
157
+ throw new Error('playwright-recorder-plus recorder did not expose config.firstPassArgs; ' +
158
+ 'cannot apply the configured capture encoder. The recorder internals may have changed.');
159
+ }
160
+ config.firstPassArgs = overrideFirstPassEncoderArgs(current, encoderArgs);
161
+ }
162
+ async function startScreencastRecording(page, outputPath, fps, quality, aspectRatio, encoder) {
71
163
  const { width, height } = getDimensions(aspectRatio, quality);
72
164
  const recorder = await attachRecorder(page, {
73
165
  path: outputPath,
@@ -76,24 +168,27 @@ async function startScreencastRecording(page, outputPath, fps, quality, aspectRa
76
168
  size: { width, height },
77
169
  fps,
78
170
  jpegQuality: 100,
79
- ffmpegArgs: [
80
- '-c:v',
81
- 'libx264',
82
- '-preset',
83
- 'slow',
84
- '-tune',
85
- 'stillimage',
86
- '-crf',
87
- '12',
88
- '-pix_fmt',
89
- 'yuv444p',
90
- '-movflags',
91
- 'frag_keyframe+empty_moov',
92
- ],
93
171
  });
172
+ // Apply the configured capture encoder. The library has no public option for
173
+ // the first-pass encoder, so we override the recorder's internal first-pass
174
+ // args in place (before start(), which autoStart: false guarantees).
175
+ applyFirstPassEncoderArgs(recorder, resolveRecordingFirstPassArgs(encoder));
94
176
  recorder.runSecondPass = async (firstPass) => firstPass;
95
177
  return recorder;
96
178
  }
179
+ /**
180
+ * Fails the recording if any overlay was `start()`ed but never `end()`ed.
181
+ * Every live overlay must be paired so the renderer never sees a dangling
182
+ * `assetStart` with no `assetEnd`. Only called on the success path, so it never
183
+ * masks an error thrown by the video function itself.
184
+ */
185
+ export function assertAllOverlaysEnded(runtimeContext) {
186
+ const open = [...runtimeContext.asset.activeRuns.keys()];
187
+ if (open.length === 0)
188
+ return;
189
+ const names = open.map((name) => `"${name}"`).join(', ');
190
+ throw new Error(`[screenci] Overlay(s) ${names} were started with .start() but never ended. Call end() for each overlay before the video function returns.`);
191
+ }
97
192
  async function withActiveRecordingContext(params) {
98
193
  const { runtimeContext, page, recorder, fn } = params;
99
194
  setActiveScreenCIRuntimeContext(runtimeContext);
@@ -104,16 +199,20 @@ async function withActiveRecordingContext(params) {
104
199
  setRuntimeHideRecorder(recorder);
105
200
  setRuntimeAutoZoomRecorder(recorder);
106
201
  setRuntimeAssetRecorder(recorder);
202
+ setRuntimeAudioRecorder(recorder);
107
203
  setRuntimeClickRecorder(recorder);
108
204
  setActiveCueRecorder(recorder);
109
205
  setActiveHideRecorder(recorder);
110
206
  setActiveAutoZoomRecorder(recorder);
111
207
  setActiveZoomPage(page);
112
208
  setActiveAssetRecorder(recorder);
209
+ setActiveAudioRecorder(recorder);
113
210
  setActiveClickRecorder(recorder);
114
211
  bindClickRecorderToPage(page, recorder);
115
212
  setRuntimePage(page);
116
- return await fn();
213
+ const result = await fn();
214
+ assertAllOverlaysEnded(runtimeContext);
215
+ return result;
117
216
  });
118
217
  }
119
218
  finally {
@@ -199,6 +298,7 @@ const _videoBase = base.extend({
199
298
  const aspectRatio = recordOptions.aspectRatio ?? DEFAULT_ASPECT_RATIO;
200
299
  const quality = recordOptions.quality ?? DEFAULT_QUALITY;
201
300
  const fps = recordOptions.fps ?? DEFAULT_FPS;
301
+ const encoder = recordOptions.encoder ?? DEFAULT_VIDEO_ENCODER;
202
302
  const dimensions = getDimensions(aspectRatio, quality);
203
303
  const directoryName = escapeFileSystemPathSegment(testInfo.title);
204
304
  // Create directory path: .screenci/[video-title]/
@@ -220,6 +320,7 @@ const _videoBase = base.extend({
220
320
  recorder,
221
321
  page,
222
322
  testFilePath: testInfo.file,
323
+ recordingDir: videoDir,
223
324
  });
224
325
  await setupMouseTracking(page, recorder);
225
326
  // Navigate to blank page to ensure window is ready and rendered
@@ -227,7 +328,7 @@ const _videoBase = base.extend({
227
328
  // Wait for browser window to be fully rendered before starting recording
228
329
  // This prevents black screen captures
229
330
  await page.waitForTimeout(resolveRecordingTimingDuration(1500));
230
- const screenRecorder = await startScreencastRecording(page, videoPath, fps, quality, aspectRatio);
331
+ const screenRecorder = await startScreencastRecording(page, videoPath, fps, quality, aspectRatio, encoder);
231
332
  await positionMouseAtViewportCenter(page, dimensions);
232
333
  await screenRecorder.start();
233
334
  // Mark the moment the video recording actually begins after the cursor is positioned.
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/video.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/video.ts"],"names":[],"mappings":"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"}
@@ -24,22 +24,33 @@ export type ModelType = (typeof modelTypes)[keyof typeof modelTypes];
24
24
  *
25
25
  * ```ts
26
26
  * createNarration({
27
- * en: { voice: voices.Aria, intro: 'Hello' },
28
- * fi: { voice: voices.Aria, intro: 'Hei' },
27
+ * en: { voice: { name: voices.Aria }, intro: 'Hello' },
28
+ * fi: { voice: { name: voices.Aria }, intro: 'Hei' },
29
29
  * })
30
30
  * ```
31
31
  *
32
- * ElevenLabs voices are passed explicitly by provider voice id:
32
+ * ElevenLabs voices are passed by provider voice id, or cloned from a local
33
+ * audio/video sample — both via `voices.elevenlabs(...)`:
33
34
  *
34
35
  * ```ts
35
36
  * createNarration({
36
37
  * en: {
37
- * voice: voices.elevenlabs({ voiceId: 'tMvyQtpCVQ0DkixuYm6J' }),
38
+ * voice: { name: voices.elevenlabs({ voiceId: 'tMvyQtpCVQ0DkixuYm6J' }) },
38
39
  * intro: 'Hello',
39
40
  * },
41
+ * fi: {
42
+ * voice: { name: voices.elevenlabs({ path: './my-voice.mp3' }) },
43
+ * intro: 'Hei',
44
+ * },
40
45
  * })
41
46
  * ```
42
47
  */
48
+ declare function elevenlabsVoice(ref: {
49
+ voiceId: string;
50
+ }): ElevenLabsVoiceKey;
51
+ declare function elevenlabsVoice(ref: {
52
+ path: string;
53
+ }): CustomVoiceRef;
43
54
  export declare const voices: {
44
55
  /** Male — Clear — Direct and structured, ideal for straightforward explanations. */
45
56
  readonly Adrian: "Adrian";
@@ -101,9 +112,7 @@ export declare const voices: {
101
112
  readonly Victor: "Victor";
102
113
  /** Female — Upbeat — Positive and motivating, encouraging continued interaction. */
103
114
  readonly Zoe: "Zoe";
104
- readonly elevenlabs: ({ voiceId }: {
105
- voiceId: string;
106
- }) => ElevenLabsVoiceKey;
115
+ readonly elevenlabs: typeof elevenlabsVoice;
107
116
  };
108
117
  export type ModelVoiceKey = keyof Omit<typeof voices, 'elevenlabs'>;
109
118
  export type ElevenLabsVoiceKey = `elevenlabs:${string}`;
@@ -116,12 +125,16 @@ export declare const supportedLanguages: readonly ["ar", "bn", "nl", "en", "fr",
116
125
  export type Lang = SupportedBaseLanguageCode;
117
126
  /**
118
127
  * A reference to a local audio or video file for ElevenLabs Instant Voice Cloning.
119
- * Pass as the `voice` in `createNarration` to clone a voice from the file at `path`.
128
+ * Build one with `voices.elevenlabs({ path })` and pass it as the voice `name`
129
+ * in `createNarration` to clone a voice from the file at `path`.
120
130
  *
121
131
  * @example
122
132
  * ```ts
123
133
  * createNarration({
124
- * en: { voice: { path: './my-voice.mp3' }, intro: 'Hello.' },
134
+ * en: {
135
+ * voice: { name: voices.elevenlabs({ path: './my-voice.mp3' }) },
136
+ * intro: 'Hello.',
137
+ * },
125
138
  * })
126
139
  * ```
127
140
  */
@@ -1 +1 @@
1
- {"version":3,"file":"voices.d.ts","sourceRoot":"","sources":["../../src/voices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU;;;CAGb,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAEpE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,eAAO,MAAM,MAAM;IACjB,oFAAoF;;IAGpF,2FAA2F;;IAG3F,+EAA+E;;IAG/E,+EAA+E;;IAG/E,4FAA4F;;IAG5F,+FAA+F;;IAG/F,yFAAyF;;IAGzF,gGAAgG;;IAGhG,+EAA+E;;IAG/E,qFAAqF;;IAGrF,0FAA0F;;IAG1F,iFAAiF;;IAGjF,+EAA+E;;IAG/E,sFAAsF;;IAGtF,uEAAuE;;IAGvE,4FAA4F;;IAG5F,4FAA4F;;IAG5F,sFAAsF;;IAGtF,qFAAqF;;IAGrF,yFAAyF;;IAGzF,4EAA4E;;IAG5E,+EAA+E;;IAG/E,wEAAwE;;IAGxE,6FAA6F;;IAG7F,gFAAgF;;IAGhF,oFAAoF;;IAGpF,6EAA6E;;IAG7E,iFAAiF;;IAGjF,sFAAsF;;IAGtF,oFAAoF;;uCAG1D;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAChB,kBAAkB;CACvC,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,MAAM,EAAE,YAAY,CAAC,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,cAAc,MAAM,EAAE,CAAA;AAEvD,0EAA0E;AAC1E,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,kBAAkB,CAAA;AAKzD,QAAA,MAAM,0BAA0B,oeA+EtB,CAAA;AAEV,KAAK,yBAAyB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5E,eAAO,MAAM,kBAAkB,oeAA6B,CAAA;AAE5D,qEAAqE;AACrE,MAAM,MAAM,IAAI,GAAG,yBAAyB,CAAA;AAE5C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"voices.d.ts","sourceRoot":"","sources":["../../src/voices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU;;;CAGb,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,iBAAS,eAAe,CAAC,GAAG,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,kBAAkB,CAAA;AACtE,iBAAS,eAAe,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAAA;AAY/D,eAAO,MAAM,MAAM;IACjB,oFAAoF;;IAGpF,2FAA2F;;IAG3F,+EAA+E;;IAG/E,+EAA+E;;IAG/E,4FAA4F;;IAG5F,+FAA+F;;IAG/F,yFAAyF;;IAGzF,gGAAgG;;IAGhG,+EAA+E;;IAG/E,qFAAqF;;IAGrF,0FAA0F;;IAG1F,iFAAiF;;IAGjF,+EAA+E;;IAG/E,sFAAsF;;IAGtF,uEAAuE;;IAGvE,4FAA4F;;IAG5F,4FAA4F;;IAG5F,sFAAsF;;IAGtF,qFAAqF;;IAGrF,yFAAyF;;IAGzF,4EAA4E;;IAG5E,+EAA+E;;IAG/E,wEAAwE;;IAGxE,6FAA6F;;IAG7F,gFAAgF;;IAGhF,oFAAoF;;IAGpF,6EAA6E;;IAG7E,iFAAiF;;IAGjF,sFAAsF;;IAGtF,oFAAoF;;;CAI5E,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,MAAM,EAAE,YAAY,CAAC,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,cAAc,MAAM,EAAE,CAAA;AAEvD,0EAA0E;AAC1E,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,kBAAkB,CAAA;AAKzD,QAAA,MAAM,0BAA0B,oeA+EtB,CAAA;AAEV,KAAK,yBAAyB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5E,eAAO,MAAM,kBAAkB,oeAA6B,CAAA;AAE5D,qEAAqE;AACrE,MAAM,MAAM,IAAI,GAAG,yBAAyB,CAAA;AAE5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA"}
@@ -16,29 +16,11 @@ export const modelTypes = {
16
16
  expressive: 'expressive',
17
17
  consistent: 'consistent',
18
18
  };
19
- /**
20
- * Named voices available for use with `createNarration`.
21
- *
22
- * Built-in voices are language-agnostic at the call site:
23
- *
24
- * ```ts
25
- * createNarration({
26
- * en: { voice: voices.Aria, intro: 'Hello' },
27
- * fi: { voice: voices.Aria, intro: 'Hei' },
28
- * })
29
- * ```
30
- *
31
- * ElevenLabs voices are passed explicitly by provider voice id:
32
- *
33
- * ```ts
34
- * createNarration({
35
- * en: {
36
- * voice: voices.elevenlabs({ voiceId: 'tMvyQtpCVQ0DkixuYm6J' }),
37
- * intro: 'Hello',
38
- * },
39
- * })
40
- * ```
41
- */
19
+ function elevenlabsVoice(ref) {
20
+ return 'path' in ref
21
+ ? { path: ref.path }
22
+ : `elevenlabs:${ref.voiceId}`;
23
+ }
42
24
  // DOCS_SYNC:
43
25
  // Keep the "Available voices" section in docs/narration-and-localization.md
44
26
  // in sync with this list and the voice character blurbs below.
@@ -103,7 +85,7 @@ export const voices = {
103
85
  Victor: 'Victor',
104
86
  /** Female — Upbeat — Positive and motivating, encouraging continued interaction. */
105
87
  Zoe: 'Zoe',
106
- elevenlabs: ({ voiceId }) => `elevenlabs:${voiceId}`,
88
+ elevenlabs: elevenlabsVoice,
107
89
  };
108
90
  // DOCS_SYNC:
109
91
  // Keep the "Available languages" section in docs/narration-and-localization.md
@@ -1 +1 @@
1
- {"version":3,"file":"voices.js","sourceRoot":"","sources":["../../src/voices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voices.js","sourceRoot":"","sources":["../../src/voices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;CAChB,CAAA;AAoCV,SAAS,eAAe,CACtB,GAA2C;IAE3C,OAAO,MAAM,IAAI,GAAG;QAClB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;QACpB,CAAC,CAAE,cAAc,GAAG,CAAC,OAAO,EAAyB,CAAA;AACzD,CAAC;AAED,aAAa;AACb,4EAA4E;AAC5E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,oFAAoF;IACpF,MAAM,EAAE,QAAQ;IAEhB,2FAA2F;IAC3F,IAAI,EAAE,MAAM;IAEZ,+EAA+E;IAC/E,GAAG,EAAE,KAAK;IAEV,+EAA+E;IAC/E,KAAK,EAAE,OAAO;IAEd,4FAA4F;IAC5F,MAAM,EAAE,QAAQ;IAEhB,+FAA+F;IAC/F,KAAK,EAAE,OAAO;IAEd,yFAAyF;IACzF,IAAI,EAAE,MAAM;IAEZ,gGAAgG;IAChG,KAAK,EAAE,OAAO;IAEd,+EAA+E;IAC/E,IAAI,EAAE,MAAM;IAEZ,qFAAqF;IACrF,KAAK,EAAE,OAAO;IAEd,0FAA0F;IAC1F,MAAM,EAAE,QAAQ;IAEhB,iFAAiF;IACjF,MAAM,EAAE,QAAQ;IAEhB,+EAA+E;IAC/E,QAAQ,EAAE,UAAU;IAEpB,sFAAsF;IACtF,MAAM,EAAE,QAAQ;IAEhB,uEAAuE;IACvE,KAAK,EAAE,OAAO;IAEd,4FAA4F;IAC5F,GAAG,EAAE,KAAK;IAEV,4FAA4F;IAC5F,IAAI,EAAE,MAAM;IAEZ,sFAAsF;IACtF,MAAM,EAAE,QAAQ;IAEhB,qFAAqF;IACrF,GAAG,EAAE,KAAK;IAEV,yFAAyF;IACzF,IAAI,EAAE,MAAM;IAEZ,4EAA4E;IAC5E,KAAK,EAAE,OAAO;IAEd,+EAA+E;IAC/E,IAAI,EAAE,MAAM;IAEZ,wEAAwE;IACxE,IAAI,EAAE,MAAM;IAEZ,6FAA6F;IAC7F,IAAI,EAAE,MAAM;IAEZ,gFAAgF;IAChF,IAAI,EAAE,MAAM;IAEZ,oFAAoF;IACpF,GAAG,EAAE,KAAK;IAEV,6EAA6E;IAC7E,MAAM,EAAE,QAAQ;IAEhB,iFAAiF;IACjF,MAAM,EAAE,QAAQ;IAEhB,sFAAsF;IACtF,MAAM,EAAE,QAAQ;IAEhB,oFAAoF;IACpF,GAAG,EAAE,KAAK;IAEV,UAAU,EAAE,eAAe;CACnB,CAAA;AAQV,aAAa;AACb,+EAA+E;AAC/E,qCAAqC;AACrC,MAAM,0BAA0B,GAAG;IACjC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACI,CAAA;AAIV,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAA"}