@ytspar/sweetlink 0.0.1 → 1.0.0-canary.2b99e1e
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/LICENSE +21 -0
- package/README.md +579 -28
- package/dist/browser/SweetlinkBridge.d.ts +69 -0
- package/dist/browser/SweetlinkBridge.d.ts.map +1 -0
- package/dist/browser/SweetlinkBridge.js +360 -0
- package/dist/browser/SweetlinkBridge.js.map +1 -0
- package/dist/browser/commands/dom.d.ts +11 -0
- package/dist/browser/commands/dom.d.ts.map +1 -0
- package/dist/browser/commands/dom.js +79 -0
- package/dist/browser/commands/dom.js.map +1 -0
- package/dist/browser/commands/exec.d.ts +14 -0
- package/dist/browser/commands/exec.d.ts.map +1 -0
- package/dist/browser/commands/exec.js +47 -0
- package/dist/browser/commands/exec.js.map +1 -0
- package/dist/browser/commands/index.d.ts +10 -0
- package/dist/browser/commands/index.d.ts.map +1 -0
- package/dist/browser/commands/index.js +10 -0
- package/dist/browser/commands/index.js.map +1 -0
- package/dist/browser/commands/logs.d.ts +11 -0
- package/dist/browser/commands/logs.d.ts.map +1 -0
- package/dist/browser/commands/logs.js +25 -0
- package/dist/browser/commands/logs.js.map +1 -0
- package/dist/browser/commands/screenshot.d.ts +16 -0
- package/dist/browser/commands/screenshot.d.ts.map +1 -0
- package/dist/browser/commands/screenshot.js +118 -0
- package/dist/browser/commands/screenshot.js.map +1 -0
- package/dist/browser/consoleCapture.d.ts +107 -0
- package/dist/browser/consoleCapture.d.ts.map +1 -0
- package/dist/browser/consoleCapture.js +215 -0
- package/dist/browser/consoleCapture.js.map +1 -0
- package/dist/browser/hmr.d.ts +25 -0
- package/dist/browser/hmr.d.ts.map +1 -0
- package/dist/browser/hmr.js +97 -0
- package/dist/browser/hmr.js.map +1 -0
- package/dist/browser/screenshotUtils.d.ts +102 -0
- package/dist/browser/screenshotUtils.d.ts.map +1 -0
- package/dist/browser/screenshotUtils.js +143 -0
- package/dist/browser/screenshotUtils.js.map +1 -0
- package/dist/browser.d.ts +2 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +5 -0
- package/dist/browser.js.map +1 -0
- package/dist/cdp.d.ts +99 -0
- package/dist/cdp.d.ts.map +1 -0
- package/dist/cdp.js +347 -0
- package/dist/cdp.js.map +1 -0
- package/dist/cli/sweetlink-dev.d.ts +14 -0
- package/dist/cli/sweetlink-dev.d.ts.map +1 -0
- package/dist/cli/sweetlink-dev.js +36 -0
- package/dist/cli/sweetlink-dev.js.map +1 -0
- package/dist/cli/sweetlink.d.ts +9 -0
- package/dist/cli/sweetlink.d.ts.map +1 -0
- package/dist/cli/sweetlink.js +1018 -0
- package/dist/cli/sweetlink.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/playwright.d.ts +29 -0
- package/dist/playwright.d.ts.map +1 -0
- package/dist/playwright.js +172 -0
- package/dist/playwright.js.map +1 -0
- package/dist/ruler.d.ts +82 -0
- package/dist/ruler.d.ts.map +1 -0
- package/dist/ruler.js +293 -0
- package/dist/ruler.js.map +1 -0
- package/dist/server/anthropic.d.ts +19 -0
- package/dist/server/anthropic.d.ts.map +1 -0
- package/dist/server/anthropic.js +26 -0
- package/dist/server/anthropic.js.map +1 -0
- package/dist/server/constants.d.ts +17 -0
- package/dist/server/constants.d.ts.map +1 -0
- package/dist/server/constants.js +17 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/handlers/designReview.d.ts +27 -0
- package/dist/server/handlers/designReview.d.ts.map +1 -0
- package/dist/server/handlers/designReview.js +165 -0
- package/dist/server/handlers/designReview.js.map +1 -0
- package/dist/server/handlers/hmr.d.ts +21 -0
- package/dist/server/handlers/hmr.d.ts.map +1 -0
- package/dist/server/handlers/hmr.js +81 -0
- package/dist/server/handlers/hmr.js.map +1 -0
- package/dist/server/handlers/index.d.ts +12 -0
- package/dist/server/handlers/index.d.ts.map +1 -0
- package/dist/server/handlers/index.js +12 -0
- package/dist/server/handlers/index.js.map +1 -0
- package/dist/server/handlers/outline.d.ts +19 -0
- package/dist/server/handlers/outline.d.ts.map +1 -0
- package/dist/server/handlers/outline.js +41 -0
- package/dist/server/handlers/outline.js.map +1 -0
- package/dist/server/handlers/schema.d.ts +19 -0
- package/dist/server/handlers/schema.d.ts.map +1 -0
- package/dist/server/handlers/schema.js +49 -0
- package/dist/server/handlers/schema.js.map +1 -0
- package/dist/server/handlers/screenshot.d.ts +51 -0
- package/dist/server/handlers/screenshot.d.ts.map +1 -0
- package/dist/server/handlers/screenshot.js +101 -0
- package/dist/server/handlers/screenshot.js.map +1 -0
- package/dist/server/handlers/settings.d.ts +53 -0
- package/dist/server/handlers/settings.d.ts.map +1 -0
- package/dist/server/handlers/settings.js +69 -0
- package/dist/server/handlers/settings.js.map +1 -0
- package/dist/server/index.d.ts +33 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +539 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/subscriptions.d.ts +26 -0
- package/dist/server/subscriptions.d.ts.map +1 -0
- package/dist/server/subscriptions.js +35 -0
- package/dist/server/subscriptions.js.map +1 -0
- package/dist/server.d.ts +8 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +8 -0
- package/dist/server.js.map +1 -0
- package/dist/types.d.ts +132 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/urlUtils.d.ts +75 -0
- package/dist/urlUtils.d.ts.map +1 -0
- package/dist/urlUtils.js +121 -0
- package/dist/urlUtils.js.map +1 -0
- package/dist/viewportUtils.d.ts +51 -0
- package/dist/viewportUtils.d.ts.map +1 -0
- package/dist/viewportUtils.js +70 -0
- package/dist/viewportUtils.js.map +1 -0
- package/package.json +99 -6
- package/scripts/setup-claude-context.mjs +101 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Screenshot Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared canvas and screenshot helper functions used by both
|
|
5
|
+
* GlobalDevBar and SweetlinkBridge for capturing and processing screenshots.
|
|
6
|
+
*/
|
|
7
|
+
/** Default screenshot scale factor */
|
|
8
|
+
export declare const DEFAULT_SCREENSHOT_SCALE = 0.25;
|
|
9
|
+
/** Default JPEG quality */
|
|
10
|
+
export declare const DEFAULT_SCREENSHOT_QUALITY = 0.7;
|
|
11
|
+
/** Higher quality scale for design review */
|
|
12
|
+
export declare const DESIGN_REVIEW_SCALE = 0.75;
|
|
13
|
+
/** Higher quality JPEG for devbar screenshots */
|
|
14
|
+
export declare const DEVBAR_SCREENSHOT_QUALITY = 0.8;
|
|
15
|
+
/**
|
|
16
|
+
* Options for canvas scaling
|
|
17
|
+
*/
|
|
18
|
+
export interface ScaleCanvasOptions {
|
|
19
|
+
scale: number;
|
|
20
|
+
smoothing?: boolean;
|
|
21
|
+
smoothingQuality?: ImageSmoothingQuality;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Scale a canvas down to a smaller size
|
|
25
|
+
*
|
|
26
|
+
* @param originalCanvas - The source canvas to scale
|
|
27
|
+
* @param options - Scaling options
|
|
28
|
+
* @returns A new scaled canvas
|
|
29
|
+
*/
|
|
30
|
+
export declare function scaleCanvas(originalCanvas: HTMLCanvasElement, options: ScaleCanvasOptions): HTMLCanvasElement;
|
|
31
|
+
/**
|
|
32
|
+
* Options for converting canvas to data URL
|
|
33
|
+
*/
|
|
34
|
+
export interface ToDataUrlOptions {
|
|
35
|
+
format?: 'jpeg' | 'png';
|
|
36
|
+
quality?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Convert a canvas to a data URL
|
|
40
|
+
*
|
|
41
|
+
* @param canvas - The canvas to convert
|
|
42
|
+
* @param options - Conversion options
|
|
43
|
+
* @returns Data URL string
|
|
44
|
+
*/
|
|
45
|
+
export declare function canvasToDataUrl(canvas: HTMLCanvasElement, options?: ToDataUrlOptions): string;
|
|
46
|
+
/**
|
|
47
|
+
* Extract base64 data from a data URL
|
|
48
|
+
*
|
|
49
|
+
* @param dataUrl - The data URL to extract from
|
|
50
|
+
* @returns Base64 encoded string without the prefix
|
|
51
|
+
*/
|
|
52
|
+
export declare function extractBase64FromDataUrl(dataUrl: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Get the media type from a data URL
|
|
55
|
+
*
|
|
56
|
+
* @param dataUrl - The data URL to check
|
|
57
|
+
* @returns The media type ('image/png' or 'image/jpeg')
|
|
58
|
+
*/
|
|
59
|
+
export declare function getMediaTypeFromDataUrl(dataUrl: string): 'image/png' | 'image/jpeg';
|
|
60
|
+
/**
|
|
61
|
+
* Prepare the page for screenshot capture
|
|
62
|
+
* Blurs active element and adds capturing class to body
|
|
63
|
+
*
|
|
64
|
+
* @returns Cleanup function to restore state
|
|
65
|
+
*/
|
|
66
|
+
export declare function prepareForCapture(): () => void;
|
|
67
|
+
/**
|
|
68
|
+
* Wait for a specified delay (useful for letting UI settle)
|
|
69
|
+
*
|
|
70
|
+
* @param ms - Milliseconds to wait
|
|
71
|
+
*/
|
|
72
|
+
export declare function delay(ms: number): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Copy a canvas to the clipboard as a PNG image
|
|
75
|
+
*
|
|
76
|
+
* @param canvas - The canvas to copy
|
|
77
|
+
* @returns Promise that resolves when copy is complete
|
|
78
|
+
*/
|
|
79
|
+
export declare function copyCanvasToClipboard(canvas: HTMLCanvasElement): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Screenshot metadata for saved files
|
|
82
|
+
*/
|
|
83
|
+
export interface ScreenshotMetadata {
|
|
84
|
+
url: string;
|
|
85
|
+
width: number;
|
|
86
|
+
height: number;
|
|
87
|
+
timestamp: number;
|
|
88
|
+
viewport?: {
|
|
89
|
+
width: number;
|
|
90
|
+
height: number;
|
|
91
|
+
};
|
|
92
|
+
selector?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Gather current viewport metadata
|
|
96
|
+
*
|
|
97
|
+
* @param canvas - The canvas that was captured
|
|
98
|
+
* @param selector - Optional selector that was used
|
|
99
|
+
* @returns Screenshot metadata
|
|
100
|
+
*/
|
|
101
|
+
export declare function gatherScreenshotMetadata(canvas: HTMLCanvasElement, selector?: string): ScreenshotMetadata;
|
|
102
|
+
//# sourceMappingURL=screenshotUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshotUtils.d.ts","sourceRoot":"","sources":["../../src/browser/screenshotUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,sCAAsC;AACtC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,2BAA2B;AAC3B,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,iDAAiD;AACjD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAM7C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,cAAc,EAAE,iBAAiB,EACjC,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,CAiBnB;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAOjG;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,CAEnF;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,IAAI,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAMD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBpF;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,kBAAkB,CAYpB"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Screenshot Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared canvas and screenshot helper functions used by both
|
|
5
|
+
* GlobalDevBar and SweetlinkBridge for capturing and processing screenshots.
|
|
6
|
+
*/
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Constants
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/** Default screenshot scale factor */
|
|
11
|
+
export const DEFAULT_SCREENSHOT_SCALE = 0.25;
|
|
12
|
+
/** Default JPEG quality */
|
|
13
|
+
export const DEFAULT_SCREENSHOT_QUALITY = 0.7;
|
|
14
|
+
/** Higher quality scale for design review */
|
|
15
|
+
export const DESIGN_REVIEW_SCALE = 0.75;
|
|
16
|
+
/** Higher quality JPEG for devbar screenshots */
|
|
17
|
+
export const DEVBAR_SCREENSHOT_QUALITY = 0.8;
|
|
18
|
+
/**
|
|
19
|
+
* Scale a canvas down to a smaller size
|
|
20
|
+
*
|
|
21
|
+
* @param originalCanvas - The source canvas to scale
|
|
22
|
+
* @param options - Scaling options
|
|
23
|
+
* @returns A new scaled canvas
|
|
24
|
+
*/
|
|
25
|
+
export function scaleCanvas(originalCanvas, options) {
|
|
26
|
+
const { scale, smoothing = true, smoothingQuality = 'high' } = options;
|
|
27
|
+
const scaledCanvas = document.createElement('canvas');
|
|
28
|
+
scaledCanvas.width = Math.floor(originalCanvas.width * scale);
|
|
29
|
+
scaledCanvas.height = Math.floor(originalCanvas.height * scale);
|
|
30
|
+
const ctx = scaledCanvas.getContext('2d');
|
|
31
|
+
if (!ctx) {
|
|
32
|
+
throw new Error('Failed to get canvas 2D context');
|
|
33
|
+
}
|
|
34
|
+
ctx.imageSmoothingEnabled = smoothing;
|
|
35
|
+
ctx.imageSmoothingQuality = smoothingQuality;
|
|
36
|
+
ctx.drawImage(originalCanvas, 0, 0, scaledCanvas.width, scaledCanvas.height);
|
|
37
|
+
return scaledCanvas;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Convert a canvas to a data URL
|
|
41
|
+
*
|
|
42
|
+
* @param canvas - The canvas to convert
|
|
43
|
+
* @param options - Conversion options
|
|
44
|
+
* @returns Data URL string
|
|
45
|
+
*/
|
|
46
|
+
export function canvasToDataUrl(canvas, options = {}) {
|
|
47
|
+
const { format = 'jpeg', quality = DEFAULT_SCREENSHOT_QUALITY } = options;
|
|
48
|
+
if (format === 'png') {
|
|
49
|
+
return canvas.toDataURL('image/png');
|
|
50
|
+
}
|
|
51
|
+
return canvas.toDataURL('image/jpeg', quality);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Extract base64 data from a data URL
|
|
55
|
+
*
|
|
56
|
+
* @param dataUrl - The data URL to extract from
|
|
57
|
+
* @returns Base64 encoded string without the prefix
|
|
58
|
+
*/
|
|
59
|
+
export function extractBase64FromDataUrl(dataUrl) {
|
|
60
|
+
return dataUrl.replace(/^data:image\/(png|jpeg);base64,/, '');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get the media type from a data URL
|
|
64
|
+
*
|
|
65
|
+
* @param dataUrl - The data URL to check
|
|
66
|
+
* @returns The media type ('image/png' or 'image/jpeg')
|
|
67
|
+
*/
|
|
68
|
+
export function getMediaTypeFromDataUrl(dataUrl) {
|
|
69
|
+
return dataUrl.startsWith('data:image/png') ? 'image/png' : 'image/jpeg';
|
|
70
|
+
}
|
|
71
|
+
// ============================================================================
|
|
72
|
+
// Screenshot Capture Helpers
|
|
73
|
+
// ============================================================================
|
|
74
|
+
/**
|
|
75
|
+
* Prepare the page for screenshot capture
|
|
76
|
+
* Blurs active element and adds capturing class to body
|
|
77
|
+
*
|
|
78
|
+
* @returns Cleanup function to restore state
|
|
79
|
+
*/
|
|
80
|
+
export function prepareForCapture() {
|
|
81
|
+
document.body.classList.add('devbar-capturing');
|
|
82
|
+
if (document.activeElement instanceof HTMLElement) {
|
|
83
|
+
document.activeElement.blur();
|
|
84
|
+
}
|
|
85
|
+
return () => {
|
|
86
|
+
document.body.classList.remove('devbar-capturing');
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Wait for a specified delay (useful for letting UI settle)
|
|
91
|
+
*
|
|
92
|
+
* @param ms - Milliseconds to wait
|
|
93
|
+
*/
|
|
94
|
+
export function delay(ms) {
|
|
95
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
96
|
+
}
|
|
97
|
+
// ============================================================================
|
|
98
|
+
// Clipboard Utilities
|
|
99
|
+
// ============================================================================
|
|
100
|
+
/**
|
|
101
|
+
* Copy a canvas to the clipboard as a PNG image
|
|
102
|
+
*
|
|
103
|
+
* @param canvas - The canvas to copy
|
|
104
|
+
* @returns Promise that resolves when copy is complete
|
|
105
|
+
*/
|
|
106
|
+
export async function copyCanvasToClipboard(canvas) {
|
|
107
|
+
return new Promise((resolve, reject) => {
|
|
108
|
+
canvas.toBlob(async (blob) => {
|
|
109
|
+
if (!blob) {
|
|
110
|
+
reject(new Error('Failed to create blob from canvas'));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
await navigator.clipboard.write([new ClipboardItem({ 'image/png': blob })]);
|
|
115
|
+
resolve();
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
reject(error);
|
|
119
|
+
}
|
|
120
|
+
}, 'image/png');
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Gather current viewport metadata
|
|
125
|
+
*
|
|
126
|
+
* @param canvas - The canvas that was captured
|
|
127
|
+
* @param selector - Optional selector that was used
|
|
128
|
+
* @returns Screenshot metadata
|
|
129
|
+
*/
|
|
130
|
+
export function gatherScreenshotMetadata(canvas, selector) {
|
|
131
|
+
return {
|
|
132
|
+
url: window.location.href,
|
|
133
|
+
width: canvas.width,
|
|
134
|
+
height: canvas.height,
|
|
135
|
+
timestamp: Date.now(),
|
|
136
|
+
viewport: {
|
|
137
|
+
width: window.innerWidth,
|
|
138
|
+
height: window.innerHeight,
|
|
139
|
+
},
|
|
140
|
+
selector: selector || 'body',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=screenshotUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshotUtils.js","sourceRoot":"","sources":["../../src/browser/screenshotUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/browser.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Browser entry point for @sweetlink/dev-toolkit/browser
|
|
2
|
+
// Vanilla JS version (no React dependency)
|
|
3
|
+
export { SweetlinkBridge } from './browser/SweetlinkBridge';
|
|
4
|
+
// React version available via separate import: '@ytspar/sweetlink/browser/react'
|
|
5
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,2CAA2C;AAC3C,OAAO,EAAE,eAAe,EAA8B,MAAM,2BAA2B,CAAC;AAExF,iFAAiF"}
|
package/dist/cdp.d.ts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sweetlink CDP (Chrome DevTools Protocol) Integration
|
|
3
|
+
*
|
|
4
|
+
* Provides enhanced screenshot and debugging capabilities using Puppeteer
|
|
5
|
+
* to connect to a Chrome instance running with remote debugging enabled.
|
|
6
|
+
*/
|
|
7
|
+
import { type Browser, type Page } from 'puppeteer-core';
|
|
8
|
+
/**
|
|
9
|
+
* Check if Chrome DevTools Protocol is available
|
|
10
|
+
*/
|
|
11
|
+
export declare function detectCDP(): Promise<boolean>;
|
|
12
|
+
/**
|
|
13
|
+
* Connect to Chrome via CDP
|
|
14
|
+
*/
|
|
15
|
+
export declare function getCDPBrowser(): Promise<Browser>;
|
|
16
|
+
/**
|
|
17
|
+
* Find the local development page (localhost:3000)
|
|
18
|
+
*/
|
|
19
|
+
export declare function findLocalDevPage(browser: Browser): Promise<Page>;
|
|
20
|
+
/**
|
|
21
|
+
* Take a screenshot using CDP
|
|
22
|
+
*/
|
|
23
|
+
export declare function screenshotViaCDP(options: {
|
|
24
|
+
selector?: string;
|
|
25
|
+
output?: string;
|
|
26
|
+
fullPage?: boolean;
|
|
27
|
+
waitForNetwork?: boolean;
|
|
28
|
+
viewport?: string;
|
|
29
|
+
hover?: boolean;
|
|
30
|
+
}): Promise<{
|
|
31
|
+
buffer: Buffer;
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Get console logs from the page
|
|
37
|
+
*/
|
|
38
|
+
export declare function getConsoleLogsViaCDP(): Promise<Array<{
|
|
39
|
+
type: string;
|
|
40
|
+
text: string;
|
|
41
|
+
location?: {
|
|
42
|
+
url?: string;
|
|
43
|
+
lineNumber?: number;
|
|
44
|
+
};
|
|
45
|
+
timestamp: number;
|
|
46
|
+
}>>;
|
|
47
|
+
/**
|
|
48
|
+
* Query DOM elements via CDP
|
|
49
|
+
*/
|
|
50
|
+
export declare function queryDOMViaCDP(selector: string, property?: string): Promise<any>;
|
|
51
|
+
/**
|
|
52
|
+
* Execute JavaScript in the page context
|
|
53
|
+
*
|
|
54
|
+
* SECURITY: This function executes arbitrary JavaScript via CDP.
|
|
55
|
+
* It is intended for development/debugging only and includes guards:
|
|
56
|
+
* - Production environment check
|
|
57
|
+
* - Code length limit
|
|
58
|
+
* - Type validation
|
|
59
|
+
*/
|
|
60
|
+
export declare function execJSViaCDP(code: string): Promise<unknown>;
|
|
61
|
+
/**
|
|
62
|
+
* Get network requests from the page
|
|
63
|
+
*/
|
|
64
|
+
export declare function getNetworkRequestsViaCDP(options?: {
|
|
65
|
+
filter?: string;
|
|
66
|
+
}): Promise<Array<{
|
|
67
|
+
url: string;
|
|
68
|
+
method: string;
|
|
69
|
+
status?: number;
|
|
70
|
+
statusText?: string;
|
|
71
|
+
resourceType?: string;
|
|
72
|
+
timestamp: number;
|
|
73
|
+
}>>;
|
|
74
|
+
/**
|
|
75
|
+
* Get page performance metrics
|
|
76
|
+
*/
|
|
77
|
+
export declare function getPerformanceMetricsViaCDP(): Promise<{
|
|
78
|
+
metrics: import("puppeteer-core").Metrics;
|
|
79
|
+
timings: {
|
|
80
|
+
domContentLoaded: number;
|
|
81
|
+
loadComplete: number;
|
|
82
|
+
domInteractive: number;
|
|
83
|
+
firstPaint: number | undefined;
|
|
84
|
+
firstContentfulPaint: number | undefined;
|
|
85
|
+
};
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Test CDP connection and return browser info
|
|
89
|
+
*/
|
|
90
|
+
export declare function testCDPConnection(): Promise<{
|
|
91
|
+
connected: boolean;
|
|
92
|
+
browserVersion?: string;
|
|
93
|
+
pages?: Array<{
|
|
94
|
+
url: string;
|
|
95
|
+
title: string;
|
|
96
|
+
}>;
|
|
97
|
+
error?: string;
|
|
98
|
+
}>;
|
|
99
|
+
//# sourceMappingURL=cdp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../src/cdp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAkB,EAChB,KAAK,OAAO,EAIZ,KAAK,IAAI,EACV,MAAM,gBAAgB,CAAC;AAkBxB;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAOlD;AAED;;GAEG;AACH,wBAAsB,aAAa,qBAalC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,iBAwBtD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA8F7D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CACnD,KAAK,CAAC;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CACH,CA8BA;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CA+BtF;AAKD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgCjE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CACpF,KAAK,CAAC;IACJ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CACH,CAmDA;AAED;;GAEG;AACH,wBAAsB,2BAA2B;;;;;;;;;GAkChD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA4BD"}
|