@playwright-repl/core 0.21.10 → 0.22.1

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # @playwright-repl/core
2
2
 
3
- Shared parser, servers, and utilities for the playwright-repl ecosystem.
3
+ Shared parser, connections, and utilities for the playwright-repl ecosystem.
4
4
 
5
- Used by [`playwright-repl`](../cli/README.md) (CLI), [`@playwright-repl/runner`](../runner/README.md) (runner), and [`@playwright-repl/mcp`](../mcp/README.md) (MCP server).
5
+ Used by [`playwright-repl`](../cli/README.md) (CLI), [`@playwright-repl/runner`](../runner/README.md) (runner), [`@playwright-repl/mcp`](../mcp/README.md) (MCP server), and the [VS Code extension](../vscode/README.md).
6
6
 
7
7
  ## Install
8
8
 
@@ -12,86 +12,78 @@ npm install @playwright-repl/core
12
12
 
13
13
  ## Key Exports
14
14
 
15
- ### `BridgeServer`
15
+ ### `EvaluateConnection`
16
16
 
17
- WebSocket server that the Dramaturg Chrome extension connects to. Used by the CLI (`--bridge`), MCP server, and `pw repl-extension`.
17
+ Launch Chromium with the Dramaturg extension and execute commands via `serviceWorker.evaluate()`. No WebSocket bridge needed.
18
18
 
19
19
  ```typescript
20
- import { BridgeServer } from '@playwright-repl/core';
21
-
22
- const bridge = new BridgeServer();
23
- await bridge.start(9876); // default port
20
+ import { EvaluateConnection, findExtensionPath } from '@playwright-repl/core';
24
21
 
25
- bridge.onConnect(() => console.log('Extension connected'));
26
- bridge.onDisconnect(() => console.log('Extension disconnected'));
22
+ const conn = new EvaluateConnection();
23
+ const { chromium } = await import('@playwright/test');
24
+ const extPath = findExtensionPath(import.meta.url);
27
25
 
28
- await bridge.waitForConnection();
26
+ await conn.start(extPath, { headed: true, chromium });
29
27
 
30
- const result = await bridge.run('snapshot');
28
+ const result = await conn.run('snapshot');
31
29
  console.log(result.text);
32
30
 
33
- await bridge.close();
31
+ await conn.runScript('await page.title()', 'javascript');
32
+
33
+ await conn.close();
34
34
  ```
35
35
 
36
36
  **Methods:**
37
37
 
38
38
  | Method | Description |
39
39
  |--------|-------------|
40
- | `start(port?)` | Start WebSocket server (default port `9876`) |
41
- | `run(command)` | Send a command to the extension, returns `EngineResult` |
42
- | `runScript(script, language)` | Send a multi-line script (`'pw'` or `'javascript'`) |
43
- | `waitForConnection(timeoutMs?)` | Wait until extension connects (default 30s) |
44
- | `onConnect(fn)` | Callback when extension connects |
45
- | `onDisconnect(fn)` | Callback when extension disconnects |
46
- | `connected` | `boolean` whether extension is connected |
47
- | `close()` | Shut down the server |
40
+ | `start(extensionPath, opts)` | Launch Chromium with extension |
41
+ | `run(command, opts?)` | Execute a keyword command or JS expression |
42
+ | `runScript(script, language)` | Execute a multi-line script (`'pw'` or `'javascript'`) |
43
+ | `evaluate(fn, arg?)` | Run arbitrary code in the service worker |
44
+ | `connected` | `boolean` whether the connection is active |
45
+ | `context` | Playwright browser context |
46
+ | `serviceWorker` | Extension service worker handle |
47
+ | `close()` | Close the browser |
48
48
 
49
- ---
49
+ ### `BridgeServer`
50
50
 
51
- ### `CommandServer`
51
+ WebSocket server for connecting to an existing Chrome with the Dramaturg extension installed. Used by CLI `--bridge` mode and MCP bridge mode.
52
52
 
