@monoes/monobrowse 1.0.13 → 1.0.14

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.
Files changed (107) hide show
  1. package/dist/src/__tests__/bridge-instruments.test.d.ts +2 -0
  2. package/dist/src/__tests__/bridge-instruments.test.d.ts.map +1 -0
  3. package/dist/src/__tests__/bridge-instruments.test.js +132 -0
  4. package/dist/src/__tests__/bridge-instruments.test.js.map +1 -0
  5. package/dist/src/__tests__/bridge-transport.test.d.ts +2 -0
  6. package/dist/src/__tests__/bridge-transport.test.d.ts.map +1 -0
  7. package/dist/src/__tests__/bridge-transport.test.js +287 -0
  8. package/dist/src/__tests__/bridge-transport.test.js.map +1 -0
  9. package/dist/src/__tests__/cdp-transport.test.d.ts +2 -0
  10. package/dist/src/__tests__/cdp-transport.test.d.ts.map +1 -0
  11. package/dist/src/__tests__/cdp-transport.test.js +167 -0
  12. package/dist/src/__tests__/cdp-transport.test.js.map +1 -0
  13. package/dist/src/browser/bridge.d.ts +119 -0
  14. package/dist/src/browser/bridge.d.ts.map +1 -0
  15. package/dist/src/browser/bridge.js +264 -0
  16. package/dist/src/browser/bridge.js.map +1 -0
  17. package/dist/src/browser/cdp.d.ts +11 -1
  18. package/dist/src/browser/cdp.d.ts.map +1 -1
  19. package/dist/src/browser/cdp.js +60 -56
  20. package/dist/src/browser/cdp.js.map +1 -1
  21. package/dist/src/browser/index.d.ts +2 -0
  22. package/dist/src/browser/index.d.ts.map +1 -1
  23. package/dist/src/browser/index.js +2 -0
  24. package/dist/src/browser/index.js.map +1 -1
  25. package/dist/src/browser/transport.d.ts +62 -0
  26. package/dist/src/browser/transport.d.ts.map +1 -0
  27. package/dist/src/browser/transport.js +65 -0
  28. package/dist/src/browser/transport.js.map +1 -0
  29. package/dist/src/cli/commander-adapter.d.ts +16 -0
  30. package/dist/src/cli/commander-adapter.d.ts.map +1 -0
  31. package/dist/src/cli/commander-adapter.js +68 -0
  32. package/dist/src/cli/commander-adapter.js.map +1 -0
  33. package/dist/src/cli/commands-context.d.ts +14 -0
  34. package/dist/src/cli/commands-context.d.ts.map +1 -0
  35. package/dist/src/cli/commands-context.js +351 -0
  36. package/dist/src/cli/commands-context.js.map +1 -0
  37. package/dist/src/cli/commands-data.d.ts +12 -0
  38. package/dist/src/cli/commands-data.d.ts.map +1 -0
  39. package/dist/src/cli/commands-data.js +246 -0
  40. package/dist/src/cli/commands-data.js.map +1 -0
  41. package/dist/src/cli/commands-element.d.ts +15 -0
  42. package/dist/src/cli/commands-element.d.ts.map +1 -0
  43. package/dist/src/cli/commands-element.js +262 -0
  44. package/dist/src/cli/commands-element.js.map +1 -0
  45. package/dist/src/cli/commands-files.d.ts +9 -0
  46. package/dist/src/cli/commands-files.d.ts.map +1 -0
  47. package/dist/src/cli/commands-files.js +207 -0
  48. package/dist/src/cli/commands-files.js.map +1 -0
  49. package/dist/src/cli/commands-input.d.ts +26 -0
  50. package/dist/src/cli/commands-input.d.ts.map +1 -0
  51. package/dist/src/cli/commands-input.js +399 -0
  52. package/dist/src/cli/commands-input.js.map +1 -0
  53. package/dist/src/cli/commands-navigate.d.ts +12 -0
  54. package/dist/src/cli/commands-navigate.d.ts.map +1 -0
  55. package/dist/src/cli/commands-navigate.js +389 -0
  56. package/dist/src/cli/commands-navigate.js.map +1 -0
  57. package/dist/src/cli/commands-page.d.ts +25 -0
  58. package/dist/src/cli/commands-page.d.ts.map +1 -0
  59. package/dist/src/cli/commands-page.js +377 -0
  60. package/dist/src/cli/commands-page.js.map +1 -0
  61. package/dist/src/cli/commands-report.d.ts +8 -0
  62. package/dist/src/cli/commands-report.d.ts.map +1 -0
  63. package/dist/src/cli/commands-report.js +256 -0
  64. package/dist/src/cli/commands-report.js.map +1 -0
  65. package/dist/src/cli/commands-script.d.ts +43 -0
  66. package/dist/src/cli/commands-script.d.ts.map +1 -0
  67. package/dist/src/cli/commands-script.js +168 -0
  68. package/dist/src/cli/commands-script.js.map +1 -0
  69. package/dist/src/cli/commands-session.d.ts +15 -0
  70. package/dist/src/cli/commands-session.d.ts.map +1 -0
  71. package/dist/src/cli/commands-session.js +357 -0
  72. package/dist/src/cli/commands-session.js.map +1 -0
  73. package/dist/src/cli/commands-trace.d.ts +12 -0
  74. package/dist/src/cli/commands-trace.d.ts.map +1 -0
  75. package/dist/src/cli/commands-trace.js +347 -0
  76. package/dist/src/cli/commands-trace.js.map +1 -0
  77. package/dist/src/cli/commands.d.ts +22 -42
  78. package/dist/src/cli/commands.d.ts.map +1 -1
  79. package/dist/src/cli/commands.js +42 -3648
  80. package/dist/src/cli/commands.js.map +1 -1
  81. package/dist/src/cli/session.d.ts +47 -0
  82. package/dist/src/cli/session.d.ts.map +1 -0
  83. package/dist/src/cli/session.js +343 -0
  84. package/dist/src/cli/session.js.map +1 -0
  85. package/dist/tsconfig.tsbuildinfo +1 -1
  86. package/package.json +1 -1
  87. package/src/__tests__/bridge-instruments.test.ts +180 -0
  88. package/src/__tests__/bridge-transport.test.ts +365 -0
  89. package/src/__tests__/cdp-transport.test.ts +198 -0
  90. package/src/browser/bridge.ts +354 -0
  91. package/src/browser/cdp.ts +57 -52
  92. package/src/browser/index.ts +2 -0
  93. package/src/browser/transport.ts +111 -0
  94. package/src/cli/commander-adapter.ts +65 -0
  95. package/src/cli/commands-context.ts +367 -0
  96. package/src/cli/commands-data.ts +248 -0
  97. package/src/cli/commands-element.ts +305 -0
  98. package/src/cli/commands-files.ts +248 -0
  99. package/src/cli/commands-input.ts +434 -0
  100. package/src/cli/commands-navigate.ts +442 -0
  101. package/src/cli/commands-page.ts +420 -0
  102. package/src/cli/commands-report.ts +275 -0
  103. package/src/cli/commands-script.ts +183 -0
  104. package/src/cli/commands-session.ts +376 -0
  105. package/src/cli/commands-trace.ts +349 -0
  106. package/src/cli/commands.ts +95 -3943
  107. package/src/cli/session.ts +412 -0
