screenci 0.0.4 → 0.0.6

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 (94) hide show
  1. package/README.md +227 -0
  2. package/cli.ts +1111 -0
  3. package/dist/cli.d.ts +4 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +896 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/e2e/instrument.e2e.d.ts +2 -0
  8. package/dist/e2e/instrument.e2e.d.ts.map +1 -0
  9. package/dist/e2e/instrument.e2e.js +661 -0
  10. package/dist/e2e/instrument.e2e.js.map +1 -0
  11. package/dist/index.d.ts +18 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +15 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/playwright.config.d.ts +3 -0
  16. package/dist/playwright.config.d.ts.map +1 -0
  17. package/dist/playwright.config.js +21 -0
  18. package/dist/playwright.config.js.map +1 -0
  19. package/dist/reporter.d.ts +9 -0
  20. package/dist/reporter.d.ts.map +1 -0
  21. package/dist/reporter.js +49 -0
  22. package/dist/reporter.js.map +1 -0
  23. package/dist/src/asset.d.ts +90 -0
  24. package/dist/src/asset.d.ts.map +1 -0
  25. package/dist/src/asset.js +74 -0
  26. package/dist/src/asset.js.map +1 -0
  27. package/dist/src/autoZoom.d.ts +40 -0
  28. package/dist/src/autoZoom.d.ts.map +1 -0
  29. package/dist/src/autoZoom.js +88 -0
  30. package/dist/src/autoZoom.js.map +1 -0
  31. package/dist/src/caption.d.ts +152 -0
  32. package/dist/src/caption.d.ts.map +1 -0
  33. package/dist/src/caption.js +240 -0
  34. package/dist/src/caption.js.map +1 -0
  35. package/dist/src/caption.test-d.d.ts +2 -0
  36. package/dist/src/caption.test-d.d.ts.map +1 -0
  37. package/dist/src/caption.test-d.js +50 -0
  38. package/dist/src/caption.test-d.js.map +1 -0
  39. package/dist/src/config.d.ts +42 -0
  40. package/dist/src/config.d.ts.map +1 -0
  41. package/dist/src/config.js +147 -0
  42. package/dist/src/config.js.map +1 -0
  43. package/dist/src/defaults.d.ts +63 -0
  44. package/dist/src/defaults.d.ts.map +1 -0
  45. package/dist/src/defaults.js +66 -0
  46. package/dist/src/defaults.js.map +1 -0
  47. package/dist/src/dimensions.d.ts +29 -0
  48. package/dist/src/dimensions.d.ts.map +1 -0
  49. package/dist/src/dimensions.js +47 -0
  50. package/dist/src/dimensions.js.map +1 -0
  51. package/dist/src/events.d.ts +203 -0
  52. package/dist/src/events.d.ts.map +1 -0
  53. package/dist/src/events.js +227 -0
  54. package/dist/src/events.js.map +1 -0
  55. package/dist/src/hide.d.ts +27 -0
  56. package/dist/src/hide.d.ts.map +1 -0
  57. package/dist/src/hide.js +49 -0
  58. package/dist/src/hide.js.map +1 -0
  59. package/dist/src/instrument.d.ts +15 -0
  60. package/dist/src/instrument.d.ts.map +1 -0
  61. package/dist/src/instrument.js +910 -0
  62. package/dist/src/instrument.js.map +1 -0
  63. package/dist/src/logger.d.ts +7 -0
  64. package/dist/src/logger.d.ts.map +1 -0
  65. package/dist/src/logger.js +13 -0
  66. package/dist/src/logger.js.map +1 -0
  67. package/dist/src/reporter.d.ts +9 -0
  68. package/dist/src/reporter.d.ts.map +1 -0
  69. package/dist/src/reporter.js +50 -0
  70. package/dist/src/reporter.js.map +1 -0
  71. package/dist/src/sanitize.d.ts +5 -0
  72. package/dist/src/sanitize.d.ts.map +1 -0
  73. package/dist/src/sanitize.js +11 -0
  74. package/dist/src/sanitize.js.map +1 -0
  75. package/dist/src/types.d.ts +544 -0
  76. package/dist/src/types.d.ts.map +1 -0
  77. package/dist/src/types.js +2 -0
  78. package/dist/src/types.js.map +1 -0
  79. package/dist/src/video.d.ts +138 -0
  80. package/dist/src/video.d.ts.map +1 -0
  81. package/dist/src/video.js +415 -0
  82. package/dist/src/video.js.map +1 -0
  83. package/dist/src/voices.d.ts +60 -0
  84. package/dist/src/voices.d.ts.map +1 -0
  85. package/dist/src/voices.js +42 -0
  86. package/dist/src/voices.js.map +1 -0
  87. package/dist/src/xvfb.d.ts +22 -0
  88. package/dist/src/xvfb.d.ts.map +1 -0
  89. package/dist/src/xvfb.js +87 -0
  90. package/dist/src/xvfb.js.map +1 -0
  91. package/dist/tsconfig.tsbuildinfo +1 -0
  92. package/package.json +45 -4
  93. package/bin/index.js +0 -3
  94. package/index.js +0 -1