53
- HTTP server for external command execution. Used by `--server` mode (AI agents) and extension mode.
53
+ ```typescript
54
+ import { BridgeServer } from '@playwright-repl/core';
54
55
 
55
- **Endpoints:**
56
+ const bridge = new BridgeServer();
57
+ await bridge.start(9876);
56
58
 
57
- | Endpoint | Description |
58
- |----------|-------------|
59
- | `POST /run` | Execute a command via `engine.run()` |
60
- | `POST /select-tab` | Switch active page by URL |
61
- | `GET /health` | Server status check |
59
+ await bridge.waitForConnection();
60
+ const result = await bridge.run('snapshot');
62
61
 
63
- ---
62
+ await bridge.close();
63
+ ```
64
64
 
65
- ### `parseInput`
65
+ ### `findExtensionPath`
66
66
 
67
- Parse a raw command string into `ParsedArgs`.
67
+ Find the Dramaturg Chrome extension dist path. Checks monorepo first, then bundled npm location.
68
68
 
69
69
  ```typescript
70
- import { parseInput } from '@playwright-repl/core';
71
-
72
- parseInput('click "Submit"');
73
- // → { _: ['click', 'Submit'] }
70
+ import { findExtensionPath } from '@playwright-repl/core';
74
71
 
75
- parseInput('fill "Email" user@example.com');
76
- // → { _: ['fill', 'Email', 'user@example.com'] }
77
-
78
- parseInput('snapshot');
79
- // → { _: ['snapshot'] }
72
+ const extPath = findExtensionPath(import.meta.url);
73
+ // → '/path/to/packages/extension/dist' or null
80
74
  ```
81
75
 
82
- Returns `null` for unrecognized commands.
83
-
84
76
  ---
85
77
 
86
- ### `buildCompletionItems`
78
+ ### `parseInput`
87
79
 
88
- Autocomplete data for all `.pw` commands, with descriptions and usage hints.
80
+ Parse a raw command string into `ParsedArgs`.
89
81
 
90
82
  ```typescript
91
- import { buildCompletionItems } from '@playwright-repl/core';
83
+ import { parseInput } from '@playwright-repl/core';
92
84
 
93
- const items = buildCompletionItems();
94
- // → [{ label: 'goto', detail: 'Navigate to a URL', ... }, ...]
85
+ parseInput('click "Submit"');
86
+ // → { _: ['click', 'Submit'] }
95
87
  ```
96
88
 
97
89
  ---
