jumpy-lion 0.1.6-beta.7 → 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -607
- package/browser/fonts/macos-bundle/40-macos-aliases.conf +515 -0
- package/browser/fonts/macos-bundle/README.md +24 -0
- package/browser/fonts/macos-bundle/install.sh +83 -0
- package/dist/browser-controller.d.ts +47 -4
- package/dist/browser-controller.d.ts.map +1 -1
- package/dist/browser-controller.js +219 -278
- package/dist/browser-controller.js.map +1 -1
- package/dist/browser-plugin.d.ts +82 -110
- package/dist/browser-plugin.d.ts.map +1 -1
- package/dist/browser-plugin.js +376 -379
- package/dist/browser-plugin.js.map +1 -1
- package/dist/browser-process/align-fingerprint-config.d.ts +36 -0
- package/dist/browser-process/align-fingerprint-config.d.ts.map +1 -0
- package/dist/browser-process/align-fingerprint-config.js +74 -0
- package/dist/browser-process/align-fingerprint-config.js.map +1 -0
- package/dist/browser-process/anti-detect-browser.d.ts +2 -2
- package/dist/browser-process/anti-detect-browser.js +7 -7
- package/dist/browser-process/anti-detect-config.d.ts +131 -2
- package/dist/browser-process/anti-detect-config.d.ts.map +1 -1
- package/dist/browser-process/anti-detect-config.js +337 -127
- package/dist/browser-process/anti-detect-config.js.map +1 -1
- package/dist/browser-process/browser.d.ts +25 -92
- package/dist/browser-process/browser.d.ts.map +1 -1
- package/dist/browser-process/browser.js +429 -73
- package/dist/browser-process/browser.js.map +1 -1
- package/dist/browser-process/fingerprint-config.d.ts +146 -0
- package/dist/browser-process/fingerprint-config.d.ts.map +1 -0
- package/dist/browser-process/fingerprint-config.js +308 -0
- package/dist/browser-process/fingerprint-config.js.map +1 -0
- package/dist/browser-process/get-chrome-executable.d.ts +6 -0
- package/dist/browser-process/get-chrome-executable.d.ts.map +1 -1
- package/dist/browser-process/get-chrome-executable.js +79 -4
- package/dist/browser-process/get-chrome-executable.js.map +1 -1
- package/dist/browser-process/gpu-family-profiles.d.ts +58 -0
- package/dist/browser-process/gpu-family-profiles.d.ts.map +1 -0
- package/dist/browser-process/gpu-family-profiles.js +480 -0
- package/dist/browser-process/gpu-family-profiles.js.map +1 -0
- package/dist/browser-process/launch-options.d.ts +301 -0
- package/dist/browser-process/launch-options.d.ts.map +1 -0
- package/dist/browser-process/launch-options.js +2 -0
- package/dist/browser-process/launch-options.js.map +1 -0
- package/dist/browser-process/port-allocator.d.ts +64 -0
- package/dist/browser-process/port-allocator.d.ts.map +1 -0
- package/dist/browser-process/port-allocator.js +198 -0
- package/dist/browser-process/port-allocator.js.map +1 -0
- package/dist/browser-process/process.d.ts +85 -0
- package/dist/browser-process/process.d.ts.map +1 -1
- package/dist/browser-process/process.js +235 -19
- package/dist/browser-process/process.js.map +1 -1
- package/dist/browser-process/signal-cleanup.d.ts +40 -0
- package/dist/browser-process/signal-cleanup.d.ts.map +1 -0
- package/dist/browser-process/signal-cleanup.js +105 -0
- package/dist/browser-process/signal-cleanup.js.map +1 -0
- package/dist/browser-process/widevine-cdm.d.ts +144 -0
- package/dist/browser-process/widevine-cdm.d.ts.map +1 -0
- package/dist/browser-process/widevine-cdm.js +298 -0
- package/dist/browser-process/widevine-cdm.js.map +1 -0
- package/dist/browser-profiles/chrome/populate-profile.d.ts.map +1 -1
- package/dist/browser-profiles/chrome/populate-profile.js +21 -22
- package/dist/browser-profiles/chrome/populate-profile.js.map +1 -1
- package/dist/connection/cdp-reconnection.d.ts +50 -0
- package/dist/connection/cdp-reconnection.d.ts.map +1 -0
- package/dist/connection/cdp-reconnection.js +75 -0
- package/dist/connection/cdp-reconnection.js.map +1 -0
- package/dist/connection/page-session.d.ts +114 -0
- package/dist/connection/page-session.d.ts.map +1 -0
- package/dist/connection/page-session.js +237 -0
- package/dist/connection/page-session.js.map +1 -0
- package/dist/connection/session-client.d.ts +34 -0
- package/dist/connection/session-client.d.ts.map +1 -0
- package/dist/connection/session-client.js +129 -0
- package/dist/connection/session-client.js.map +1 -0
- package/dist/crawler.d.ts +9 -88
- package/dist/crawler.d.ts.map +1 -1
- package/dist/crawler.js +157 -8
- package/dist/crawler.js.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.d.ts +24 -114
- package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.js +305 -611
- package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts +1 -1
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js +16 -14
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts +6 -2
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/index.js +6 -2
- package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.d.ts +1 -1
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js +4 -4
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +4 -4
- package/dist/fingerprinting/fingerprint-overrides/navigator-override.d.ts +18 -0
- package/dist/fingerprinting/fingerprint-overrides/navigator-override.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/navigator-override.js +136 -0
- package/dist/fingerprinting/fingerprint-overrides/navigator-override.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/override.d.ts +151 -0
- package/dist/fingerprinting/fingerprint-overrides/override.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/override.js +14 -0
- package/dist/fingerprinting/fingerprint-overrides/override.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +46 -15
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/registry.d.ts +43 -0
- package/dist/fingerprinting/fingerprint-overrides/registry.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/registry.js +342 -0
- package/dist/fingerprinting/fingerprint-overrides/registry.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/screen-override.d.ts +16 -0
- package/dist/fingerprinting/fingerprint-overrides/screen-override.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/screen-override.js +175 -0
- package/dist/fingerprinting/fingerprint-overrides/screen-override.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts +1 -1
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js +4 -4
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +75 -9
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts +1 -1
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.js +34 -20
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +25 -6
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +1 -1
- package/dist/fingerprinting/hardware-realism.d.ts +83 -0
- package/dist/fingerprinting/hardware-realism.d.ts.map +1 -0
- package/dist/fingerprinting/hardware-realism.js +156 -0
- package/dist/fingerprinting/hardware-realism.js.map +1 -0
- package/dist/fingerprinting/injection-planner.d.ts +133 -0
- package/dist/fingerprinting/injection-planner.d.ts.map +1 -0
- package/dist/fingerprinting/injection-planner.js +497 -0
- package/dist/fingerprinting/injection-planner.js.map +1 -0
- package/dist/fingerprinting/locale-resolver.d.ts +8 -1
- package/dist/fingerprinting/locale-resolver.d.ts.map +1 -1
- package/dist/fingerprinting/locale-resolver.js +26 -3
- package/dist/fingerprinting/locale-resolver.js.map +1 -1
- package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts +4 -4
- package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts.map +1 -1
- package/dist/fingerprinting/non-apify-fingerprint-generator.js +24 -58
- package/dist/fingerprinting/non-apify-fingerprint-generator.js.map +1 -1
- package/dist/fingerprinting/non-apify-profiles.json +10515 -8494
- package/dist/fingerprinting/os-consistency.d.ts +28 -0
- package/dist/fingerprinting/os-consistency.d.ts.map +1 -0
- package/dist/fingerprinting/os-consistency.js +45 -0
- package/dist/fingerprinting/os-consistency.js.map +1 -0
- package/dist/fingerprinting/profile-quality.d.ts +25 -0
- package/dist/fingerprinting/profile-quality.d.ts.map +1 -0
- package/dist/fingerprinting/profile-quality.js +310 -0
- package/dist/fingerprinting/profile-quality.js.map +1 -0
- package/dist/fingerprinting/profile-selector.d.ts +102 -0
- package/dist/fingerprinting/profile-selector.d.ts.map +1 -0
- package/dist/fingerprinting/profile-selector.js +168 -0
- package/dist/fingerprinting/profile-selector.js.map +1 -0
- package/dist/fingerprinting/ua-alignment.d.ts +83 -0
- package/dist/fingerprinting/ua-alignment.d.ts.map +1 -0
- package/dist/fingerprinting/ua-alignment.js +197 -0
- package/dist/fingerprinting/ua-alignment.js.map +1 -0
- package/dist/fingerprinting/ua-ch-brands.d.ts +88 -0
- package/dist/fingerprinting/ua-ch-brands.d.ts.map +1 -0
- package/dist/fingerprinting/ua-ch-brands.js +174 -0
- package/dist/fingerprinting/ua-ch-brands.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/input/dropdown-selector.d.ts +90 -0
- package/dist/input/dropdown-selector.d.ts.map +1 -0
- package/dist/input/dropdown-selector.js +394 -0
- package/dist/input/dropdown-selector.js.map +1 -0
- package/dist/input/element-target.d.ts +152 -0
- package/dist/input/element-target.d.ts.map +1 -0
- package/dist/input/element-target.js +461 -0
- package/dist/input/element-target.js.map +1 -0
- package/dist/input/input-emulator.d.ts +85 -0
- package/dist/input/input-emulator.d.ts.map +1 -0
- package/dist/input/input-emulator.js +325 -0
- package/dist/input/input-emulator.js.map +1 -0
- package/dist/input/input-transport.d.ts +60 -0
- package/dist/input/input-transport.d.ts.map +1 -0
- package/dist/input/input-transport.js +28 -0
- package/dist/input/input-transport.js.map +1 -0
- package/dist/input/recording-transport.d.ts +32 -0
- package/dist/input/recording-transport.d.ts.map +1 -0
- package/dist/input/recording-transport.js +43 -0
- package/dist/input/recording-transport.js.map +1 -0
- package/dist/keyboard-layout.d.ts +2 -2
- package/dist/keyboard-layout.js +2 -2
- package/dist/navigation/page-navigation.d.ts +67 -0
- package/dist/navigation/page-navigation.d.ts.map +1 -0
- package/dist/navigation/page-navigation.js +122 -0
- package/dist/navigation/page-navigation.js.map +1 -0
- package/dist/network/network-watch.d.ts +110 -0
- package/dist/network/network-watch.d.ts.map +1 -0
- package/dist/network/network-watch.js +223 -0
- package/dist/network/network-watch.js.map +1 -0
- package/dist/page.d.ts +118 -104
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +311 -1130
- package/dist/page.js.map +1 -1
- package/dist/session/inject-hook.d.ts +24 -0
- package/dist/session/inject-hook.d.ts.map +1 -0
- package/dist/session/inject-hook.js +80 -0
- package/dist/session/inject-hook.js.map +1 -0
- package/dist/session/save.d.ts +21 -0
- package/dist/session/save.d.ts.map +1 -0
- package/dist/session/save.js +163 -0
- package/dist/session/save.js.map +1 -0
- package/dist/session/tar-data-dir.d.ts +18 -0
- package/dist/session/tar-data-dir.d.ts.map +1 -0
- package/dist/session/tar-data-dir.js +105 -0
- package/dist/session/tar-data-dir.js.map +1 -0
- package/dist/session/types.d.ts +80 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +29 -0
- package/dist/session/types.js.map +1 -0
- package/dist/session-profile.d.ts +102 -0
- package/dist/session-profile.d.ts.map +1 -0
- package/dist/session-profile.js +163 -0
- package/dist/session-profile.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +17 -6
- package/scripts/postinstall.cjs +58 -0
- package/dist/fingerprinting/custom-fingerprint-injector.d.ts +0 -87
- package/dist/fingerprinting/custom-fingerprint-injector.d.ts.map +0 -1
- package/dist/fingerprinting/custom-fingerprint-injector.js +0 -342
- package/dist/fingerprinting/custom-fingerprint-injector.js.map +0 -1
- package/dist/launcher-wrap.d.ts +0 -10
- package/dist/launcher-wrap.d.ts.map +0 -1
- package/dist/launcher-wrap.js +0 -11
- package/dist/launcher-wrap.js.map +0 -1
package/dist/page.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import CDP from 'chrome-remote-interface';
|
|
2
|
+
import type CDP from 'chrome-remote-interface';
|
|
3
|
+
import { type PageSessionOptions } from './connection/page-session.js';
|
|
4
|
+
import { type SelectOptionOptions } from './input/dropdown-selector.js';
|
|
5
|
+
import { type GotoOptions } from './navigation/page-navigation.js';
|
|
6
|
+
import { type WatchedResponseWithBody } from './network/network-watch.js';
|
|
7
|
+
import type { LaunchSnapshot } from './session/types.js';
|
|
3
8
|
export interface WaitForResponseOptions {
|
|
4
9
|
urlPattern: string | RegExp;
|
|
5
10
|
timeout?: number;
|
|
@@ -20,21 +25,31 @@ export interface Cookie {
|
|
|
20
25
|
secure?: boolean;
|
|
21
26
|
session?: boolean;
|
|
22
27
|
sameSite?: 'Strict' | 'Lax' | 'None';
|
|
28
|
+
/**
|
|
29
|
+
* Additional CDP `Network.Cookie` / `Storage.setCookies` fields. These are
|
|
30
|
+
* captured by `Storage.getCookies` at save time and accepted by
|
|
31
|
+
* `Network.setCookie` on replay - the on-wire JSON has always carried
|
|
32
|
+
* them, but they were not declared in the type surface. Anti-bot vendors
|
|
33
|
+
* that compare cookie attributes byte-for-byte against a returning-user
|
|
34
|
+
* baseline (CHIPS / partitionKey, source scheme/port, priority) will flag
|
|
35
|
+
* a session that loses any of these on round-trip.
|
|
36
|
+
*/
|
|
37
|
+
priority?: 'Low' | 'Medium' | 'High';
|
|
38
|
+
sameParty?: boolean;
|
|
39
|
+
sourceScheme?: 'Unset' | 'NonSecure' | 'Secure';
|
|
40
|
+
sourcePort?: number;
|
|
41
|
+
/**
|
|
42
|
+
* CHIPS (Cookies Having Independent Partitioned State). String form is the
|
|
43
|
+
* legacy top-level site; the object form is the post-Chrome-118 typed key.
|
|
44
|
+
*/
|
|
45
|
+
partitionKey?: string | {
|
|
46
|
+
topLevelSite: string;
|
|
47
|
+
hasCrossSiteAncestor: boolean;
|
|
48
|
+
};
|
|
49
|
+
partitionKeyOpaque?: boolean;
|
|
23
50
|
}
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
timeout?: number;
|
|
27
|
-
}
|
|
28
|
-
export interface SelectOptionOptions {
|
|
29
|
-
/** Maximum wait time in milliseconds. Default: 30000 */
|
|
30
|
-
timeout?: number;
|
|
31
|
-
/** Bypass visibility and disabled checks. Default: false */
|
|
32
|
-
force?: boolean;
|
|
33
|
-
/** Wait for dropdown options to load after opening. Default: true */
|
|
34
|
-
waitForOptions?: boolean;
|
|
35
|
-
/** Maximum scroll attempts for virtualized dropdowns. Default: 10 */
|
|
36
|
-
maxScrollAttempts?: number;
|
|
37
|
-
}
|
|
51
|
+
export type { GotoOptions };
|
|
52
|
+
export type { SelectOptionOptions };
|
|
38
53
|
export interface EvaluateResult {
|
|
39
54
|
result: any;
|
|
40
55
|
exceptionDetails?: {
|
|
@@ -56,25 +71,69 @@ export interface CdpScreenshotOptions {
|
|
|
56
71
|
captureBeyondViewport?: boolean;
|
|
57
72
|
}
|
|
58
73
|
export default class CdpPage extends EventEmitter {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
private
|
|
74
|
+
/**
|
|
75
|
+
* Owns the live CDP session for this page: the current client, reconnect +
|
|
76
|
+
* heartbeat, the `isReconnecting` latch, and domain re-bind on swap. CDP
|
|
77
|
+
* methods route through `session.run(op)`; consumers read the current
|
|
78
|
+
* client through `session.client()`. See src/connection/page-session.ts.
|
|
79
|
+
*/
|
|
80
|
+
private readonly session;
|
|
81
|
+
private _navigation?;
|
|
82
|
+
/**
|
|
83
|
+
* Navigation + load-wait protocol - navigate, race dom/load events vs
|
|
84
|
+
* timeout, reconcile URL via getNavigationHistory - lives in PageNavigation
|
|
85
|
+
* behind NavigationPort. The port closures read the current client through
|
|
86
|
+
* the session accessor, so a reconnect client swap is picked up. The
|
|
87
|
+
* `loadedUrl` cache lives inside the module, not on this object.
|
|
88
|
+
*/
|
|
89
|
+
private get navigation();
|
|
90
|
+
/**
|
|
91
|
+
* Cached document root nodeId for {@link getNodeId}. Populated on first
|
|
92
|
+
* lookup and reused across clicks so we don't re-issue DOM.getDocument on
|
|
93
|
+
* every element resolution. Invalidated on main-frame navigation (the
|
|
94
|
+
* navigate/reload closures below) because a new document reassigns node
|
|
95
|
+
* IDs; getNodeId additionally self-heals with a fresh getDocument if a
|
|
96
|
+
* stale root slips through.
|
|
97
|
+
*/
|
|
98
|
+
private _documentNodeId?;
|
|
99
|
+
private navigationPort;
|
|
100
|
+
private _networkWatch?;
|
|
101
|
+
/**
|
|
102
|
+
* Network interception protocol - match/timeout/cleanup races live in
|
|
103
|
+
* NetworkWatch behind NetworkWatchPort. The port closures read
|
|
104
|
+
* `this.client` at call time, so a reconnectSession() client swap is
|
|
105
|
+
* picked up automatically.
|
|
106
|
+
*/
|
|
107
|
+
private get networkWatch();
|
|
66
108
|
private humanization;
|
|
67
|
-
private
|
|
109
|
+
private launchSnapshot;
|
|
110
|
+
/**
|
|
111
|
+
* Human-like input emulation (mouse, keyboard, IME) over a transport bound
|
|
112
|
+
* to the live CDP client - see src/input/input-emulator.ts. The lazy
|
|
113
|
+
* `() => this.client` accessor keeps the transport pointed at the current
|
|
114
|
+
* connection across session reconnects, which swap `this.client`.
|
|
115
|
+
*/
|
|
116
|
+
private readonly input;
|
|
68
117
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* this, every press reads `event.buttons === 0` — a one-line bot signal.
|
|
118
|
+
* Element targeting (geometry, visibility, scroll, position stabilization)
|
|
119
|
+
* over the narrow ElementTargetPort - see src/input/element-target.ts.
|
|
120
|
+
* Decides WHERE/WHEN to interact; `input` decides HOW.
|
|
73
121
|
*/
|
|
74
|
-
private
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
122
|
+
private readonly elements;
|
|
123
|
+
/**
|
|
124
|
+
* Select/dropdown protocol (native <select>, custom-dropdown trigger
|
|
125
|
+
* detection, idempotent open, virtualized-list scrolling) over the same
|
|
126
|
+
* port - see src/input/dropdown-selector.ts.
|
|
127
|
+
*/
|
|
128
|
+
private readonly dropdowns;
|
|
129
|
+
constructor(client: CDP.Client, sessionOptions?: Partial<PageSessionOptions>);
|
|
130
|
+
/** The current CDP client. Reads through PageSession so a reconnect swap is picked up. */
|
|
131
|
+
get client(): CDP.Client;
|
|
132
|
+
/** The current raw CDP client (some consumers reach for `_ws` directly). */
|
|
133
|
+
get _rawClient(): CDP.Client;
|
|
134
|
+
/** True while the page session is mid-reconnect. */
|
|
135
|
+
get isReconnecting(): boolean;
|
|
136
|
+
static create(client: CDP.Client, sessionOptions?: Partial<PageSessionOptions>): Promise<CdpPage>;
|
|
78
137
|
private initialize;
|
|
79
138
|
/**
|
|
80
139
|
* Lazily enable Page domain only when needed for script injection.
|
|
@@ -94,11 +153,6 @@ export default class CdpPage extends EventEmitter {
|
|
|
94
153
|
scroll?: boolean;
|
|
95
154
|
}): void;
|
|
96
155
|
url(): Promise<string>;
|
|
97
|
-
/**
|
|
98
|
-
* Get current URL without activating the Runtime domain.
|
|
99
|
-
* Uses Page.getNavigationHistory which only requires the Page domain.
|
|
100
|
-
*/
|
|
101
|
-
private _getCurrentUrlWithoutRuntime;
|
|
102
156
|
goto(url: string, options?: GotoOptions): Promise<void>;
|
|
103
157
|
/**
|
|
104
158
|
* Reloads the current page.
|
|
@@ -106,6 +160,7 @@ export default class CdpPage extends EventEmitter {
|
|
|
106
160
|
*/
|
|
107
161
|
reload(options?: GotoOptions): Promise<void>;
|
|
108
162
|
evaluate<T>(pageFunction: Function | string, ...args: any[]): Promise<T>;
|
|
163
|
+
private _evaluateInner;
|
|
109
164
|
click(selector: string, options?: {
|
|
110
165
|
timeout?: number;
|
|
111
166
|
force?: boolean;
|
|
@@ -113,60 +168,18 @@ export default class CdpPage extends EventEmitter {
|
|
|
113
168
|
button?: 'left' | 'right' | 'middle';
|
|
114
169
|
clickCount?: number;
|
|
115
170
|
}): Promise<void>;
|
|
116
|
-
/**
|
|
117
|
-
* Performs a human-like click with proper mouse events.
|
|
118
|
-
* Note: screenX/screenY compensation is handled browser-side via fingerprint
|
|
119
|
-
* overrides that set realistic window.screenX/screenY values, which Chrome
|
|
120
|
-
* uses when constructing MouseEvent from CDP dispatch.
|
|
121
|
-
*/
|
|
122
|
-
private _performClick;
|
|
123
|
-
private _buttonsBitmask;
|
|
124
|
-
private _moveMouseTo;
|
|
125
|
-
/**
|
|
126
|
-
* Gets detailed information about an element
|
|
127
|
-
*/
|
|
128
|
-
private _getElementInfo;
|
|
129
|
-
/**
|
|
130
|
-
* Enhanced visibility check that considers more factors
|
|
131
|
-
*/
|
|
132
|
-
private _isElementVisible;
|
|
133
|
-
/**
|
|
134
|
-
* Enhanced clickable check that considers more factors
|
|
135
|
-
*/
|
|
136
|
-
private _isElementClickable;
|
|
137
|
-
/**
|
|
138
|
-
* Enhanced scroll into view with better positioning
|
|
139
|
-
*/
|
|
140
|
-
private _scrollElementIntoView;
|
|
141
|
-
/**
|
|
142
|
-
* Waits for an element's position to stabilize by polling its position over time.
|
|
143
|
-
* This is useful for waiting for scroll animations or dynamic layout changes to complete.
|
|
144
|
-
*
|
|
145
|
-
* @param selector - The CSS selector for the element to monitor
|
|
146
|
-
* @param timeout - Maximum time to wait in milliseconds (default: 2000)
|
|
147
|
-
* @param checkInterval - How often to check position in milliseconds (default: 100)
|
|
148
|
-
* @param stabilityThreshold - Number of consecutive stable checks required (default: 3)
|
|
149
|
-
* @param tolerance - Maximum pixel difference to consider "stable" (default: 1)
|
|
150
|
-
*/
|
|
151
|
-
private _waitForElementPositionToStabilize;
|
|
152
171
|
waitForElementPositionToStabilize(selector: string, timeout?: number, checkInterval?: number, stabilityThreshold?: number, tolerance?: number): Promise<void>;
|
|
153
|
-
/**
|
|
154
|
-
* Check if element is within the viewport (with some tolerance)
|
|
155
|
-
*/
|
|
156
|
-
private _isElementInViewport;
|
|
157
172
|
type(selector: string, text: string, options?: {
|
|
158
173
|
delay?: number;
|
|
159
174
|
}): Promise<void>;
|
|
160
175
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
* which still produces beforeinput/input but no keyboard events (matches IME
|
|
167
|
-
* behaviour for Unicode/emoji input).
|
|
176
|
+
* Focus an element in a single Runtime.evaluate round-trip. Mirrors the
|
|
177
|
+
* wait-then-act semantics the click path gets from `waitForSelector`
|
|
178
|
+
* (MutationObserver wait, same timeout, same timeout error for a missing
|
|
179
|
+
* element), but collapses the wait and the `element.focus()` call into
|
|
180
|
+
* one CDP round-trip.
|
|
168
181
|
*/
|
|
169
|
-
private
|
|
182
|
+
private focusElement;
|
|
170
183
|
/**
|
|
171
184
|
* Deletes (clears) the value of an input field specified by selector.
|
|
172
185
|
* @param selector - The CSS selector for the input element.
|
|
@@ -178,7 +191,7 @@ export default class CdpPage extends EventEmitter {
|
|
|
178
191
|
waitForSelector(selector: string, options?: {
|
|
179
192
|
timeout?: number;
|
|
180
193
|
}): Promise<void>;
|
|
181
|
-
waitForResponse(urlPart: string, statusCode?: number, timeout?: number): Promise<
|
|
194
|
+
waitForResponse(urlPart: string, statusCode?: number, timeout?: number): Promise<WatchedResponseWithBody>;
|
|
182
195
|
screenshot(options?: ScreenshotOptions): Promise<Buffer>;
|
|
183
196
|
content(): Promise<string>;
|
|
184
197
|
toCheerio(): Promise<cheerio.CheerioAPI>;
|
|
@@ -189,7 +202,16 @@ export default class CdpPage extends EventEmitter {
|
|
|
189
202
|
scrollIntoView(selector: string): Promise<void>;
|
|
190
203
|
setupFetchMetadataHeaders(): Promise<void>;
|
|
191
204
|
blockRequests(urlPatterns: string[]): Promise<void>;
|
|
192
|
-
|
|
205
|
+
/**
|
|
206
|
+
* Resolve a CSS selector to a CDP DOM nodeId. Retained as public page API
|
|
207
|
+
* for callers that need a node handle for direct CDP DOM work; the click
|
|
208
|
+
* hot-path no longer uses it (geometry now comes from in-page
|
|
209
|
+
* getBoundingClientRect - see ElementTarget.acquire). Reuses a cached
|
|
210
|
+
* document root and self-heals a stale root with a fresh getDocument.
|
|
211
|
+
*/
|
|
212
|
+
getNodeId(selector: string): Promise<{
|
|
213
|
+
nodeId: number;
|
|
214
|
+
}>;
|
|
193
215
|
setCookies(cookies: Cookie[]): Promise<void>;
|
|
194
216
|
/**
|
|
195
217
|
* Retrieves all cookies associated with the given URLs or all cookies for the current page if no URLs are provided.
|
|
@@ -203,6 +225,13 @@ export default class CdpPage extends EventEmitter {
|
|
|
203
225
|
*
|
|
204
226
|
*/
|
|
205
227
|
getCookies(urls?: string[]): Promise<Cookie[]>;
|
|
228
|
+
/**
|
|
229
|
+
* Records launch-time inputs (fingerprint config, resolved locale, user-data-dir, …)
|
|
230
|
+
* that `saveSession()` needs to assemble a SessionBundle. Called by the browser
|
|
231
|
+
* controller after fingerprint injection - not part of the user-facing API.
|
|
232
|
+
*/
|
|
233
|
+
setLaunchSnapshot(snapshot: LaunchSnapshot): void;
|
|
234
|
+
getLaunchSnapshot(): LaunchSnapshot;
|
|
206
235
|
/**
|
|
207
236
|
* Evaluates a function across multiple elements matching the given selector.
|
|
208
237
|
*
|
|
@@ -213,10 +242,12 @@ export default class CdpPage extends EventEmitter {
|
|
|
213
242
|
*/
|
|
214
243
|
$$eval<T>(selector: string, pageFunction: (elements: HTMLElement[], ...args: any[]) => T, ...args: any[]): Promise<T>;
|
|
215
244
|
/**
|
|
216
|
-
* Enables a CDP domain only if it hasn't been enabled yet
|
|
245
|
+
* Enables a CDP domain only if it hasn't been enabled yet. Tracking lives
|
|
246
|
+
* in PageSession so a reconnect re-binds exactly the enabled domains.
|
|
217
247
|
* @private
|
|
218
248
|
*/
|
|
219
249
|
private _enableDomain;
|
|
250
|
+
/** Re-bind the page's CDP session after a transport drop. Delegates to PageSession. */
|
|
220
251
|
reconnectSession(retries?: number): Promise<void>;
|
|
221
252
|
/**
|
|
222
253
|
* Selects one or more options from a select element or dropdown.
|
|
@@ -241,23 +272,6 @@ export default class CdpPage extends EventEmitter {
|
|
|
241
272
|
* await page.selectOption('select#languages', ['option[value="en"]', 'option[value="es"]']);
|
|
242
273
|
*/
|
|
243
274
|
selectOption(dropdownSelector: string, optionSelector: string | string[], options?: SelectOptionOptions): Promise<void>;
|
|
244
|
-
/**
|
|
245
|
-
* Handles selection for regular HTML select elements
|
|
246
|
-
*/
|
|
247
|
-
private _handleRegularSelect;
|
|
248
|
-
/**
|
|
249
|
-
* Handles selection for custom dropdown elements.
|
|
250
|
-
* Automatically detects and clicks triggers using multiple strategies:
|
|
251
|
-
* - Common trigger patterns ([aria-haspopup], .dropdown-trigger, etc.)
|
|
252
|
-
* - Previous sibling elements
|
|
253
|
-
* - ID pattern matching (menu → trigger)
|
|
254
|
-
*/
|
|
255
|
-
private _handleCustomDropdown;
|
|
256
|
-
/**
|
|
257
|
-
* Selects a single option from a dropdown container.
|
|
258
|
-
* Handles virtualized lists with intelligent scrolling to find options that may not be initially visible.
|
|
259
|
-
*/
|
|
260
|
-
private _selectOptionFromDropdown;
|
|
261
275
|
/**
|
|
262
276
|
* Checks if the element specified by selector is visible (not display:none and not visibility:hidden).
|
|
263
277
|
* The selector should be the root item which can be hidden, otherwise this function could return a false positive.
|
package/dist/page.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,GAAG,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"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"}
|