craftdriver 0.0.1 → 0.1.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.
Files changed (55) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +69 -5
  3. package/dist/index.d.ts +2 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +3 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/bidi/connection.d.ts +62 -0
  8. package/dist/lib/bidi/connection.d.ts.map +1 -0
  9. package/dist/lib/bidi/connection.js +227 -0
  10. package/dist/lib/bidi/connection.js.map +1 -0
  11. package/dist/lib/bidi/index.d.ts +76 -0
  12. package/dist/lib/bidi/index.d.ts.map +1 -0
  13. package/dist/lib/bidi/index.js +114 -0
  14. package/dist/lib/bidi/index.js.map +1 -0
  15. package/dist/lib/bidi/logs.d.ts +104 -0
  16. package/dist/lib/bidi/logs.d.ts.map +1 -0
  17. package/dist/lib/bidi/logs.js +273 -0
  18. package/dist/lib/bidi/logs.js.map +1 -0
  19. package/dist/lib/bidi/network.d.ts +92 -0
  20. package/dist/lib/bidi/network.d.ts.map +1 -0
  21. package/dist/lib/bidi/network.js +259 -0
  22. package/dist/lib/bidi/network.js.map +1 -0
  23. package/dist/lib/bidi/storage.d.ts +81 -0
  24. package/dist/lib/bidi/storage.d.ts.map +1 -0
  25. package/dist/lib/bidi/storage.js +292 -0
  26. package/dist/lib/bidi/storage.js.map +1 -0
  27. package/dist/lib/bidi/types.d.ts +302 -0
  28. package/dist/lib/bidi/types.d.ts.map +1 -0
  29. package/dist/lib/bidi/types.js +6 -0
  30. package/dist/lib/bidi/types.js.map +1 -0
  31. package/dist/lib/browser.d.ts +179 -2
  32. package/dist/lib/browser.d.ts.map +1 -1
  33. package/dist/lib/browser.js +220 -11
  34. package/dist/lib/browser.js.map +1 -1
  35. package/dist/lib/driver.d.ts +2 -0
  36. package/dist/lib/driver.d.ts.map +1 -1
  37. package/dist/lib/driver.js +9 -1
  38. package/dist/lib/driver.js.map +1 -1
  39. package/dist/lib/elementHandle.d.ts +23 -7
  40. package/dist/lib/elementHandle.d.ts.map +1 -1
  41. package/dist/lib/elementHandle.js +84 -9
  42. package/dist/lib/elementHandle.js.map +1 -1
  43. package/dist/lib/expect.d.ts +45 -0
  44. package/dist/lib/expect.d.ts.map +1 -1
  45. package/dist/lib/expect.js +299 -11
  46. package/dist/lib/expect.js.map +1 -1
  47. package/dist/lib/service.d.ts +2 -1
  48. package/dist/lib/service.d.ts.map +1 -1
  49. package/dist/lib/service.js +23 -8
  50. package/dist/lib/service.js.map +1 -1
  51. package/dist/lib/webelement.d.ts +12 -0
  52. package/dist/lib/webelement.d.ts.map +1 -1
  53. package/dist/lib/webelement.js +62 -0
  54. package/dist/lib/webelement.js.map +1 -1
  55. package/package.json +7 -2