@@ -115,14 +107,15 @@ interface ParsedArgs {
115
107
 
116
108
  ```
117
109
  src/
118
- ├── bridge-server.ts # WebSocket bridge server (BridgeServer)
119
- ├── extension-server.ts # HTTP command server (CommandServer)
120
- ├── parser.ts # Command parsing + alias resolution
121
- ├── page-scripts.ts # Text locators + assertion helpers
122
- ├── completion-data.ts # Autocomplete items for all commands
123
- ├── filter.ts # Response filtering
124
- ├── resolve.ts # COMMANDS map, minimist re-export, version
125
- ├── colors.ts # ANSI color helpers
126
- ├── types.ts # Shared type definitions
127
- └── index.ts # Public exports
110
+ ├── evaluate-connection.ts # serviceWorker.evaluate() connection + findExtensionPath
111
+ ├── bridge-server.ts # WebSocket bridge server (BridgeServer)
112
+ ├── parser.ts # Command parsing, alias resolution, resolveArgs
113
+ ├── page-scripts.ts # Text locators + assertion helpers
114
+ ├── completion-data.ts # Autocomplete items for all commands
115
+ ├── snapshot-parser.ts # Snapshot tree parsing + ref-to-locator
116
+ ├── filter.ts # Response filtering
117
+ ├── resolve.ts # COMMANDS map, minimist re-export, version
118
+ ├── colors.ts # ANSI color helpers
119
+ ├── types.ts # Shared type definitions
120
+ └── index.ts # Public exports
128
121
  ```
@@ -0,0 +1,66 @@
1
+ /**
2
+ * EvaluateConnection — execute commands in Dramaturg extension
3
+ * via serviceWorker.evaluate(). No WebSocket bridge needed.
4
+ *
5
+ * Same interface as BridgeServer: run(), connected, close().
6
+ */
7
+ type BrowserContext = any;
8
+ type Worker = any;
9
+ export interface EvaluateResult {
10
+ text?: string;
11
+ isError?: boolean;
12
+ image?: string;
13
+ }
14
+ /**
15
+ * Find the Dramaturg Chrome extension dist path.
16
+ * Checks monorepo first (dev), then bundled (npm install).
17
+ * @param from Path to resolve from (e.g. import.meta.url or __filename)
18
+ */
19
+ export declare function findExtensionPath(from?: string): string | null;
20
+ export declare class EvaluateConnection {
21
+ private _context;
22
+ private _sw;
23
+ private _connected;
24
+ get connected(): boolean;
25
+ get context(): BrowserContext | null;
26
+ get serviceWorker(): Worker | null;
27
+ get port(): number;
28
+ /**
29
+ * Launch Chromium with the Dramaturg extension and connect.
30
+ * @param extensionPath Path to the built Chrome extension (dist/)
31
+ * @param opts.chromium Playwright's chromium object (caller must provide)
32
+ * @param opts.headed Show browser window (default: true)
33
+ * @param opts.userDataDir Custom user data dir (default: temp dir)
34
+ * @param opts.extraArgs Additional Chromium args
35
+ */
36
+ start(extensionPath: string, opts?: {
37
+ headed?: boolean;
38
+ chromium?: any;
39
+ userDataDir?: string;
40
+ extraArgs?: string[];
41
+ }): Promise<void>;
42
+ /**
43
+ * Execute a command in the extension's service worker.
44
+ */
45
+ run(command: string, opts?: {
46
+ includeSnapshot?: boolean;
47
+ }): Promise<EvaluateResult>;
48
+ /**
49
+ * Execute a script (multi-line pw or JavaScript).
50
+ */
51
+ runScript(script: string, language?: 'pw' | 'javascript'): Promise<EvaluateResult>;
52
+ /**
53
+ * Evaluate arbitrary code in the service worker.
54
+ */
55
+ evaluate(fn: any, arg?: any): Promise<any>;
56
+ /**
57
+ * Close the browser context.
58
+ */
59
+ close(): Promise<void>;
60
+ onConnect(_fn: () => void): void;
61
+ onDisconnect(_fn: () => void): void;
62
+ onEvent(_fn: (event: Record<string, unknown>) => void): void;
63
+ waitForConnection(_timeoutMs?: number): Promise<void>;
64
+ }
65
+ export {};
66
+ //# sourceMappingURL=evaluate-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-connection.d.ts","sourceRoot":"","sources":["../src/evaluate-connection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,KAAK,cAAc,GAAG,GAAG,CAAC;AAC1B,KAAK,MAAM,GAAG,GAAG,CAAC;AAGlB,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB9D;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,UAAU,CAAS;IAE3B,IAAI,SAAS,IAAI,OAAO,CAA4B;IACpD,IAAI,OAAO,IAAI,cAAc,GAAG,IAAI,CAA0B;IAC9D,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAAqB;IACvD,IAAI,IAAI,IAAI,MAAM,CAAc;IAEhC;;;;;;;OAOG;IACG,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,GAAE;QACvC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,GAAG,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCtB;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAczF;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,IAAI,GAAG,YAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;IActG;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAKhD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B,SAAS,CAAC,GAAG,EAAE,MAAM,IAAI;IACzB,YAAY,CAAC,GAAG,EAAE,MAAM,IAAI;IAC5B,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI;IAC/C,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM;CAC5C"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * EvaluateConnection — execute commands in Dramaturg extension
3
+ * via serviceWorker.evaluate(). No WebSocket bridge needed.
4
+ *
5
+ * Same interface as BridgeServer: run(), connected, close().
6
+ */
7
+ import path from 'node:path';
8
+ import fs from 'node:fs';
9
+ import { createRequire } from 'node:module';
10
+ /**
11
+ * Find the Dramaturg Chrome extension dist path.
12
+ * Checks monorepo first (dev), then bundled (npm install).
13
+ * @param from Path to resolve from (e.g. import.meta.url or __filename)
14
+ */
15
+ export function findExtensionPath(from) {
16
+ try {
17
+ const req = from ? createRequire(from) : createRequire(import.meta.url);
18
+ const coreMain = req.resolve('@playwright-repl/core');
19
+ const coreDir = coreMain.replace(/[\\/]dist[\\/].*$/, '');
20
+ // Monorepo: packages/extension/dist
21
+ const monorepoExt = path.resolve(coreDir, '../extension/dist');
22
+ if (fs.existsSync(path.join(monorepoExt, 'manifest.json')))
23
+ return monorepoExt;
24
+ // Bundled (npm): chrome-extension/ next to the caller
25
+ if (from) {
26
+ const callerDir = path.dirname(from.startsWith('file://') ? new URL(from).pathname : from);
27
+ const bundledExt = path.resolve(callerDir, 'chrome-extension');
28
+ if (fs.existsSync(path.join(bundledExt, 'manifest.json')))
29
+ return bundledExt;
30
+ }
31
+ }
32
+ catch { }
33
+ return null;
34
+ }
35
+ export class EvaluateConnection {
36
+ _context = null;
37
+ _sw = null;
38
+ _connected = false;
39
+ get connected() { return this._connected; }
40
+ get context() { return this._context; }
41
+ get serviceWorker() { return this._sw; }
42
+ get port() { return 0; } // No port needed
43
+ /**
44
+ * Launch Chromium with the Dramaturg extension and connect.
45
+ * @param extensionPath Path to the built Chrome extension (dist/)
46
+ * @param opts.chromium Playwright's chromium object (caller must provide)
47
+ * @param opts.headed Show browser window (default: true)
48
+ * @param opts.userDataDir Custom user data dir (default: temp dir)
49
+ * @param opts.extraArgs Additional Chromium args
50
+ */
51
+ async start(extensionPath, opts = {}) {
52
+ const chromium = opts.chromium;
53
+ if (!chromium)
54
+ throw new Error('opts.chromium is required — pass the chromium object from playwright');
55
+ const userDataDir = opts.userDataDir || '';
56
+ this._context = await chromium.launchPersistentContext(userDataDir, {
57
+ channel: 'chromium',
58
+ headless: opts.headed === false,
59
+ args: [
60
+ `--disable-extensions-except=${extensionPath}`,
61
+ `--load-extension=${extensionPath}`,
62
+ '--no-first-run',
63
+ '--no-default-browser-check',
64
+ ...(opts.extraArgs || []),
65
+ ],
66
+ });
67
+ // Get the extension's service worker
68
+ let sw = this._context.serviceWorkers()[0];
69
+ if (!sw)
70
+ sw = await this._context.waitForEvent('serviceworker');
71
+ this._sw = sw;
72
+ // Wait for handleBridgeCommand to be available
73
+ await sw.evaluate(async () => {
74
+ for (let i = 0; i < 50; i++) {
75
+ if (self.handleBridgeCommand)
76
+ return;
77
+ await new Promise(r => setTimeout(r, 100));
78
+ }
79
+ });
80
+ // Navigate to blank page so the extension can attach to a tab
81
+ const page = this._context.pages()[0] || await this._context.newPage();
82
+ await page.goto('about:blank');
83
+ await new Promise(r => setTimeout(r, 500));
84
+ this._connected = true;
85
+ }
86
+ /**
87
+ * Execute a command in the extension's service worker.
88
+ */
89
+ async run(command, opts) {
90
+ if (!this._sw)
91
+ throw new Error('Not connected');
92
+ return await this._sw.evaluate(async ({ command, includeSnapshot }) => {
93
+ return await self.handleBridgeCommand({
94
+ command,
95
+ scriptType: 'command',
96
+ includeSnapshot,
97
+ });
98
+ }, { command, includeSnapshot: opts?.includeSnapshot });
99
+ }
100
+ /**
101
+ * Execute a script (multi-line pw or JavaScript).
102
+ */
103
+ async runScript(script, language = 'javascript') {
104
+ if (!this._sw)
105
+ throw new Error('Not connected');
106
+ return await this._sw.evaluate(async ({ command, language }) => {
107
+ return await self.handleBridgeCommand({
108
+ command,
109
+ scriptType: 'script',
110
+ language,
111
+ });
112
+ }, { command: script, language });
113
+ }
114
+ /**
115
+ * Evaluate arbitrary code in the service worker.
116
+ */
117
+ async evaluate(fn, arg) {
118
+ if (!this._sw)
119
+ throw new Error('Not connected');
120
+ return await this._sw.evaluate(fn, arg);
121
+ }
122
+ /**
123
+ * Close the browser context.
124
+ */
125
+ async close() {
126
+ this._connected = false;
127
+ this._sw = null;
128
+ if (this._context) {
129
+ await this._context.close().catch(() => { });
130
+ this._context = null;
131
+ }
132
+ }
133
+ // Stubs for BridgeServer compatibility
134
+ onConnect(_fn) { }
135
+ onDisconnect(_fn) { }
136
+ onEvent(_fn) { }
137
+ async waitForConnection(_timeoutMs) { }
138
+ }
139
+ //# sourceMappingURL=evaluate-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-connection.js","sourceRoot":"","sources":["../src/evaluate-connection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAc5C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC1D,oCAAoC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAAE,OAAO,WAAW,CAAC;QAC/E,sDAAsD;QACtD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;YAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;gBAAE,OAAO,UAAU,CAAC;QAC/E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,kBAAkB;IACrB,QAAQ,GAA0B,IAAI,CAAC;IACvC,GAAG,GAAkB,IAAI,CAAC;IAC1B,UAAU,GAAG,KAAK,CAAC;IAE3B,IAAI,SAAS,KAAc,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,KAA4B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,IAAI,aAAa,KAAoB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,IAAI,IAAI,KAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;IAElD;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,CAAC,aAAqB,EAAE,OAK/B,EAAE;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAEvG,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAE3C,IAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,WAAW,EAAE;YAClE,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK;YAC/B,IAAI,EAAE;gBACJ,+BAA+B,aAAa,EAAE;gBAC9C,oBAAoB,aAAa,EAAE;gBACnC,gBAAgB;gBAChB,4BAA4B;gBAC5B,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;aAC1B;SACF,CAAC,CAAC;QAEH,qCAAqC;QACrC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE;YAAE,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QAEd,+CAA+C;QAC/C,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,IAAK,IAAY,CAAC,mBAAmB;oBAAE,OAAO;gBAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvE,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAE3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,IAAoC;QAC7D,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,EAAkD,EAAE,EAAE;YACrF,OAAO,MAAO,IAAY,CAAC,mBAAmB,CAAC;gBAC7C,OAAO;gBACP,UAAU,EAAE,SAAS;gBACrB,eAAe;aAChB,CAAC,CAAC;QACL,CAAC,EACD,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,CACpD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,WAAgC,YAAY;QAC1E,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAyC,EAAE,EAAE;YACrE,OAAO,MAAO,IAAY,CAAC,mBAAmB,CAAC;gBAC7C,OAAO;gBACP,UAAU,EAAE,QAAQ;gBACpB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,EACD,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAO,EAAE,GAAS;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,SAAS,CAAC,GAAe,IAAG,CAAC;IAC7B,YAAY,CAAC,GAAe,IAAG,CAAC;IAChC,OAAO,CAAC,GAA6C,IAAG,CAAC;IACzD,KAAK,CAAC,iBAAiB,CAAC,UAAmB,IAAG,CAAC;CAChD"}
package/dist/index.d.ts CHANGED
@@ -2,14 +2,14 @@
2
2
  * @playwright-repl/core — shared parser, utilities, and bridge server.
3
3
  */
4
4
  export { minimist, replVersion, COMMANDS, CATEGORIES, JS_CATEGORIES, UPDATE_COMMANDS } from './resolve.js';
5
- export { parseInput, ALIASES, ALL_COMMANDS, booleanOptions } from './parser.js';
5
+ export { parseInput, ALIASES, ALL_COMMANDS, booleanOptions, resolveArgs } from './parser.js';
6
6
  export { buildCompletionItems } from './completion-data.js';
7
7
  export { c, prettyJson } from './colors.js';
8
8
  export { buildRunCode, verifyText, verifyElement, verifyValue, verifyList, verifyTitle, verifyUrl, verifyNoText, verifyNoElement, verifyVisible, verifyInputValue, waitForText, actionByText, fillByText, selectByText, checkByText, uncheckByText, actionByRole, fillByRole, selectByRole, pressKeyByRole, } from './page-scripts.js';
9
9
  export type { EngineOpts, EngineResult, ParsedArgs } from './types.js';
10
- export { CommandServer, resolveArgs } from './extension-server.js';
11
10
  export { filterResponse } from './filter.js';
12
11
  export { BridgeServer } from './bridge-server.js';
12
+ export { EvaluateConnection, findExtensionPath } from './evaluate-connection.js';
13
13
  export type { CompletionItem } from './completion-data.js';
14
14
  export type { CommandInfo } from './resolve.js';
15
15
  export { parseSnapshot, refToLocator, allRefLocators } from './snapshot-parser.js';
@@ -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,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3G,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,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAC5C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAClE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GACvD,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,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,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,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,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAC5C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAClE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GACvD,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -2,12 +2,12 @@
2
2
  * @playwright-repl/core — shared parser, utilities, and bridge server.
3
3
  */
4
4
  export { minimist, replVersion, COMMANDS, CATEGORIES, JS_CATEGORIES, UPDATE_COMMANDS } from './resolve.js';
5
- export { parseInput, ALIASES, ALL_COMMANDS, booleanOptions } from './parser.js';
5
+ export { parseInput, ALIASES, ALL_COMMANDS, booleanOptions, resolveArgs } from './parser.js';
6
6
  export { buildCompletionItems } from './completion-data.js';
7
7
  export { c, prettyJson } from './colors.js';
8
8
  export { buildRunCode, verifyText, verifyElement, verifyValue, verifyList, verifyTitle, verifyUrl, verifyNoText, verifyNoElement, verifyVisible, verifyInputValue, waitForText, actionByText, fillByText, selectByText, checkByText, uncheckByText, actionByRole, fillByRole, selectByRole, pressKeyByRole, } from './page-scripts.js';
9
- export { CommandServer, resolveArgs } from './extension-server.js';
10
9
  export { filterResponse } from './filter.js';
11
10
  export { BridgeServer } from './bridge-server.js';
11
+ export { EvaluateConnection, findExtensionPath } from './evaluate-connection.js';
12
12
  export { parseSnapshot, refToLocator, allRefLocators } from './snapshot-parser.js';
13
13
  //# 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,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3G,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,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAC5C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAClE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GACvD,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,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,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,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,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAC5C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAClE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GACvD,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGjF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/parser.d.ts CHANGED
@@ -11,4 +11,11 @@ export declare const ALIASES: Record<string, string>;
11
11
  export declare const booleanOptions: Set<string>;
12
12
  export declare const ALL_COMMANDS: string[];
13
13
  export declare function parseInput(line: string): ParsedArgs | null;
14
+ /**
15
+ * Apply the same transformations the CLI REPL does before engine.run():
16
+ * - Verify commands → run-code with page scripts
17
+ * - Text locators → run-code with actionByText/fillByText/etc.
18
+ * - Auto-wrap run-code body with async (page) => { ... }
19
+ */
20
+ export declare function resolveArgs(args: ParsedArgs): ParsedArgs;
14
21
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6C1C,CAAC;AAIF,eAAO,MAAM,cAAc,aAGzB,CAAC;AAIH,eAAO,MAAM,YAAY,EAAE,MAAM,EAA0B,CAAC;AA6C5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8C1D"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6C1C,CAAC;AAIF,eAAO,MAAM,cAAc,aAGzB,CAAC;AAIH,eAAO,MAAM,YAAY,EAAE,MAAM,EAA0B,CAAC;AA6C5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8C1D;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAgIxD"}
package/dist/parser.js CHANGED
@@ -7,6 +7,7 @@
7
7
  * parseCliCommand() which maps it to a tool call.