@@ -0,0 +1,544 @@
1
+ import type { PlaywrightTestConfig, Project, Page, Locator, Mouse } from '@playwright/test';
2
+ /**
3
+ * Aspect ratio for recording and output.
4
+ *
5
+ * The aspect ratio determines the shape of the video. Combined with `quality`
6
+ * it produces the final pixel dimensions:
7
+ *
8
+ * | Aspect Ratio | 720p | 1080p | 1440p | 2160p |
9
+ * |--------------|-----------|------------|------------|------------|
10
+ * | 16:9 | 1280×720 | 1920×1080 | 2560×1440 | 3840×2160 |
11
+ * | 9:16 | 720×1280 | 1080×1920 | 1440×2560 | 2160×3840 |
12
+ * | 1:1 | 720×720 | 1080×1080 | 1440×1440 | 2160×2160 |
13
+ * | 4:3 | 960×720 | 1440×1080 | 1920×1440 | 2880×2160 |
14
+ * | 3:4 | 720×960 | 1080×1440 | 1440×1920 | 2160×2880 |
15
+ * | 5:4 | 900×720 | 1350×1080 | 1800×1440 | 2700×2160 |
16
+ * | 4:5 | 720×900 | 1080×1350 | 1440×1800 | 2160×2700 |
17
+ *
18
+ * The base size (shorter side) is determined by `quality`.
19
+ * Landscape ratios (W>H) set height to the base; portrait ratios (H>W) set
20
+ * width to the base.
21
+ */
22
+ export type AspectRatio = '16:9' | '9:16' | '1:1' | '4:3' | '3:4' | '5:4' | '4:5';
23
+ /**
24
+ * Resolution quality preset – determines the shorter-side pixel count and,
25
+ * by extension, the overall output sharpness and file size.
26
+ *
27
+ * - `'720p'` – 720 px short side (HD)
28
+ * - `'1080p'` – 1080 px short side (Full HD)
29
+ * - `'1440p'` – 1440 px short side (Quad HD)
30
+ * - `'2160p'` – 2160 px short side (Ultra HD / 4K)
31
+ *
32
+ * The final pixel dimensions depend on both `quality` and `aspectRatio`.
33
+ * See {@link AspectRatio} for the full dimension table.
34
+ */
35
+ export type Quality = '720p' | '1080p' | '1440p' | '2160p';
36
+ /**
37
+ * Frames per second for video recording.
38
+ *
39
+ * Higher FPS results in smoother videos but larger file sizes:
40
+ * - `24` - Cinematic look, smaller files
41
+ * - `30` - Standard video, balanced quality and size
42
+ * - `60` - Smooth motion, best for fast interactions
43
+ *
44
+ * @note Chrome caps recording at 60 FPS: https://stackoverflow.com/a/63972999
45
+ */
46
+ export type FPS = 24 | 30 | 60;
47
+ /**
48
+ * Trace recording mode for test execution.
49
+ *
50
+ * Traces capture detailed information about test execution including screenshots,
51
+ * DOM snapshots, and network activity.
52
+ *
53
+ * Available options (subset of Playwright's trace options):
54
+ * - `'on'` - Record traces for all tests
55
+ * - `'off'` - Do not record traces
56
+ * - `'retain-on-failure'` - Record traces only for failed tests (default)
57
+ *
58
+ * @default 'retain-on-failure'
59
+ */
60
+ export type Trace = 'on' | 'off' | 'retain-on-failure';
61
+ /**
62
+ * Rendering options passed as-is to `data.json`.
63
+ * Mirrors the `renderOptions` shape consumed by the rendering pipeline.
64
+ */
65
+ export type RenderOptions = {
66
+ recording?: {
67
+ /** 0-1: 0 causes warning, 1=one side touches background edge */
68
+ size?: number;
69
+ /** 0-1: 0=sharp corners, 1=shorter side is half circle */
70
+ roundness?: number;
71
+ shape?: 'rounded' | 'squircle';
72
+ /** CSS drop-shadow filter */
73
+ dropShadow?: string;
74
+ };
75
+ voiceOvers?: {
76
+ /** 0-1: 1=mask size equals shorter side of output */
77
+ size?: number;
78
+ /** 0-1: 0=square, 1=circle */
79
+ roundness?: number;
80
+ shape?: 'rounded' | 'squircle';
81
+ /** CSS drop-shadow filter */
82
+ dropShadow?: string;
83
+ corner?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
84
+ /** 0-1: 0=nothing, 1=length of shorter side of the frame */
85
+ padding?: number;
86
+ };
87
+ cursor?: {
88
+ /** 0-1: 0=missing, 1=height of video */
89
+ size?: number;
90
+ };
91
+ output?: {
92
+ /**
93
+ * Aspect ratio of the rendered output video.
94
+ *
95
+ * Combined with `quality`, this determines the final pixel dimensions.
96
+ * See {@link AspectRatio} for the full dimension table.
97
+ *
98
+ * Defaults to `'16:9'` when not specified.
99
+ *
100
+ * @example '16:9'
101
+ */
102
+ aspectRatio?: AspectRatio;
103
+ /**
104
+ * Resolution quality of the rendered output video.
105
+ *
106
+ * Combined with `aspectRatio`, this determines the final pixel dimensions.
107
+ * See {@link Quality} for available presets.
108
+ *
109
+ * @example '1080p'
110
+ */
111
+ quality?: Quality;
112
+ background?: {
113
+ assetPath: string;
114
+ } | {
115
+ backgroundCss: string;
116
+ };
117
+ };
118
+ };
119
+ /**
120
+ * Configuration options for video recording.
121
+ *
122
+ * Example:
123
+ * ```ts
124
+ * const options: RecordOptions = {
125
+ * aspectRatio: '16:9',
126
+ * quality: '1080p',
127
+ * fps: 60,
128
+ * }
129
+ * ```
130
+ */
131
+ export type RecordOptions = {
132
+ /**
133
+ * Aspect ratio used when capturing the screen.
134
+ *
135
+ * Together with `quality` this determines the xvfb display size,
136
+ * browser viewport, and ffmpeg input dimensions.
137
+ * See {@link AspectRatio} for all supported ratios and their pixel sizes.
138
+ *
139
+ * @default '16:9'
140
+ */
141
+ aspectRatio?: AspectRatio;
142
+ /**
143
+ * Resolution quality preset used when capturing the screen.
144
+ *
145
+ * Together with `aspectRatio` this determines the xvfb display size,
146
+ * browser viewport, and ffmpeg input dimensions.
147
+ * See {@link Quality} for the full dimension table.
148
+ *
149
+ * @default '1080p'
150
+ */
151
+ quality?: Quality;
152
+ /**
153
+ * Frames per second for video recording.
154
+ *
155
+ * @default 30
156
+ */
157
+ fps?: FPS;
158
+ };
159
+ export type Easing = 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'ease-in-strong' | 'ease-out-strong' | 'ease-in-out-strong';
160
+ export type AutoZoomOptions = {
161
+ easing?: Easing;
162
+ duration?: number;
163
+ /** 0–1: fraction of output dimensions visible in the zoomed viewport (default 0.5) */
164
+ amount?: number;
165
+ /** Per-locator-type centering (0–1).
166
+ * 1 = camera always centers on target (no dead zone).
167
+ * 0 = camera only moves if target exits the viewport.
168
+ * 0.5 = target can move freely in the center 50% without panning.
169
+ * Defaults: cursor=0.5, input=1, click=0.5 */
170
+ centering?: {
171
+ /** How tightly the camera follows free cursor movements (default 0.5) */
172
+ cursor?: number;
173
+ /** How tightly the camera follows input/ZoomMove targets (default 1) */
174
+ input?: number;
175
+ /** How tightly the camera follows cursor moves that precede a click (default 0.5) */
176
+ click?: number;
177
+ };
178
+ /** When false, the camera never zooms out beyond the initial amount to fit
179
+ * large element rects. Defaults to true. */
180
+ allowZoomingOut?: boolean;
181
+ /** Delay in milliseconds to hold the zoomed-in state after the zoom-in
182
+ * animation completes, and to hold the full view after the zoom-out
183
+ * animation completes. Defaults to 500. */
184
+ postZoomInOutDelay?: number;
185
+ };
186
+ /**
187
+ * Options for an automatic click that precedes a `fill` or `pressSequentially`.
188
+ *
189
+ * When passed as `click` to `fill`/`pressSequentially`, the locator is clicked
190
+ * first (with animated cursor movement), then typing begins immediately. No
191
+ * extra zoom-pan sleep is inserted — the cursor-move animation covers it.
192
+ */
193
+ export type ClickBeforeFillOption = {
194
+ moveDuration?: number;
195
+ beforeClickPause?: number;
196
+ moveEasing?: Easing;
197
+ postClickPause?: number;
198
+ postClickMove?: PostClickMove;
199
+ position?: {
200
+ x: number;
201
+ y: number;
202
+ };
203
+ };
204
+ /**
205
+ * Camera pan to perform after a click completes.
206
+ *
207
+ * Direction-based: the camera shifts by the element's bounding-box size
208
+ * (in output pixels) plus optional `padding` (output pixels, applied to each
209
+ * side) in the given direction.
210
+ *
211
+ * Pixel-based: the camera shifts by explicit `x` / `y` output-pixel offsets
212
+ * (negative values pan in the opposite direction).
213
+ */
214
+ export type PostClickMove = {
215
+ duration: number;
216
+ easing?: Easing;
217
+ /** Output pixels added to each side of the element rect before computing the shift. */
218
+ padding?: number;
219
+ direction: 'up' | 'down' | 'left' | 'right';
220
+ } | {
221
+ duration: number;
222
+ easing?: Easing;
223
+ /** Horizontal camera shift in output pixels (negative = left). */
224
+ x: number;
225
+ /** Vertical camera shift in output pixels (negative = up). */
226
+ y: number;
227
+ };
228
+ type LocatorReturnMethodNames = 'locator' | 'getByAltText' | 'getByLabel' | 'getByPlaceholder' | 'getByRole' | 'getByTestId' | 'getByText' | 'getByTitle' | 'and' | 'describe' | 'filter' | 'first' | 'last' | 'nth' | 'or';
229
+ type ScreenCIMouse = Omit<Mouse, 'move'> & {
230
+ /**
231
+ * Moves the mouse cursor to the given position.
232
+ *
233
+ * @param options.steps - Ignored; use `duration` and `easing` instead.
234
+ * @param options.duration - Duration of the animated move in milliseconds.
235
+ * When provided and greater than 0, the cursor is animated with easing.
236
+ * @param options.easing - Easing function for the cursor animation (default: 'ease-in-out').
237
+ */
238
+ move(x: number, y: number, options?: {
239
+ steps?: number;
240
+ duration?: number;
241
+ easing?: Easing;
242
+ }): Promise<void>;
243
+ /**
244
+ * Shows the mouse cursor in the recorded video.
245
+ *
246
+ * The cursor is visible by default. Use this to restore visibility after calling `.hide()`.
247
+ */
248
+ show(): void;
249
+ /**
250
+ * Hides the mouse cursor in the recorded video.
251
+ *
252
+ * Revert this by calling `.show()`.
253
+ */
254
+ hide(): void;
255
+ };
256
+ export type ScreenCILocator = Omit<Locator, 'click' | 'fill' | 'check' | 'uncheck' | 'setChecked' | 'tap' | 'selectOption' | 'selectText' | 'dragTo' | LocatorReturnMethodNames | 'all' | 'page'> & {
257
+ /**
258
+ * Clicks the element with an animated cursor move.
259
+ *
260
+ * @param options.moveDuration - Duration of the cursor move animation in ms (default: 1000).
261
+ * @param options.beforeClickPause - Pause between cursor arrival and click in ms.
262
+ * @param options.moveEasing - Easing function for the cursor move animation.
263
+ * @param options.postClickPause - Pause after the click completes in ms.
264
+ * @param options.postClickMove - When provided, animates the cursor away from
265
+ * the element after the click (e.g. to simulate the cursor moving off a button).
266
+ */
267
+ click(options?: Parameters<Locator['click']>[0] & {
268
+ moveDuration?: number;
269
+ beforeClickPause?: number;
270
+ moveEasing?: Easing;
271
+ postClickPause?: number;
272
+ postClickMove?: PostClickMove;
273
+ }): Promise<void>;
274
+ /**
275
+ * Types `value` character-by-character using `pressSequentially`.
276
+ *
277
+ * @param value - The text to type into the element.
278
+ * @param options.duration - Total time in milliseconds to spend typing
279
+ * (default: 1000). The per-keystroke delay is derived from this value
280
+ * divided by the number of characters. Has no effect on empty strings.
281
+ * @param options.timeout - Maximum time in milliseconds to wait for the
282
+ * element to be actionable.
283
+ * @param options.click - When provided, clicks the element before typing
284
+ * (animated cursor move + click). No extra zoom-pan sleep is inserted.
285
+ * @param options.hideMouse - When `true`, the mouse cursor is hidden while
286
+ * typing and shown again on the next mouse move. Defaults to `false`.
287
+ */
288
+ fill(value: string, options?: {
289
+ duration?: number;
290
+ timeout?: number;
291
+ click?: ClickBeforeFillOption;
292
+ hideMouse?: boolean;
293
+ }): Promise<void>;
294
+ /**
295
+ * Presses keys one by one as if on a physical keyboard.
296
+ *
297
+ * @param text - The text to type.
298
+ * @param options.delay - Time between keystrokes in milliseconds.
299
+ * @param options.timeout - Maximum time in milliseconds to wait for the
300
+ * element to be actionable.
301
+ * @param options.click - When provided, clicks the element before typing
302
+ * (animated cursor move + click). No extra zoom-pan sleep is inserted.
303
+ * @param options.hideMouse - When `true`, the mouse cursor is hidden while
304
+ * typing and shown again on the next mouse move. Defaults to `false`.
305
+ */
306
+ pressSequentially(text: string, options?: Parameters<Locator['pressSequentially']>[1] & {
307
+ click?: ClickBeforeFillOption;
308
+ hideMouse?: boolean;
309
+ }): Promise<void>;
310
+ /**
311
+ * Checks the checkbox or radio button.
312
+ *
313
+ * @param options.click - When provided, animates the cursor to the element
314
+ * before checking it. The click timing data is embedded in the recorded event.
315
+ */
316
+ check(options?: Parameters<Locator['check']>[0] & {
317
+ click?: Omit<ClickBeforeFillOption, 'position'>;
318
+ }): Promise<void>;
319
+ /**
320
+ * Unchecks the checkbox.
321
+ *
322
+ * @param options.click - When provided, animates the cursor to the element
323
+ * before unchecking it. The click timing data is embedded in the recorded event.
324
+ */
325
+ uncheck(options?: Parameters<Locator['uncheck']>[0] & {
326
+ click?: Omit<ClickBeforeFillOption, 'position'>;
327
+ }): Promise<void>;
328
+ /**
329
+ * Sets the checked state of a checkbox or radio element.
330
+ * Delegates to the instrumented `check()` or `uncheck()` based on `checked`.
331
+ *
332
+ * @param options.click - When provided, animates the cursor to the element
333
+ * before acting. The click timing data is embedded in the recorded event.
334
+ */
335
+ setChecked(checked: boolean, options?: Parameters<Locator['check']>[0] & {
336
+ click?: Omit<ClickBeforeFillOption, 'position'>;
337
+ }): Promise<void>;
338
+ /**
339
+ * Taps the element (touch event).
340
+ *
341
+ * @param options.click - When provided, animates the cursor to the element
342
+ * before tapping it. The click timing data is embedded in the recorded event.
343
+ */
344
+ tap(options?: Parameters<Locator['tap']>[0] & {
345
+ click?: ClickBeforeFillOption;
346
+ }): Promise<void>;
347
+ /**
348
+ * Hovers over the element with an animated cursor move.
349
+ *
350
+ * @param options.moveDuration - Duration of the cursor move animation in ms (default: 1000).
351
+ * @param options.easing - Easing function for the cursor move animation.
352
+ * @param options.hoverDuration - How long to hold the hover in ms (default: 1000).
353
+ * @param options.position - Point relative to the element's top-left corner to hover over.
354
+ * Defaults to the element center.
355
+ */
356
+ hover(options?: Parameters<Locator['hover']>[0] & {
357
+ moveDuration?: number;
358
+ easing?: Easing;
359
+ hoverDuration?: number;
360
+ }): Promise<void>;
361
+ /**
362
+ * Selects all text content of the element with an animated cursor move and
363
+ * triple-click animation.
364
+ *
365
+ * @param options.moveDuration - Duration of the cursor move animation in ms (default: 1000).
366
+ * @param options.easing - Easing function for the cursor move animation.
367
+ * @param options.beforeClickPause - Pause between cursor arrival and the triple-click in ms.
368
+ * @param options.selectDuration - Total duration of the triple-click animation in ms (default: 600).
369
+ * Divided into 6 equal segments: 3 mouseDown + 3 mouseUp phases.
370
+ */
371
+ selectText(options?: Parameters<Locator['selectText']>[0] & {
372
+ moveDuration?: number;
373
+ easing?: Easing;
374
+ beforeClickPause?: number;
375
+ selectDuration?: number;
376
+ }): Promise<void>;
377
+ /**
378
+ * Drags the element to the target locator with animated cursor movement.
379
+ *
380
+ * The animation consists of:
381
+ * 1. Cursor moves to the source element (`moveDuration`, `moveEasing`).
382
+ * 2. A brief pause (`preDragPause`) then a mouseDown.
383
+ * 3. Cursor drags from source to target (`dragDuration`, `dragEasing`).
384
+ * 4. A mouseUp at the target.
385
+ *
386
+ * @param target - The locator of the drop target element.
387
+ * @param options.moveDuration - Duration of cursor move to source in ms (default: 1000).
388
+ * @param options.moveEasing - Easing for the cursor move (default: 'ease-in-out').
389
+ * @param options.preDragPause - Pause after arriving at source before mouseDown in ms (default: 100).
390
+ * @param options.dragDuration - Duration of the drag animation in ms (default: 1000).
391
+ * @param options.dragEasing - Easing for the drag animation (default: 'ease-in-out').
392
+ * @param options.sourcePosition - Point relative to source element's top-left for the drag start.
393
+ * @param options.targetPosition - Point relative to target element's top-left for the drop.
394
+ */
395
+ dragTo(target: Locator, options?: Omit<NonNullable<Parameters<Locator['dragTo']>[1]>, 'steps'> & {
396
+ moveDuration?: number;
397
+ moveEasing?: Easing;
398
+ preDragPause?: number;
399
+ dragDuration?: number;
400
+ dragEasing?: Easing;
401
+ }): Promise<void>;
402
+ /**
403
+ * Selects an option in a `<select>` element.
404
+ *
405
+ * Note: the native dropdown UI is not rendered — the option is selected
406
+ * programmatically. If `options.click` is provided, the cursor is animated
407
+ * to the select element before the selection is applied, but no dropdown
408
+ * will appear on screen.
409
+ *
410
+ * @param values - The option(s) to select (value, label, index, or element).
411
+ * @param options.click - When provided, animates the cursor to the select
412
+ * element. The click timing data is embedded in the recorded event.
413
+ */
414
+ selectOption(values: Parameters<Locator['selectOption']>[0], options?: Parameters<Locator['selectOption']>[1] & {
415
+ click?: ClickBeforeFillOption;
416
+ }): Promise<string[]>;
417
+ page(): ScreenCIPage;
418
+ locator(...args: Parameters<Locator['locator']>): ScreenCILocator;
419
+ getByAltText(...args: Parameters<Locator['getByAltText']>): ScreenCILocator;
420
+ getByLabel(...args: Parameters<Locator['getByLabel']>): ScreenCILocator;
421
+ getByPlaceholder(...args: Parameters<Locator['getByPlaceholder']>): ScreenCILocator;
422
+ getByRole(...args: Parameters<Locator['getByRole']>): ScreenCILocator;
423
+ getByTestId(...args: Parameters<Locator['getByTestId']>): ScreenCILocator;
424
+ getByText(...args: Parameters<Locator['getByText']>): ScreenCILocator;
425
+ getByTitle(...args: Parameters<Locator['getByTitle']>): ScreenCILocator;
426
+ and(...args: Parameters<Locator['and']>): ScreenCILocator;
427
+ describe(...args: Parameters<Locator['describe']>): ScreenCILocator;
428
+ filter(...args: Parameters<Locator['filter']>): ScreenCILocator;
429
+ first(): ScreenCILocator;
430
+ last(): ScreenCILocator;
431
+ nth(...args: Parameters<Locator['nth']>): ScreenCILocator;
432
+ or(...args: Parameters<Locator['or']>): ScreenCILocator;
433
+ all(): Promise<ScreenCILocator[]>;
434
+ };
435
+ export type ScreenCIPage = Omit<Page, 'click' | 'mouse' | LocatorReturnMethodNames> & {
436
+ mouse: ScreenCIMouse;
437
+ click(selector: string, options?: Parameters<Page['click']>[1] & {
438
+ moveDuration?: number;
439
+ beforeClickPause?: number;
440
+ moveEasing?: Easing;
441
+ postClickMove?: PostClickMove;
442
+ }): Promise<void>;
443
+ locator(...args: Parameters<Page['locator']>): ScreenCILocator;
444
+ getByAltText(...args: Parameters<Page['getByAltText']>): ScreenCILocator;
445
+ getByLabel(...args: Parameters<Page['getByLabel']>): ScreenCILocator;
446
+ getByPlaceholder(...args: Parameters<Page['getByPlaceholder']>): ScreenCILocator;
447
+ getByRole(...args: Parameters<Page['getByRole']>): ScreenCILocator;
448
+ getByTestId(...args: Parameters<Page['getByTestId']>): ScreenCILocator;
449
+ getByText(...args: Parameters<Page['getByText']>): ScreenCILocator;
450
+ getByTitle(...args: Parameters<Page['getByTitle']>): ScreenCILocator;
451
+ };
452
+ import type { VoiceKey } from './voices.js';
453
+ export type CaptionConfig = {
454
+ voice: VoiceKey;
455
+ speed?: number;
456
+ stability?: number;
457
+ style?: number;
458
+ };
459
+ export type ScreenCIConfig = Omit<PlaywrightTestConfig, 'fullyParallel' | 'workers' | 'retries' | 'testDir' | 'testMatch' | 'use' | 'projects'> & {
460
+ /**
461
+ * Name of the project. Used to identify the project in screenci.com.
462
+ */
463
+ projectName: string;
464
+ /**
465
+ * ScreenCI API URL to upload recordings to after `screenci record`.
466
+ * Can also be set via the SCREENCI_URL environment variable.
467
+ */
468
+ apiUrl?: string;
469
+ /**
470
+ * Path to a .env file to load before uploading.
471
+ * Relative to the screenci.config.ts file.
472
+ * Use this to load SCREENCI_SECRET and other env vars.
473
+ * @example '.env'
474
+ */
475
+ envFile?: string;
476
+ /**
477
+ * Directory that will be searched recursively for `*.video.*` files.
478
+ *
479
+ * Matches files like `example.video.ts`, `demo.video.js`, etc.
480
+ *
481
+ * Defaults to `'./videos'`.
482
+ */
483
+ videoDir?: string;
484
+ use?: Omit<PlaywrightTestConfig['use'], 'trace'> & {
485
+ recordOptions?: RecordOptions;
486
+ renderOptions?: RenderOptions;
487
+ /**
488
+ * Timeout in milliseconds for individual actions like `click()`, `fill()`, etc.
489
+ *
490
+ * Separate from the overall test timeout. Defaults to 30 seconds so actions
491
+ * don't inherit the long test timeout.
492
+ *
493
+ * @default 30000
494
+ */
495
+ actionTimeout?: number;
496
+ /**
497
+ * Timeout in milliseconds for page navigations like `goto()`, `waitForNavigation()`, etc.
498
+ *
499
+ * Separate from the overall test timeout. Defaults to 30 seconds.
500
+ *
501
+ * @default 30000
502
+ */
503
+ navigationTimeout?: number;
504
+ /**
505
+ * When to record traces during test execution.
506
+ *
507
+ * @default 'retain-on-failure'
508
+ */
509
+ trace?: Trace;
510
+ /**
511
+ * Whether to send recorded traces to screenci.com for viewing and analysis.
512
+ *
513
+ * When `true`, traces are uploaded and can be viewed on screenci.com.
514
+ * When `false`, traces are kept locally only.
515
+ *
516
+ * @default true
517
+ */
518
+ sendTraces?: boolean;
519
+ };
520
+ projects?: (Omit<Project, 'use'> & {
521
+ use?: Omit<Project['use'], 'trace'> & {
522
+ recordOptions?: RecordOptions;
523
+ renderOptions?: RenderOptions;
524
+ /**
525
+ * When to record traces during test execution.
526
+ *
527
+ * @default 'retain-on-failure'
528
+ */
529
+ trace?: Trace;
530
+ /**
531
+ * Whether to send recorded traces to screenci.com for viewing and analysis.
532
+ *
533
+ * When `true`, traces are uploaded and can be viewed on screenci.com.
534
+ * When `false`, traces are kept locally only.
535
+ *
536
+ * @default true
537
+ */
538
+ sendTraces?: boolean;
539
+ };
540
+ })[];
541
+ };
542
+ export type ExtendedScreenCIConfig = ScreenCIConfig & Pick<PlaywrightTestConfig, 'fullyParallel' | 'workers' | 'retries' | 'testDir' | 'testMatch'>;
543
+ export {};
544
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}