@@ -0,0 +1,302 @@
1
+ /**
2
+ * WebDriver BiDi protocol types
3
+ * Based on W3C WebDriver BiDi specification
4
+ */
5
+ export interface BiDiCommand {
6
+ id: number;
7
+ method: string;
8
+ params: Record<string, unknown>;
9
+ }
10
+ export interface BiDiResponse {
11
+ id: number;
12
+ type: 'success' | 'error';
13
+ result?: unknown;
14
+ error?: string;
15
+ message?: string;
16
+ stacktrace?: string;
17
+ }
18
+ export interface BiDiEvent {
19
+ type: 'event';
20
+ method: string;
21
+ params: Record<string, unknown>;
22
+ }
23
+ export type BiDiMessage = BiDiResponse | BiDiEvent;
24
+ export interface SessionCapabilities {
25
+ browserName: string;
26
+ browserVersion: string;
27
+ platformName: string;
28
+ webSocketUrl?: string;
29
+ }
30
+ export interface SessionNewResult {
31
+ sessionId: string;
32
+ capabilities: SessionCapabilities;
33
+ }
34
+ export type BrowsingContext = string;
35
+ export type Navigation = string;
36
+ export interface BrowsingContextInfo {
37
+ context: BrowsingContext;
38
+ url: string;
39
+ userContext: string;
40
+ children: BrowsingContextInfo[] | null;
41
+ parent?: BrowsingContext | null;
42
+ originalOpener?: BrowsingContext | null;
43
+ }
44
+ export type ReadinessState = 'none' | 'interactive' | 'complete';
45
+ export interface NavigationResult {
46
+ navigation: Navigation | null;
47
+ url: string;
48
+ }
49
+ export type ScriptRealm = string;
50
+ export interface ScriptTarget {
51
+ context?: BrowsingContext;
52
+ realm?: ScriptRealm;
53
+ sandbox?: string;
54
+ }
55
+ export interface ScriptEvaluateResult {
56
+ type: 'success' | 'exception';
57
+ realm: ScriptRealm;
58
+ result?: RemoteValue;
59
+ exceptionDetails?: ExceptionDetails;
60
+ }
61
+ export interface ExceptionDetails {
62
+ columnNumber: number;
63
+ exception: RemoteValue;
64
+ lineNumber: number;
65
+ stackTrace: StackTrace;
66
+ text: string;
67
+ }
68
+ export interface StackTrace {
69
+ callFrames: StackFrame[];
70
+ }
71
+ export interface StackFrame {
72
+ columnNumber: number;
73
+ functionName: string;
74
+ lineNumber: number;
75
+ url: string;
76
+ }
77
+ export type RemoteValue = {
78
+ type: 'undefined';
79
+ } | {
80
+ type: 'null';
81
+ } | {
82
+ type: 'string';
83
+ value: string;
84
+ } | {
85
+ type: 'number';
86
+ value: number | 'NaN' | 'Infinity' | '-Infinity' | '-0';
87
+ } | {
88
+ type: 'boolean';
89
+ value: boolean;
90
+ } | {
91
+ type: 'bigint';
92
+ value: string;
93
+ } | {
94
+ type: 'array';
95
+ value?: RemoteValue[];
96
+ } | {
97
+ type: 'object';
98
+ value?: [string | RemoteValue, RemoteValue][];
99
+ } | {
100
+ type: 'function';
101
+ } | {
102
+ type: 'regexp';
103
+ value: {
104
+ pattern: string;
105
+ flags?: string;
106
+ };
107
+ } | {
108
+ type: 'date';
109
+ value: string;
110
+ } | {
111
+ type: 'map';
112
+ value?: [RemoteValue, RemoteValue][];
113
+ } | {
114
+ type: 'set';
115
+ value?: RemoteValue[];
116
+ } | {
117
+ type: 'node';
118
+ value: NodeProperties;
119
+ } | {
120
+ type: 'window';
121
+ value: {
122
+ context: BrowsingContext;
123
+ };
124
+ };
125
+ export interface NodeProperties {
126
+ nodeType: number;
127
+ childNodeCount: number;
128
+ nodeName?: string;
129
+ nodeValue?: string;
130
+ localName?: string;
131
+ namespaceURI?: string;
132
+ attributes?: Record<string, string>;
133
+ children?: RemoteValue[];
134
+ shadowRoot?: RemoteValue | null;
135
+ }
136
+ export type NetworkIntercept = string;
137
+ export type NetworkRequest = string;
138
+ export type InterceptPhase = 'beforeRequestSent' | 'responseStarted' | 'authRequired';
139
+ export interface NetworkInterceptResult {
140
+ intercept: NetworkIntercept;
141
+ }
142
+ export type BytesValue = {
143
+ type: 'string';
144
+ value: string;
145
+ } | {
146
+ type: 'base64';
147
+ value: string;
148
+ };
149
+ export interface NetworkCookie {
150
+ name: string;
151
+ value: BytesValue;
152
+ domain: string;
153
+ path: string;
154
+ size: number;
155
+ httpOnly: boolean;
156
+ secure: boolean;
157
+ sameSite: 'strict' | 'lax' | 'none' | 'default';
158
+ expiry?: number;
159
+ }
160
+ export interface NetworkHeader {
161
+ name: string;
162
+ value: BytesValue;
163
+ }
164
+ export interface NetworkRequestData {
165
+ request: NetworkRequest;
166
+ url: string;
167
+ method: string;
168
+ headers: NetworkHeader[];
169
+ cookies: NetworkCookie[];
170
+ headersSize: number;
171
+ bodySize: number | null;
172
+ timings?: FetchTimingInfo;
173
+ }
174
+ export interface FetchTimingInfo {
175
+ timeOrigin: number;
176
+ requestTime: number;
177
+ redirectStart: number;
178
+ redirectEnd: number;
179
+ fetchStart: number;
180
+ dnsStart: number;
181
+ dnsEnd: number;
182
+ connectStart: number;
183
+ connectEnd: number;
184
+ tlsStart: number;
185
+ requestStart: number;
186
+ responseStart: number;
187
+ responseEnd: number;
188
+ }
189
+ export interface NetworkResponseData {
190
+ url: string;
191
+ protocol: string;
192
+ status: number;
193
+ statusText: string;
194
+ fromCache: boolean;
195
+ headers: NetworkHeader[];
196
+ mimeType: string;
197
+ bytesReceived: number;
198
+ headersSize: number;
199
+ bodySize: number | null;
200
+ content: {
201
+ size: number;
202
+ };
203
+ }
204
+ export interface NetworkBaseEvent {
205
+ context: BrowsingContext | null;
206
+ isBlocked: boolean;
207
+ navigation: Navigation | null;
208
+ redirectCount: number;
209
+ request: NetworkRequestData;
210
+ timestamp: number;
211
+ intercepts?: NetworkIntercept[];
212
+ }
213
+ export interface NetworkBeforeRequestSentEvent extends NetworkBaseEvent {
214
+ initiator: NetworkInitiator;
215
+ }
216
+ export interface NetworkResponseEvent extends NetworkBaseEvent {
217
+ response: NetworkResponseData;
218
+ }
219
+ export interface NetworkInitiator {
220
+ type?: 'parser' | 'script' | 'preflight' | 'other';
221
+ columnNumber?: number;
222
+ lineNumber?: number;
223
+ stackTrace?: StackTrace;
224
+ request?: NetworkRequest;
225
+ }
226
+ export interface UrlPattern {
227
+ type: 'string' | 'pattern';
228
+ pattern?: string;
229
+ protocol?: string;
230
+ hostname?: string;
231
+ port?: string;
232
+ pathname?: string;
233
+ search?: string;
234
+ }
235
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
236
+ export interface LogEntry {
237
+ level: LogLevel;
238
+ source: LogSource;
239
+ text: string;
240
+ timestamp: number;
241
+ stackTrace?: StackTrace;
242
+ type: 'console' | 'javascript';
243
+ method?: string;
244
+ args?: RemoteValue[];
245
+ }
246
+ export interface LogSource {
247
+ realm: ScriptRealm;
248
+ context?: BrowsingContext;
249
+ }
250
+ export interface CookieFilter {
251
+ name?: string;
252
+ value?: string;
253
+ domain?: string;
254
+ path?: string;
255
+ size?: number;
256
+ httpOnly?: boolean;
257
+ secure?: boolean;
258
+ sameSite?: 'strict' | 'lax' | 'none';
259
+ expiry?: number;
260
+ }
261
+ export interface PartitionDescriptor {
262
+ type: 'context' | 'storageKey';
263
+ context?: BrowsingContext;
264
+ userContext?: string;
265
+ sourceOrigin?: string;
266
+ }
267
+ export interface SetCookieParams {
268
+ cookie: PartialCookie;
269
+ partition?: PartitionDescriptor;
270
+ }
271
+ export interface PartialCookie {
272
+ name: string;
273
+ value: BytesValue;
274
+ domain: string;
275
+ path?: string;
276
+ httpOnly?: boolean;
277
+ secure?: boolean;
278
+ sameSite?: 'strict' | 'lax' | 'none' | 'default';
279
+ expiry?: number;
280
+ }
281
+ export interface GetCookiesResult {
282
+ cookies: NetworkCookie[];
283
+ partitionKey: {
284
+ userContext?: string;
285
+ sourceOrigin?: string;
286
+ };
287
+ }
288
+ export type UserContext = string;
289
+ export interface UserContextInfo {
290
+ userContext: UserContext;
291
+ }
292
+ export interface SubscriptionRequest {
293
+ events: string[];
294
+ contexts?: BrowsingContext[];
295
+ }
296
+ export interface SessionState {
297
+ cookies?: NetworkCookie[];
298
+ localStorage?: Record<string, Record<string, string>>;
299
+ sessionStorage?: Record<string, Record<string, string>>;
300
+ origins?: string[];
301
+ }
302
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/bidi/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * WebDriver BiDi protocol types
3
+ * Based on W3C WebDriver BiDi specification
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/bidi/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -6,14 +6,156 @@ import { ElementHandle } from './elementHandle.js';
6
6
  import { KeyboardController } from './keyboard.js';
