@playwright-repl/runner 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,12 +1,12 @@
1
1
  # @playwright-repl/runner
2
2
 
3
- Drop-in replacement for `npx playwright test` with context reuse. Keeps the browser open between tests — no teardown/recreate per test.
3
+ Drop-in replacement for `npx playwright test` 2.8x faster for browser-only tests.
4
4
 
5
5
  ## Performance
6
6
 
7
- Bridge mode sends test scripts directly to the browser, bypassing the Playwright test runner entirely. This eliminates the per-run overhead (worker startup, TypeScript compilation, fixture setup) that dominates single-test execution time in the IDE.
7
+ `pw test` compiles tests with esbuild and executes them directly in the browser via the Dramaturg Chrome extension's service worker (`serviceWorker.evaluate()`). This bypasses the Playwright test runner overhead (worker startup, TypeScript compilation, fixture setup).
8
8
 
9
- Node-mode tests that need server-side APIs fall back to the standard Playwright test runner, but reuse the existing browser via CDP instead of launching a new one.
9
+ Node-mode tests that need server-side APIs fall back to the standard Playwright test runner automatically.
10
10
 
11
11
  ## Quick Start
12
12
 
@@ -19,73 +19,41 @@ Replace `npx playwright test` with `pw test`:
19
19
  ```bash
20
20
  pw test # run all tests
21
21
  pw test todomvc/ # run tests in a folder
22
- pw test --workers 1 # single worker
23
- pw test --reporter list # custom reporter
22
+ pw test --headless # headless mode
24
23
  ```
25
24
 
26
- All Playwright CLI flags work — `pw` passes them through.
27
-
28
25
  ## How It Works
29
26
 
30
- Standard Playwright creates a new browser context for every test. `pw test` reuses the same persistent browser context across tests in the same worker.
27
+ 1. **Compile** esbuild bundles the test with a lightweight shim replacing `@playwright/test`
28
+ 2. **Launch** — Chromium starts with the Dramaturg extension via `launchPersistentContext`
29
+ 3. **Execute** — compiled test sent to the service worker via `serviceWorker.evaluate()`
30
+ 4. **Results** — pass/fail returned directly, no test runner process needed
31
31
 
32
- - **Bridge mode** compiles the test with esbuild, sends it to the Chrome extension for in-browser execution. Bypasses the Playwright test runner for near-instant feedback in the IDE
33
- - **Node mode** — falls back to standard Playwright for tests that use Node-only APIs (fs, net, etc.). Reuses the existing browser via CDP when available
34
- - **Automatic routing** — static analysis detects which mode each test needs
32
+ Tests that use Node-only APIs (`fs`, `net`, `child_process`) are detected by static analysis and fall back to standard Playwright automatically.
35
33
 
36
34
  ## pw Commands
37
35
 
38
36
  ```bash
39
- pw test [files...] # run Playwright tests with context reuse
40
- pw launch --port 9222 # launch Chrome with extension + CDP port
41
- pw launch --port 9222 --bridge-port 9877 # custom bridge port
42
- pw launch --port 9222 --headless # headless mode
43
- pw repl --port 9222 # Node REPL with Playwright globals
44
- pw repl --port 9222 script.js # run script, exit (browser stays alive)
45
- pw repl-extension --bridge-port 9877 # REPL via extension bridge
46
- pw close --port 9222 # close browser
37
+ pw test [files...] # run Playwright tests (fast path)
38
+ pw repl # interactive REPL with keyword + JS support
39
+ pw repl --headless # headless REPL for scripting
40
+ pw repl --port 9222 # connect to existing Chrome via CDP
47
41
  ```
48
42
 
49
43
  ### pw repl
50
44
 
51
- Lightweight Node REPL with `page`, `context`, `browser`, and `expect` as globals. Powered by `node:repl` — full JavaScript with tab completion and history.
52
-
53
- ```bash
54
- pw launch --port 9222
55
- pw repl --port 9222
56
- ```
45
+ Interactive REPL with keyword commands and JavaScript support. Launches Chromium with the extension by default.
57
46
 
58
47
  ```
59
- pw> await page.goto('https://example.com')
48
+ pw> goto https://example.com
60
49
  pw> await page.title()
61
50
  Example Domain
62
- (3.2ms)
51
+ (5ms)
63
52
  pw> await page.locator('a').count()
64
53
  1
65
- (12.4ms)
66
- pw> 1 + 1
67
- 2
68
- ```
69
-
70
- ### pw repl-extension
71
-
72
- REPL that routes commands through the Chrome extension bridge. Useful for testing the extension path.
73
-
74
- ```bash
75
- pw launch --port 9222 --bridge-port 9877
76
- pw repl-extension --bridge-port 9877
54
+ (12ms)
77
55
  ```
78
56
 