@@ -0,0 +1,389 @@
1
+ /**
2
+ * Moving around and configuring the viewport — history navigation, scrolling,
3
+ * SPA pushState, device/viewport/user-agent settings, and waiting for the page
4
+ * to reach a condition.
5
+ */
6
+ import { output } from './output.js';
7
+ import { ensureConnected, getBrowser, session } from './session.js';
8
+ export const waitCommand = {
9
+ name: 'wait',
10
+ description: 'Wait for a condition to be met before proceeding',
11
+ options: [
12
+ { name: 'url', type: 'string', description: 'Wait for URL matching glob pattern' },
13
+ { name: 'text', type: 'string', description: 'Wait for text to appear in page' },
14
+ { name: 'not-text', type: 'string', description: 'Wait for text to disappear from page' },
15
+ { name: 'selector', type: 'string', description: 'Wait for CSS selector to appear' },
16
+ {
17
+ name: 'load',
18
+ type: 'string',
19
+ description: 'Wait for load event: load|networkidle|domcontentloaded',
20
+ },
21
+ { name: 'fn', type: 'string', description: 'Wait until JS expression returns truthy' },
22
+ { name: 'ms', type: 'number', description: 'Wait N milliseconds' },
23
+ { name: 'timeout', short: 't', type: 'number', description: 'Timeout in ms', default: 30000 },
24
+ {
25
+ name: 'download',
26
+ type: 'string',
27
+ description: 'Wait for a file download to complete and save to path (monitors Browser.downloadProgress events)',
28
+ },
29
+ ],
30
+ action: async (ctx) => {
31
+ const { client, sessionId } = await ensureConnected(session.port);
32
+ const browser = await getBrowser();
33
+ if (ctx.flags.ms) {
34
+ const rawMs = ctx.flags.ms;
35
+ const waitMs = Number.isFinite(rawMs) ? Math.max(0, Math.min(rawMs, 60_000)) : 0; // cap at 60s
36
+ await new Promise((r) => setTimeout(r, waitMs));
37
+ output.printSuccess(`Waited ${ctx.flags.ms}ms`);
38
+ return { success: true };
39
+ }
40
+ if (ctx.flags.fn) {
41
+ const expr = ctx.flags.fn;
42
+ const rawTimeout = ctx.flags.timeout ?? 30000;
43
+ const timeout = Number.isFinite(rawTimeout)
44
+ ? Math.max(100, Math.min(rawTimeout, 300_000))
45
+ : 30000; // cap at 5min
46
+ const interval = 200;
47
+ const deadline = Date.now() + timeout;
48
+ while (Date.now() < deadline) {
49
+ const result = await browser.evaluateJs(client, sessionId, expr);
50
+ if (result) {
51
+ output.printSuccess('Wait function returned truthy');
52
+ return { success: true };
53
+ }
54
+ await new Promise((r) => setTimeout(r, interval));
55
+ }
56
+ throw new Error(`Timeout waiting for --fn: ${expr}`);
57
+ }
58
+ if (ctx.flags['not-text']) {
59
+ const target = ctx.flags['not-text'];
60
+ const timeout = ctx.flags.timeout ?? 30000;
61
+ const interval = 200;
62
+ const deadline = Date.now() + timeout;
63
+ while (Date.now() < deadline) {
64
+ const text = (await browser.evaluateJs(client, sessionId, 'document.body?.innerText ?? ""'));
65
+ if (!text.includes(target)) {
66
+ output.printSuccess('Text disappeared');
67
+ return { success: true };
68
+ }
69
+ await new Promise((r) => setTimeout(r, interval));
70
+ }
71
+ throw new Error(`Timeout waiting for text to disappear: "${target}"`);
72
+ }
73
+ if (ctx.flags.download) {
74
+ const savePath = ctx.flags.download;
75
+ const { mkdir } = await import('node:fs/promises');
76
+ const { dirname, join } = await import('node:path');
77
+ const { tmpdir } = await import('node:os');
78
+ const downloadDir = join(tmpdir(), `mm-dl-wait-${Date.now()}`);
79
+ await mkdir(downloadDir, { recursive: true });
80
+ await client
81
+ .send('Browser.setDownloadBehavior', {
82
+ behavior: 'allow',
83
+ downloadPath: downloadDir,
84
+ eventsEnabled: true,
85
+ }, undefined)
86
+ .catch(() => client
87
+ .send('Page.setDownloadBehavior', { behavior: 'allow', downloadPath: downloadDir }, sessionId)
88
+ .catch(() => { }));
89
+ const MAX_DOWNLOAD_TIMEOUT = 5 * 60 * 1000; // I6: cap at 5 minutes
90
+ const rawTimeout = Math.min(ctx.flags.timeout ?? 30000, MAX_DOWNLOAD_TIMEOUT);
91
+ const finalPath = await new Promise((resolve, reject) => {
92
+ let guid = '';
93
+ let settled = false;
94
+ // C2: capture off() functions to avoid listener leaks
95
+ const offBegin = client.on('Browser.downloadWillBegin', (params) => {
96
+ guid = params.guid;
97
+ });
98
+ let offProgress;
99
+ // cleanup defined before setTimeout so the timeout callback can call it
100
+ let tid;
101
+ let pollTid;
102
+ const cleanup = () => {
103
+ clearTimeout(tid);
104
+ clearInterval(pollTid);
105
+ offBegin?.();
106
+ offProgress?.();
107
+ };
108
+ const finish = (path) => {
109
+ if (settled)
110
+ return;
111
+ settled = true;
112
+ cleanup();
113
+ resolve(path);
114
+ };
115
+ const fail = (err) => {
116
+ if (settled)
117
+ return;
118
+ settled = true;
119
+ cleanup();
120
+ reject(err);
121
+ };
122
+ tid = setTimeout(() => fail(new Error('Download timed out')), rawTimeout);
123
+ offProgress = client.on('Browser.downloadProgress', async (params) => {
124
+ if (params.guid === guid && params.state === 'completed') {
125
+ const { readdir, rename, rmdir } = await import('node:fs/promises');
126
+ const files = await readdir(downloadDir);
127
+ if (files.length > 0) {
128
+ const src = join(downloadDir, files[0]);
129
+ await mkdir(dirname(savePath), { recursive: true });
130
+ await rename(src, savePath);
131
+ await rmdir(downloadDir).catch(() => { }); // I1: cleanup temp dir
132
+ finish(savePath);
133
+ }
134
+ else {
135
+ await rmdir(downloadDir).catch(() => { }); // I1: cleanup temp dir
136
+ fail(new Error('Download completed but no file found'));
137
+ }
138
+ }
139
+ else if (params.guid === guid && params.state === 'canceled') {
140
+ fail(new Error('Download was canceled'));
141
+ }
142
+ });
143
+ // Fallback for the empty-guid race: this process's listener attaches
144
+ // AFTER a separate `click` process may have already started (and even
145
+ // finished) the download — so downloadWillBegin/downloadProgress for it
146
+ // were never observed here. While guid is still empty, poll the expected
147
+ // output path directly: if it already exists with a stable, non-zero
148
+ // size across two consecutive checks, treat the download as complete.
149
+ let lastSize = -1;
150
+ let stableReads = 0;
151
+ pollTid = setInterval(async () => {
152
+ if (settled || guid)
153
+ return; // a real CDP event has taken over
154
+ try {
155
+ const { stat } = await import('node:fs/promises');
156
+ const st = await stat(savePath);
157
+ if (st.isFile() && st.size > 0 && st.size === lastSize) {
158
+ stableReads++;
159
+ if (stableReads >= 2)
160
+ finish(savePath);
161
+ }
162
+ else {
163
+ stableReads = 0;
164
+ }
165
+ lastSize = st.size;
166
+ }
167
+ catch {
168
+ // savePath not present yet — keep polling until timeout
169
+ }
170
+ }, 300);
171
+ });
172
+ output.printSuccess(`Download saved: ${finalPath}`);
173
+ return { success: true, data: { path: finalPath } };
174
+ }
175
+ await browser.waitFor(client, sessionId, {
176
+ url: ctx.flags.url,
177
+ text: ctx.flags.text,
178
+ selector: ctx.flags.selector,
179
+ load: ctx.flags.load,
180
+ timeout: ctx.flags.timeout,
181
+ });
182
+ output.printSuccess('Wait condition met');
183
+ return { success: true };
184
+ },
185
+ };
186
+ export const scrollCommand = {
187
+ name: 'scroll',
188
+ description: 'Scroll the page. Usage: monomind browse scroll up|down|left|right [amount] [--selector ".sidebar"]',
189
+ options: [
190
+ { name: 'amount', short: 'a', type: 'number', description: 'Pixels to scroll', default: 300 },
191
+ { name: 'ref', type: 'string', description: 'Element ref to scroll within' },
192
+ {
193
+ name: 'selector',
194
+ short: 's',
195
+ type: 'string',
196
+ description: 'CSS selector of element to scroll within',
197
+ },
198
+ ],
199
+ action: async (ctx) => {
200
+ const { client, sessionId } = await ensureConnected(session.port);
201
+ const browser = await getBrowser();
202
+ const direction = ctx.args[0];
203
+ if (!direction)
204
+ throw new Error('Usage: monomind browse scroll up|down|left|right [amount]');
205
+ // Support positional amount: scroll down 300
206
+ const positionalAmount = ctx.args[1] !== undefined ? parseInt(ctx.args[1], 10) : undefined;
207
+ const amount = positionalAmount && Number.isFinite(positionalAmount)
208
+ ? positionalAmount
209
+ : (ctx.flags.amount ?? 300);
210
+ if (ctx.flags.selector) {
211
+ const sel = ctx.flags.selector;
212
+ const dx = direction === 'right' ? amount : direction === 'left' ? -amount : 0;
213
+ const dy = direction === 'down' ? amount : direction === 'up' ? -amount : 0;
214
+ const posJson = (await browser.evaluateJs(client, sessionId, `(function(){var el=document.querySelector(${JSON.stringify(sel)});if(!el)return null;var r=el.getBoundingClientRect();return JSON.stringify({x:r.left+r.width/2,y:r.top+r.height/2});})()`));
215
+ if (!posJson)
216
+ throw new Error(`Selector not found: ${sel}`);
217
+ const pos = JSON.parse(posJson);
218
+ await client.send('Input.dispatchMouseEvent', { type: 'mouseWheel', x: pos.x, y: pos.y, deltaX: dx, deltaY: dy }, sessionId);
219
+ output.printSuccess(`Scrolled ${direction} in ${sel}`);
220
+ return { success: true };
221
+ }
222
+ let ref;
223
+ if (ctx.flags.ref) {
224
+ const refKey = ctx.flags.ref.startsWith('@')
225
+ ? ctx.flags.ref.slice(1)
226
+ : ctx.flags.ref;
227
+ ref = session.refs.get(refKey);
228
+ }
229
+ await browser.scrollElement(client, sessionId, direction, amount, ref);
230
+ output.printSuccess(`Scrolled ${direction}`);
231
+ return { success: true };
232
+ },
233
+ };
234
+ export const navigateCommand = {
235
+ name: 'navigate',
236
+ description: 'Navigate browser history. Usage: monomind browse navigate back|forward|reload',
237
+ action: async (ctx) => {
238
+ const { client, sessionId } = await ensureConnected(session.port);
239
+ const browser = await getBrowser();
240
+ const direction = ctx.args[0];
241
+ if (!direction)
242
+ throw new Error('Usage: monomind browse navigate back|forward|reload');
243
+ if (direction === 'back' || direction === 'forward') {
244
+ // Pre-register frame-start listener BEFORE JS navigation to avoid the race
245
+ // where history.back/forward() returns before the browser issues any requests
246
+ let offFrameStarted = () => { };
247
+ const frameStartedPromise = new Promise((resolve) => {
248
+ offFrameStarted = client.on('Page.frameStartedLoading', (_params, sid) => {
249
+ if (sid === sessionId) {
250
+ const off = offFrameStarted;
251
+ offFrameStarted = () => { };
252
+ off();
253
+ resolve();
254
+ }
255
+ });
256
+ });
257
+ try {
258
+ await client.send('Runtime.evaluate', {
259
+ expression: direction === 'back' ? 'history.back()' : 'history.forward()',
260
+ }, sessionId);
261
+ let fallbackHandle;
262
+ const fallbackPromise = new Promise((r) => {
263
+ fallbackHandle = setTimeout(r, 2000);
264
+ });
265
+ await Promise.race([frameStartedPromise, fallbackPromise]);
266
+ if (fallbackHandle !== undefined)
267
+ clearTimeout(fallbackHandle);
268
+ }
269
+ finally {
270
+ offFrameStarted();
271
+ }
272
+ await browser.waitForLoad(client, sessionId, 'networkidle');
273
+ }
274
+ else if (direction === 'reload') {
275
+ await client.send('Page.reload', {}, sessionId);
276
+ await browser.waitForLoad(client, sessionId, 'load');
277
+ }
278
+ else {
279
+ throw new Error(`Unknown direction: ${direction}. Use: back|forward|reload`);
280
+ }
281
+ // Refs captured before this navigation may now point at different content.
282
+ session.refs = new Map();
283
+ await browser.clearRefCache();
284
+ output.printSuccess(`Navigated: ${direction}`);
285
+ return { success: true };
286
+ },
287
+ };
288
+ export const setCommand = {
289
+ name: 'set',
290
+ description: 'Configure browser settings. Usage: monomind browse set viewport|device|geo|offline|media|credentials|useragent <args>',
291
+ action: async (ctx) => {
292
+ const { client, sessionId } = await ensureConnected(session.port);
293
+ const browser = await getBrowser();
294
+ const setting = ctx.args[0];
295
+ if (!setting)
296
+ throw new Error('Usage: monomind browse set viewport|device|geo|offline|media|credentials|useragent <args>');
297
+ switch (setting) {
298
+ case 'viewport': {
299
+ const width = parseInt(ctx.args[1], 10);
300
+ const height = parseInt(ctx.args[2], 10);
301
+ const dpr = parseFloat(ctx.args[3]) || undefined;
302
+ if (Number.isNaN(width) || Number.isNaN(height))
303
+ throw new Error('Usage: set viewport <width> <height> [dpr]');
304
+ await client.send('Emulation.setDeviceMetricsOverride', {
305
+ width,
306
+ height,
307
+ deviceScaleFactor: dpr ?? 1,
308
+ mobile: false,
309
+ }, sessionId);
310
+ output.printSuccess(`Viewport set to ${width}x${height}${dpr ? ` @${dpr}x` : ''}`);
311
+ break;
312
+ }
313
+ case 'device': {
314
+ const deviceName = ctx.args[1];
315
+ if (!deviceName)
316
+ throw new Error(`Usage: set device <name>. Available: ${browser.listDevices().join(', ')}`);
317
+ await browser.emulateDevice(client, sessionId, deviceName);
318
+ output.printSuccess(`Emulating device: ${deviceName}`);
319
+ break;
320
+ }
321
+ case 'geo': {
322
+ const lat = parseFloat(ctx.args[1]);
323
+ const lon = parseFloat(ctx.args[2]);
324
+ const acc = parseFloat(ctx.args[3]) || 100;
325
+ if (Number.isNaN(lat) || Number.isNaN(lon))
326
+ throw new Error('Usage: set geo <latitude> <longitude> [accuracy]');
327
+ await browser.setGeolocation(client, sessionId, lat, lon, acc);
328
+ output.printSuccess(`Geolocation set: ${lat}, ${lon}`);
329
+ break;
330
+ }
331
+ case 'offline': {
332
+ const offlineArg = ctx.args[1];
333
+ if (offlineArg === undefined)
334
+ throw new Error('Usage: set offline <true|false>');
335
+ const enabled = offlineArg === 'true';
336
+ await browser.setOfflineMode(client, sessionId, enabled);
337
+ output.printSuccess(`Offline mode: ${enabled}`);
338
+ break;
339
+ }
340
+ case 'media': {
341
+ const scheme = ctx.args[1];
342
+ if (!scheme)
343
+ throw new Error('Usage: set media dark|light|no-preference');
344
+ await browser.setColorScheme(client, sessionId, scheme);
345
+ output.printSuccess(`Color scheme: ${scheme}`);
346
+ break;
347
+ }
348
+ case 'credentials': {
349
+ const username = ctx.args[1];
350
+ const password = ctx.args[2];
351
+ if (!username || !password)
352
+ throw new Error('Usage: set credentials <username> <password>');
353
+ await browser.setBasicAuth(client, sessionId, username, password);
354
+ output.printSuccess('Basic auth credentials set');
355
+ break;
356
+ }
357
+ case 'useragent': {
358
+ const ua = ctx.args[1];
359
+ if (!ua)
360
+ throw new Error('Usage: set useragent "<user-agent-string>"');
361
+ await browser.setUserAgent(client, sessionId, ua);
362
+ output.printSuccess('User agent set');
363
+ break;
364
+ }
365
+ default:
366
+ throw new Error(`Unknown setting: ${setting}. Use: viewport|device|geo|offline|media|credentials|useragent`);
367
+ }
368
+ return { success: true };
369
+ },
370
+ };
371
+ export const pushstateCommand = {
372
+ name: 'pushstate',
373
+ description: 'SPA navigation via pushState. Usage: monomind browse pushstate /path',
374
+ action: async (ctx) => {
375
+ const { client, sessionId } = await ensureConnected(session.port);
376
+ const browser = await getBrowser();
377
+ const url = ctx.args[0];
378
+ if (!url)
379
+ throw new Error('Usage: monomind browse pushstate <url>');
380
+ await browser.pushState(client, sessionId, url);
381
+ // SPA navigation changes what's on the page without a full page load —
382
+ // refs captured before this pushState call may now resolve to different content.
383
+ session.refs = new Map();
384
+ await browser.clearRefCache();
385
+ output.printSuccess(`pushState: ${url}`);
386
+ return { success: true };
387
+ },
388
+ };
389
+ //# sourceMappingURL=commands-navigate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands-navigate.js","sourceRoot":"","sources":["../../../src/cli/commands-navigate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Reading the page — accessibility snapshots, page/element properties, and
3
+ * diffing one snapshot against another.
4
+ *
5
+ * `snapshot` is what mints the `@eN` refs every element command resolves
6
+ * against; `get` reads url/title/text/html/box/attributes back out.
7
+ */
8
+ import type { Command } from './types.js';
9
+ export declare const snapshotCommand: Command;
10
+ export declare const getCommand: Command;
11
+ export declare function deriveBoxOutput(center: {
12
+ x: number;
13
+ y: number;
14
+ width: number;
15
+ height: number;
16
+ } | null): {
17
+ x: number;
18
+ y: number;
19
+ width: number;
20
+ height: number;
21
+ centerX: number;
22
+ centerY: number;
23
+ } | null;
24
+ export declare const diffCommand: Command;
25
+ //# sourceMappingURL=commands-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands-page.d.ts","sourceRoot":"","sources":["../../../src/cli/commands-page.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,YAAY,CAAC;AAEzE,eAAO,MAAM,eAAe,EAAE,OAiJ7B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,OA4JxB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACrE;IACD,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAUP;AAED,eAAO,MAAM,WAAW,EAAE,OAiFzB,CAAC"}