8
8
  */
9
9
  import { minimist, COMMANDS } from './resolve.js';
10
+ import { buildRunCode, verifyText, verifyElement, verifyValue, verifyList, verifyTitle, verifyUrl, verifyNoText, verifyNoElement, verifyVisible, verifyInputValue, waitForText, actionByText, fillByText, selectByText, checkByText, uncheckByText, actionByRole, fillByRole, selectByRole, pressKeyByRole, } from './page-scripts.js';
10
11
  // ─── Command aliases ─────────────────────────────────────────────────────────
11
12
  export const ALIASES = {
12
13
  // Navigation
@@ -143,4 +144,144 @@ export function parseInput(line) {
143
144
  }
144
145
  return args;
145
146
  }
147
+ /**
148
+ * Apply the same transformations the CLI REPL does before engine.run():
149
+ * - Verify commands → run-code with page scripts
150
+ * - Text locators → run-code with actionByText/fillByText/etc.
151
+ * - Auto-wrap run-code body with async (page) => { ... }
152
+ */
153
+ export function resolveArgs(args) {
154
+ const cmdName = args._[0];
155
+ // ── Unified verify command → run-code translation ──────────
156
+ if (cmdName === 'verify') {
157
+ const subType = args._[1];
158
+ const rest = args._.slice(2);
159
+ let translated = null;
160
+ if (subType === 'title' && rest.length > 0)
161
+ translated = buildRunCode(verifyTitle, rest.join(' '));
162
+ else if (subType === 'url' && rest.length > 0)
163
+ translated = buildRunCode(verifyUrl, rest.join(' '));
164
+ else if (subType === 'text' && rest.length > 0)
165
+ translated = buildRunCode(verifyText, rest.join(' '));
166
+ else if (subType === 'no-text' && rest.length > 0)
167
+ translated = buildRunCode(verifyNoText, rest.join(' '));
168
+ else if (subType === 'element' && rest.length >= 2)
169
+ translated = buildRunCode(verifyElement, rest[0], rest.slice(1).join(' '));
170
+ else if (subType === 'no-element' && rest.length >= 2)
171
+ translated = buildRunCode(verifyNoElement, rest[0], rest.slice(1).join(' '));
172
+ else if (subType === 'value' && rest.length >= 2)
173
+ translated = buildRunCode(verifyValue, rest[0], rest.slice(1).join(' '));
174
+ else if (subType === 'visible' && rest.length >= 2)
175
+ translated = buildRunCode(verifyVisible, rest[0], rest.slice(1).join(' '));
176
+ else if (subType === 'input-value' && rest.length >= 2)
177
+ translated = buildRunCode(verifyInputValue, rest[0], rest.slice(1).join(' '));
178
+ else if (subType === 'list' && rest.length >= 2)
179
+ translated = buildRunCode(verifyList, rest[0], rest.slice(1));
180
+ if (translated)
181
+ args = translated;
182
+ }
183
+ // ── Legacy verify-* commands (backward compat) ─────────────
184
+ const verifyFns = {
185
+ 'verify-text': verifyText,
186
+ 'verify-element': verifyElement,
187
+ 'verify-value': verifyValue,
188
+ 'verify-visible': verifyVisible,
189
+ 'verify-input-value': verifyInputValue,
190
+ 'verify-list': verifyList,
191
+ 'verify-title': verifyTitle,
192
+ 'verify-url': verifyUrl,
193
+ 'verify-no-text': verifyNoText,
194
+ 'verify-no-element': verifyNoElement,
195
+ };
196
+ if (verifyFns[cmdName]) {
197
+ const pos = args._.slice(1);
198
+ const fn = verifyFns[cmdName];
199
+ let translated = null;
200
+ if (cmdName === 'verify-text' || cmdName === 'verify-no-text' || cmdName === 'verify-title' || cmdName === 'verify-url') {
201
+ const text = pos.join(' ');
202
+ if (text)
203
+ translated = buildRunCode(fn, text);
204
+ }
205
+ else if (cmdName === 'verify-no-element' || cmdName === 'verify-element' || cmdName === 'verify-visible') {
206
+ if (pos[0] && pos.length >= 2)
207
+ translated = buildRunCode(fn, pos[0], pos.slice(1).join(' '));
208
+ }
209
+ else if (pos[0] && pos.length >= 2) {
210
+ const rest = cmdName === 'verify-list' ? pos.slice(1) : pos.slice(1).join(' ');
211
+ translated = buildRunCode(fn, pos[0], rest);
212
+ }
213
+ if (translated)
214
+ args = translated;
215
+ }
216
+ // ── wait-for-text → run-code with polling ──────────────────
217
+ if (cmdName === 'wait-for-text') {
218
+ const text = args._.slice(1).join(' ');
219
+ if (text)
220
+ args = buildRunCode(waitForText, text);
221
+ }
222
+ // ── Auto-resolve role-based to native Playwright locator ──
223
+ const ROLE_ACTIONS = {
224
+ click: 'click', dblclick: 'dblclick', hover: 'hover',
225
+ check: 'check', uncheck: 'uncheck',
226
+ };
227
+ if (args._.length >= 3 && args._[1] && /^[a-z]+$/.test(args._[1]) && !args._.some(a => a.includes('>>'))) {
228
+ const role = args._[1];
229
+ const nth = args.nth !== undefined ? parseInt(String(args.nth), 10) : undefined;
230
+ const inRole = args['in-role'] !== undefined ? String(args['in-role']) : undefined;
231
+ const inText = args['in-text'] !== undefined ? String(args['in-text']) : undefined;
232
+ if (ROLE_ACTIONS[cmdName]) {
233
+ const name = args._.slice(2).join(' ');
234
+ args = buildRunCode(actionByRole, role, name, ROLE_ACTIONS[cmdName], nth, inRole, inText);
235
+ }
236
+ else if (cmdName === 'fill') {
237
+ const name = args._[2];
238
+ const value = args._.slice(3).join(' ') || '';
239
+ args = buildRunCode(fillByRole, role, name, value, nth, inRole, inText);
240
+ }
241
+ else if (cmdName === 'select') {
242
+ const name = args._[2];
243
+ const value = args._.slice(3).join(' ') || '';
244
+ args = buildRunCode(selectByRole, role, name, value, nth, inRole, inText);
245
+ }
246
+ else if (cmdName === 'press') {
247
+ const name = args._[2];
248
+ const key = args._.slice(3).join(' ') || '';
249
+ args = buildRunCode(pressKeyByRole, role, name, key, nth, inRole, inText);
250
+ }
251
+ }
252
+ // ── Auto-resolve text to native Playwright locator ─────────
253
+ const textFns = {
254
+ click: actionByText, dblclick: actionByText, hover: actionByText,
255
+ fill: fillByText, select: selectByText, check: checkByText, uncheck: uncheckByText,
256
+ };
257
+ if (textFns[cmdName] && args._[0] !== 'run-code' && args._[1] && !/^e\d+$/.test(args._[1]) && !args._.some(a => a.includes('>>'))) {
258
+ const textArg = args._[1];
259
+ const extraArgs = args._.slice(2);
260
+ const fn = textFns[cmdName];
261
+ const nth = args.nth !== undefined ? parseInt(String(args.nth), 10) : undefined;
262
+ const exact = args.exact === true ? true : undefined;
263
+ if (fn === actionByText)
264
+ args = buildRunCode(fn, textArg, cmdName, nth, exact);
265
+ else if (cmdName === 'fill' || cmdName === 'select')
266
+ args = buildRunCode(fn, textArg, extraArgs[0] || '', nth, exact);
267
+ else
268
+ args = buildRunCode(fn, textArg, nth, exact);
269
+ }
270
+ // ── go-back / go-forward → evaluate history.back/forward ──
271
+ if (cmdName === 'go-back') {
272
+ args = { _: ['run-code', 'async (page) => { await page.evaluate(() => history.back()); return "Navigated back"; }'] };
273
+ }
274
+ if (cmdName === 'go-forward') {
275
+ args = { _: ['run-code', 'async (page) => { await page.evaluate(() => history.forward()); return "Navigated forward"; }'] };
276
+ }
277
+ // ── Auto-wrap run-code body with async (page) => { ... } ──
278
+ if (cmdName === 'run-code' && args._[1] && !args._[1].startsWith('async')) {
279
+ const STMT = /^(await|return|const|let|var|for|if|while|throw|try)\b/;
280
+ const body = !args._[1].includes(';') && !STMT.test(args._[1])
281
+ ? `return await ${args._[1]}`
282
+ : args._[1];
283
+ args = { _: ['run-code', `async (page) => { ${body} }`] };
284
+ }
285
+ return args;
286
+ }
146
287
  //# sourceMappingURL=parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -2,7 +2,6 @@ export interface EngineOpts {
2
2
  headed?: boolean;
3
3
  browser?: string;
4
4
  connect?: number | boolean;
5
- extension?: boolean;
6
5
  spawn?: boolean;
7
6
  port?: number;
8
7
  cdpPort?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@playwright-repl/core",
3
3
  "description": "Shared parser, servers, and utilities for playwright-repl",
4
- "version": "0.21.10",
4
+ "version": "0.22.1",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "exports": {