7
7
  import { MouseController } from './mouse.js';
8
8
  import { ActionsBuilder } from './actions.js';
9
+ import { NetworkInterceptor, LogMonitor, SessionStateManager, type SessionState, type StorageStateOptions } from './bidi/index.js';
10
+ /** Device metrics for custom mobile emulation */
11
+ export interface DeviceMetrics {
12
+ width: number;
13
+ height: number;
14
+ pixelRatio: number;
15
+ mobile?: boolean;
16
+ touch?: boolean;
17
+ }
18
+ /** Mobile emulation configuration */
19
+ export interface MobileEmulation {
20
+ /** Use a predefined device (e.g., 'iPhone 14', 'Pixel 7') */
21
+ deviceName?: string;
22
+ /** Custom device metrics */
23
+ deviceMetrics?: DeviceMetrics;
24
+ /** Custom user agent string */
25
+ userAgent?: string;
26
+ }
27
+ /** Common mobile device presets */
28
+ export declare const devices: {
29
+ readonly 'iPhone 14': {
30
+ readonly deviceMetrics: {
31
+ readonly width: 390;
32
+ readonly height: 844;
33
+ readonly pixelRatio: 3;
34
+ readonly mobile: true;
35
+ readonly touch: true;
36
+ };
37
+ readonly userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1";
38
+ };
39
+ readonly 'iPhone 14 Pro Max': {
40
+ readonly deviceMetrics: {
41
+ readonly width: 430;
42
+ readonly height: 932;
43
+ readonly pixelRatio: 3;
44
+ readonly mobile: true;
45
+ readonly touch: true;
46
+ };
47
+ readonly userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1";
48
+ };
49
+ readonly 'iPhone SE': {
50
+ readonly deviceMetrics: {
51
+ readonly width: 375;
52
+ readonly height: 667;
53
+ readonly pixelRatio: 2;
54
+ readonly mobile: true;
55
+ readonly touch: true;
56
+ };
57
+ readonly userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1";
58
+ };
59
+ readonly 'Pixel 7': {
60
+ readonly deviceMetrics: {
61
+ readonly width: 412;
62
+ readonly height: 915;
63
+ readonly pixelRatio: 2.625;
64
+ readonly mobile: true;
65
+ readonly touch: true;
66
+ };
67
+ readonly userAgent: "Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36";
68
+ };
69
+ readonly 'Pixel 7 Pro': {
70
+ readonly deviceMetrics: {
71
+ readonly width: 412;
72
+ readonly height: 892;
73
+ readonly pixelRatio: 3.5;
74
+ readonly mobile: true;
75
+ readonly touch: true;
76
+ };
77
+ readonly userAgent: "Mozilla/5.0 (Linux; Android 13; Pixel 7 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36";
78
+ };
79
+ readonly 'Samsung Galaxy S23': {
80
+ readonly deviceMetrics: {
81
+ readonly width: 360;
82
+ readonly height: 780;
83
+ readonly pixelRatio: 3;
84
+ readonly mobile: true;
85
+ readonly touch: true;
86
+ };
87
+ readonly userAgent: "Mozilla/5.0 (Linux; Android 13; SM-S911B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36";
88
+ };
89
+ readonly 'iPad Pro 11': {
90
+ readonly deviceMetrics: {
91
+ readonly width: 834;
92
+ readonly height: 1194;
93
+ readonly pixelRatio: 2;
94
+ readonly mobile: true;
95
+ readonly touch: true;
96
+ };
97
+ readonly userAgent: "Mozilla/5.0 (iPad; CPU OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1";
98
+ };
99
+ readonly 'iPad Mini': {
100
+ readonly deviceMetrics: {
101
+ readonly width: 768;
102
+ readonly height: 1024;
103
+ readonly pixelRatio: 2;
104
+ readonly mobile: true;
105
+ readonly touch: true;
106
+ };
107
+ readonly userAgent: "Mozilla/5.0 (iPad; CPU OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1";
108
+ };
109
+ };
110
+ export type DeviceName = keyof typeof devices;
9
111
  export interface LaunchOptions {
10
112
  browserName?: 'chrome' | 'chromium' | 'firefox' | 'edge' | 'safari';
11
113
  chromeService?: ChromeService;
114
+ /** Enable BiDi features (network interception, logs, etc.) */
115
+ enableBiDi?: boolean;
116
+ /** Load session state from file on launch */
117
+ storageState?: string;
118
+ /** Enable mobile device emulation (Chrome/Chromium only) */
119
+ mobileEmulation?: MobileEmulation | DeviceName;
12
120
  }
