screenci 0.0.69 → 0.0.70
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 +45 -122
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +12 -4
- package/dist/cli.js.map +1 -1
- package/dist/docs/manifest.d.ts +54 -23
- package/dist/docs/manifest.d.ts.map +1 -1
- package/dist/docs/manifest.js +18 -7
- package/dist/docs/manifest.js.map +1 -1
- package/dist/docs/video-sources/cli.screenci.d.ts +2 -0
- package/dist/docs/video-sources/cli.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/{cli.video.js → cli.screenci.js} +1 -1
- package/dist/docs/video-sources/cli.screenci.js.map +1 -0
- package/dist/docs/video-sources/installation.screenci.d.ts +2 -0
- package/dist/docs/video-sources/installation.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/{installation.video.js → installation.screenci.js} +1 -1
- package/dist/docs/video-sources/installation.screenci.js.map +1 -0
- package/dist/docs/video-sources/landing.screenci.d.ts +2 -0
- package/dist/docs/video-sources/landing.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/{landing.video.js → landing.screenci.js} +1 -1
- package/dist/docs/video-sources/landing.screenci.js.map +1 -0
- package/dist/docs/video-sources/locator-highlight-animated.screenci.d.ts +2 -0
- package/dist/docs/video-sources/locator-highlight-animated.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/locator-highlight-animated.screenci.js +53 -0
- package/dist/docs/video-sources/locator-highlight-animated.screenci.js.map +1 -0
- package/dist/docs/video-sources/locator-highlight-still.screenci.d.ts +2 -0
- package/dist/docs/video-sources/locator-highlight-still.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/locator-highlight-still.screenci.js +24 -0
- package/dist/docs/video-sources/locator-highlight-still.screenci.js.map +1 -0
- package/dist/docs/video-sources/product-pitch.screenci.d.ts +2 -0
- package/dist/docs/video-sources/product-pitch.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/product-pitch.screenci.js +136 -0
- package/dist/docs/video-sources/product-pitch.screenci.js.map +1 -0
- package/dist/docs/video-sources/public-urls.screenci.d.ts +2 -0
- package/dist/docs/video-sources/public-urls.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/public-urls.screenci.js +34 -0
- package/dist/docs/video-sources/public-urls.screenci.js.map +1 -0
- package/dist/docs/video-sources/studio.screenci.d.ts +2 -0
- package/dist/docs/video-sources/studio.screenci.d.ts.map +1 -0
- package/dist/docs/video-sources/{studio.video.js → studio.screenci.js} +1 -1
- package/dist/docs/video-sources/studio.screenci.js.map +1 -0
- package/dist/docs/videos.d.ts +36 -15
- package/dist/docs/videos.d.ts.map +1 -1
- package/dist/docs/videos.js +27 -2
- package/dist/docs/videos.js.map +1 -1
- package/dist/e2e/screenshot.e2e.d.ts +2 -0
- package/dist/e2e/screenshot.e2e.d.ts.map +1 -0
- package/dist/e2e/screenshot.e2e.js +73 -0
- package/dist/e2e/screenshot.e2e.js.map +1 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/src/asset.d.ts +119 -15
- package/dist/src/asset.d.ts.map +1 -1
- package/dist/src/asset.js +310 -124
- package/dist/src/asset.js.map +1 -1
- package/dist/src/audio.d.ts +14 -0
- package/dist/src/audio.d.ts.map +1 -1
- package/dist/src/audio.js +4 -1
- package/dist/src/audio.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +9 -3
- package/dist/src/config.js.map +1 -1
- package/dist/src/contextOptions.d.ts +48 -0
- package/dist/src/contextOptions.d.ts.map +1 -0
- package/dist/src/contextOptions.js +71 -0
- package/dist/src/contextOptions.js.map +1 -0
- package/dist/src/crop.d.ts +93 -0
- package/dist/src/crop.d.ts.map +1 -0
- package/dist/src/crop.js +133 -0
- package/dist/src/crop.js.map +1 -0
- package/dist/src/cue.d.ts +17 -4
- package/dist/src/cue.d.ts.map +1 -1
- package/dist/src/cue.js +31 -3
- package/dist/src/cue.js.map +1 -1
- package/dist/src/defaults.d.ts +6 -0
- package/dist/src/defaults.d.ts.map +1 -1
- package/dist/src/defaults.js +6 -0
- package/dist/src/defaults.js.map +1 -1
- package/dist/src/dimensions.d.ts +6 -0
- package/dist/src/dimensions.d.ts.map +1 -1
- package/dist/src/dimensions.js +15 -0
- package/dist/src/dimensions.js.map +1 -1
- package/dist/src/events.d.ts +152 -10
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/events.js +61 -3
- package/dist/src/events.js.map +1 -1
- package/dist/src/htmlRasterizer.d.ts +43 -0
- package/dist/src/htmlRasterizer.d.ts.map +1 -1
- package/dist/src/htmlRasterizer.js +32 -10
- package/dist/src/htmlRasterizer.js.map +1 -1
- package/dist/src/init.js +7 -7
- package/dist/src/init.js.map +1 -1
- package/dist/src/overlayFlush.d.ts +18 -0
- package/dist/src/overlayFlush.d.ts.map +1 -0
- package/dist/src/overlayFlush.js +56 -0
- package/dist/src/overlayFlush.js.map +1 -0
- package/dist/src/overlayRect.d.ts +69 -0
- package/dist/src/overlayRect.d.ts.map +1 -0
- package/dist/src/overlayRect.js +55 -0
- package/dist/src/overlayRect.js.map +1 -0
- package/dist/src/recording.d.ts +3 -2
- package/dist/src/recording.d.ts.map +1 -1
- package/dist/src/recordingData.d.ts +20 -0
- package/dist/src/recordingData.d.ts.map +1 -1
- package/dist/src/runtimeContext.d.ts +19 -1
- package/dist/src/runtimeContext.d.ts.map +1 -1
- package/dist/src/runtimeContext.js +15 -0
- package/dist/src/runtimeContext.js.map +1 -1
- package/dist/src/screenshot.d.ts +105 -0
- package/dist/src/screenshot.d.ts.map +1 -0
- package/dist/src/screenshot.js +188 -0
- package/dist/src/screenshot.js.map +1 -0
- package/dist/src/stillCapture.d.ts +68 -0
- package/dist/src/stillCapture.d.ts.map +1 -0
- package/dist/src/stillCapture.js +119 -0
- package/dist/src/stillCapture.js.map +1 -0
- package/dist/src/studio.d.ts +8 -11
- package/dist/src/studio.d.ts.map +1 -1
- package/dist/src/studio.js +2 -25
- package/dist/src/studio.js.map +1 -1
- package/dist/src/types.d.ts +100 -8
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/video.d.ts +20 -0
- package/dist/src/video.d.ts.map +1 -1
- package/dist/src/video.js +71 -24
- package/dist/src/video.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/skills/screenci/SKILL.md +10 -10
- package/skills/screenci/references/init.md +1 -1
- package/skills/screenci/references/record.md +2 -2
- package/dist/docs/video-sources/cli.video.d.ts +0 -2
- package/dist/docs/video-sources/cli.video.d.ts.map +0 -1
- package/dist/docs/video-sources/cli.video.js.map +0 -1
- package/dist/docs/video-sources/installation.video.d.ts +0 -2
- package/dist/docs/video-sources/installation.video.d.ts.map +0 -1
- package/dist/docs/video-sources/installation.video.js.map +0 -1
- package/dist/docs/video-sources/landing.video.d.ts +0 -2
- package/dist/docs/video-sources/landing.video.d.ts.map +0 -1
- package/dist/docs/video-sources/landing.video.js.map +0 -1
- package/dist/docs/video-sources/studio.video.d.ts +0 -2
- package/dist/docs/video-sources/studio.video.d.ts.map +0 -1
- package/dist/docs/video-sources/studio.video.js.map +0 -1
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { expect } from '@playwright/test';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { autoZoom, createNarration, createOverlays, hide, resetZoom, video, voices, zoomTo, } from 'screenci';
|
|
5
|
+
// Before recording:
|
|
6
|
+
// 1. Put the condensed, cursor-safe agent capture at assets/agent.mp4.
|
|
7
|
+
// 2. Set SCREENCI_APP_STORAGE_STATE to a logged-in Playwright storage state.
|
|
8
|
+
// 3. Override these defaults when the agent created a different remote video:
|
|
9
|
+
// SCREENCI_PITCH_PROJECT_NAME
|
|
10
|
+
// SCREENCI_PITCH_VIDEO_NAME
|
|
11
|
+
//
|
|
12
|
+
// This video deliberately starts a real one-off Studio render. Testing or
|
|
13
|
+
// recording it therefore consumes one render. Keep agent.mp4 short enough that
|
|
14
|
+
// the complete pitch remains below two minutes (roughly 20-25 seconds).
|
|
15
|
+
const projectName = process.env.SCREENCI_PITCH_PROJECT_NAME ?? 'demo-saas';
|
|
16
|
+
const videoName = process.env.SCREENCI_PITCH_VIDEO_NAME ?? 'Vertical invoice';
|
|
17
|
+
const agentRecording = fileURLToPath(new URL('../assets/agent.mp4', import.meta.url));
|
|
18
|
+
const overlays = createOverlays({
|
|
19
|
+
agentSession: {
|
|
20
|
+
path: '../assets/agent.mp4',
|
|
21
|
+
fullScreen: true,
|
|
22
|
+
// The launch narration explains this condensed recording, so mute any
|
|
23
|
+
// incidental screen-recorder audio in the source clip.
|
|
24
|
+
audio: 0,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
const narration = createNarration({
|
|
28
|
+
voice: {
|
|
29
|
+
name: voices.Sophie,
|
|
30
|
+
style: 'Calm, direct developer presenting a real product workflow',
|
|
31
|
+
},
|
|
32
|
+
en: {
|
|
33
|
+
intro: 'This video shows how a coding agent and ScreenCI [pronounce: screen see eye] turn a product flow into a finished product video.',
|
|
34
|
+
agent: 'I asked the agent to create a narrated walkthrough for this sample SaaS application. This is the actual session, condensed.',
|
|
35
|
+
source: 'It reads the application, then writes and tests a Playwright-style video file in the repository.',
|
|
36
|
+
oneOff: 'The flow is already recorded, so I can render a one-off version without recording the application again.',
|
|
37
|
+
rendering: 'This is the real render job, combining the recording, narration, camera motion, and overlays.',
|
|
38
|
+
privacy: 'The application, source, session, and credentials stayed local. Only the recording and timing data were uploaded.',
|
|
39
|
+
delivery: 'The finished video is ready to review, download, or publish through a stable public URL.',
|
|
40
|
+
maintenance: 'Run the source locally or in CI. If the product flow changes, it fails visibly instead of leaving a stale walkthrough online.',
|
|
41
|
+
more: 'One recording can produce language versions with synchronized narration and subtitles, cloned voices, and React or HTML overlays.',
|
|
42
|
+
outro: 'That is ScreenCI [pronounce: screen see eye]: from a coding-agent prompt to a product video you can rerun whenever the product changes.',
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
video('ScreenCI product pitch', async ({ page }) => {
|
|
46
|
+
video.skip(!process.env.SCREENCI_APP_STORAGE_STATE, 'Requires SCREENCI_APP_STORAGE_STATE with a logged-in ScreenCI app session.');
|
|
47
|
+
video.skip(!existsSync(agentRecording), 'Add the condensed agent capture at screenci/assets/agent.mp4.');
|
|
48
|
+
// Start in Studio for the video produced during the captured agent session.
|
|
49
|
+
// Authentication and dashboard navigation are setup, so they are not shown.
|
|
50
|
+
await hide(async () => {
|
|
51
|
+
await page.goto('https://app.screenci.com/');
|
|
52
|
+
await page.waitForLoadState('networkidle');
|
|
53
|
+
const projects = page.getByTestId('projects-list');
|
|
54
|
+
await expect(projects).toBeVisible({ timeout: 30_000 });
|
|
55
|
+
await projects.getByRole('link', { name: projectName, exact: true }).click();
|
|
56
|
+
await page.getByRole('link', { name: videoName, exact: true }).click();
|
|
57
|
+
await expect(page.getByRole('heading', { name: /languages/i })).toBeVisible({ timeout: 30_000 });
|
|
58
|
+
await page.getByRole('link', { name: /open in studio/i }).click();
|
|
59
|
+
await expect(page.getByRole('heading', { name: /^studio$/i })).toBeVisible({
|
|
60
|
+
timeout: 30_000,
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
await narration.intro();
|
|
64
|
+
// agent.mp4 uses its natural duration. Keep it condensed to 20-25 seconds.
|
|
65
|
+
await narration.agent.start();
|
|
66
|
+
await overlays.agentSession();
|
|
67
|
+
await narration.agent.end();
|
|
68
|
+
await narration.source();
|
|
69
|
+
// This is an intentional real side effect: every run starts one new Studio
|
|
70
|
+
// render for the selected language.
|
|
71
|
+
await narration.oneOff.start();
|
|
72
|
+
await autoZoom(async () => {
|
|
73
|
+
await page.getByRole('button', { name: 'Create one-off version' }).click();
|
|
74
|
+
const dialog = page.getByRole('alertdialog');
|
|
75
|
+
await expect(dialog.getByRole('heading', { name: 'Create a one-off version' })).toBeVisible();
|
|
76
|
+
await dialog.getByRole('button', { name: 'Continue' }).click();
|
|
77
|
+
const renderButton = page.getByRole('button', {
|
|
78
|
+
name: /^Render one-off [A-Z-]+$/,
|
|
79
|
+
});
|
|
80
|
+
await expect(renderButton).toBeEnabled();
|
|
81
|
+
await renderButton.click();
|
|
82
|
+
});
|
|
83
|
+
await expect(page.getByText(/One-off render started for [A-Z-]+\./)).toBeVisible({ timeout: 30_000 });
|
|
84
|
+
await narration.oneOff.end();
|
|
85
|
+
await narration.rendering.start();
|
|
86
|
+
await page.getByRole('link', { name: /view render/i }).click();
|
|
87
|
+
await expect(page.getByRole('heading', { name: /^Studio render/ })).toBeVisible({ timeout: 30_000 });
|
|
88
|
+
await narration.rendering.end();
|
|
89
|
+
// Show the genuine progress UI, but cut the unpredictable cloud wait from
|
|
90
|
+
// the final timeline. A fast render may already be complete at this point.
|
|
91
|
+
await page.waitForTimeout(1_500);
|
|
92
|
+
await hide(async () => {
|
|
93
|
+
await expect(page.getByText('Rendering complete', { exact: true })).toBeVisible({ timeout: 10 * 60_000 });
|
|
94
|
+
});
|
|
95
|
+
await narration.privacy();
|
|
96
|
+
// Open the finished one-off version from the render-run page.
|
|
97
|
+
const finishedVersion = page
|
|
98
|
+
.getByRole('link')
|
|
99
|
+
.filter({ hasText: /View\s*→/ })
|
|
100
|
+
.first();
|
|
101
|
+
await expect(finishedVersion).toBeVisible();
|
|
102
|
+
await finishedVersion.click();
|
|
103
|
+
await expect(page.getByRole('heading', { name: /^v\d+$/ })).toBeVisible({
|
|
104
|
+
timeout: 30_000,
|
|
105
|
+
});
|
|
106
|
+
await expect(page.getByTestId('video-loading-overlay')).toBeHidden({
|
|
107
|
+
timeout: 30_000,
|
|
108
|
+
});
|
|
109
|
+
// Let the generated product video demonstrate itself without narration over
|
|
110
|
+
// it. Twelve seconds is enough to establish the output while keeping the
|
|
111
|
+
// complete pitch below two minutes.
|
|
112
|
+
const playButton = page.getByRole('button', { name: /^play$/i });
|
|
113
|
+
await expect(playButton).toBeVisible();
|
|
114
|
+
await playButton.click();
|
|
115
|
+
await page.waitForTimeout(12_000);
|
|
116
|
+
const pauseButton = page.getByRole('button', { name: /^pause$/i });
|
|
117
|
+
if (await pauseButton.isVisible()) {
|
|
118
|
+
await pauseButton.click();
|
|
119
|
+
}
|
|
120
|
+
await narration.delivery();
|
|
121
|
+
await zoomTo(page.getByRole('button', { name: 'Download Video' }));
|
|
122
|
+
await page.waitForTimeout(700);
|
|
123
|
+
await resetZoom();
|
|
124
|
+
await narration.maintenance();
|
|
125
|
+
// Return to the video overview so the language and delivery surfaces support
|
|
126
|
+
// the final feature summary visually.
|
|
127
|
+
await page.getByRole('link', { name: videoName, exact: true }).click();
|
|
128
|
+
await expect(page.getByRole('heading', { name: /languages/i })).toBeVisible({
|
|
129
|
+
timeout: 30_000,
|
|
130
|
+
});
|
|
131
|
+
await zoomTo(page.getByRole('heading', { name: /languages/i }));
|
|
132
|
+
await narration.more();
|
|
133
|
+
await resetZoom();
|
|
134
|
+
await narration.outro();
|
|
135
|
+
});
|
|
136
|
+
//# sourceMappingURL=product-pitch.screenci.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-pitch.screenci.js","sourceRoot":"","sources":["../../../docs/video-sources/product-pitch.screenci.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-urls.screenci.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/public-urls.screenci.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { autoZoom, createNarration, hide, resetZoom, video, voices, } from 'screenci';
|
|
2
|
+
// Source of record for the "Public URLs and embeds" docs video. It walks the
|
|
3
|
+
// public-delivery explainer page: the stable base URL, the per-language
|
|
4
|
+
// outputs, and a live embed that switches languages. Recorded against the
|
|
5
|
+
// deployed demo so it runs without app authentication.
|
|
6
|
+
const narration = createNarration({
|
|
7
|
+
voice: { name: voices.Sophie, style: 'Calm product guide' },
|
|
8
|
+
en: {
|
|
9
|
+
intro: 'Turn on public delivery and your video gets a stable URL on the CDN.',
|
|
10
|
+
langs: 'Each language has its own video, thumbnail, and subtitle URL.',
|
|
11
|
+
embed: 'Drop it into any site. It always resolves to the latest approved render.',
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
video('Public URLs and embeds', async ({ page }) => {
|
|
15
|
+
await hide(async () => {
|
|
16
|
+
await page.goto('https://demo.screenci.com/pitch/embed.html');
|
|
17
|
+
await page.waitForLoadState('networkidle');
|
|
18
|
+
});
|
|
19
|
+
await narration.intro();
|
|
20
|
+
await narration.langs.start();
|
|
21
|
+
await autoZoom(async () => {
|
|
22
|
+
await page.locator('.urls').scrollIntoViewIfNeeded();
|
|
23
|
+
});
|
|
24
|
+
await narration.langs.end();
|
|
25
|
+
await resetZoom();
|
|
26
|
+
await narration.embed.start();
|
|
27
|
+
await autoZoom(async () => {
|
|
28
|
+
await page.getByRole('button', { name: 'ES' }).click();
|
|
29
|
+
await page.getByRole('button', { name: 'EN' }).click();
|
|
30
|
+
});
|
|
31
|
+
await narration.embed.end();
|
|
32
|
+
await resetZoom();
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=public-urls.screenci.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-urls.screenci.js","sourceRoot":"","sources":["../../../docs/video-sources/public-urls.screenci.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,SAAS,EACT,KAAK,EACL,MAAM,GACP,MAAM,UAAU,CAAA;AAEjB,6EAA6E;AAC7E,wEAAwE;AACxE,0EAA0E;AAC1E,uDAAuD;AACvD,MAAM,SAAS,GAAG,eAAe,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAC3D,EAAE,EAAE;QACF,KAAK,EACH,sEAAsE;QACxE,KAAK,EAAE,+DAA+D;QACtE,KAAK,EACH,0EAA0E;KAC7E;CACF,CAAC,CAAA;AAEF,KAAK,CAAC,wBAAwB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjD,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;QAC7D,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACvB,MAAM,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC7B,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,sBAAsB,EAAE,CAAA;IACtD,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IAC3B,MAAM,SAAS,EAAE,CAAA;IAEjB,MAAM,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC7B,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACtD,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IACxD,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IAC3B,MAAM,SAAS,EAAE,CAAA;AACnB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.screenci.d.ts","sourceRoot":"","sources":["../../../docs/video-sources/studio.screenci.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.screenci.js","sourceRoot":"","sources":["../../../docs/video-sources/studio.screenci.ts"],"names":[],"mappings":"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"}
|
package/dist/docs/videos.d.ts
CHANGED
|
@@ -1,31 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* A doc media embed is either a recorded `video` (the default) or a still
|
|
3
|
+
* `screenshot`. Both are produced by the same `.screenci.ts` source recorded in
|
|
4
|
+
* CI and published to the public delivery CDN; only the embed differs (a player
|
|
5
|
+
* vs an `<img>`).
|
|
6
|
+
*/
|
|
7
|
+
export type DocMediaKind = 'video' | 'screenshot';
|
|
8
|
+
type DocMediaCommon = {
|
|
3
9
|
sourcePath: string;
|
|
4
10
|
showSource?: boolean;
|
|
11
|
+
/** Defaults to `'video'`. */
|
|
12
|
+
kind?: DocMediaKind;
|
|
13
|
+
/** Alt text for `kind: 'screenshot'` embeds. */
|
|
14
|
+
alt?: string;
|
|
5
15
|
};
|
|
6
|
-
export type
|
|
7
|
-
|
|
8
|
-
showSource?: boolean;
|
|
16
|
+
export type PublishedDocVideo = DocMediaCommon & {
|
|
17
|
+
publicId: string;
|
|
9
18
|
};
|
|
19
|
+
export type UnpublishedDocVideo = DocMediaCommon;
|
|
10
20
|
export type DocVideo = PublishedDocVideo | UnpublishedDocVideo;
|
|
11
21
|
export declare const docsVideoRegistry: {
|
|
12
22
|
readonly 'docs/installation': {
|
|
13
23
|
readonly publicId: "kh7ccy03njvxjm0daef5g50zv587hrbd";
|
|
14
|
-
readonly sourcePath: "screenci/docs/video-sources/installation.
|
|
24
|
+
readonly sourcePath: "screenci/docs/video-sources/installation.screenci.ts";
|
|
15
25
|
readonly showSource: false;
|
|
16
26
|
};
|
|
17
27
|
readonly 'docs/reference/cli': {
|
|
18
28
|
readonly publicId: "kh778mvzqw1t504wts9wqyaa2187dfc0";
|
|
19
|
-
readonly sourcePath: "screenci/docs/video-sources/cli.
|
|
29
|
+
readonly sourcePath: "screenci/docs/video-sources/cli.screenci.ts";
|
|
30
|
+
};
|
|
31
|
+
readonly 'docs/guides/public-urls-and-embeds': {
|
|
32
|
+
readonly publicId: "kh7aj5s49s6wgfb86jgd0zht59890f17";
|
|
33
|
+
readonly sourcePath: "screenci/docs/video-sources/public-urls.screenci.ts";
|
|
34
|
+
readonly showSource: false;
|
|
35
|
+
};
|
|
36
|
+
readonly 'docs/guides/studio': {
|
|
37
|
+
readonly sourcePath: "screenci/docs/video-sources/studio.screenci.ts";
|
|
38
|
+
readonly showSource: false;
|
|
39
|
+
};
|
|
40
|
+
readonly 'docs/guides/assets-and-overlays': {
|
|
41
|
+
readonly sourcePath: "screenci/docs/video-sources/locator-highlight-animated.screenci.ts";
|
|
42
|
+
};
|
|
43
|
+
readonly 'docs/guides/screenshots': {
|
|
44
|
+
readonly kind: "screenshot";
|
|
45
|
+
readonly alt: "A marketing-site link highlighted by a pink ring with margin around it, framed as a branded still";
|
|
46
|
+
readonly sourcePath: "screenci/docs/video-sources/locator-highlight-still.screenci.ts";
|
|
20
47
|
};
|
|
21
48
|
};
|
|
22
|
-
export declare function getDocVideo(slug: string):
|
|
23
|
-
readonly publicId: "kh7ccy03njvxjm0daef5g50zv587hrbd";
|
|
24
|
-
readonly sourcePath: "screenci/docs/video-sources/installation.video.ts";
|
|
25
|
-
readonly showSource: false;
|
|
26
|
-
} | {
|
|
27
|
-
readonly publicId: "kh778mvzqw1t504wts9wqyaa2187dfc0";
|
|
28
|
-
readonly sourcePath: "screenci/docs/video-sources/cli.video.ts";
|
|
29
|
-
};
|
|
49
|
+
export declare function getDocVideo(slug: string): DocVideo | null;
|
|
30
50
|
export declare function hasPublicId(video: DocVideo): video is PublishedDocVideo;
|
|
51
|
+
export {};
|
|
31
52
|
//# sourceMappingURL=videos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videos.d.ts","sourceRoot":"","sources":["../../docs/videos.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"videos.d.ts","sourceRoot":"","sources":["../../docs/videos.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,YAAY,CAAA;AAEjD,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAA;AAEhD,MAAM,MAAM,QAAQ,GAAG,iBAAiB,GAAG,mBAAmB,CAAA;AAE9D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCe,CAAA;AAE7C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEzD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,iBAAiB,CAEvE"}
|
package/dist/docs/videos.js
CHANGED
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
export const docsVideoRegistry = {
|
|
2
2
|
'docs/installation': {
|
|
3
3
|
publicId: 'kh7ccy03njvxjm0daef5g50zv587hrbd',
|
|
4
|
-
sourcePath: 'screenci/docs/video-sources/installation.
|
|
4
|
+
sourcePath: 'screenci/docs/video-sources/installation.screenci.ts',
|
|
5
5
|
showSource: false,
|
|
6
6
|
},
|
|
7
7
|
'docs/reference/cli': {
|
|
8
8
|
publicId: 'kh778mvzqw1t504wts9wqyaa2187dfc0',
|
|
9
|
-
sourcePath: 'screenci/docs/video-sources/cli.
|
|
9
|
+
sourcePath: 'screenci/docs/video-sources/cli.screenci.ts',
|
|
10
|
+
},
|
|
11
|
+
// Recorded locally via apps/demo-saas/videos/pitch-embed.screenci.ts, then
|
|
12
|
+
// published with `screenci make-public`.
|
|
13
|
+
'docs/guides/public-urls-and-embeds': {
|
|
14
|
+
publicId: 'kh7aj5s49s6wgfb86jgd0zht59890f17',
|
|
15
|
+
sourcePath: 'screenci/docs/video-sources/public-urls.screenci.ts',
|
|
16
|
+
showSource: false,
|
|
17
|
+
},
|
|
18
|
+
// Add a publicId after publishing. The Studio video needs a logged-in app
|
|
19
|
+
// session (SCREENCI_APP_STORAGE_STATE) to record against app.screenci.com.
|
|
20
|
+
'docs/guides/studio': {
|
|
21
|
+
sourcePath: 'screenci/docs/video-sources/studio.screenci.ts',
|
|
22
|
+
showSource: false,
|
|
23
|
+
},
|
|
24
|
+
// The animated locator-highlight overlay in the Overlays guide. Add a
|
|
25
|
+
// publicId after publishing the source.
|
|
26
|
+
'docs/guides/assets-and-overlays': {
|
|
27
|
+
sourcePath: 'screenci/docs/video-sources/locator-highlight-animated.screenci.ts',
|
|
28
|
+
},
|
|
29
|
+
// The locator-highlight still in the Screenshots guide. Published as a
|
|
30
|
+
// screenshot recording; add a publicId after publishing the source.
|
|
31
|
+
'docs/guides/screenshots': {
|
|
32
|
+
kind: 'screenshot',
|
|
33
|
+
alt: 'A marketing-site link highlighted by a pink ring with margin around it, framed as a branded still',
|
|
34
|
+
sourcePath: 'screenci/docs/video-sources/locator-highlight-still.screenci.ts',
|
|
10
35
|
},
|
|
11
36
|
};
|
|
12
37
|
export function getDocVideo(slug) {
|
package/dist/docs/videos.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videos.js","sourceRoot":"","sources":["../../docs/videos.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"videos.js","sourceRoot":"","sources":["../../docs/videos.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,mBAAmB,EAAE;QACnB,QAAQ,EAAE,kCAAkC;QAC5C,UAAU,EAAE,sDAAsD;QAClE,UAAU,EAAE,KAAK;KAClB;IACD,oBAAoB,EAAE;QACpB,QAAQ,EAAE,kCAAkC;QAC5C,UAAU,EAAE,6CAA6C;KAC1D;IACD,2EAA2E;IAC3E,yCAAyC;IACzC,oCAAoC,EAAE;QACpC,QAAQ,EAAE,kCAAkC;QAC5C,UAAU,EAAE,qDAAqD;QACjE,UAAU,EAAE,KAAK;KAClB;IACD,0EAA0E;IAC1E,2EAA2E;IAC3E,oBAAoB,EAAE;QACpB,UAAU,EAAE,gDAAgD;QAC5D,UAAU,EAAE,KAAK;KAClB;IACD,sEAAsE;IACtE,wCAAwC;IACxC,iCAAiC,EAAE;QACjC,UAAU,EACR,oEAAoE;KACvE;IACD,uEAAuE;IACvE,oEAAoE;IACpE,yBAAyB,EAAE;QACzB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,mGAAmG;QACxG,UAAU,EACR,iEAAiE;KACpE;CAC0C,CAAA;AAE7C,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,iBAAiB,CAAC,IAAsC,CAAC,IAAI,IAAI,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,OAAO,UAAU,IAAI,KAAK,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot.e2e.d.ts","sourceRoot":"","sources":["../../e2e/screenshot.e2e.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { test, expect } from '@playwright/test';
|
|
2
|
+
import { resolveCrop } from '../src/crop.js';
|
|
3
|
+
import { buildScreenCIContextOptions } from '../src/contextOptions.js';
|
|
4
|
+
test.describe('resolveCrop', () => {
|
|
5
|
+
test('resolves a pixel rect for a locator', async ({ page }) => {
|
|
6
|
+
await page.setViewportSize({ width: 1000, height: 800 });
|
|
7
|
+
await page.setContent('<div id="card" style="position:absolute;left:100px;top:80px;width:300px;height:200px;background:#333"></div>');
|
|
8
|
+
const recorded = await resolveCrop(page.locator('#card'), page);
|
|
9
|
+
expect(recorded.source).toBe('locator');
|
|
10
|
+
expect(recorded.box.x).toBeCloseTo(100, 3);
|
|
11
|
+
expect(recorded.box.y).toBeCloseTo(80, 3);
|
|
12
|
+
expect(recorded.box.width).toBeCloseTo(300, 3);
|
|
13
|
+
expect(recorded.box.height).toBeCloseTo(200, 3);
|
|
14
|
+
expect(recorded.padding).toEqual({ top: 0, right: 0, bottom: 0, left: 0 });
|
|
15
|
+
});
|
|
16
|
+
test('resolves an explicit pixel region', async ({ page }) => {
|
|
17
|
+
await page.setViewportSize({ width: 1000, height: 800 });
|
|
18
|
+
const recorded = await resolveCrop({ x: 100, y: 160, width: 800, height: 480 }, page);
|
|
19
|
+
expect(recorded.source).toBe('region');
|
|
20
|
+
expect(recorded.box.x).toBeCloseTo(100, 3);
|
|
21
|
+
expect(recorded.box.y).toBeCloseTo(160, 3);
|
|
22
|
+
expect(recorded.box.width).toBeCloseTo(800, 3);
|
|
23
|
+
expect(recorded.box.height).toBeCloseTo(480, 3);
|
|
24
|
+
});
|
|
25
|
+
test('keeps a locator box locked and records padding separately', async ({ page, }) => {
|
|
26
|
+
await page.setViewportSize({ width: 1000, height: 1000 });
|
|
27
|
+
await page.setContent('<div id="card" style="position:absolute;left:400px;top:400px;width:200px;height:200px"></div>');
|
|
28
|
+
const recorded = await resolveCrop(page.locator('#card'), page, {
|
|
29
|
+
padding: 20,
|
|
30
|
+
});
|
|
31
|
+
// The element box is unchanged; the renderer applies the padding later.
|
|
32
|
+
expect(recorded.box.x).toBeCloseTo(400, 3);
|
|
33
|
+
expect(recorded.box.y).toBeCloseTo(400, 3);
|
|
34
|
+
expect(recorded.box.width).toBeCloseTo(200, 3);
|
|
35
|
+
expect(recorded.box.height).toBeCloseTo(200, 3);
|
|
36
|
+
expect(recorded.padding).toEqual({
|
|
37
|
+
top: 20,
|
|
38
|
+
right: 20,
|
|
39
|
+
bottom: 20,
|
|
40
|
+
left: 20,
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
test('rejects a negative region', async ({ page }) => {
|
|
44
|
+
await page.setViewportSize({ width: 1000, height: 800 });
|
|
45
|
+
await expect(resolveCrop({ x: -1, y: 0, width: 500, height: 500 }, page)).rejects.toThrow(/crop/);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
test.describe('context option forwarding', () => {
|
|
49
|
+
test('forwards colorScheme: dark to the created context', async ({ browser, }) => {
|
|
50
|
+
const context = await browser.newContext(buildScreenCIContextOptions({
|
|
51
|
+
dimensions: { width: 800, height: 600 },
|
|
52
|
+
forwarded: { colorScheme: 'dark' },
|
|
53
|
+
applyLocaleDefault: false,
|
|
54
|
+
}));
|
|
55
|
+
const page = await context.newPage();
|
|
56
|
+
const prefersDark = await page.evaluate(() => window.matchMedia('(prefers-color-scheme: dark)').matches);
|
|
57
|
+
expect(prefersDark).toBe(true);
|
|
58
|
+
await context.close();
|
|
59
|
+
});
|
|
60
|
+
test('captures at the requested deviceScaleFactor', async ({ browser }) => {
|
|
61
|
+
const context = await browser.newContext(buildScreenCIContextOptions({
|
|
62
|
+
dimensions: { width: 400, height: 300 },
|
|
63
|
+
forwarded: {},
|
|
64
|
+
applyLocaleDefault: false,
|
|
65
|
+
deviceScaleFactor: 2,
|
|
66
|
+
}));
|
|
67
|
+
const page = await context.newPage();
|
|
68
|
+
const dpr = await page.evaluate(() => window.devicePixelRatio);
|
|
69
|
+
expect(dpr).toBe(2);
|
|
70
|
+
await context.close();
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=screenshot.e2e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot.e2e.js","sourceRoot":"","sources":["../../e2e/screenshot.e2e.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
export type { AspectRatio, FPS, Quality, RecordUploadPolicy, RecordOptions, RenderOptions, ScreenCIConfig, ExtendedScreenCIConfig, AutoZoomOptions, Easing, VideoEncoderPreset, } from './src/types.js';
|
|
1
|
+
export type { AspectRatio, FPS, Quality, RecordUploadPolicy, RecordOptions, RenderOptions, ScreenshotOutputFormat, ScreenshotRenderOptions, ScreenCIConfig, ExtendedScreenCIConfig, AutoZoomOptions, Easing, VideoEncoderPreset, } from './src/types.js';
|
|
2
2
|
export { voices, modelTypes } from './src/voices.js';
|
|
3
3
|
export type { VoiceKey, ModelVoiceKey, ElevenLabsVoiceKey, CustomVoiceRef, ModelType, } from './src/voices.js';
|
|
4
4
|
export { defineConfig } from './src/config.js';
|
|
5
5
|
export { video } from './src/video.js';
|
|
6
|
+
export { screenshot } from './src/screenshot.js';
|
|
7
|
+
export type { CropTarget, CropRegion, CropOptions, ScreenshotCrop, ScreenshotCropRecord, ResolvedCropPadding, } from './src/crop.js';
|
|
6
8
|
export type { ScreenCIPage, ScreenCILocator } from './src/types.js';
|
|
7
9
|
export { createNarration, createStudioNarration } from './src/cue.js';
|
|
8
10
|
export type { NarrationCue, Cues, TopLevelVoiceConfig } from './src/cue.js';
|
|
9
|
-
export {
|
|
11
|
+
export { isStudioRenderOptions } from './src/studio.js';
|
|
10
12
|
export type { StudioRenderOptionsSentinel } from './src/studio.js';
|
|
11
13
|
export { hide } from './src/hide.js';
|
|
12
14
|
export { speed } from './src/speed.js';
|
|
@@ -14,7 +16,9 @@ export { time } from './src/time.js';
|
|
|
14
16
|
export { autoZoom } from './src/autoZoom.js';
|
|
15
17
|
export { zoomTo, resetZoom } from './src/manualZoom.js';
|
|
16
18
|
export { createOverlays, createStudioOverlays, setOverlayCss, MAX_AUDIO_LEVEL, } from './src/asset.js';
|
|
17
|
-
export type { OverlayController, OverlayConfig, OverlayInput, Overlays, ReactElementLike, OverlayPlacement, } from './src/asset.js';
|
|
19
|
+
export type { OverlayController, OverlayConfig, OverlayConfigFactory, OverlayInput, OverlayInputOrFactory, Overlays, OverlayControllerFor, ReactElementLike, OverlayPlacement, } from './src/asset.js';
|
|
20
|
+
export { overlayRect } from './src/overlayRect.js';
|
|
21
|
+
export type { OverlayRect, OverlayRectOptions } from './src/overlayRect.js';
|
|
18
22
|
export { createAudio, createStudioAudio } from './src/audio.js';
|
|
19
23
|
export type { AudioController, AudioConfig, AudioInput, AudioTracks, } from './src/audio.js';
|
|
20
24
|
export type { ZoomTarget, ZoomTargetPoint } from './src/manualZoom.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,GAAG,EACH,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,MAAM,EACN,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACpD,YAAY,EACV,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,SAAS,GACV,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACrE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,GAAG,EACH,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,MAAM,EACN,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACpD,YAAY,EACV,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,SAAS,GACV,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,YAAY,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACrE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,YAAY,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,QAAQ,EACR,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAC/D,YAAY,EACV,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -4,13 +4,15 @@ export { voices, modelTypes } from './src/voices.js';
|
|
|
4
4
|
export { defineConfig } from './src/config.js';
|
|
5
5
|
// Re-export video fixture and narration cue
|
|
6
6
|
export { video } from './src/video.js';
|
|
7
|
+
export { screenshot } from './src/screenshot.js';
|
|
7
8
|
export { createNarration, createStudioNarration } from './src/cue.js';
|
|
8
|
-
export {
|
|
9
|
+
export { isStudioRenderOptions } from './src/studio.js';
|
|
9
10
|
export { hide } from './src/hide.js';
|
|
10
11
|
export { speed } from './src/speed.js';
|
|
11
12
|
export { time } from './src/time.js';
|
|
12
13
|
export { autoZoom } from './src/autoZoom.js';
|
|
13
14
|
export { zoomTo, resetZoom } from './src/manualZoom.js';
|
|
14
15
|
export { createOverlays, createStudioOverlays, setOverlayCss, MAX_AUDIO_LEVEL, } from './src/asset.js';
|
|
16
|
+
export { overlayRect } from './src/overlayRect.js';
|
|
15
17
|
export { createAudio, createStudioAudio } from './src/audio.js';
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAiBA,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AASpD,4BAA4B;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,4CAA4C;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAUhD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,MAAM,gBAAgB,CAAA;AAYvB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA"}
|