@ytspar/sweetlink 1.0.0-canary.cdf7fa2 → 1.0.0-canary.deff6e9
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 +46 -78
- package/dist/auto.d.ts +55 -0
- package/dist/auto.d.ts.map +1 -0
- package/dist/auto.js +89 -0
- package/dist/auto.js.map +1 -0
- package/dist/browser/SweetlinkBridge.d.ts +2 -3
- package/dist/browser/SweetlinkBridge.d.ts.map +1 -1
- package/dist/browser/SweetlinkBridge.js +13 -55
- package/dist/browser/SweetlinkBridge.js.map +1 -1
- package/dist/browser/commands/dom.d.ts +2 -2
- package/dist/browser/commands/dom.d.ts.map +1 -1
- package/dist/browser/commands/dom.js.map +1 -1
- package/dist/browser/commands/exec.d.ts +2 -2
- package/dist/browser/commands/exec.d.ts.map +1 -1
- package/dist/browser/commands/exec.js +36 -3
- package/dist/browser/commands/exec.js.map +1 -1
- package/dist/browser/commands/logs.d.ts +2 -2
- package/dist/browser/commands/logs.d.ts.map +1 -1
- package/dist/browser/commands/logs.js.map +1 -1
- package/dist/browser/commands/screenshot.d.ts +3 -3
- package/dist/browser/commands/screenshot.d.ts.map +1 -1
- package/dist/browser/commands/screenshot.js +54 -40
- package/dist/browser/commands/screenshot.js.map +1 -1
- package/dist/browser/consoleCapture.d.ts +32 -0
- package/dist/browser/consoleCapture.d.ts.map +1 -1
- package/dist/browser/consoleCapture.js +97 -1
- package/dist/browser/consoleCapture.js.map +1 -1
- package/dist/browser/earlyConsoleCapture.d.ts +30 -0
- package/dist/browser/earlyConsoleCapture.d.ts.map +1 -0
- package/dist/browser/earlyConsoleCapture.js +71 -0
- package/dist/browser/earlyConsoleCapture.js.map +1 -0
- package/dist/browser/hmr.d.ts.map +1 -1
- package/dist/browser/hmr.js +7 -7
- package/dist/browser/hmr.js.map +1 -1
- package/dist/cdp.d.ts +3 -3
- package/dist/cdp.d.ts.map +1 -1
- package/dist/cdp.js +1 -1
- package/dist/cdp.js.map +1 -1
- package/dist/cli/sweetlink.js +212 -0
- package/dist/cli/sweetlink.js.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -10
- package/dist/index.js.map +1 -1
- package/dist/playwright.js +1 -1
- package/dist/playwright.js.map +1 -1
- package/dist/ruler.d.ts +0 -4
- package/dist/ruler.d.ts.map +1 -1
- package/dist/ruler.js +0 -13
- package/dist/ruler.js.map +1 -1
- package/dist/server/anthropic.d.ts +47 -8
- package/dist/server/anthropic.d.ts.map +1 -1
- package/dist/server/anthropic.js +26 -13
- package/dist/server/anthropic.js.map +1 -1
- package/dist/server/constants.js +1 -1
- package/dist/server/constants.js.map +1 -1
- package/dist/server/handlers/consoleLogs.d.ts +19 -0
- package/dist/server/handlers/consoleLogs.d.ts.map +1 -0
- package/dist/server/handlers/consoleLogs.js +41 -0
- package/dist/server/handlers/consoleLogs.js.map +1 -0
- package/dist/server/handlers/designReview.d.ts.map +1 -1
- package/dist/server/handlers/designReview.js +2 -3
- package/dist/server/handlers/designReview.js.map +1 -1
- package/dist/server/handlers/index.d.ts +1 -0
- package/dist/server/handlers/index.d.ts.map +1 -1
- package/dist/server/handlers/index.js +1 -0
- package/dist/server/handlers/index.js.map +1 -1
- package/dist/server/handlers/screenshot.d.ts +2 -1
- package/dist/server/handlers/screenshot.d.ts.map +1 -1
- package/dist/server/handlers/settings.d.ts +2 -6
- package/dist/server/handlers/settings.d.ts.map +1 -1
- package/dist/server/handlers/settings.js +4 -4
- package/dist/server/handlers/settings.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +85 -26
- package/dist/server/index.js.map +1 -1
- package/dist/types.d.ts +236 -16
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +138 -1
- package/dist/types.js.map +1 -1
- package/dist/vite.d.ts +30 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +55 -0
- package/dist/vite.js.map +1 -0
- package/package.json +36 -14
- package/scripts/setup-claude-context.mjs +1 -1
package/README.md
CHANGED
|
@@ -38,6 +38,10 @@ This provides AI agents with easy access to visual state and debugging informati
|
|
|
38
38
|
|
|
39
39
|
**File Location Rationale**: Files are saved to `.tmp/sweetlink-screenshots/` (relative to project root) for easy agent access - keeps screenshots with the project and is typically gitignored via `.tmp/` patterns.
|
|
40
40
|
|
|
41
|
+
## Requirements
|
|
42
|
+
|
|
43
|
+
This package is **ESM-only**. It requires `"type": "module"` in your `package.json` or an ESM-capable bundler (Vite, webpack, esbuild, etc.).
|
|
44
|
+
|
|
41
45
|
## Installation
|
|
42
46
|
|
|
43
47
|
```bash
|
|
@@ -53,118 +57,82 @@ pnpm add @ytspar/sweetlink@canary
|
|
|
53
57
|
|
|
54
58
|
## Quick Start
|
|
55
59
|
|
|
56
|
-
###
|
|
60
|
+
### For Vite Apps (Recommended)
|
|
57
61
|
|
|
58
|
-
|
|
62
|
+
Just add the plugin - zero configuration needed:
|
|
59
63
|
|
|
60
64
|
```typescript
|
|
61
|
-
//
|
|
62
|
-
import {
|
|
65
|
+
// vite.config.ts
|
|
66
|
+
import { defineConfig } from 'vite';
|
|
67
|
+
import { sweetlink } from '@ytspar/sweetlink/vite';
|
|
63
68
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
console.log(`[Sweetlink] WebSocket server started on ws://localhost:${port}`);
|
|
68
|
-
}
|
|
69
|
+
export default defineConfig({
|
|
70
|
+
plugins: [sweetlink()]
|
|
71
|
+
});
|
|
69
72
|
```
|
|
70
73
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const { initSweetlink } = require('@ytspar/sweetlink');
|
|
74
|
+
That's it! The plugin automatically:
|
|
75
|
+
- Starts the Sweetlink server when Vite starts
|
|
76
|
+
- Detects Vite's port and configures everything
|
|
77
|
+
- DevBar connects automatically
|
|
76
78
|
|
|
77
|
-
|
|
78
|
-
initSweetlink({ port: 9223 });
|
|
79
|
-
}
|
|
79
|
+
### For Any Node.js App (Express, Next.js, Remix, etc.)
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
// your next config...
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
#### For Vite Apps
|
|
81
|
+
Add one line at the top of your server file:
|
|
87
82
|
|
|
88
83
|
```typescript
|
|
89
|
-
//
|
|
90
|
-
import
|
|
91
|
-
import { initSweetlink } from '@ytspar/sweetlink';
|
|
92
|
-
|
|
93
|
-
if (process.env.NODE_ENV === 'development') {
|
|
94
|
-
initSweetlink({ port: 9223 });
|
|
95
|
-
}
|
|
84
|
+
// server.ts, app.ts, or entry point
|
|
85
|
+
import '@ytspar/sweetlink/auto';
|
|
96
86
|
|
|
97
|
-
|
|
98
|
-
// your vite config...
|
|
99
|
-
});
|
|
87
|
+
// Your app code...
|
|
100
88
|
```
|
|
101
89
|
|
|
102
|
-
|
|
90
|
+
This automatically:
|
|
91
|
+
- Starts Sweetlink in development mode only
|
|
92
|
+
- Reads port from `process.env.PORT` (or defaults to 3000)
|
|
93
|
+
- DevBar connects automatically
|
|
103
94
|
|
|
104
|
-
####
|
|
95
|
+
#### With Explicit Configuration
|
|
105
96
|
|
|
106
97
|
```typescript
|
|
107
|
-
|
|
108
|
-
import { SweetlinkBridge } from '@ytspar/sweetlink/browser';
|
|
98
|
+
import { startSweetlink } from '@ytspar/sweetlink/auto';
|
|
109
99
|
|
|
110
|
-
|
|
111
|
-
return (
|
|
112
|
-
<>
|
|
113
|
-
{/* Your app content */}
|
|
114
|
-
{process.env.NODE_ENV === 'development' && <SweetlinkBridge />}
|
|
115
|
-
</>
|
|
116
|
-
);
|
|
117
|
-
}
|
|
100
|
+
startSweetlink({ appPort: 3000 });
|
|
118
101
|
```
|
|
119
102
|
|
|
120
|
-
|
|
103
|
+
### Using DevBar (Browser UI)
|
|
104
|
+
|
|
105
|
+
Add DevBar to your app for the screenshot button and dev toolbar:
|
|
121
106
|
|
|
122
107
|
```typescript
|
|
123
|
-
|
|
108
|
+
// app/root.tsx, _app.tsx, or App.tsx
|
|
109
|
+
import { initGlobalDevBar } from '@ytspar/devbar';
|
|
124
110
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
<>
|
|
128
|
-
{/* Your app content */}
|
|
129
|
-
{process.env.NODE_ENV === 'development' && (
|
|
130
|
-
<SweetlinkBridge
|
|
131
|
-
connectedStyles="bg-terminal-green/20 border-terminal-green text-terminal-green"
|
|
132
|
-
disconnectedStyles="bg-gray-700/20 border-gray-600 text-gray-400"
|
|
133
|
-
/>
|
|
134
|
-
)}
|
|
135
|
-
</>
|
|
136
|
-
);
|
|
111
|
+
if (process.env.NODE_ENV === 'development') {
|
|
112
|
+
initGlobalDevBar();
|
|
137
113
|
}
|
|
138
114
|
```
|
|
139
115
|
|
|
140
|
-
|
|
116
|
+
DevBar automatically connects to Sweetlink - no configuration needed.
|
|
117
|
+
|
|
118
|
+
### CLI Usage
|
|
119
|
+
|
|
120
|
+
Add to your package.json for CLI access:
|
|
141
121
|
|
|
142
122
|
```json
|
|
143
123
|
{
|
|
144
124
|
"scripts": {
|
|
145
|
-
"dev": "run-p dev:app sweetlink:dev",
|
|
146
|
-
"dev:app": "remix dev",
|
|
147
|
-
"sweetlink:dev": "sweetlink-dev",
|
|
148
125
|
"sweetlink": "sweetlink"
|
|
149
|
-
},
|
|
150
|
-
"devDependencies": {
|
|
151
|
-
"npm-run-all": "^4.1.5"
|
|
152
126
|
}
|
|
153
127
|
}
|
|
154
128
|
```
|
|
155
129
|
|
|
156
|
-
|
|
130
|
+
Then use:
|
|
157
131
|
|
|
158
132
|
```bash
|
|
159
|
-
pnpm
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
You should see:
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
[Sweetlink] WebSocket server started on ws://localhost:9223
|
|
166
|
-
💿 Remix App Server started at http://localhost:3000
|
|
167
|
-
[Sweetlink] Connected to server
|
|
133
|
+
pnpm sweetlink screenshot
|
|
134
|
+
pnpm sweetlink logs
|
|
135
|
+
pnpm sweetlink query --selector "h1"
|
|
168
136
|
```
|
|
169
137
|
|
|
170
138
|
## CLI Usage
|
|
@@ -584,7 +552,7 @@ SWEETLINK_WS_PORT=9224 pnpm dev
|
|
|
584
552
|
|
|
585
553
|
## Contributing
|
|
586
554
|
|
|
587
|
-
Contributions welcome! Please open an issue or PR at https://github.com/ytspar/
|
|
555
|
+
Contributions welcome! Please open an issue or PR at https://github.com/ytspar/devbar
|
|
588
556
|
|
|
589
557
|
## License
|
|
590
558
|
|
|
@@ -593,4 +561,4 @@ MIT
|
|
|
593
561
|
## Credits
|
|
594
562
|
|
|
595
563
|
- Inspired by [Peter Steinberger's autonomous debugging](https://x.com/steipete/status/1981998733736001727)
|
|
596
|
-
- Powered by html2canvas,
|
|
564
|
+
- Powered by html2canvas, Playwright, and WebSocket
|
package/dist/auto.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sweetlink Auto-Start
|
|
3
|
+
*
|
|
4
|
+
* Zero-config Sweetlink server that works with any Node.js app.
|
|
5
|
+
* Just import this module in development to start the server automatically.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // At the top of your server entry file
|
|
10
|
+
* import '@ytspar/sweetlink/auto';
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Or with explicit configuration:
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { startSweetlink } from '@ytspar/sweetlink/auto';
|
|
16
|
+
* startSweetlink({ appPort: 3000 });
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Port Calculation:
|
|
20
|
+
* - Reads app port from process.env.PORT (default: 3000)
|
|
21
|
+
* - WebSocket port = app port + 6223 (matches devbar's calculation)
|
|
22
|
+
* - Example: app on 3000 → Sweetlink on 9223
|
|
23
|
+
*/
|
|
24
|
+
export interface AutoStartOptions {
|
|
25
|
+
/**
|
|
26
|
+
* Your app's HTTP port. If not specified, reads from process.env.PORT
|
|
27
|
+
* or defaults to 3000.
|
|
28
|
+
*/
|
|
29
|
+
appPort?: number;
|
|
30
|
+
/**
|
|
31
|
+
* WebSocket server port. If not specified, calculated as appPort + 6223.
|
|
32
|
+
*/
|
|
33
|
+
wsPort?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Only start in development mode. Default: true
|
|
36
|
+
*/
|
|
37
|
+
devOnly?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Start Sweetlink server with automatic port configuration.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* // Auto-detect port from process.env.PORT
|
|
44
|
+
* startSweetlink();
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* // Explicit app port
|
|
48
|
+
* startSweetlink({ appPort: 3000 });
|
|
49
|
+
*/
|
|
50
|
+
export declare function startSweetlink(options?: AutoStartOptions): void;
|
|
51
|
+
/**
|
|
52
|
+
* Stop the Sweetlink server
|
|
53
|
+
*/
|
|
54
|
+
export declare function stopSweetlink(): Promise<void>;
|
|
55
|
+
//# sourceMappingURL=auto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAUH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAwCnE;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAKnD"}
|
package/dist/auto.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sweetlink Auto-Start
|
|
3
|
+
*
|
|
4
|
+
* Zero-config Sweetlink server that works with any Node.js app.
|
|
5
|
+
* Just import this module in development to start the server automatically.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // At the top of your server entry file
|
|
10
|
+
* import '@ytspar/sweetlink/auto';
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Or with explicit configuration:
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { startSweetlink } from '@ytspar/sweetlink/auto';
|
|
16
|
+
* startSweetlink({ appPort: 3000 });
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Port Calculation:
|
|
20
|
+
* - Reads app port from process.env.PORT (default: 3000)
|
|
21
|
+
* - WebSocket port = app port + 6223 (matches devbar's calculation)
|
|
22
|
+
* - Example: app on 3000 → Sweetlink on 9223
|
|
23
|
+
*/
|
|
24
|
+
import { closeSweetlink, initSweetlink } from './server/index.js';
|
|
25
|
+
/** Port offset from app port to calculate WebSocket port */
|
|
26
|
+
const WS_PORT_OFFSET = 6223;
|
|
27
|
+
/** Default app port if not specified */
|
|
28
|
+
const DEFAULT_APP_PORT = 3000;
|
|
29
|
+
let started = false;
|
|
30
|
+
/**
|
|
31
|
+
* Start Sweetlink server with automatic port configuration.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* // Auto-detect port from process.env.PORT
|
|
35
|
+
* startSweetlink();
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* // Explicit app port
|
|
39
|
+
* startSweetlink({ appPort: 3000 });
|
|
40
|
+
*/
|
|
41
|
+
export function startSweetlink(options = {}) {
|
|
42
|
+
if (started) {
|
|
43
|
+
console.log('[Sweetlink] Already started');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const { devOnly = true } = options;
|
|
47
|
+
// Skip in production unless explicitly enabled
|
|
48
|
+
if (devOnly && process.env.NODE_ENV === 'production') {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// Determine app port
|
|
52
|
+
const appPort = options.appPort ?? (process.env.PORT ? parseInt(process.env.PORT, 10) : DEFAULT_APP_PORT);
|
|
53
|
+
// Calculate WebSocket port (matches devbar's calculation)
|
|
54
|
+
const wsPort = options.wsPort ?? appPort + WS_PORT_OFFSET;
|
|
55
|
+
initSweetlink({
|
|
56
|
+
port: wsPort,
|
|
57
|
+
appPort,
|
|
58
|
+
onReady: (actualPort) => {
|
|
59
|
+
started = true;
|
|
60
|
+
if (actualPort !== wsPort) {
|
|
61
|
+
console.log(`[Sweetlink] Started on port ${actualPort} (${wsPort} was in use)`);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.log(`[Sweetlink] Started on port ${actualPort}`);
|
|
65
|
+
}
|
|
66
|
+
console.log(`[Sweetlink] devbar will auto-connect from app port ${appPort}`);
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
// Graceful shutdown on SIGTERM and SIGINT
|
|
70
|
+
const handleShutdown = () => {
|
|
71
|
+
closeSweetlink();
|
|
72
|
+
};
|
|
73
|
+
process.on('SIGTERM', handleShutdown);
|
|
74
|
+
process.on('SIGINT', handleShutdown);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Stop the Sweetlink server
|
|
78
|
+
*/
|
|
79
|
+
export async function stopSweetlink() {
|
|
80
|
+
if (started) {
|
|
81
|
+
await closeSweetlink();
|
|
82
|
+
started = false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Auto-start when this module is imported (unless NODE_ENV=production)
|
|
86
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
87
|
+
startSweetlink();
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=auto.js.map
|
package/dist/auto.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto.js","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElE,4DAA4D;AAC5D,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,wCAAwC;AACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAoB9B,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,UAA4B,EAAE;IAC3D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEnC,+CAA+C;IAC/C,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACrD,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAE5F,0DAA0D;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,GAAG,cAAc,CAAC;IAE1D,aAAa,CAAC;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO;QACP,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE;YACtB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,+BAA+B,UAAU,KAAK,MAAM,cAAc,CAAC,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,sDAAsD,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;KACF,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,cAAc,GAAG,GAAS,EAAE;QAChC,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,cAAc,EAAE,CAAC;QACvB,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC1C,cAAc,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This module provides framework-agnostic browser integration for Sweetlink,
|
|
5
5
|
* eliminating the React dependency to avoid conflicts with host applications.
|
|
6
6
|
*
|
|
7
|
-
* @version
|
|
7
|
+
* @version 1.0.0
|
|
8
8
|
*/
|
|
9
9
|
import type { ServerInfo } from '../types.js';
|
|
10
10
|
export interface SweetlinkBridgeConfig {
|
|
@@ -30,7 +30,7 @@ export declare class SweetlinkBridge {
|
|
|
30
30
|
private readonly hmrConfig;
|
|
31
31
|
private readonly currentAppPort;
|
|
32
32
|
private cleanupFunctions;
|
|
33
|
-
private
|
|
33
|
+
private capture;
|
|
34
34
|
constructor(config?: SweetlinkBridgeConfig);
|
|
35
35
|
/**
|
|
36
36
|
* Initialize the bridge - call this to start the connection
|
|
@@ -48,7 +48,6 @@ export declare class SweetlinkBridge {
|
|
|
48
48
|
* Get server info
|
|
49
49
|
*/
|
|
50
50
|
getServerInfo(): ServerInfo | null;
|
|
51
|
-
private setupConsoleCapture;
|
|
52
51
|
private setupErrorHandlers;
|
|
53
52
|
private connectWebSocket;
|
|
54
53
|
private handleCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SweetlinkBridge.d.ts","sourceRoot":"","sources":["../../src/browser/SweetlinkBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAc,UAAU,EAAuC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SweetlinkBridge.d.ts","sourceRoot":"","sources":["../../src/browser/SweetlinkBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAc,UAAU,EAAuC,MAAM,aAAa,CAAC;AAqC/F,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,kBAAkB,CAA8C;IAGxE,OAAO,CAAC,QAAQ,CAId;IAGF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAGxC,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,OAAO,CAAwB;gBAE3B,MAAM,GAAE,qBAA0B;IA+B9C;;OAEG;IACH,IAAI,IAAI,IAAI;IA8BZ;;OAEG;IACH,OAAO,IAAI,IAAI;IA0Cf;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAQlC,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,gBAAgB;YAkIV,aAAa;CAyB5B;AAQD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAQnF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C;AAGD,eAAe,eAAe,CAAC"}
|
|
@@ -4,19 +4,17 @@
|
|
|
4
4
|
* This module provides framework-agnostic browser integration for Sweetlink,
|
|
5
5
|
* eliminating the React dependency to avoid conflicts with host applications.
|
|
6
6
|
*
|
|
7
|
-
* @version
|
|
7
|
+
* @version 1.0.0
|
|
8
8
|
*/
|
|
9
9
|
// Import command handlers
|
|
10
10
|
import { handleExecJS, handleGetLogs, handleQueryDOM, handleRequestScreenshot, handleScreenshot, } from './commands/index.js';
|
|
11
|
-
import {
|
|
11
|
+
import { ConsoleCapture } from './consoleCapture.js';
|
|
12
12
|
// Import HMR utilities
|
|
13
13
|
import { captureHmrScreenshot, setupHmrDetection, } from './hmr.js';
|
|
14
14
|
// ============================================================================
|
|
15
15
|
// Constants
|
|
16
16
|
// ============================================================================
|
|
17
|
-
|
|
18
|
-
const SWEETLINK_PORT_OFFSET = 6223;
|
|
19
|
-
const DEFAULT_WS_PORT = 9223;
|
|
17
|
+
import { DEFAULT_WS_PORT, WS_PORT_OFFSET as SWEETLINK_PORT_OFFSET } from '../types.js';
|
|
20
18
|
const DEFAULT_MAX_PORT_RETRIES = 10;
|
|
21
19
|
/** HMR settings */
|
|
22
20
|
const DEFAULT_HMR_DEBOUNCE_MS = 300;
|
|
@@ -52,7 +50,7 @@ export class SweetlinkBridge {
|
|
|
52
50
|
currentAppPort;
|
|
53
51
|
// Cleanup functions
|
|
54
52
|
cleanupFunctions = [];
|
|
55
|
-
|
|
53
|
+
capture = new ConsoleCapture();
|
|
56
54
|
constructor(config = {}) {
|
|
57
55
|
// Skip on server-side
|
|
58
56
|
if (typeof window === 'undefined') {
|
|
@@ -64,12 +62,6 @@ export class SweetlinkBridge {
|
|
|
64
62
|
captureDelay: DEFAULT_HMR_CAPTURE_DELAY_MS,
|
|
65
63
|
};
|
|
66
64
|
this.currentAppPort = 0;
|
|
67
|
-
this.originalConsole = {
|
|
68
|
-
log: console.log,
|
|
69
|
-
error: console.error,
|
|
70
|
-
warn: console.warn,
|
|
71
|
-
info: console.info,
|
|
72
|
-
};
|
|
73
65
|
return;
|
|
74
66
|
}
|
|
75
67
|
// Calculate app port from URL
|
|
@@ -85,13 +77,6 @@ export class SweetlinkBridge {
|
|
|
85
77
|
debounceMs: config.hmrDebounceMs ?? DEFAULT_HMR_DEBOUNCE_MS,
|
|
86
78
|
captureDelay: config.hmrCaptureDelay ?? DEFAULT_HMR_CAPTURE_DELAY_MS,
|
|
87
79
|
};
|
|
88
|
-
// Store original console methods
|
|
89
|
-
this.originalConsole = {
|
|
90
|
-
log: console.log.bind(console),
|
|
91
|
-
error: console.error.bind(console),
|
|
92
|
-
warn: console.warn.bind(console),
|
|
93
|
-
info: console.info.bind(console),
|
|
94
|
-
};
|
|
95
80
|
}
|
|
96
81
|
/**
|
|
97
82
|
* Initialize the bridge - call this to start the connection
|
|
@@ -99,7 +84,12 @@ export class SweetlinkBridge {
|
|
|
99
84
|
init() {
|
|
100
85
|
if (typeof window === 'undefined')
|
|
101
86
|
return;
|
|
102
|
-
this.
|
|
87
|
+
this.capture.importEarlyLogs();
|
|
88
|
+
this.capture.start();
|
|
89
|
+
this.consoleLogs = this.capture.getLogs();
|
|
90
|
+
this.capture.addListener(() => {
|
|
91
|
+
this.consoleLogs = this.capture.getLogs();
|
|
92
|
+
});
|
|
103
93
|
this.setupErrorHandlers();
|
|
104
94
|
this.connectWebSocket(this.basePort);
|
|
105
95
|
if (this.hmrScreenshots) {
|
|
@@ -140,10 +130,7 @@ export class SweetlinkBridge {
|
|
|
140
130
|
this.ws = null;
|
|
141
131
|
}
|
|
142
132
|
// Restore console
|
|
143
|
-
|
|
144
|
-
console.error = this.originalConsole.error;
|
|
145
|
-
console.warn = this.originalConsole.warn;
|
|
146
|
-
console.info = this.originalConsole.info;
|
|
133
|
+
this.capture.stop();
|
|
147
134
|
// Run cleanup functions
|
|
148
135
|
this.cleanupFunctions.forEach((fn) => fn());
|
|
149
136
|
this.cleanupFunctions = [];
|
|
@@ -169,38 +156,9 @@ export class SweetlinkBridge {
|
|
|
169
156
|
// ==========================================================================
|
|
170
157
|
// Private Methods
|
|
171
158
|
// ==========================================================================
|
|
172
|
-
setupConsoleCapture() {
|
|
173
|
-
const captureLog = (level, args) => {
|
|
174
|
-
this.consoleLogs.push({
|
|
175
|
-
level,
|
|
176
|
-
message: formatArgs(args),
|
|
177
|
-
timestamp: Date.now(),
|
|
178
|
-
});
|
|
179
|
-
// Keep only last N logs
|
|
180
|
-
if (this.consoleLogs.length > MAX_CONSOLE_LOGS) {
|
|
181
|
-
this.consoleLogs = this.consoleLogs.slice(-MAX_CONSOLE_LOGS);
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
// Patch all console methods with a unified wrapper
|
|
185
|
-
const levels = ['log', 'error', 'warn', 'info'];
|
|
186
|
-
for (const level of levels) {
|
|
187
|
-
const original = this.originalConsole[level];
|
|
188
|
-
console[level] = (...args) => {
|
|
189
|
-
captureLog(level, args);
|
|
190
|
-
original(...args);
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
159
|
setupErrorHandlers() {
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
const rejectionHandler = createRejectionHandler(logsRef, MAX_CONSOLE_LOGS);
|
|
198
|
-
window.addEventListener('error', errorHandler);
|
|
199
|
-
window.addEventListener('unhandledrejection', rejectionHandler);
|
|
200
|
-
this.cleanupFunctions.push(() => {
|
|
201
|
-
window.removeEventListener('error', errorHandler);
|
|
202
|
-
window.removeEventListener('unhandledrejection', rejectionHandler);
|
|
203
|
-
});
|
|
160
|
+
const cleanup = this.capture.startErrorHandlers();
|
|
161
|
+
this.cleanupFunctions.push(cleanup);
|
|
204
162
|
}
|
|
205
163
|
connectWebSocket(port) {
|
|
206
164
|
const wsUrl = `ws://localhost:${port}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SweetlinkBridge.js","sourceRoot":"","sources":["../../src/browser/SweetlinkBridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SweetlinkBridge.js","sourceRoot":"","sources":["../../src/browser/SweetlinkBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Handles DOM query commands from the server.
|
|
5
5
|
*/
|
|
6
|
-
import type {
|
|
6
|
+
import type { QueryDomCommand, SweetlinkResponse } from '../../types.js';
|
|
7
7
|
/**
|
|
8
8
|
* Handle query-dom command
|
|
9
9
|
*/
|
|
10
|
-
export declare function handleQueryDOM(command:
|
|
10
|
+
export declare function handleQueryDOM(command: QueryDomCommand): SweetlinkResponse;
|
|
11
11
|
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/browser/commands/dom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/browser/commands/dom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEzE;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,iBAAiB,CAyE1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../src/browser/commands/dom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../src/browser/commands/dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* SECURITY WARNING: This module executes arbitrary JavaScript for debugging.
|
|
7
7
|
* It is restricted to localhost connections and development environments only.
|
|
8
8
|
*/
|
|
9
|
-
import type {
|
|
9
|
+
import type { ExecJsCommand, SweetlinkResponse } from '../../types.js';
|
|
10
10
|
/**
|
|
11
11
|
* Handle exec-js command with security guards
|
|
12
12
|
*/
|
|
13
|
-
export declare function handleExecJS(command:
|
|
13
|
+
export declare function handleExecJS(command: ExecJsCommand): SweetlinkResponse;
|
|
14
14
|
//# sourceMappingURL=exec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/browser/commands/exec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/browser/commands/exec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAqCvE;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CA0CtE"}
|
|
@@ -7,9 +7,32 @@
|
|
|
7
7
|
* It is restricted to localhost connections and development environments only.
|
|
8
8
|
*/
|
|
9
9
|
const MAX_CODE_LENGTH = 10000;
|
|
10
|
+
const SCRIPT_RESULT_KEY = '__sweetlink_exec_result__';
|
|
10
11
|
function errorResponse(error) {
|
|
11
12
|
return { success: false, error, timestamp: Date.now() };
|
|
12
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Check whether an error was caused by CSP blocking `unsafe-eval`.
|
|
16
|
+
*/
|
|
17
|
+
function isCspEvalBlocked(error) {
|
|
18
|
+
return (error instanceof EvalError ||
|
|
19
|
+
(error instanceof DOMException && error.message.includes('unsafe-eval')));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Execute code via inline `<script>` tag injection.
|
|
23
|
+
* Works on pages where CSP allows 'unsafe-inline' but not 'unsafe-eval'.
|
|
24
|
+
*/
|
|
25
|
+
function execViaScriptTag(code) {
|
|
26
|
+
const global = window;
|
|
27
|
+
delete global[SCRIPT_RESULT_KEY];
|
|
28
|
+
const script = document.createElement('script');
|
|
29
|
+
script.textContent = `window["${SCRIPT_RESULT_KEY}"] = (function(){ return (${code}); })()`;
|
|
30
|
+
document.documentElement.appendChild(script);
|
|
31
|
+
script.remove();
|
|
32
|
+
const result = global[SCRIPT_RESULT_KEY];
|
|
33
|
+
delete global[SCRIPT_RESULT_KEY];
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
13
36
|
/**
|
|
14
37
|
* Handle exec-js command with security guards
|
|
15
38
|
*/
|
|
@@ -28,9 +51,19 @@ export function handleExecJS(command) {
|
|
|
28
51
|
return errorResponse(`Code exceeds maximum length of ${MAX_CODE_LENGTH} characters`);
|
|
29
52
|
}
|
|
30
53
|
try {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
54
|
+
let result;
|
|
55
|
+
try {
|
|
56
|
+
// eslint-disable-next-line no-eval
|
|
57
|
+
result = (0, eval)(command.code);
|
|
58
|
+
}
|
|
59
|
+
catch (evalError) {
|
|
60
|
+
if (isCspEvalBlocked(evalError)) {
|
|
61
|
+
result = execViaScriptTag(command.code);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
throw evalError;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
34
67
|
return {
|
|
35
68
|
success: true,
|
|
36
69
|
data: {
|