browserclaw 0.10.4 → 0.10.5

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/dist/index.d.cts CHANGED
@@ -77,7 +77,6 @@ type BatchAction = {
77
77
  url?: string;
78
78
  loadState?: 'load' | 'domcontentloaded' | 'networkidle';
79
79
  fn?: string;
80
- arg?: unknown;
81
80
  targetId?: string;
82
81
  timeoutMs?: number;
83
82
  } | {
@@ -185,8 +184,6 @@ interface LaunchOptions {
185
184
  profileColor?: string;
186
185
  /** Additional Chrome command-line arguments (e.g. `['--start-maximized']`). */
187
186
  chromeArgs?: string[];
188
- /** Ignore HTTPS certificate errors (e.g. expired local dev certs). Default: `false` */
189
- ignoreHTTPSErrors?: boolean;
190
187
  /**
191
188
  * SSRF policy controlling which URLs navigation is allowed to reach.
192
189
  * Defaults to trusted-network mode (private/internal addresses allowed).
@@ -252,10 +249,6 @@ interface RoleRefInfo {
252
249
  name?: string;
253
250
  /** Disambiguation index when multiple elements share the same role + name */
254
251
  nth?: number;
255
- /** Whether the element is disabled (from `[disabled]` or `aria-disabled`) */
256
- disabled?: boolean;
257
- /** Whether a checkbox/radio/switch is checked */
258
- checked?: boolean | 'mixed';
259
252
  }
260
253
  /** Map of ref IDs (e.g. `'e1'`, `'e2'`) to their element information. */
261
254
  type RoleRefs = Record<string, RoleRefInfo>;
@@ -382,8 +375,6 @@ interface ClickOptions {
382
375
  delayMs?: number;
383
376
  /** Timeout in milliseconds. Default: `8000` */
384
377
  timeoutMs?: number;
385
- /** Force click even if element is hidden or covered. Dispatches the event regardless of visibility. */
386
- force?: boolean;
387
378
  }
388
379
  /** Options for type actions. */
389
380
  interface TypeOptions {
@@ -411,10 +402,8 @@ interface WaitOptions {
411
402
  url?: string;
412
403
  /** Wait for a specific page load state */
413
404
  loadState?: 'load' | 'domcontentloaded' | 'networkidle';
414
- /** Wait until a JavaScript function returns truthy (evaluated in browser context). Accepts a string or a serializable function. */
415
- fn?: string | ((arg?: unknown) => unknown);
416
- /** Serializable argument passed to `fn` in the browser context. Use an array or object to pass multiple values. */
417
- arg?: unknown;
405
+ /** Wait until a JavaScript function returns truthy (evaluated in browser context) */
406
+ fn?: string;
418
407
  /** Timeout for each condition in milliseconds. Default: `20000` */
419
408
  timeoutMs?: number;
420
409
  }
@@ -543,23 +532,6 @@ interface DialogEvent {
543
532
  }
544
533
  /** Callback for persistent dialog handling. */
545
534
  type DialogHandler = (event: DialogEvent) => void | Promise<void>;
546
- /** Result of waiting for a network request to complete. */
547
- interface RequestResult {
548
- /** The final request URL */
549
- url: string;
550
- /** HTTP method (e.g. `'GET'`, `'POST'`) */
551
- method: string;
552
- /** Request body (for POST/PUT/PATCH requests) */
553
- postData?: string;
554
- /** HTTP response status code */
555
- status: number;
556
- /** Whether the response status was 2xx */
557
- ok: boolean;
558
- /** Response body text */
559
- responseBody?: string;
560
- /** Whether the response body was truncated due to maxChars */
561
- truncated?: boolean;
562
- }
563
535
  /** Result of intercepting a response body. */
564
536
  interface ResponseBodyResult {
565
537
  /** The response URL */
@@ -745,26 +717,6 @@ declare class CrawlPage {
745
717
  clickCount?: number;
746
718
  delayMs?: number;
747
719
  }): Promise<void>;
748
- /**
749
- * Press and hold at page coordinates using raw CDP events.
750
- *
751
- * Bypasses Playwright's automation layer by dispatching CDP
752
- * `Input.dispatchMouseEvent` directly — useful for anti-bot challenges
753
- * that detect automated clicks.
754
- *
755
- * @param x - X coordinate in CSS pixels
756
- * @param y - Y coordinate in CSS pixels
757
- * @param opts - Options (delay: ms before press, holdMs: hold duration)
758
- *
759
- * @example
760
- * ```ts
761
- * await page.pressAndHold(400, 300, { delay: 150, holdMs: 5000 });
762
- * ```
763
- */
764
- pressAndHold(x: number, y: number, opts?: {
765
- delay?: number;
766
- holdMs?: number;
767
- }): Promise<void>;
768
720
  /**
769
721
  * Click an element by its visible text content (no snapshot/ref needed).
770
722
  *
@@ -802,7 +754,6 @@ declare class CrawlPage {
802
754
  * ```
803
755
  */
804
756
  clickByRole(role: string, name?: string, opts?: {
805
- index?: number;
806
757
  button?: 'left' | 'right' | 'middle';
807
758
  modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[];
808
759
  timeoutMs?: number;
@@ -1185,30 +1136,6 @@ declare class CrawlPage {
1185
1136
  timeoutMs?: number;
1186
1137
  maxChars?: number;
1187
1138
  }): Promise<ResponseBodyResult>;
1188
- /**
1189
- * Wait for a network request matching a URL pattern and return request + response details.
1190
- *
1191
- * Unlike `networkRequests()` which only captures metadata, this method captures
1192
- * the full request body (POST data) and response body.
1193
- *
1194
- * @param url - URL string or pattern to match (supports `*` wildcards and substring matching)
1195
- * @param opts - Options (method filter, timeoutMs, maxChars for response body)
1196
- * @returns Request method, postData, response status, and response body
1197
- *
1198
- * @example
1199
- * ```ts
1200
- * const reqPromise = page.waitForRequest('/api/submit', { method: 'POST' });
1201
- * await page.click('e5'); // submit a form
1202
- * const req = await reqPromise;
1203
- * console.log(req.postData); // form body
1204
- * console.log(req.status, req.responseBody); // response
1205
- * ```
1206
- */
1207
- waitForRequest(url: string, opts?: {
1208
- method?: string;
1209
- timeoutMs?: number;
1210
- maxChars?: number;
1211
- }): Promise<RequestResult>;
1212
1139
  /**
1213
1140
  * Get console messages captured from the page.
1214
1141
  *
@@ -1579,26 +1506,6 @@ declare class BrowserClaw {
1579
1506
  * @returns Array of tab information objects
1580
1507
  */
1581
1508
  tabs(): Promise<BrowserTab[]>;
1582
- /**
1583
- * Wait for a tab matching the given criteria and return a page handle.
1584
- *
1585
- * Polls open tabs until one matches, then focuses it and returns a CrawlPage.
1586
- *
1587
- * @param opts - Match criteria (urlContains, titleContains) and timeout
1588
- * @returns A CrawlPage for the matched tab
1589
- *
1590
- * @example
1591
- * ```ts
1592
- * await page.click('e5'); // opens a new tab
1593
- * const appPage = await browser.waitForTab({ urlContains: 'app-web' });
1594
- * const { snapshot } = await appPage.snapshot();
1595
- * ```
1596
- */
1597
- waitForTab(opts: {
1598
- urlContains?: string;
1599
- titleContains?: string;
1600
- timeoutMs?: number;
1601
- }): Promise<CrawlPage>;
1602
1509
  /**
1603
1510
  * Bring a tab to the foreground.
1604
1511
  *
@@ -1810,15 +1717,6 @@ declare function getRestoredPageForTarget(opts: {
1810
1717
  targetId?: string;
1811
1718
  }): Promise<Page>;
1812
1719
 
1813
- declare function pressAndHoldViaCdp(opts: {
1814
- cdpUrl: string;
1815
- targetId?: string;
1816
- x: number;
1817
- y: number;
1818
- delay?: number;
1819
- holdMs?: number;
1820
- }): Promise<void>;
1821
-
1822
1720
  /**
1823
1721
  * Comprehensive browser stealth evasions.
1824
1722
  *
@@ -1857,4 +1755,4 @@ declare function waitForChallengeViaPlaywright(opts: {
1857
1755
  pollMs?: number;
1858
1756
  }): Promise<ChallengeWaitResult>;
1859
1757
 
1860
- export { type AriaNode, type AriaSnapshotResult, type BatchAction, type BatchActionResult, BrowserClaw, type BrowserNavigationPolicyOptions, type BrowserNavigationRequestLike, type BrowserTab, BrowserTabNotFoundError, type ChallengeInfo, type ChallengeKind, type ChallengeWaitResult, type ChromeExecutable, type ChromeKind, type ClickOptions, type ColorScheme, type ConnectOptions, type ConsoleMessage, type ContextState, type CookieData, CrawlPage, type DialogEvent, type DialogHandler, type DialogOptions, type DownloadResult, type FormField, type FrameEvalResult, type GeolocationOptions, type HttpCredentials, InvalidBrowserNavigationUrlError, type LaunchOptions, type LookupFn, type NetworkRequest, type PageError, type PinnedHostname, type RequestResult, type ResponseBodyResult, type RoleRefInfo, type RoleRefs, STEALTH_SCRIPT, type ScreenshotOptions, type SnapshotOptions, type SnapshotResult, type SnapshotStats, type SsrfPolicy, type StorageKind, type TraceStartOptions, type TypeOptions, type UntrustedContentMeta, type WaitOptions, assertBrowserNavigationAllowed, assertBrowserNavigationRedirectChainAllowed, assertBrowserNavigationResultAllowed, assertSafeUploadPaths, batchViaPlaywright, createPinnedLookup, detectChallengeViaPlaywright, ensureContextState, executeSingleAction, forceDisconnectPlaywrightForTarget, getChromeWebSocketUrl, getRestoredPageForTarget, isChromeCdpReady, isChromeReachable, normalizeCdpHttpBaseForJsonEndpoints, parseRoleRef, pressAndHoldViaCdp, requireRef, requireRefOrSelector, requiresInspectableBrowserNavigationRedirects, resolveBoundedDelayMs, resolveInteractionTimeoutMs, resolvePageByTargetIdOrThrow, resolvePinnedHostnameWithPolicy, resolveStrictExistingUploadPaths, sanitizeUntrustedFileName, setDialogHandler, waitForChallengeViaPlaywright, withBrowserNavigationPolicy, withPageScopedCdpClient, withPlaywrightPageCdpSession, writeViaSiblingTempPath };
1758
+ export { type AriaNode, type AriaSnapshotResult, type BatchAction, type BatchActionResult, BrowserClaw, type BrowserNavigationPolicyOptions, type BrowserNavigationRequestLike, type BrowserTab, BrowserTabNotFoundError, type ChallengeInfo, type ChallengeKind, type ChallengeWaitResult, type ChromeExecutable, type ChromeKind, type ClickOptions, type ColorScheme, type ConnectOptions, type ConsoleMessage, type ContextState, type CookieData, CrawlPage, type DialogEvent, type DialogHandler, type DialogOptions, type DownloadResult, type FormField, type FrameEvalResult, type GeolocationOptions, type HttpCredentials, InvalidBrowserNavigationUrlError, type LaunchOptions, type LookupFn, type NetworkRequest, type PageError, type PinnedHostname, type ResponseBodyResult, type RoleRefInfo, type RoleRefs, STEALTH_SCRIPT, type ScreenshotOptions, type SnapshotOptions, type SnapshotResult, type SnapshotStats, type SsrfPolicy, type StorageKind, type TraceStartOptions, type TypeOptions, type UntrustedContentMeta, type WaitOptions, assertBrowserNavigationAllowed, assertBrowserNavigationRedirectChainAllowed, assertBrowserNavigationResultAllowed, assertSafeUploadPaths, batchViaPlaywright, createPinnedLookup, detectChallengeViaPlaywright, ensureContextState, executeSingleAction, forceDisconnectPlaywrightForTarget, getChromeWebSocketUrl, getRestoredPageForTarget, isChromeCdpReady, isChromeReachable, normalizeCdpHttpBaseForJsonEndpoints, parseRoleRef, requireRef, requireRefOrSelector, requiresInspectableBrowserNavigationRedirects, resolveBoundedDelayMs, resolveInteractionTimeoutMs, resolvePageByTargetIdOrThrow, resolvePinnedHostnameWithPolicy, resolveStrictExistingUploadPaths, sanitizeUntrustedFileName, setDialogHandler, waitForChallengeViaPlaywright, withBrowserNavigationPolicy, withPageScopedCdpClient, withPlaywrightPageCdpSession, writeViaSiblingTempPath };
package/dist/index.d.ts CHANGED
@@ -77,7 +77,6 @@ type BatchAction = {
77
77
  url?: string;
78
78
  loadState?: 'load' | 'domcontentloaded' | 'networkidle';
79
79
  fn?: string;
80
- arg?: unknown;
81
80
  targetId?: string;
82
81
  timeoutMs?: number;
83
82
  } | {
@@ -185,8 +184,6 @@ interface LaunchOptions {
185
184
  profileColor?: string;
186
185
  /** Additional Chrome command-line arguments (e.g. `['--start-maximized']`). */
187
186
  chromeArgs?: string[];
188
- /** Ignore HTTPS certificate errors (e.g. expired local dev certs). Default: `false` */
189
- ignoreHTTPSErrors?: boolean;
190
187
  /**
191
188
  * SSRF policy controlling which URLs navigation is allowed to reach.
192
189
  * Defaults to trusted-network mode (private/internal addresses allowed).
@@ -252,10 +249,6 @@ interface RoleRefInfo {
252
249
  name?: string;
253
250
  /** Disambiguation index when multiple elements share the same role + name */
254
251
  nth?: number;
255
- /** Whether the element is disabled (from `[disabled]` or `aria-disabled`) */
256
- disabled?: boolean;
257
- /** Whether a checkbox/radio/switch is checked */
258
- checked?: boolean | 'mixed';
259
252
  }
260
253
  /** Map of ref IDs (e.g. `'e1'`, `'e2'`) to their element information. */
261
254
  type RoleRefs = Record<string, RoleRefInfo>;
@@ -382,8 +375,6 @@ interface ClickOptions {
382
375
  delayMs?: number;
383
376
  /** Timeout in milliseconds. Default: `8000` */
384
377
  timeoutMs?: number;
385
- /** Force click even if element is hidden or covered. Dispatches the event regardless of visibility. */
386
- force?: boolean;
387
378
  }
388
379
  /** Options for type actions. */
389
380
  interface TypeOptions {
@@ -411,10 +402,8 @@ interface WaitOptions {
411
402
  url?: string;
412
403
  /** Wait for a specific page load state */
413
404
  loadState?: 'load' | 'domcontentloaded' | 'networkidle';
414
- /** Wait until a JavaScript function returns truthy (evaluated in browser context). Accepts a string or a serializable function. */
415
- fn?: string | ((arg?: unknown) => unknown);
416
- /** Serializable argument passed to `fn` in the browser context. Use an array or object to pass multiple values. */
417
- arg?: unknown;
405
+ /** Wait until a JavaScript function returns truthy (evaluated in browser context) */
406
+ fn?: string;
418
407
  /** Timeout for each condition in milliseconds. Default: `20000` */
419
408
  timeoutMs?: number;
420
409
  }
@@ -543,23 +532,6 @@ interface DialogEvent {
543
532
  }
544
533
  /** Callback for persistent dialog handling. */
545
534
  type DialogHandler = (event: DialogEvent) => void | Promise<void>;
546
- /** Result of waiting for a network request to complete. */
547
- interface RequestResult {
548
- /** The final request URL */
549
- url: string;
550
- /** HTTP method (e.g. `'GET'`, `'POST'`) */
551
- method: string;
552
- /** Request body (for POST/PUT/PATCH requests) */
553
- postData?: string;
554
- /** HTTP response status code */
555
- status: number;
556
- /** Whether the response status was 2xx */
557
- ok: boolean;
558
- /** Response body text */
559
- responseBody?: string;
560
- /** Whether the response body was truncated due to maxChars */
561
- truncated?: boolean;
562
- }
563
535
  /** Result of intercepting a response body. */
564
536
  interface ResponseBodyResult {
565
537
  /** The response URL */
@@ -745,26 +717,6 @@ declare class CrawlPage {
745
717
  clickCount?: number;
746
718
  delayMs?: number;
747
719
  }): Promise<void>;
748
- /**
749
- * Press and hold at page coordinates using raw CDP events.
750
- *
751
- * Bypasses Playwright's automation layer by dispatching CDP
752
- * `Input.dispatchMouseEvent` directly — useful for anti-bot challenges
753
- * that detect automated clicks.
754
- *
755
- * @param x - X coordinate in CSS pixels
756
- * @param y - Y coordinate in CSS pixels
757
- * @param opts - Options (delay: ms before press, holdMs: hold duration)
758
- *
759
- * @example
760
- * ```ts
761
- * await page.pressAndHold(400, 300, { delay: 150, holdMs: 5000 });
762
- * ```
763
- */
764
- pressAndHold(x: number, y: number, opts?: {
765
- delay?: number;
766
- holdMs?: number;
767
- }): Promise<void>;
768
720
  /**
769
721
  * Click an element by its visible text content (no snapshot/ref needed).
770
722
  *
@@ -802,7 +754,6 @@ declare class CrawlPage {
802
754
  * ```
803
755
  */
804
756
  clickByRole(role: string, name?: string, opts?: {
805
- index?: number;
806
757
  button?: 'left' | 'right' | 'middle';
807
758
  modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[];
808
759
  timeoutMs?: number;
@@ -1185,30 +1136,6 @@ declare class CrawlPage {
1185
1136
  timeoutMs?: number;
1186
1137
  maxChars?: number;
1187
1138
  }): Promise<ResponseBodyResult>;
1188
- /**
1189
- * Wait for a network request matching a URL pattern and return request + response details.
1190
- *
1191
- * Unlike `networkRequests()` which only captures metadata, this method captures
1192
- * the full request body (POST data) and response body.
1193
- *
1194
- * @param url - URL string or pattern to match (supports `*` wildcards and substring matching)
1195
- * @param opts - Options (method filter, timeoutMs, maxChars for response body)
1196
- * @returns Request method, postData, response status, and response body
1197
- *
1198
- * @example
1199
- * ```ts
1200
- * const reqPromise = page.waitForRequest('/api/submit', { method: 'POST' });
1201
- * await page.click('e5'); // submit a form
1202
- * const req = await reqPromise;
1203
- * console.log(req.postData); // form body
1204
- * console.log(req.status, req.responseBody); // response
1205
- * ```
1206
- */
1207
- waitForRequest(url: string, opts?: {
1208
- method?: string;
1209
- timeoutMs?: number;
1210
- maxChars?: number;
1211
- }): Promise<RequestResult>;
1212
1139
  /**
1213
1140
  * Get console messages captured from the page.
1214
1141
  *
@@ -1579,26 +1506,6 @@ declare class BrowserClaw {
1579
1506
  * @returns Array of tab information objects
1580
1507
  */
1581
1508
  tabs(): Promise<BrowserTab[]>;
1582
- /**
1583
- * Wait for a tab matching the given criteria and return a page handle.
1584
- *
1585
- * Polls open tabs until one matches, then focuses it and returns a CrawlPage.
1586
- *
1587
- * @param opts - Match criteria (urlContains, titleContains) and timeout
1588
- * @returns A CrawlPage for the matched tab
1589
- *
1590
- * @example
1591
- * ```ts
1592
- * await page.click('e5'); // opens a new tab
1593
- * const appPage = await browser.waitForTab({ urlContains: 'app-web' });
1594
- * const { snapshot } = await appPage.snapshot();
1595
- * ```
1596
- */
1597
- waitForTab(opts: {
1598
- urlContains?: string;
1599
- titleContains?: string;
1600
- timeoutMs?: number;
1601
- }): Promise<CrawlPage>;
1602
1509
  /**
1603
1510
  * Bring a tab to the foreground.
1604
1511
  *
@@ -1810,15 +1717,6 @@ declare function getRestoredPageForTarget(opts: {
1810
1717
  targetId?: string;
1811
1718
  }): Promise<Page>;
1812
1719
 
1813
- declare function pressAndHoldViaCdp(opts: {
1814
- cdpUrl: string;
1815
- targetId?: string;
1816
- x: number;
1817
- y: number;
1818
- delay?: number;
1819
- holdMs?: number;
1820
- }): Promise<void>;
1821
-
1822
1720
  /**
1823
1721
  * Comprehensive browser stealth evasions.
1824
1722
  *
@@ -1857,4 +1755,4 @@ declare function waitForChallengeViaPlaywright(opts: {
1857
1755
  pollMs?: number;
1858
1756
  }): Promise<ChallengeWaitResult>;
1859
1757
 
1860
- export { type AriaNode, type AriaSnapshotResult, type BatchAction, type BatchActionResult, BrowserClaw, type BrowserNavigationPolicyOptions, type BrowserNavigationRequestLike, type BrowserTab, BrowserTabNotFoundError, type ChallengeInfo, type ChallengeKind, type ChallengeWaitResult, type ChromeExecutable, type ChromeKind, type ClickOptions, type ColorScheme, type ConnectOptions, type ConsoleMessage, type ContextState, type CookieData, CrawlPage, type DialogEvent, type DialogHandler, type DialogOptions, type DownloadResult, type FormField, type FrameEvalResult, type GeolocationOptions, type HttpCredentials, InvalidBrowserNavigationUrlError, type LaunchOptions, type LookupFn, type NetworkRequest, type PageError, type PinnedHostname, type RequestResult, type ResponseBodyResult, type RoleRefInfo, type RoleRefs, STEALTH_SCRIPT, type ScreenshotOptions, type SnapshotOptions, type SnapshotResult, type SnapshotStats, type SsrfPolicy, type StorageKind, type TraceStartOptions, type TypeOptions, type UntrustedContentMeta, type WaitOptions, assertBrowserNavigationAllowed, assertBrowserNavigationRedirectChainAllowed, assertBrowserNavigationResultAllowed, assertSafeUploadPaths, batchViaPlaywright, createPinnedLookup, detectChallengeViaPlaywright, ensureContextState, executeSingleAction, forceDisconnectPlaywrightForTarget, getChromeWebSocketUrl, getRestoredPageForTarget, isChromeCdpReady, isChromeReachable, normalizeCdpHttpBaseForJsonEndpoints, parseRoleRef, pressAndHoldViaCdp, requireRef, requireRefOrSelector, requiresInspectableBrowserNavigationRedirects, resolveBoundedDelayMs, resolveInteractionTimeoutMs, resolvePageByTargetIdOrThrow, resolvePinnedHostnameWithPolicy, resolveStrictExistingUploadPaths, sanitizeUntrustedFileName, setDialogHandler, waitForChallengeViaPlaywright, withBrowserNavigationPolicy, withPageScopedCdpClient, withPlaywrightPageCdpSession, writeViaSiblingTempPath };
1758
+ export { type AriaNode, type AriaSnapshotResult, type BatchAction, type BatchActionResult, BrowserClaw, type BrowserNavigationPolicyOptions, type BrowserNavigationRequestLike, type BrowserTab, BrowserTabNotFoundError, type ChallengeInfo, type ChallengeKind, type ChallengeWaitResult, type ChromeExecutable, type ChromeKind, type ClickOptions, type ColorScheme, type ConnectOptions, type ConsoleMessage, type ContextState, type CookieData, CrawlPage, type DialogEvent, type DialogHandler, type DialogOptions, type DownloadResult, type FormField, type FrameEvalResult, type GeolocationOptions, type HttpCredentials, InvalidBrowserNavigationUrlError, type LaunchOptions, type LookupFn, type NetworkRequest, type PageError, type PinnedHostname, type ResponseBodyResult, type RoleRefInfo, type RoleRefs, STEALTH_SCRIPT, type ScreenshotOptions, type SnapshotOptions, type SnapshotResult, type SnapshotStats, type SsrfPolicy, type StorageKind, type TraceStartOptions, type TypeOptions, type UntrustedContentMeta, type WaitOptions, assertBrowserNavigationAllowed, assertBrowserNavigationRedirectChainAllowed, assertBrowserNavigationResultAllowed, assertSafeUploadPaths, batchViaPlaywright, createPinnedLookup, detectChallengeViaPlaywright, ensureContextState, executeSingleAction, forceDisconnectPlaywrightForTarget, getChromeWebSocketUrl, getRestoredPageForTarget, isChromeCdpReady, isChromeReachable, normalizeCdpHttpBaseForJsonEndpoints, parseRoleRef, requireRef, requireRefOrSelector, requiresInspectableBrowserNavigationRedirects, resolveBoundedDelayMs, resolveInteractionTimeoutMs, resolvePageByTargetIdOrThrow, resolvePinnedHostnameWithPolicy, resolveStrictExistingUploadPaths, sanitizeUntrustedFileName, setDialogHandler, waitForChallengeViaPlaywright, withBrowserNavigationPolicy, withPageScopedCdpClient, withPlaywrightPageCdpSession, writeViaSiblingTempPath };