@playwright-repl/core 0.9.0 → 0.13.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/README.md +139 -0
- package/dist/bridge-server.d.ts +16 -0
- package/dist/bridge-server.d.ts.map +1 -0
- package/dist/bridge-server.js +58 -0
- package/dist/bridge-server.js.map +1 -0
- package/dist/colors.d.ts +1 -0
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +22 -0
- package/dist/colors.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
package/README.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# @playwright-repl/core
|
|
2
|
+
|
|
3
|
+
Shared engine, parser, and utilities for the playwright-repl monorepo.
|
|
4
|
+
|
|
5
|
+
Used by [`playwright-repl`](../cli/README.md) (CLI) and [`@playwright-repl/mcp`](../mcp/README.md) (MCP server).
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @playwright-repl/core playwright
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
> Requires `playwright >= 1.59.0-alpha` (includes `lib/mcp/browser/` engine internals).
|
|
14
|
+
|
|
15
|
+
## Key Exports
|
|
16
|
+
|
|
17
|
+
### `Engine`
|
|
18
|
+
|
|
19
|
+
Runs Playwright's browser backend in-process. No daemon, no socket — commands execute directly.
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { Engine } from '@playwright-repl/core';
|
|
23
|
+
|
|
24
|
+
const engine = new Engine();
|
|
25
|
+
await engine.start({ headed: true });
|
|
26
|
+
|
|
27
|
+
const result = await engine.run({ _: ['goto', 'https://example.com'] });
|
|
28
|
+
console.log(result.text);
|
|
29
|
+
|
|
30
|
+
const snap = await engine.run({ _: ['snapshot'] });
|
|
31
|
+
console.log(snap.text);
|
|
32
|
+
|
|
33
|
+
await engine.close();
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**`EngineOpts`** (passed to `start()`):
|
|
37
|
+
|
|
38
|
+
| Option | Type | Description |
|
|
39
|
+
|--------|------|-------------|
|
|
40
|
+
| `headed` | `boolean` | Visible browser window |
|
|
41
|
+
| `browser` | `string` | `chrome`, `firefox`, `webkit`, `msedge` |
|
|
42
|
+
| `persistent` | `boolean` | Persistent browser profile |
|
|
43
|
+
| `profile` | `string` | Profile directory path |
|
|
44
|
+
|
|
45
|
+
**`EngineResult`**:
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
interface EngineResult {
|
|
49
|
+
text?: string; // Text output (accessibility tree, command result, error message)
|
|
50
|
+
image?: string; // Base64 data URL for screenshot commands
|
|
51
|
+
isError?: boolean;
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
### `BridgeServer`
|
|
58
|
+
|
|
59
|
+
WebSocket server that the Dramaturg Chrome extension connects to. Used by the CLI (`--bridge`) and MCP server.
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
import { BridgeServer } from '@playwright-repl/core';
|
|
63
|
+
|
|
64
|
+
const bridge = new BridgeServer();
|
|
65
|
+
await bridge.start(9876); // default port
|
|
66
|
+
|
|
67
|
+
bridge.onConnect(() => console.log('Extension connected'));
|
|
68
|
+
bridge.onDisconnect(() => console.log('Extension disconnected'));
|
|
69
|
+
|
|
70
|
+
await bridge.waitForConnection();
|
|
71
|
+
|
|
72
|
+
const result = await bridge.run('snapshot');
|
|
73
|
+
console.log(result.text);
|
|
74
|
+
|
|
75
|
+
await bridge.close();
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Methods:**
|
|
79
|
+
|
|
80
|
+
| Method | Description |
|
|
81
|
+
|--------|-------------|
|
|
82
|
+
| `start(port?)` | Start WebSocket server (default port `9876`) |
|
|
83
|
+
| `run(command)` | Send a command string to the extension, returns `EngineResult` |
|
|
84
|
+
| `waitForConnection(timeoutMs?)` | Wait until extension connects (default 30s) |
|
|
85
|
+
| `onConnect(fn)` | Callback when extension connects |
|
|
86
|
+
| `onDisconnect(fn)` | Callback when extension disconnects |
|
|
87
|
+
| `connected` | `boolean` — whether extension is currently connected |
|
|
88
|
+
| `close()` | Shut down the server |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### `parseInput`
|
|
93
|
+
|
|
94
|
+
Parse a raw command string into `ParsedArgs`.
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
import { parseInput } from '@playwright-repl/core';
|
|
98
|
+
|
|
99
|
+
parseInput('click "Submit"');
|
|
100
|
+
// → { _: ['click', 'Submit'] }
|
|
101
|
+
|
|
102
|
+
parseInput('fill "Email" user@example.com');
|
|
103
|
+
// → { _: ['fill', 'Email', 'user@example.com'] }
|
|
104
|
+
|
|
105
|
+
parseInput('snapshot');
|
|
106
|
+
// → { _: ['snapshot'] }
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Returns `null` for unrecognized commands.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### `buildCompletionItems`
|
|
114
|
+
|
|
115
|
+
Autocomplete data for all `.pw` commands, with descriptions and usage hints.
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
import { buildCompletionItems } from '@playwright-repl/core';
|
|
119
|
+
|
|
120
|
+
const items = buildCompletionItems();
|
|
121
|
+
// → [{ label: 'goto', detail: 'Navigate to a URL', ... }, ...]
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## File Structure
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
src/
|
|
130
|
+
├── engine.ts # In-process Playwright backend (Engine class)
|
|
131
|
+
├── bridge-server.ts # WebSocket bridge server (BridgeServer class)
|
|
132
|
+
├── extension-server.ts # HTTP command server (CommandServer class — internal)
|
|
133
|
+
├── parser.ts # Command parsing + alias resolution
|
|
134
|
+
├── page-scripts.ts # Text locators + assertion helpers (serializable fns)
|
|
135
|
+
├── completion-data.ts # Autocomplete items for all commands
|
|
136
|
+
├── resolve.ts # COMMANDS map, minimist re-export, version
|
|
137
|
+
├── colors.ts # ANSI color helpers
|
|
138
|
+
└── index.ts # Public exports
|
|
139
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { EngineResult } from './engine.js';
|
|
2
|
+
export declare class BridgeServer {
|
|
3
|
+
private wss;
|
|
4
|
+
private socket;
|
|
5
|
+
private pending;
|
|
6
|
+
private _onConnect?;
|
|
7
|
+
private _onDisconnect?;
|
|
8
|
+
onConnect(fn: () => void): void;
|
|
9
|
+
onDisconnect(fn: () => void): void;
|
|
10
|
+
get connected(): boolean;
|
|
11
|
+
start(port?: number): Promise<void>;
|
|
12
|
+
run(command: string): Promise<EngineResult>;
|
|
13
|
+
waitForConnection(timeoutMs?: number): Promise<void>;
|
|
14
|
+
close(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=bridge-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-server.d.ts","sourceRoot":"","sources":["../src/bridge-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,qBAAa,YAAY;IACrB,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAAgD;IAC/D,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,aAAa,CAAC,CAAa;IAEnC,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI;IACxB,YAAY,CAAC,EAAE,EAAE,MAAM,IAAI;IAC3B,IAAI,SAAS,YAAsE;IAE7E,KAAK,CAAC,IAAI,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS3C,iBAAiB,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { WebSocketServer, WebSocket } from 'ws';
|
|
2
|
+
export class BridgeServer {
|
|
3
|
+
wss;
|
|
4
|
+
socket = null;
|
|
5
|
+
pending = new Map();
|
|
6
|
+
_onConnect;
|
|
7
|
+
_onDisconnect;
|
|
8
|
+
onConnect(fn) { this._onConnect = fn; }
|
|
9
|
+
onDisconnect(fn) { this._onDisconnect = fn; }
|
|
10
|
+
get connected() { return this.socket?.readyState === WebSocket.OPEN; }
|
|
11
|
+
async start(port = 9876) {
|
|
12
|
+
this.wss = new WebSocketServer({ port });
|
|
13
|
+
await new Promise((resolve, reject) => {
|
|
14
|
+
this.wss.on('listening', resolve);
|
|
15
|
+
this.wss.on('error', reject);
|
|
16
|
+
});
|
|
17
|
+
this.wss.on('connection', (ws) => {
|
|
18
|
+
this.socket = ws;
|
|
19
|
+
this._onConnect?.();
|
|
20
|
+
ws.on('message', (data) => {
|
|
21
|
+
const msg = JSON.parse(String(data));
|
|
22
|
+
this.pending.get(msg.id)?.(msg);
|
|
23
|
+
this.pending.delete(msg.id);
|
|
24
|
+
});
|
|
25
|
+
ws.on('close', () => { this.socket = null; this._onDisconnect?.(); });
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async run(command) {
|
|
29
|
+
if (!this.connected)
|
|
30
|
+
return { text: 'Extension not connected', isError: true };
|
|
31
|
+
const id = Math.random().toString(36).slice(2);
|
|
32
|
+
return new Promise((resolve) => {
|
|
33
|
+
this.pending.set(id, resolve);
|
|
34
|
+
this.socket.send(JSON.stringify({ id, command }));
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async waitForConnection(timeoutMs = 30000) {
|
|
38
|
+
if (this.connected)
|
|
39
|
+
return;
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
const timer = setTimeout(() => {
|
|
42
|
+
reject(new Error('Timed out waiting for extension to connect'));
|
|
43
|
+
}, timeoutMs);
|
|
44
|
+
const prev = this._onConnect;
|
|
45
|
+
this._onConnect = () => {
|
|
46
|
+
clearTimeout(timer);
|
|
47
|
+
this._onConnect = prev;
|
|
48
|
+
prev?.();
|
|
49
|
+
resolve();
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async close() {
|
|
54
|
+
this.socket?.close();
|
|
55
|
+
await new Promise(r => this.wss.close(() => r()));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=bridge-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-server.js","sourceRoot":"","sources":["../src/bridge-server.ts"],"names":[],"mappings":"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"}
|
package/dist/colors.d.ts
CHANGED
package/dist/colors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWpC,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmB/C"}
|
package/dist/colors.js
CHANGED
|
@@ -14,4 +14,26 @@ export const c = {
|
|
|
14
14
|
cyan: '\x1b[36m',
|
|
15
15
|
gray: '\x1b[90m',
|
|
16
16
|
};
|
|
17
|
+
export function prettyJson(text) {
|
|
18
|
+
try {
|
|
19
|
+
const obj = JSON.parse(text);
|
|
20
|
+
const pretty = JSON.stringify(obj, null, 2);
|
|
21
|
+
const colored = pretty.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, (match) => {
|
|
22
|
+
if (/^".*":$/.test(match))
|
|
23
|
+
return c.yellow + match + c.reset; // key
|
|
24
|
+
if (/^"/.test(match))
|
|
25
|
+
return c.green + match + c.reset; // string
|
|
26
|
+
if (/null/.test(match))
|
|
27
|
+
return c.gray + match + c.reset; // null
|
|
28
|
+
return c.cyan + match + c.reset; // number/bool
|
|
29
|
+
});
|
|
30
|
+
const lines = colored.split('\n');
|
|
31
|
+
if (lines.length > 100)
|
|
32
|
+
return lines.slice(0, 100).join('\n') + `\n${c.gray}…(truncated)${c.reset}`;
|
|
33
|
+
return colored;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return text;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
17
39
|
//# sourceMappingURL=colors.js.map
|
package/dist/colors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,CAAC,GAA2B;IACvC,KAAK,EAAI,SAAS;IAClB,IAAI,EAAK,SAAS;IAClB,GAAG,EAAM,SAAS;IAClB,GAAG,EAAM,UAAU;IACnB,KAAK,EAAI,UAAU;IACnB,MAAM,EAAG,UAAU;IACnB,IAAI,EAAK,UAAU;IACnB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAK,UAAU;IACnB,IAAI,EAAK,UAAU;CACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,CAAC,GAA2B;IACvC,KAAK,EAAI,SAAS;IAClB,IAAI,EAAK,SAAS;IAClB,GAAG,EAAM,SAAS;IAClB,GAAG,EAAM,UAAU;IACnB,KAAK,EAAI,UAAU;IACnB,MAAM,EAAG,UAAU;IACnB,IAAI,EAAK,UAAU;IACnB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAK,UAAU;IACnB,IAAI,EAAK,UAAU;CACpB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAC5B,wGAAwG,EACxG,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAE,MAAM;YACrE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAO,OAAO,CAAC,CAAC,KAAK,GAAI,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAE,SAAS;YACxE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAK,OAAO,CAAC,CAAC,IAAI,GAAK,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAE,OAAO;YACtE,OAAO,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAgC,cAAc;QAChF,CAAC,CACF,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;QACpG,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
export { minimist, replVersion, COMMANDS } from './resolve.js';
|
|
5
5
|
export { parseInput, ALIASES, ALL_COMMANDS, booleanOptions } from './parser.js';
|
|
6
6
|
export { buildCompletionItems } from './completion-data.js';
|
|
7
|
-
export { c } from './colors.js';
|
|
7
|
+
export { c, prettyJson } from './colors.js';
|
|
8
8
|
export { buildRunCode, verifyText, verifyElement, verifyValue, verifyList, verifyTitle, verifyUrl, verifyNoText, verifyNoElement, actionByText, fillByText, selectByText, checkByText, uncheckByText, } from './page-scripts.js';
|
|
9
9
|
export { Engine } from './engine.js';
|
|
10
10
|
export type { EngineOpts, EngineResult, ParsedArgs } from './engine.js';
|
|
11
11
|
export { CommandServer } from './extension-server.js';
|
|
12
|
+
export { BridgeServer } from './bridge-server.js';
|
|
12
13
|
export type { CompletionItem } from './completion-data.js';
|
|
13
14
|
export type { CommandInfo } from './resolve.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAChE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EACrD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,GACnE,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
export { minimist, replVersion, COMMANDS } from './resolve.js';
|
|
5
5
|
export { parseInput, ALIASES, ALL_COMMANDS, booleanOptions } from './parser.js';
|
|
6
6
|
export { buildCompletionItems } from './completion-data.js';
|
|
7
|
-
export { c } from './colors.js';
|
|
7
|
+
export { c, prettyJson } from './colors.js';
|
|
8
8
|
export { buildRunCode, verifyText, verifyElement, verifyValue, verifyList, verifyTitle, verifyUrl, verifyNoText, verifyNoElement, actionByText, fillByText, selectByText, checkByText, uncheckByText, } from './page-scripts.js';
|
|
9
9
|
export { Engine } from './engine.js';
|
|
10
10
|
export { CommandServer } from './extension-server.js';
|
|
11
|
+
export { BridgeServer } from './bridge-server.js';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAChE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EACrD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,GACnE,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@playwright-repl/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -15,13 +15,15 @@
|
|
|
15
15
|
"test": "vitest run"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"minimist": "^1.2.8"
|
|
18
|
+
"minimist": "^1.2.8",
|
|
19
|
+
"ws": "^8.19.0"
|
|
19
20
|
},
|
|
20
21
|
"peerDependencies": {
|
|
21
22
|
"playwright": "1.59.0-alpha-2026-02-21",
|
|
22
23
|
"playwright-core": "1.59.0-alpha-2026-02-21"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
26
|
+
"@types/ws": "^8.18.1",
|
|
25
27
|
"playwright-core": "1.59.0-alpha-2026-02-21",
|
|
26
28
|
"vitest": "^4.0.18"
|
|
27
29
|
}
|