13
121
  export declare class Browser {
14
122
  private driver;
123
+ private bidiSession?;
124
+ private _network?;
125
+ private _logs?;
126
+ private _storage?;
15
127
  private constructor();
16
128
  static launch(options?: LaunchOptions): Promise<Browser>;
129
+ /**
130
+ * Initialize BiDi WebSocket connection
131
+ */
132
+ private initBiDi;
133
+ /**
134
+ * Check if BiDi features are available
135
+ */
136
+ isBiDiEnabled(): boolean;
137
+ /**
138
+ * Network interception API (BiDi)
139
+ * Mock, intercept, and modify network requests
140
+ */
141
+ get network(): NetworkInterceptor;
142
+ /**
143
+ * Console/error log monitoring (BiDi)
144
+ */
145
+ get logs(): LogMonitor;
146
+ /**
147
+ * Session state management (cookies, localStorage)
148
+ * Works with both BiDi and Classic WebDriver
149
+ */
150
+ get storage(): SessionStateManager;
151
+ /**
152
+ * Save current session state (cookies + localStorage) to file
153
+ */
154
+ saveState(path: string, options?: StorageStateOptions): Promise<SessionState>;
155
+ /**
156
+ * Load session state from file
157
+ */
158
+ loadState(path: string): Promise<void>;
17
159
  navigateTo(url: string): Promise<void>;
18
160
  url(): Promise<string>;
19
161
  title(): Promise<string>;
@@ -23,10 +165,18 @@ export declare class Browser {
23
165
  wait<T>(condition: Condition<T>, timeoutMs?: number, intervalMs?: number, message?: string): Promise<T>;
24
166
  quit(): Promise<void>;
25
167
  click(selector: string | By): Promise<void>;
26
- type(selector: string | By, text: string, opts?: {
27
- mask?: boolean;
168
+ fill(selector: string | By, text: string, opts?: {
169
+ timeout?: number;
170
+ }): Promise<void>;
171
+ clear(selector: string | By, opts?: {
28
172
  timeout?: number;
29
173
  }): Promise<void>;
174
+ getValue(selector: string | By, opts?: {
175
+ timeout?: number;
176
+ }): Promise<string>;
177
+ getAttribute(selector: string | By, name: string, opts?: {
178
+ timeout?: number;
179
+ }): Promise<string | null>;
30
180
  gesture: {
31
181
  swipe: ({ from, to, durationMs, }: {
32
182
  from: [number, number];
@@ -44,6 +194,21 @@ export declare class Browser {
44
194
  saveScreenshot(path: string, selectorOrBy?: string | By): Promise<Buffer>;
45
195
  expect(selector: string | By): import("./expect.js").ExpectApi;
46
196
  find(selector: string | By): ElementHandle;
197
+ getByRole(role: string, opts?: {
198
+ name?: string;
199
+ exact?: boolean;
200
+ includeHidden?: boolean;
201
+ }): ElementHandle;
202
+ getByText(text: string, opts?: {
203
+ exact?: boolean;
204
+ }): ElementHandle;
205
+ getByLabel(text: string, opts?: {
206
+ exact?: boolean;
207
+ }): ElementHandle;
208
+ getByPlaceholder(text: string, opts?: {
209
+ exact?: boolean;
210
+ }): ElementHandle;
211
+ getByTestId(id: string): ElementHandle;
47
212
  keyboard: KeyboardController;
48
213
  mouse: MouseController;
49
214
  static Key: {
@@ -88,6 +253,18 @@ export declare class Browser {
88
253
  waitFor(check: ((driver: Driver) => Promise<any> | any) | (() => Promise<any> | any), options?: WaitOptions & {
89
254
  message?: string;
90
255
  }): Promise<any>;
256
+ waitForVisible(selector: string | By, opts?: {
257
+ timeout?: number;
258
+ }): Promise<void>;
259
+ waitForHidden(selector: string | By, opts?: {
260
+ timeout?: number;
261
+ }): Promise<void>;
262
+ waitForAttached(selector: string | By, opts?: {
263
+ timeout?: number;
264
+ }): Promise<void>;
265
+ waitForDetached(selector: string | By, opts?: {
266
+ timeout?: number;
267
+ }): Promise<void>;
91
268
  actions(): ActionsBuilder;
92
269
  pause(ms: number): Promise<void>;
93
270
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/lib/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/lib/browser.ts"],"names":[],"mappings":"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"}