79
- ## Options
80
-
81
- | Option | Description |
82
- |--------|-------------|
83
- | `--port <n>` | Chrome CDP port (default: 9222) |
84
- | `--bridge-port <n>` | BridgeServer WebSocket port (default: 9877) |
85
- | `--headless` | Launch browser in headless mode |
86
-
87
- All `pw test` options are passed through to Playwright.
88
-
89
57
  ## CI Setup
90
58
 
91
59
  ```yaml
@@ -96,7 +64,7 @@ All `pw test` options are passed through to Playwright.
96
64
  run: npx playwright install --with-deps chromium
97
65
 
98
66
  - name: Run tests
99
- run: npx pw test
67
+ run: npx pw test --headless
100
68
  ```
101
69
 
102
70
  ## Compatibility
@@ -105,7 +73,7 @@ Works with standard `@playwright/test` tests. No changes needed to your test fil
105
73
 
106
74
  **Supported:** All Playwright test features — fixtures, assertions, test.describe, test.beforeEach, etc.
107
75
 
108
- **Bridge mode limitations:** Tests that use Node-only APIs (`fs`, `net`, `child_process`) automatically fall back to Node mode.
76
+ **Automatic fallback:** Tests that use Node-only APIs automatically fall back to standard Playwright.
109
77
 
110
78
  ## Development
111
79
 
