@ytspar/sweetlink 1.16.1 → 1.17.0
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/claude-skills/screenshot/SKILL.md +2 -0
- package/dist/cli/sweetlink-dev.js +0 -0
- package/dist/cli/sweetlink.js +70 -12
- package/dist/cli/sweetlink.js.map +1 -1
- package/dist/daemon/browser.d.ts +10 -0
- package/dist/daemon/browser.d.ts.map +1 -1
- package/dist/daemon/browser.js +57 -12
- package/dist/daemon/browser.js.map +1 -1
- package/dist/daemon/devices.d.ts +9 -4
- package/dist/daemon/devices.d.ts.map +1 -1
- package/dist/daemon/devices.js +25 -4
- package/dist/daemon/devices.js.map +1 -1
- package/dist/daemon/diff.d.ts +6 -0
- package/dist/daemon/diff.d.ts.map +1 -1
- package/dist/daemon/diff.js +46 -26
- package/dist/daemon/diff.js.map +1 -1
- package/dist/daemon/index.js +0 -0
- package/dist/daemon/listeners.d.ts +2 -2
- package/dist/daemon/listeners.d.ts.map +1 -1
- package/dist/daemon/listeners.js +7 -5
- package/dist/daemon/listeners.js.map +1 -1
- package/dist/daemon/recording.d.ts +6 -1
- package/dist/daemon/recording.d.ts.map +1 -1
- package/dist/daemon/recording.js +81 -11
- package/dist/daemon/recording.js.map +1 -1
- package/dist/daemon/refs.d.ts.map +1 -1
- package/dist/daemon/refs.js +7 -2
- package/dist/daemon/refs.js.map +1 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +127 -12
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/summary.d.ts.map +1 -1
- package/dist/daemon/summary.js +52 -10
- package/dist/daemon/summary.js.map +1 -1
- package/dist/daemon/types.d.ts +1 -1
- package/dist/daemon/types.d.ts.map +1 -1
- package/dist/daemon/types.js.map +1 -1
- package/dist/daemon/viewer.d.ts +7 -0
- package/dist/daemon/viewer.d.ts.map +1 -1
- package/dist/daemon/viewer.js +12 -4
- package/dist/daemon/viewer.js.map +1 -1
- package/dist/ruler.d.ts +1 -1
- package/dist/ruler.d.ts.map +1 -1
- package/dist/ruler.js +53 -32
- package/dist/ruler.js.map +1 -1
- package/package.json +10 -11
package/dist/daemon/browser.js
CHANGED
|
@@ -104,31 +104,71 @@ export async function navigateTo(url) {
|
|
|
104
104
|
}
|
|
105
105
|
/**
|
|
106
106
|
* Take a screenshot of the current page or a specific element.
|
|
107
|
+
* If `page` is provided, screenshots that page instead of the daemon's
|
|
108
|
+
* main page (e.g. the recording page during a session).
|
|
107
109
|
*/
|
|
108
110
|
export async function takeScreenshot(opts) {
|
|
109
|
-
const p = getPage();
|
|
111
|
+
const p = opts.page ?? getPage();
|
|
110
112
|
// Apply viewport if specified
|
|
111
113
|
if (opts.viewport) {
|
|
112
114
|
const vp = parseViewport(opts.viewport, DEFAULT_VIEWPORT);
|
|
113
115
|
await p.setViewportSize({ width: vp.width, height: vp.height });
|
|
114
116
|
}
|
|
115
117
|
let buffer;
|
|
118
|
+
let matchCount;
|
|
116
119
|
if (opts.selector) {
|
|
117
|
-
const
|
|
120
|
+
const all = p.locator(opts.selector);
|
|
121
|
+
matchCount = await all.count();
|
|
122
|
+
const locator = all.first();
|
|
118
123
|
await locator.waitFor({ state: 'visible', timeout: 5000 });
|
|
119
|
-
|
|
124
|
+
if (opts.padding && opts.padding > 0) {
|
|
125
|
+
// Expand the capture region by `padding` px on every side. We do this
|
|
126
|
+
// by computing the locator's box, then full-page-screenshotting and
|
|
127
|
+
// cropping via `clip` — that's the simplest cross-platform approach.
|
|
128
|
+
const box = await locator.boundingBox();
|
|
129
|
+
if (box) {
|
|
130
|
+
const pad = opts.padding;
|
|
131
|
+
const pageDoc = await p.evaluate(() => ({
|
|
132
|
+
w: document.documentElement.scrollWidth,
|
|
133
|
+
h: document.documentElement.scrollHeight,
|
|
134
|
+
}));
|
|
135
|
+
const clip = {
|
|
136
|
+
x: Math.max(0, box.x - pad),
|
|
137
|
+
y: Math.max(0, box.y - pad),
|
|
138
|
+
width: Math.min(pageDoc.w, box.width + 2 * pad),
|
|
139
|
+
height: Math.min(pageDoc.h, box.height + 2 * pad),
|
|
140
|
+
};
|
|
141
|
+
buffer = await p.screenshot({ fullPage: true, clip });
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
buffer = await locator.screenshot();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
buffer = await locator.screenshot();
|
|
149
|
+
}
|
|
120
150
|
}
|
|
121
151
|
else {
|
|
122
152
|
buffer = await p.screenshot({ fullPage: opts.fullPage });
|
|
123
153
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
154
|
+
// Always report the actual captured image dimensions. Reading from the
|
|
155
|
+
// PNG IHDR chunk is cheap and works for selector, viewport, and
|
|
156
|
+
// full-page captures alike — viewportSize() lies for full-page since
|
|
157
|
+
// the rendered image is taller than the viewport.
|
|
158
|
+
const width = buffer.readUInt32BE(16);
|
|
159
|
+
const height = buffer.readUInt32BE(20);
|
|
160
|
+
// Report overflow info so callers can hint at --full-page when content
|
|
161
|
+
// extends below the viewport.
|
|
162
|
+
let pageHeight;
|
|
163
|
+
let viewportHeight;
|
|
164
|
+
if (!opts.selector && !opts.fullPage) {
|
|
165
|
+
const vp = p.viewportSize();
|
|
166
|
+
if (vp) {
|
|
167
|
+
viewportHeight = vp.height;
|
|
168
|
+
pageHeight = await p.evaluate(() => document.documentElement.scrollHeight);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return { buffer, width, height, matchCount, pageHeight, viewportHeight };
|
|
132
172
|
}
|
|
133
173
|
/**
|
|
134
174
|
* Take responsive screenshots at multiple viewport widths.
|
|
@@ -145,7 +185,12 @@ export async function takeResponsiveScreenshots(opts) {
|
|
|
145
185
|
await p.waitForTimeout(100);
|
|
146
186
|
const buffer = await p.screenshot({ fullPage: opts.fullPage });
|
|
147
187
|
const label = width <= 480 ? `mobile-${width}` : width <= 1024 ? `tablet-${width}` : `desktop-${width}`;
|
|
148
|
-
|
|
188
|
+
// Report the ACTUAL captured image dimensions, not the formula-derived
|
|
189
|
+
// viewport. Matters for full-page captures where the image is taller
|
|
190
|
+
// than the viewport.
|
|
191
|
+
const actualWidth = buffer.readUInt32BE(16);
|
|
192
|
+
const actualHeight = buffer.readUInt32BE(20);
|
|
193
|
+
results.push({ width: actualWidth, height: actualHeight, buffer, label });
|
|
149
194
|
}
|
|
150
195
|
// Restore original viewport
|
|
151
196
|
await p.setViewportSize(originalViewport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/daemon/browser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/daemon/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/devices.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export interface DeviceConfig {
|
|
|
21
21
|
* covering the most common testing targets.
|
|
22
22
|
*/
|
|
23
23
|
export declare const DEVICE_PRESETS: Record<string, DeviceConfig>;
|
|
24
|
+
/** Names a user might type (presets + aliases) for help/error messages. */
|
|
25
|
+
export declare function listDeviceNames(): string[];
|
|
24
26
|
/**
|
|
25
27
|
* Parse a device name (case-insensitive) to a DeviceConfig.
|
|
26
28
|
* Falls back to custom viewport parsing for "WIDTHxHEIGHT" format.
|
|
@@ -31,9 +33,12 @@ export declare function parseDevice(name: string): DeviceConfig | null;
|
|
|
31
33
|
*/
|
|
32
34
|
export declare function takeDeviceScreenshots(page: Page, devices: string[], options?: {
|
|
33
35
|
fullPage?: boolean;
|
|
34
|
-
}): Promise<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
}): Promise<{
|
|
37
|
+
results: Array<{
|
|
38
|
+
device: DeviceConfig;
|
|
39
|
+
buffer: Buffer;
|
|
40
|
+
}>;
|
|
41
|
+
unknown: string[];
|
|
42
|
+
}>;
|
|
38
43
|
export {};
|
|
39
44
|
//# sourceMappingURL=devices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../src/daemon/devices.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAMtC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAgDvD,CAAC;
|
|
1
|
+
{"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../src/daemon/devices.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAMtC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAgDvD,CAAC;AAeF,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAK1C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAmB7D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,OAAO,CAAC;IACT,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC,CAsBD"}
|
package/dist/daemon/devices.js
CHANGED
|
@@ -57,15 +57,35 @@ export const DEVICE_PRESETS = {
|
|
|
57
57
|
isMobile: false,
|
|
58
58
|
},
|
|
59
59
|
};
|
|
60
|
+
/**
|
|
61
|
+
* Short aliases that resolve to a canonical preset key. Lets users say
|
|
62
|
+
* `ipad` instead of remembering `ipad-mini` vs `ipad-pro-11`.
|
|
63
|
+
*/
|
|
64
|
+
const DEVICE_ALIASES = {
|
|
65
|
+
iphone: 'iphone-14',
|
|
66
|
+
ipad: 'ipad-mini',
|
|
67
|
+
pixel: 'pixel-7',
|
|
68
|
+
android: 'pixel-7',
|
|
69
|
+
mobile: 'iphone-14',
|
|
70
|
+
tablet: 'ipad-mini',
|
|
71
|
+
};
|
|
72
|
+
/** Names a user might type (presets + aliases) for help/error messages. */
|
|
73
|
+
export function listDeviceNames() {
|
|
74
|
+
return [
|
|
75
|
+
...Object.keys(DEVICE_PRESETS),
|
|
76
|
+
...Object.keys(DEVICE_ALIASES).map((a) => `${a} (→${DEVICE_ALIASES[a]})`),
|
|
77
|
+
].sort();
|
|
78
|
+
}
|
|
60
79
|
/**
|
|
61
80
|
* Parse a device name (case-insensitive) to a DeviceConfig.
|
|
62
81
|
* Falls back to custom viewport parsing for "WIDTHxHEIGHT" format.
|
|
63
82
|
*/
|
|
64
83
|
export function parseDevice(name) {
|
|
65
84
|
const normalized = name.toLowerCase().replace(/\s+/g, '-');
|
|
85
|
+
const resolved = DEVICE_ALIASES[normalized] ?? normalized;
|
|
66
86
|
// Check presets
|
|
67
|
-
if (DEVICE_PRESETS[
|
|
68
|
-
return DEVICE_PRESETS[
|
|
87
|
+
if (DEVICE_PRESETS[resolved]) {
|
|
88
|
+
return DEVICE_PRESETS[resolved];
|
|
69
89
|
}
|
|
70
90
|
// Try WIDTHxHEIGHT format
|
|
71
91
|
const match = name.match(/^(\d+)x(\d+)$/);
|
|
@@ -82,11 +102,12 @@ export function parseDevice(name) {
|
|
|
82
102
|
*/
|
|
83
103
|
export async function takeDeviceScreenshots(page, devices, options) {
|
|
84
104
|
const results = [];
|
|
105
|
+
const unknown = [];
|
|
85
106
|
const originalViewport = page.viewportSize() ?? { width: 1440, height: 900 };
|
|
86
107
|
for (const deviceName of devices) {
|
|
87
108
|
const device = parseDevice(deviceName);
|
|
88
109
|
if (!device) {
|
|
89
|
-
|
|
110
|
+
unknown.push(deviceName);
|
|
90
111
|
continue;
|
|
91
112
|
}
|
|
92
113
|
await page.setViewportSize(device.viewport);
|
|
@@ -96,6 +117,6 @@ export async function takeDeviceScreenshots(page, devices, options) {
|
|
|
96
117
|
}
|
|
97
118
|
// Restore original viewport
|
|
98
119
|
await page.setViewportSize(originalViewport);
|
|
99
|
-
return results;
|
|
120
|
+
return { results, unknown };
|
|
100
121
|
}
|
|
101
122
|
//# sourceMappingURL=devices.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/daemon/devices.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACrC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACrC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACrC,iBAAiB,EAAE,KAAK;QACxB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QACtC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QACtC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;QACtC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,KAAK;KAChB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QACvC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/daemon/devices.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACrC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACrC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACrC,iBAAiB,EAAE,KAAK;QACxB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QACtC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QACtC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;QACtC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,KAAK;KAChB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QACvC,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,2EAA2E;AAC3E,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QAC9B,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC;KAC1E,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;IAE1D,gBAAgB;IAChB,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC,QAAQ,CAAE,CAAC;IACnC,CAAC;IAED,0BAA0B;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO;YACL,IAAI,EAAE,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACtC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,EAAE;SAC9E,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAU,EACV,OAAiB,EACjB,OAAgC;IAKhC,MAAM,OAAO,GAAoD,EAAE,CAAC;IACpE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAE7E,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,4BAA4B;IAC5B,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAE7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC"}
|
package/dist/daemon/diff.d.ts
CHANGED
|
@@ -14,6 +14,12 @@ export declare function diffSnapshots(baseline: RefMap, current: RefMap): string
|
|
|
14
14
|
/**
|
|
15
15
|
* Take an annotated screenshot with ref labels overlaid on elements.
|
|
16
16
|
* Injects temporary overlay divs, captures screenshot, then removes them.
|
|
17
|
+
*
|
|
18
|
+
* - Captures the full page so annotations below the fold are visible.
|
|
19
|
+
* - Skips elements with zero bounding-box (avoids stray labels at 0,0).
|
|
20
|
+
* - Positions labels above the element (or below if at the page top),
|
|
21
|
+
* uses absolute (document-relative) coordinates so they line up in
|
|
22
|
+
* the full-page image.
|
|
17
23
|
*/
|
|
18
24
|
export declare function annotateScreenshot(page: Page, refMap: RefMap): Promise<Buffer>;
|
|
19
25
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/daemon/diff.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMxC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAkDvE;AA2CD
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/daemon/diff.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMxC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAkDvE;AA2CD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAuGjB"}
|
package/dist/daemon/diff.js
CHANGED
|
@@ -100,13 +100,24 @@ function computeLCS(a, b) {
|
|
|
100
100
|
/**
|
|
101
101
|
* Take an annotated screenshot with ref labels overlaid on elements.
|
|
102
102
|
* Injects temporary overlay divs, captures screenshot, then removes them.
|
|
103
|
+
*
|
|
104
|
+
* - Captures the full page so annotations below the fold are visible.
|
|
105
|
+
* - Skips elements with zero bounding-box (avoids stray labels at 0,0).
|
|
106
|
+
* - Positions labels above the element (or below if at the page top),
|
|
107
|
+
* uses absolute (document-relative) coordinates so they line up in
|
|
108
|
+
* the full-page image.
|
|
103
109
|
*/
|
|
104
110
|
export async function annotateScreenshot(page, refMap) {
|
|
105
111
|
// Inject overlay elements
|
|
106
112
|
await page.evaluate((refs) => {
|
|
107
113
|
const container = document.createElement('div');
|
|
108
114
|
container.id = '__sweetlink_annotations__';
|
|
109
|
-
|
|
115
|
+
// Absolute positioning so labels stay attached to elements as the
|
|
116
|
+
// page scrolls — matters for full-page screenshots.
|
|
117
|
+
container.style.cssText =
|
|
118
|
+
'position: absolute; top: 0; left: 0; width: 100%; pointer-events: none; z-index: 2147483647;';
|
|
119
|
+
const sx = window.scrollX;
|
|
120
|
+
const sy = window.scrollY;
|
|
110
121
|
for (const refEntry of refs) {
|
|
111
122
|
// Find element by role + name using ARIA
|
|
112
123
|
let element = null;
|
|
@@ -115,7 +126,6 @@ export async function annotateScreenshot(page, refMap) {
|
|
|
115
126
|
const role = el.getAttribute('role') ?? el.tagName?.toLowerCase();
|
|
116
127
|
const name = el.getAttribute('aria-label') ??
|
|
117
128
|
el.textContent?.trim().substring(0, 50) ?? '';
|
|
118
|
-
// Match by role keyword and name substring
|
|
119
129
|
const roleMatch = role === refEntry.role ||
|
|
120
130
|
(refEntry.role === 'button' && el.tagName === 'BUTTON') ||
|
|
121
131
|
(refEntry.role === 'link' && el.tagName === 'A') ||
|
|
@@ -131,47 +141,57 @@ export async function annotateScreenshot(page, refMap) {
|
|
|
131
141
|
if (!element)
|
|
132
142
|
continue;
|
|
133
143
|
const rect = element.getBoundingClientRect();
|
|
134
|
-
//
|
|
144
|
+
// Skip elements without a real visual presence — these were
|
|
145
|
+
// producing stray labels at (0,0) on the screenshot.
|
|
146
|
+
if (rect.width < 1 || rect.height < 1)
|
|
147
|
+
continue;
|
|
148
|
+
// Document-space coords (so labels line up with the captured
|
|
149
|
+
// full-page image, not the viewport).
|
|
150
|
+
const docLeft = rect.left + sx;
|
|
151
|
+
const docTop = rect.top + sy;
|
|
152
|
+
const labelHeight = 18;
|
|
153
|
+
const padX = 6;
|
|
154
|
+
// Place the label above the element when possible, else below.
|
|
155
|
+
const goAbove = docTop >= labelHeight + 2;
|
|
156
|
+
const labelTop = goAbove ? docTop - labelHeight - 2 : docTop + rect.height + 2;
|
|
135
157
|
const label = document.createElement('div');
|
|
136
158
|
label.style.cssText = `
|
|
137
|
-
position:
|
|
138
|
-
left: ${
|
|
139
|
-
top: ${
|
|
140
|
-
background: rgba(16, 185, 129, 0.
|
|
159
|
+
position: absolute;
|
|
160
|
+
left: ${docLeft}px;
|
|
161
|
+
top: ${labelTop}px;
|
|
162
|
+
background: rgba(16, 185, 129, 0.95);
|
|
141
163
|
color: #0a0f1a;
|
|
142
|
-
font-size:
|
|
164
|
+
font-size: 12px;
|
|
143
165
|
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
144
|
-
font-weight:
|
|
145
|
-
padding:
|
|
146
|
-
border-radius:
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
166
|
+
font-weight: 700;
|
|
167
|
+
padding: 2px ${padX}px;
|
|
168
|
+
border-radius: 3px;
|
|
169
|
+
height: ${labelHeight}px;
|
|
170
|
+
line-height: ${labelHeight - 4}px;
|
|
171
|
+
box-shadow: 0 1px 2px rgba(0,0,0,0.25);
|
|
172
|
+
white-space: nowrap;
|
|
150
173
|
`;
|
|
151
174
|
label.textContent = refEntry.ref;
|
|
152
|
-
// Create outline
|
|
153
175
|
const outline = document.createElement('div');
|
|
154
176
|
outline.style.cssText = `
|
|
155
|
-
position:
|
|
156
|
-
left: ${
|
|
157
|
-
top: ${
|
|
177
|
+
position: absolute;
|
|
178
|
+
left: ${docLeft}px;
|
|
179
|
+
top: ${docTop}px;
|
|
158
180
|
width: ${rect.width}px;
|
|
159
181
|
height: ${rect.height}px;
|
|
160
|
-
border: 2px solid rgba(16, 185, 129, 0.
|
|
161
|
-
border-radius:
|
|
162
|
-
|
|
163
|
-
pointer-events: none;
|
|
182
|
+
border: 2px solid rgba(16, 185, 129, 0.8);
|
|
183
|
+
border-radius: 3px;
|
|
184
|
+
box-sizing: border-box;
|
|
164
185
|
`;
|
|
165
186
|
container.appendChild(label);
|
|
166
187
|
container.appendChild(outline);
|
|
167
188
|
}
|
|
168
189
|
document.body.appendChild(container);
|
|
169
190
|
}, refMap.entries.map(e => ({ ref: e.ref, role: e.role, name: e.name })));
|
|
170
|
-
// Small wait for rendering
|
|
171
191
|
await page.waitForTimeout(50);
|
|
172
|
-
//
|
|
173
|
-
|
|
174
|
-
|
|
192
|
+
// Capture full page so refs below the fold are visible. Without this
|
|
193
|
+
// the annotated screenshot misses anything past the viewport.
|
|
194
|
+
const buffer = await page.screenshot({ fullPage: true });
|
|
175
195
|
await page.evaluate(() => {
|
|
176
196
|
const container = document.getElementById('__sweetlink_annotations__');
|
|
177
197
|
container?.remove();
|
package/dist/daemon/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/daemon/diff.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/daemon/diff.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/index.js
CHANGED
|
File without changes
|
|
@@ -31,8 +31,8 @@ export declare const consoleBuffer: RingBuffer<ConsoleEntry>;
|
|
|
31
31
|
export declare const networkBuffer: RingBuffer<NetworkEntry>;
|
|
32
32
|
export declare const dialogBuffer: RingBuffer<DialogEntry>;
|
|
33
33
|
/**
|
|
34
|
-
* Install event listeners on
|
|
35
|
-
*
|
|
34
|
+
* Install event listeners on a page. Safe to call multiple times for the
|
|
35
|
+
* same page (no-op on re-install) and supports multiple distinct pages.
|
|
36
36
|
*/
|
|
37
37
|
export declare function installListeners(page: Page): void;
|
|
38
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../../src/daemon/listeners.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,eAAO,MAAM,aAAa,0BAAuC,CAAC;AAClE,eAAO,MAAM,aAAa,0BAAuC,CAAC;AAClE,eAAO,MAAM,YAAY,yBAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../../src/daemon/listeners.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,eAAO,MAAM,aAAa,0BAAuC,CAAC;AAClE,eAAO,MAAM,aAAa,0BAAuC,CAAC;AAClE,eAAO,MAAM,YAAY,yBAAsC,CAAC;AAahE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAmEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAWpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAapE"}
|
package/dist/daemon/listeners.js
CHANGED
|
@@ -16,15 +16,17 @@ const pendingRequests = new Map();
|
|
|
16
16
|
// ============================================================================
|
|
17
17
|
// Setup
|
|
18
18
|
// ============================================================================
|
|
19
|
-
|
|
19
|
+
// Track installed pages so a daemon with both a main page and a recording
|
|
20
|
+
// page captures events from both into the shared ring buffers.
|
|
21
|
+
const installedPages = new WeakSet();
|
|
20
22
|
/**
|
|
21
|
-
* Install event listeners on
|
|
22
|
-
*
|
|
23
|
+
* Install event listeners on a page. Safe to call multiple times for the
|
|
24
|
+
* same page (no-op on re-install) and supports multiple distinct pages.
|
|
23
25
|
*/
|
|
24
26
|
export function installListeners(page) {
|
|
25
|
-
if (
|
|
27
|
+
if (installedPages.has(page))
|
|
26
28
|
return;
|
|
27
|
-
|
|
29
|
+
installedPages.add(page);
|
|
28
30
|
// Console events
|
|
29
31
|
page.on('console', (msg) => {
|
|
30
32
|
consoleBuffer.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listeners.js","sourceRoot":"","sources":["../../src/daemon/listeners.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA8B7C,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,UAAU,CAAe,MAAM,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,UAAU,CAAe,MAAM,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAc,MAAM,CAAC,CAAC;AAEhE,kDAAkD;AAClD,MAAM,eAAe,GAAG,IAAI,GAAG,EAA8D,CAAC;AAE9F,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,
|
|
1
|
+
{"version":3,"file":"listeners.js","sourceRoot":"","sources":["../../src/daemon/listeners.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA8B7C,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,UAAU,CAAe,MAAM,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,UAAU,CAAe,MAAM,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAc,MAAM,CAAC,CAAC;AAEhE,kDAAkD;AAClD,MAAM,eAAe,GAAG,IAAI,GAAG,EAA8D,CAAC;AAE9F,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,0EAA0E;AAC1E,+DAA+D;AAC/D,MAAM,cAAc,GAAG,IAAI,OAAO,EAAQ,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAU;IACzC,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO;IACrC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEzB,iBAAiB;IACjB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,aAAa,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE;YACjB,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;YACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACtB,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE;gBACtD,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iBAAiB;IACjB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7B,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE;YACjC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACnD,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAEvC,aAAa,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;YAChC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;YACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAChC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC;SAChD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACnD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEtC,aAAa,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;YAC3C,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACjC,YAAY,CAAC,IAAI,CAAC;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,SAAS;SACjD,CAAC,CAAC;QACH,mCAAmC;QACnC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAEzD,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;IACzD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAEzD,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC;QACnC,qBAAqB;QACrB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC9D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -18,7 +18,12 @@ type Page = import('playwright').Page;
|
|
|
18
18
|
* Start recording a session with real video capture.
|
|
19
19
|
* Creates a new BrowserContext with recordVideo enabled.
|
|
20
20
|
*/
|
|
21
|
-
export declare function startRecording(browser: Browser, url: string, outputDir: string
|
|
21
|
+
export declare function startRecording(browser: Browser, url: string, outputDir: string, options?: {
|
|
22
|
+
viewport?: {
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
};
|
|
26
|
+
}): Promise<{
|
|
22
27
|
sessionId: string;
|
|
23
28
|
}>;
|
|
24
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/daemon/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/daemon/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AAKjE,KAAK,OAAO,GAAG,OAAO,YAAY,EAAE,OAAO,CAAC;AAE5C,KAAK,IAAI,GAAG,OAAO,YAAY,EAAE,IAAI,CAAC;AAkDtC;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACzD,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA+ChC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAE9C;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,IAAI,EACV,WAAW,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpE,OAAO,CAAC,IAAI,CAAC,CAuEf;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyFrE;AAED,yCAAyC;AACzC,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,iCAAiC;AACjC,wBAAgB,kBAAkB,IAAI;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CAOA"}
|