package/dist/pw-cli.js CHANGED
@@ -24,41 +24,32 @@ try {
24
24
  catch {
25
25
  pwCliPath = _require.resolve('@playwright/test/cli');
26
26
  }
27
- // Chrome extension: bundled in dist/chrome-extension/ (npm), or monorepo fallback (dev)
28
- const bundledExt = path.resolve(path.dirname(__filename), 'chrome-extension');
27
+ // Chrome extension: monorepo first (dev, has latest changes), then bundled (npm)
29
28
  const monorepoExt = path.resolve(path.dirname(__filename), '../../extension/dist');
30
- const extPath = fs.existsSync(path.join(bundledExt, 'manifest.json'))
31
- ? bundledExt
32
- : monorepoExt;
29
+ const bundledExt = path.resolve(path.dirname(__filename), 'chrome-extension');
30
+ const extPath = fs.existsSync(path.join(monorepoExt, 'manifest.json'))
31
+ ? monorepoExt
32
+ : bundledExt;
33
33
  const args = process.argv.slice(2);
34
34
  const subcommand = args[0];
35
35
  // ─── Subcommands ─────────────────────────────────────────────────────────────
36
- if (subcommand === 'launch') {
37
- const { handleLaunch } = await import('./pw-launch.js');
38
- await handleLaunch(args.slice(1));
39
- process.exit(0);
40
- }
41
- if (subcommand === 'close') {
42
- const { handleClose } = await import('./pw-launch.js');
43
- await handleClose(args.slice(1));
44
- process.exit(0);
45
- }
46
36
  if (subcommand === 'repl') {
47
37
  const { handleRepl } = await import('./pw-repl.js');
48
38
  await handleRepl(args.slice(1));
49
39
  // handleRepl keeps process alive via node:repl — don't exit here
50
40
  }
51
- if (subcommand === 'repl-extension') {
52
- const { handleReplExtension } = await import('./pw-repl-extension.js');
53
- await handleReplExtension(args.slice(1));
54
- // handleReplExtension keeps process alive via node:repl
55
- }
56
41
  // ─── Default: test ───────────────────────────────────────────────────────────
57
42
  if (args.length === 0 || (args[0] && args[0].startsWith('-'))) {
58
43
  args.unshift('test');
59
44
  }
60
- // Run tests via standard Playwright — no preload, no Module._load hooks.
61
- // Bridge mode is handled by the VS Code extension's _tryDirectBridge.
45
+ if (args[0] === 'test') {
46
+ // Try direct execution via serviceWorker.evaluate() for bridge-eligible tests
47
+ const handled = await tryDirectEvaluate(args.slice(1), extPath);
48
+ if (handled !== null) {
49
+ process.exit(handled);
50
+ }
51
+ }
52
+ // Fallback: run tests via standard Playwright
62
53
  const child = spawn(process.execPath, [pwCliPath, ...args], {
63
54
  stdio: 'inherit',
64
55
  cwd: process.cwd(),
@@ -70,4 +61,124 @@ const child = spawn(process.execPath, [pwCliPath, ...args], {
70
61
  child.on('exit', (code) => {
71
62
  process.exit(code ?? 1);
72
63
  });
64
+ // ─── Direct evaluate mode ────────────────────────────────────────────────────
65
+ /**
66
+ * Try to run tests directly via serviceWorker.evaluate().
67
+ * Returns exit code (0 = all passed, 1 = failures) or null if fallback needed.
68
+ */
69
+ async function tryDirectEvaluate(testArgs, extensionPath) {
70
+ const { createRequire: cr } = await import('node:module');
71
+ const require = cr(import.meta.url);
72
+ let bridgeUtils;
73
+ try {
74
+ bridgeUtils = require('./bridge-utils.cjs');
75
+ }
76
+ catch {
77
+ return null; // bridge-utils not available
78
+ }
79
+ // Find test files from args (simple: just .spec.ts/.test.ts files)
80
+ const testFiles = [];
81
+ const flagArgs = [];
82
+ for (const arg of testArgs) {
83
+ if (arg.startsWith('-')) {
84
+ flagArgs.push(arg);
85
+ }
86
+ else {
87
+ // Resolve relative to cwd
88
+ const resolved = path.resolve(arg);
89
+ if (fs.existsSync(resolved) && fs.statSync(resolved).isFile()) {
90
+ testFiles.push(resolved);
91
+ }
92
+ else if (fs.existsSync(resolved) && fs.statSync(resolved).isDirectory()) {
93
+ // Find test files in directory
94
+ const entries = fs.readdirSync(resolved, { recursive: true });
95
+ for (const entry of entries) {
96
+ if (/\.(spec|test)\.[tj]sx?$/.test(entry)) {
97
+ testFiles.push(path.join(resolved, entry));
98
+ }
99
+ }
100
+ }
101
+ else {
102
+ return null; // unknown arg, fall back
103
+ }
104
+ }
105
+ }
106
+ if (testFiles.length === 0)
107
+ return null; // no files found, fall back
108
+ // Check all files are bridge-eligible
109
+ for (const file of testFiles) {
110
+ if (bridgeUtils.needsNode(file))
111
+ return null; // needs Node, fall back
112
+ }
113
+ // Check for flags we can't handle
114
+ const unsupportedFlags = flagArgs.filter(f => !f.startsWith('--workers') && !f.startsWith('--reporter') && !f.startsWith('--headed') && !f.startsWith('--headless'));
115
+ if (unsupportedFlags.length > 0)
116
+ return null; // unknown flags, fall back
117
+ const headed = flagArgs.includes('--headed');
118
+ const headless = flagArgs.includes('--headless');
119
+ // Launch Chromium with extension
120
+ let chromium;
121
+ try {
122
+ chromium = (await import('@playwright/test')).chromium;
123
+ }
124
+ catch {
125
+ return null;
126
+ }
127
+ const context = await chromium.launchPersistentContext('', {
128
+ channel: 'chromium',
129
+ headless: headless || !headed,
130
+ args: [
131
+ `--disable-extensions-except=${extensionPath}`,
132
+ `--load-extension=${extensionPath}`,
133
+ '--no-first-run',
134
+ '--no-default-browser-check',
135
+ ],
136
+ });
137
+ let sw = context.serviceWorkers()[0];
138
+ if (!sw)
139
+ sw = await context.waitForEvent('serviceworker');
140
+ // Navigate to blank page and attach
141
+ const page = context.pages()[0] || await context.newPage();
142
+ await page.goto('about:blank');
143
+ await new Promise(r => setTimeout(r, 500));
144
+ // Navigate and wait for extension to initialize
145
+ await page.goto('about:blank');
146
+ await new Promise(r => setTimeout(r, 2000));
147
+ // Attach extension to the active tab
148
+ await sw.evaluate(async () => {
149
+ const [tab] = await globalThis.chrome.tabs.query({ active: true });
150
+ if (tab?.id)
151
+ await self.handleBridgeCommand({ command: 'goto about:blank', scriptType: 'command' });
152
+ });
153
+ let totalPassed = 0, totalFailed = 0, totalSkipped = 0;
154
+ for (const file of testFiles) {
155
+ const relPath = path.relative(process.cwd(), file);
156
+ const compiled = await bridgeUtils.compile(file);
157
+ const result = await sw.evaluate(async (code) => {
158
+ // Reset test state from previous file
159
+ if (globalThis.__resetTestState)
160
+ globalThis.__resetTestState();
161
+ // The compiled IIFE registers tests synchronously
162
+ new Function(code)();
163
+ // Then run them asynchronously
164
+ return await globalThis.__runTests();
165
+ }, compiled);
166
+ // Parse results
167
+ const lines = result.split('\n');
168
+ console.log(`\n ${relPath}`);
169
+ for (const line of lines) {
170
+ if (line.trim())
171
+ console.log(` ${line}`);
172
+ if (line.includes('✓'))
173
+ totalPassed++;
174
+ if (line.includes('✗'))
175
+ totalFailed++;
176
+ if (line.includes('skipped'))
177
+ totalSkipped++;
178
+ }
179
+ }
180
+ console.log(`\n ${totalPassed} passed, ${totalFailed} failed, ${totalSkipped} skipped (${testFiles.length} files)\n`);
181
+ await context.close();
182
+ return totalFailed > 0 ? 1 : 0;
183
+ }
73
184
  //# sourceMappingURL=pw-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pw-cli.js","sourceRoot":"","sources":["../src/pw-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pw-cli.js","sourceRoot":"","sources":["../src/pw-cli.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  /**
2
- * pw repl-extension — REPL that routes commands through the Chrome extension bridge.
2
+ * pw repl-extension — REPL using serviceWorker.evaluate().
3
3
  *
4
- * Starts a BridgeServer and waits for the extension to connect. The extension
5
- * retries every 3s, so start this after `pw launch --bridge-port <port>`.
4
+ * Launches Chromium with the Dramaturg extension and provides
5
+ * an interactive REPL with keyword commands and JavaScript support.
6
6
  *
7
7
  * Usage:
8
- * pw repl-extension --bridge-port 9877 # interactive REPL
9
- * pw repl-extension --bridge-port 9877 bench.js # run script, exit
8
+ * pw repl-extension # interactive REPL (headed)
9
+ * pw repl-extension --headless # headless mode
10
+ * pw repl-extension script.js # run script, exit
10
11
  */
11
12
  export declare function handleReplExtension(argv: string[]): Promise<void>;
12
13
  //# sourceMappingURL=pw-repl-extension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pw-repl-extension.d.ts","sourceRoot":"","sources":["../src/pw-repl-extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFvE"}
1
+ {"version":3,"file":"pw-repl-extension.d.ts","sourceRoot":"","sources":["../src/pw-repl-extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqBH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFvE"}
@@ -1,37 +1,48 @@
1
1
  /**
2
- * pw repl-extension — REPL that routes commands through the Chrome extension bridge.
2
+ * pw repl-extension — REPL using serviceWorker.evaluate().
3
3
  *
4
- * Starts a BridgeServer and waits for the extension to connect. The extension
5
- * retries every 3s, so start this after `pw launch --bridge-port <port>`.
4
+ * Launches Chromium with the Dramaturg extension and provides
5
+ * an interactive REPL with keyword commands and JavaScript support.
6
6
  *
7
7
  * Usage:
8
- * pw repl-extension --bridge-port 9877 # interactive REPL
9
- * pw repl-extension --bridge-port 9877 bench.js # run script, exit
8
+ * pw repl-extension # interactive REPL (headed)
9
+ * pw repl-extension --headless # headless mode
10
+ * pw repl-extension script.js # run script, exit
10
11
  */
11
12
  import repl from 'node:repl';
12
13
  import { inspect } from 'node:util';
13
14
  import fs from 'node:fs';
14
- import { BridgeServer, minimist } from '@playwright-repl/core';
15
+ import path from 'node:path';
16
+ import { createRequire } from 'node:module';
17
+ import { fileURLToPath } from 'node:url';
18
+ import { EvaluateConnection, minimist } from '@playwright-repl/core';
19
+ const __filename = fileURLToPath(import.meta.url);
20
+ const _require = createRequire(__filename);
21
+ function findExtensionPath() {
22
+ const monorepoExt = path.resolve(path.dirname(__filename), '../../extension/dist');
23
+ const bundledExt = path.resolve(path.dirname(__filename), 'chrome-extension');
24
+ if (fs.existsSync(path.join(monorepoExt, 'manifest.json')))
25
+ return monorepoExt;
26
+ if (fs.existsSync(path.join(bundledExt, 'manifest.json')))
27
+ return bundledExt;
28
+ throw new Error('Chrome extension not found. Run "pnpm run build" first.');
29
+ }
15
30
  export async function handleReplExtension(argv) {
16
31
  const args = minimist(argv, {
17
- string: ['bridge-port'],
18
- default: { 'bridge-port': '9877' },
32
+ boolean: ['headless', 'headed'],
19
33
  });
20
- const bridgePort = parseInt(args['bridge-port'], 10);
34
+ const headed = args.headed ? true : !args.headless;
21
35
  const scriptFile = args._[0];
22
- // Start BridgeServer and wait for extension to connect
23
- const bridge = new BridgeServer();
24
- await bridge.start(bridgePort);
25
- console.log(`BridgeServer on port ${bridge.port}`);
26
- console.log('Waiting for extension to connect...');
27
- await bridge.waitForConnection(30000);
28
- console.log('Extension connected.');
29
- // Script mode: read file, run through bridge, print timing, exit
36
+ const conn = new EvaluateConnection();
37
+ const { chromium } = _require('@playwright/test');
38
+ await conn.start(findExtensionPath(), { headed, chromium });
39
+ console.log(`Connected (${headed ? 'headed' : 'headless'})`);
40
+ // Script mode: read file, run through evaluate, print timing, exit
30
41
  if (scriptFile) {
31
42
  const script = fs.readFileSync(scriptFile, 'utf-8');
32
43
  const start = performance.now();
33
44
  try {
34
- const result = await bridge.runScript(script, 'javascript');
45
+ const result = await conn.runScript(script, 'javascript');
35
46
  const elapsed = performance.now() - start;
36
47
  if (result.text)
37
48
  console.log(result.text);
@@ -42,7 +53,7 @@ export async function handleReplExtension(argv) {
42
53
  console.error(e.message);
43
54
  console.log(`${elapsed.toFixed(1)}ms (error)`);
44
55
  }
45
- await bridge.close();
56
+ await conn.close();
46
57
  process.exit(0);
47
58
  }
48
59
  let lastElapsed = 0;
@@ -64,7 +75,7 @@ export async function handleReplExtension(argv) {
64
75
  return;
65
76
  }
66
77
  const start = performance.now();
67
- bridge.run(cmd).then((result) => {
78
+ conn.run(cmd).then((result) => {
68
79
  lastElapsed = performance.now() - start;
69
80
  if (result.isError) {
70
81
  cb(new Error(result.text || 'Unknown error'));
@@ -88,10 +99,9 @@ export async function handleReplExtension(argv) {
88
99
  return timing ? `${formatted}\n${timing}` : formatted;
89
100
  },
90
101
  });
91
- // Block until REPL exits (Ctrl+D / .exit)
92
102
  await new Promise((resolve) => {
93
103
  r.on('exit', async () => {
94
- await bridge.close();
104
+ await conn.close();
95
105
  resolve();
96
106
  });
97
107
  });
@@ -1 +1 @@
1
- {"version":3,"file":"pw-repl-extension.js","sourceRoot":"","sources":["../src/pw-repl-extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pw-repl-extension.js","sourceRoot":"","sources":["../src/pw-repl-extension.ts"],"names":[],"mappings":"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"}
package/dist/pw-repl.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  /**
2
- * pw repl — minimal Node REPL with Playwright globals.
2
+ * pw repl — REPL using serviceWorker.evaluate().
3
3
  *
4
- * Connects to an existing Chrome via CDP, exposes page/context/browser/expect
5
- * on the REPL context, and lets you type raw Playwright API or plain JS.
4
+ * Launches Chromium with the Dramaturg extension and provides
5
+ * a Node REPL with Playwright globals (page, context, expect).
6
6
  *
7
7
  * Usage:
8
- * pw repl --port 9222 # interactive REPL
9
- * pw repl --port 9222 bench.js # run script, exit (browser stays alive)
8
+ * pw repl # interactive REPL (headed)
9
+ * pw repl --headless # headless mode
10
+ * pw repl --port 9222 bench.js # connect to existing Chrome, run script
10
11
  */
11
12
  export declare function handleRepl(argv: string[]): Promise<void>;
12
13
  //# sourceMappingURL=pw-repl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pw-repl.d.ts","sourceRoot":"","sources":["../src/pw-repl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkG9D"}
1
+ {"version":3,"file":"pw-repl.d.ts","sourceRoot":"","sources":["../src/pw-repl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgH9D"}
package/dist/pw-repl.js CHANGED
@@ -1,110 +1,128 @@
1
1
  /**
2
- * pw repl — minimal Node REPL with Playwright globals.
2
+ * pw repl — REPL using serviceWorker.evaluate().
3
3
  *
4
- * Connects to an existing Chrome via CDP, exposes page/context/browser/expect
5
- * on the REPL context, and lets you type raw Playwright API or plain JS.
4
+ * Launches Chromium with the Dramaturg extension and provides
5
+ * a Node REPL with Playwright globals (page, context, expect).
6
6
  *
7
7
  * Usage:
8
- * pw repl --port 9222 # interactive REPL
9
- * pw repl --port 9222 bench.js # run script, exit (browser stays alive)
8
+ * pw repl # interactive REPL (headed)
9
+ * pw repl --headless # headless mode
10
+ * pw repl --port 9222 bench.js # connect to existing Chrome, run script
10
11
  */
11
12
  import repl from 'node:repl';
12
13
  import { inspect } from 'node:util';
13
14
  import fs from 'node:fs';
14
15
  import { createRequire } from 'node:module';
15
16
  import { fileURLToPath } from 'node:url';
16
- import { minimist } from '@playwright-repl/core';
17
+ import { EvaluateConnection, findExtensionPath, minimist } from '@playwright-repl/core';
17
18
  const __filename = fileURLToPath(import.meta.url);
18
19
  const _require = createRequire(__filename);
19
20
  export async function handleRepl(argv) {
20
21
  const args = minimist(argv, {
21
22
  string: ['port'],
22
- default: { port: '9222' },
23
+ boolean: ['headless', 'headed'],
24
+ default: { port: '' },
23
25
  });
24
- const port = parseInt(args.port, 10);
26
+ const port = args.port ? parseInt(args.port, 10) : 0;
27
+ const headed = args.headed ? true : !args.headless;
25
28
  const scriptFile = args._[0];
26
- // Connect to browser via CDP
27
- const pw = _require('@playwright/test');
28
- const browser = await pw.chromium.connectOverCDP(`http://localhost:${port}`);
29
- const context = browser.contexts()[0];
30
- // Skip internal pages (devtools://, chrome://, about:)
31
- const pages = context?.pages() ?? [];
32
- const page = pages.find((p) => {
33
- const url = p.url();
34
- return !url.startsWith('devtools://') && !url.startsWith('chrome://') && !url.startsWith('about:');
35
- }) ?? pages[0];
36
- if (!page) {
37
- console.error('No page found. Open a page in the browser first.');
38
- process.exit(1);
29
+ // If --port is given, connect to existing Chrome via CDP (legacy mode)
30
+ if (port) {
31
+ const pw = _require('@playwright/test');
32
+ const browser = await pw.chromium.connectOverCDP(`http://localhost:${port}`);
33
+ const context = browser.contexts()[0];
34
+ const pages = context?.pages() ?? [];
35
+ const page = pages.find((p) => {
36
+ const url = p.url();
37
+ return !url.startsWith('devtools://') && !url.startsWith('chrome://') && !url.startsWith('about:');
38
+ }) ?? pages[0];
39
+ if (!page) {
40
+ console.error('No page found. Open a page in the browser first.');
41
+ process.exit(1);
42
+ }
43
+ const { expect } = _require('@playwright/test');
44
+ console.log(`Connected to Chrome on port ${port}`);
45
+ if (scriptFile) {
46
+ const script = fs.readFileSync(scriptFile, 'utf-8');
47
+ const fn = new Function('page', 'context', 'browser', 'expect', `return (async () => {\n${script}\n})()`);
48
+ const start = performance.now();
49
+ try {
50
+ const result = await fn(page, context, browser, expect);
51
+ const elapsed = performance.now() - start;
52
+ if (result !== undefined)
53
+ console.log(result);
54
+ console.log(`\n${elapsed.toFixed(1)}ms`);
55
+ }
56
+ catch (e) {
57
+ const elapsed = performance.now() - start;
58
+ console.error(e.message);
59
+ console.log(`\n${elapsed.toFixed(1)}ms (error)`);
60
+ process.exit(1);
61
+ }
62
+ process.exit(0);
63
+ }
64
+ const r = repl.start({ prompt: 'pw> ', useGlobal: true });
65
+ Object.assign(r.context, { page, context, browser, expect });
66
+ await new Promise(resolve => r.on('exit', () => resolve()));
67
+ process.exit(0);
39
68
  }
40
- const { expect } = _require('@playwright/test');
41
- console.log(`Connected to Chrome on port ${port}`);
42
- console.log(`Globals: page, context, browser, expect`);
43
- // Script mode: read file, eval each line, print timing, exit
69
+ // Default: evaluate mode launch Chromium with extension
70
+ const conn = new EvaluateConnection();
71
+ const { chromium } = _require('@playwright/test');
72
+ const extPath = findExtensionPath(import.meta.url);
73
+ if (!extPath)
74
+ throw new Error('Chrome extension not found. Run "pnpm run build" first.');
75
+ await conn.start(extPath, { headed, chromium });
76
+ console.log(`Connected (${headed ? 'headed' : 'headless'})`);
44
77
  if (scriptFile) {
45
78
  const script = fs.readFileSync(scriptFile, 'utf-8');
46
- const fn = new Function('page', 'context', 'browser', 'expect', `return (async () => {\n${script}\n})()`);
47
79
  const start = performance.now();
48
80
  try {
49
- const result = await fn(page, context, browser, expect);
81
+ const result = await conn.runScript(script, 'javascript');
50
82
  const elapsed = performance.now() - start;
51
- if (result !== undefined)
52
- console.log(result);
53
- console.log(`\n${elapsed.toFixed(1)}ms`);
83
+ if (result.text)
84
+ console.log(result.text);
85
+ console.log(`${elapsed.toFixed(1)}ms${result.isError ? ' (error)' : ''}`);
54
86
  }
55
87
  catch (e) {
56
88
  const elapsed = performance.now() - start;
57
89
  console.error(e.message);
58
- console.log(`\n${elapsed.toFixed(1)}ms (error)`);
59
- process.exit(1);
90
+ console.log(`${elapsed.toFixed(1)}ms (error)`);
60
91
  }
92
+ await conn.close();
61
93
  process.exit(0);
62
94
  }
63
95
  let lastElapsed = 0;
64
- function formatValue(value) {
65
- if (value === undefined || value === null)
66
- return '';
67
- // Playwright Response object → short summary
68
- if (value && typeof value === 'object' && typeof value.status === 'function' && typeof value.url === 'function') {
69
- const resp = value;
70
- return `Response { ${resp.status()} ${resp.url()} }`;
71
- }
72
- // Primitives → simple string
73
- if (typeof value === 'string')
74
- return value;
75
- if (typeof value === 'number' || typeof value === 'boolean')
76
- return String(value);
77
- // Default: inspect with depth limit
78
- return inspect(value, { depth: 1, colors: true });
79
- }
80
96
  const r = repl.start({
81
97
  prompt: 'pw> ',
82
- useGlobal: true,
98
+ eval: (input, _context, _file, cb) => {
99
+ const cmd = input.trim();
100
+ if (!cmd) {
101
+ cb(null, undefined);
102
+ return;
103
+ }
104
+ const start = performance.now();
105
+ conn.run(cmd).then((result) => {
106
+ lastElapsed = performance.now() - start;
107
+ if (result.isError)
108
+ cb(new Error(result.text || 'Unknown error'));
109
+ else
110
+ cb(null, result.text || undefined);
111
+ }, (err) => { lastElapsed = performance.now() - start; cb(err); });
112
+ },
83
113
  writer(value) {
84
- const formatted = formatValue(value);
114
+ const formatted = value === undefined || value === null ? '' :
115
+ typeof value === 'string' ? value :
116
+ inspect(value, { depth: 1, colors: true });
85
117
  const timing = `(${lastElapsed.toFixed(1)}ms)`;
86
118
  lastElapsed = 0;
87
- if (!formatted && !timing)
88
- return '';
89
119
  if (!formatted)
90
120
  return timing;
91
- return timing ? `${formatted}\n${timing}` : formatted;
121
+ return `${formatted}\n${timing}`;
92
122
  },
93
123
  });
94
- Object.assign(r.context, { page, context, browser, expect });
95
- // Wrap eval to track timing
96
- const originalEval = r.eval.bind(r);
97
- // @ts-expect-error — overriding readonly eval
98
- r.eval = (code, context, file, cb) => {
99
- const start = performance.now();
100
- originalEval(code, context, file, (err, result) => {
101
- lastElapsed = performance.now() - start;
102
- cb(err, result);
103
- });
104
- };
105
- // Block until REPL exits (Ctrl+D / .exit)
106
- await new Promise((resolve) => {
107
- r.on('exit', () => resolve());
124
+ await new Promise(resolve => {
125
+ r.on('exit', async () => { await conn.close(); resolve(); });
108
126
  });
109
127
  process.exit(0);
110
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pw-repl.js","sourceRoot":"","sources":["../src/pw-repl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pw-repl.js","sourceRoot":"","sources":["../src/pw-repl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../src/shim/test-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,KAAK,MAAM,GAAG,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAChG,KAAK,MAAM,GAAG,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AA4ChG,iBAAS,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAErC;kBAFQ,IAAI;qBAIM,MAAM,MAAM,MAAM;qBAKlB,MAAM,MAAM,MAAM;yBAId,MAAM,MAAM,MAAM,IAAI;wBAiBvB,MAAM;uBACP,MAAM;yBACJ,MAAM;2BAIJ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;eACd,MAAM,MAAM,MAAM;qBAjC7B,MAAM,MAAM,MAAM;qBAKlB,MAAM,MAAM,MAAM;yBAId,MAAM,MAAM,MAAM,IAAI;wBAiBvB,MAAM;uBACP,MAAM;yBACJ,MAAM;wBA0CP,MAAM;;;wBAAN,MAAM;;AAS5B,QAAA,MAAM,OAAO,KAA6B,CAAC;AAkG3C,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../src/shim/test-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,KAAK,MAAM,GAAG,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAChG,KAAK,MAAM,GAAG,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AA4ChG,iBAAS,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAErC;kBAFQ,IAAI;qBAIM,MAAM,MAAM,MAAM;qBAKlB,MAAM,MAAM,MAAM;yBAId,MAAM,MAAM,MAAM,IAAI;wBAiBvB,MAAM;uBACP,MAAM;yBACJ,MAAM;2BAIJ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;eACd,MAAM,MAAM,MAAM;qBAjC7B,MAAM,MAAM,MAAM;qBAKlB,MAAM,MAAM,MAAM;yBAId,MAAM,MAAM,MAAM,IAAI;wBAiBvB,MAAM;uBACP,MAAM;yBACJ,MAAM;wBA0CP,MAAM;;;wBAAN,MAAM;;AAS5B,QAAA,MAAM,OAAO,KAA6B,CAAC;AA4G3C,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC"}
@@ -177,5 +177,15 @@ async function __runTests() {
177
177
  // Expose __runTests on globalThis so the bundler can call it after the IIFE.
178
178
  // esbuild tree-shakes unexported functions, but globalThis assignments survive.
179
179
  globalThis.__runTests = __runTests;
180
+ globalThis.__resetTestState = () => {
181
+ rootSuite.tests.length = 0;
182
+ rootSuite.children.length = 0;
183
+ rootSuite.beforeAll.length = 0;
184
+ rootSuite.afterAll.length = 0;
185
+ rootSuite.beforeEach.length = 0;
186
+ rootSuite.afterEach.length = 0;
187
+ currentSuite = rootSuite;
188
+ hasOnly = false;
189
+ };
180
190
  export { test, _expect as expect };
181
191
  //# sourceMappingURL=test-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../../src/shim/test-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgCH,8EAA8E;AAE9E,MAAM,SAAS,GAAU;IACvB,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,IAAI,YAAY,GAAG,SAAS,CAAC;AAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,8EAA8E;AAE9E,SAAS,IAAI,CAAC,IAAY,EAAE,EAAU;IACpC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,IAAI,CAAC,IAAI,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;IACvC,OAAO,GAAG,IAAI,CAAC;IACf,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,IAAI,CAAC,IAAI,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;IACvC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAc,EAAE,EAAE;IAC/C,MAAM,KAAK,GAAU;QACnB,IAAI;QACJ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;KACb,CAAC;IACF,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,YAAY,CAAC;IAC5B,YAAY,GAAG,KAAK,CAAC;IACrB,EAAE,EAAE,CAAC;IACL,YAAY,GAAG,MAAM,CAAC;AACxB,CAAC,CAAC;AAEF,IAAI,CAAC,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,IAAI,CAAC,UAAU,GAAG,CAAC,EAAU,EAAE,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAExE,mEAAmE;AACnE,4EAA4E;AAC5E,IAAI,CAAC,MAAM,GAAG,CAAC,QAA6B,EAAE,EAAE;IAC9C,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;QAChD,qCAAqC;QACrC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;YAC9B,EAAE,EAAE,KAAK,EAAE,YAAiB,EAAE,EAAE;gBAC9B,MAAM,QAAQ,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;gBACrC,0EAA0E;gBAC1E,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;wBACpC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;4BAC1C,MAAM,WAAW,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;gCACvC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gCACtB,OAAO,EAAE,CAAC;4BACZ,CAAC,CAAC;4BACF,yDAAyD;4BACzD,OAAO,CAAC,OAAO,CAAC,SAAS,CACvB,EAAE,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EACrC,WAAW,CACZ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACnB,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IACF,iDAAiD;IACjD,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC9B,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC9B,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACtC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACxC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACtC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IAC1C,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACxC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AACF,IAAI,CAAC,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtE,8EAA8E;AAE9E,uEAAuE;AACvE,wEAAwE;AACxE,uDAAuD;AACvD,MAAM,KAAK,GAAI,UAAkB,CAAC,IAAI,CAAC;AACvC,MAAM,QAAQ,GAAI,UAAkB,CAAC,OAAO,CAAC;AAC7C,MAAM,OAAO,GAAI,UAAkB,CAAC,MAAM,CAAC;AAC3C,sDAAsD;AAEtD,KAAK,UAAU,QAAQ,CACrB,KAAY,EACZ,gBAA0B,EAC1B,eAAyB,EACzB,MAAc;IAEd,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACrE,MAAM,aAAa,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,eAAe,CAAC,CAAC;IAE9D,YAAY;IACZ,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;IAED,YAAY;IACZ,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3D,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3E,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,KAAK,MAAM,EAAE,IAAI,aAAa;gBAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YACrB,KAAK,MAAM,EAAE,IAAI,YAAY;gBAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,KAAK;gBACd,KAAK,EAAG,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;gBAC5C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACtE,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,WAAW;IACX,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;IAExC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;YAC9C,MAAM,EAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7B,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,YAAY,MAAM,YAAY,OAAO,UAAU,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU;IACvB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,8EAA8E;AAE9E,6EAA6E;AAC7E,gFAAgF;AAC/E,UAAkB,CAAC,UAAU,GAAG,UAAU,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../../src/shim/test-runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playwright-repl/runner",
3
- "version": "0.21.10",
3
+ "version": "0.22.1",
4
4
  "description": "Playwright test utilities — bridge-mode compilation, node detection, and CLI subcommands",
5
5
  "type": "module",
6
6
  "bin": {
@@ -19,7 +19,7 @@
19
19
  "acorn-walk": "^8.3.5",
20
20
  "esbuild-wasm": "^0.27.4",
21
21
  "magic-string": "^0.30.21",
22
- "@playwright-repl/core": "0.21.10"
22
+ "@playwright-repl/core": "0.22.1"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "@playwright/test": ">=1.57.0"