craftdriver 0.0.3 → 0.2.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 (192) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/README.md +186 -10
  3. package/bin/craftdriver.mjs +26 -0
  4. package/dist/cli/client.d.ts +17 -0
  5. package/dist/cli/client.d.ts.map +1 -0
  6. package/dist/cli/client.js +88 -0
  7. package/dist/cli/client.js.map +1 -0
  8. package/dist/cli/daemon.d.ts +15 -0
  9. package/dist/cli/daemon.d.ts.map +1 -0
  10. package/dist/cli/daemon.js +145 -0
  11. package/dist/cli/daemon.js.map +1 -0
  12. package/dist/cli/defaults.d.ts +10 -0
  13. package/dist/cli/defaults.d.ts.map +1 -0
  14. package/dist/cli/defaults.js +42 -0
  15. package/dist/cli/defaults.js.map +1 -0
  16. package/dist/cli/dispatcher.d.ts +28 -0
  17. package/dist/cli/dispatcher.d.ts.map +1 -0
  18. package/dist/cli/dispatcher.js +319 -0
  19. package/dist/cli/dispatcher.js.map +1 -0
  20. package/dist/cli/index.d.ts +2 -0
  21. package/dist/cli/index.d.ts.map +1 -0
  22. package/dist/cli/index.js +404 -0
  23. package/dist/cli/index.js.map +1 -0
  24. package/dist/cli/init.d.ts +24 -0
  25. package/dist/cli/init.d.ts.map +1 -0
  26. package/dist/cli/init.js +192 -0
  27. package/dist/cli/init.js.map +1 -0
  28. package/dist/cli/mcp/artifacts.d.ts +43 -0
  29. package/dist/cli/mcp/artifacts.d.ts.map +1 -0
  30. package/dist/cli/mcp/artifacts.js +104 -0
  31. package/dist/cli/mcp/artifacts.js.map +1 -0
  32. package/dist/cli/mcp/server.d.ts +34 -0
  33. package/dist/cli/mcp/server.d.ts.map +1 -0
  34. package/dist/cli/mcp/server.js +214 -0
  35. package/dist/cli/mcp/server.js.map +1 -0
  36. package/dist/cli/mcp/tools.d.ts +34 -0
  37. package/dist/cli/mcp/tools.d.ts.map +1 -0
  38. package/dist/cli/mcp/tools.js +236 -0
  39. package/dist/cli/mcp/tools.js.map +1 -0
  40. package/dist/cli/parseArgs.d.ts +37 -0
  41. package/dist/cli/parseArgs.d.ts.map +1 -0
  42. package/dist/cli/parseArgs.js +215 -0
  43. package/dist/cli/parseArgs.js.map +1 -0
  44. package/dist/cli/protocol.d.ts +34 -0
  45. package/dist/cli/protocol.d.ts.map +1 -0
  46. package/dist/cli/protocol.js +2 -0
  47. package/dist/cli/protocol.js.map +1 -0
  48. package/dist/cli/selector.d.ts +29 -0
  49. package/dist/cli/selector.d.ts.map +1 -0
  50. package/dist/cli/selector.js +100 -0
  51. package/dist/cli/selector.js.map +1 -0
  52. package/dist/cli/snapshot.d.ts +48 -0
  53. package/dist/cli/snapshot.d.ts.map +1 -0
  54. package/dist/cli/snapshot.js +179 -0
  55. package/dist/cli/snapshot.js.map +1 -0
  56. package/dist/index.d.ts +14 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +17 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/lib/a11y.d.ts +81 -0
  61. package/dist/lib/a11y.d.ts.map +1 -0
  62. package/dist/lib/a11y.js +171 -0
  63. package/dist/lib/a11y.js.map +1 -0
  64. package/dist/lib/bidi/connection.d.ts +62 -0
  65. package/dist/lib/bidi/connection.d.ts.map +1 -0
  66. package/dist/lib/bidi/connection.js +227 -0
  67. package/dist/lib/bidi/connection.js.map +1 -0
  68. package/dist/lib/bidi/index.d.ts +101 -0
  69. package/dist/lib/bidi/index.d.ts.map +1 -0
  70. package/dist/lib/bidi/index.js +163 -0
  71. package/dist/lib/bidi/index.js.map +1 -0
  72. package/dist/lib/bidi/logs.d.ts +104 -0
  73. package/dist/lib/bidi/logs.d.ts.map +1 -0
  74. package/dist/lib/bidi/logs.js +273 -0
  75. package/dist/lib/bidi/logs.js.map +1 -0
  76. package/dist/lib/bidi/network.d.ts +165 -0
  77. package/dist/lib/bidi/network.d.ts.map +1 -0
  78. package/dist/lib/bidi/network.js +477 -0
  79. package/dist/lib/bidi/network.js.map +1 -0
  80. package/dist/lib/bidi/storage.d.ts +83 -0
  81. package/dist/lib/bidi/storage.d.ts.map +1 -0
  82. package/dist/lib/bidi/storage.js +299 -0
  83. package/dist/lib/bidi/storage.js.map +1 -0
  84. package/dist/lib/bidi/types.d.ts +323 -0
  85. package/dist/lib/bidi/types.d.ts.map +1 -0
  86. package/dist/lib/bidi/types.js +6 -0
  87. package/dist/lib/bidi/types.js.map +1 -0
  88. package/dist/lib/browser.d.ts +776 -13
  89. package/dist/lib/browser.d.ts.map +1 -1
  90. package/dist/lib/browser.js +1547 -70
  91. package/dist/lib/browser.js.map +1 -1
  92. package/dist/lib/browserContext.d.ts +486 -0
  93. package/dist/lib/browserContext.d.ts.map +1 -0
  94. package/dist/lib/browserContext.js +937 -0
  95. package/dist/lib/browserContext.js.map +1 -0
  96. package/dist/lib/builder.d.ts +3 -0
  97. package/dist/lib/builder.d.ts.map +1 -1
  98. package/dist/lib/builder.js +31 -4
  99. package/dist/lib/builder.js.map +1 -1
  100. package/dist/lib/by.d.ts +18 -2
  101. package/dist/lib/by.d.ts.map +1 -1
  102. package/dist/lib/by.js +20 -2
  103. package/dist/lib/by.js.map +1 -1
  104. package/dist/lib/chrome.d.ts +13 -1
  105. package/dist/lib/chrome.d.ts.map +1 -1
  106. package/dist/lib/chrome.js +13 -17
  107. package/dist/lib/chrome.js.map +1 -1
  108. package/dist/lib/clock.d.ts +115 -0
  109. package/dist/lib/clock.d.ts.map +1 -0
  110. package/dist/lib/clock.js +407 -0
  111. package/dist/lib/clock.js.map +1 -0
  112. package/dist/lib/driver.d.ts +45 -0
  113. package/dist/lib/driver.d.ts.map +1 -1
  114. package/dist/lib/driver.js +129 -1
  115. package/dist/lib/driver.js.map +1 -1
  116. package/dist/lib/driverManager.d.ts +25 -0
  117. package/dist/lib/driverManager.d.ts.map +1 -0
  118. package/dist/lib/driverManager.js +399 -0
  119. package/dist/lib/driverManager.js.map +1 -0
  120. package/dist/lib/elementHandle.d.ts +69 -2
  121. package/dist/lib/elementHandle.d.ts.map +1 -1
  122. package/dist/lib/elementHandle.js +215 -40
  123. package/dist/lib/elementHandle.js.map +1 -1
  124. package/dist/lib/errors.d.ts +71 -0
  125. package/dist/lib/errors.d.ts.map +1 -0
  126. package/dist/lib/errors.js +73 -0
  127. package/dist/lib/errors.js.map +1 -0
  128. package/dist/lib/expect.d.ts +6 -1
  129. package/dist/lib/expect.d.ts.map +1 -1
  130. package/dist/lib/expect.js +55 -37
  131. package/dist/lib/expect.js.map +1 -1
  132. package/dist/lib/firefox.d.ts +18 -0
  133. package/dist/lib/firefox.d.ts.map +1 -0
  134. package/dist/lib/firefox.js +33 -0
  135. package/dist/lib/firefox.js.map +1 -0
  136. package/dist/lib/frame.d.ts +57 -0
  137. package/dist/lib/frame.d.ts.map +1 -0
  138. package/dist/lib/frame.js +277 -0
  139. package/dist/lib/frame.js.map +1 -0
  140. package/dist/lib/keyboard.d.ts +1 -1
  141. package/dist/lib/keyboard.d.ts.map +1 -1
  142. package/dist/lib/keyboard.js +1 -1
  143. package/dist/lib/keyboard.js.map +1 -1
  144. package/dist/lib/locator.d.ts +71 -2
  145. package/dist/lib/locator.d.ts.map +1 -1
  146. package/dist/lib/locator.js +289 -31
  147. package/dist/lib/locator.js.map +1 -1
  148. package/dist/lib/mouse.d.ts +1 -1
  149. package/dist/lib/mouse.d.ts.map +1 -1
  150. package/dist/lib/mouse.js +1 -1
  151. package/dist/lib/mouse.js.map +1 -1
  152. package/dist/lib/page.d.ts +107 -0
  153. package/dist/lib/page.d.ts.map +1 -0
  154. package/dist/lib/page.js +388 -0
  155. package/dist/lib/page.js.map +1 -0
  156. package/dist/lib/tracing.d.ts +128 -0
  157. package/dist/lib/tracing.d.ts.map +1 -0
  158. package/dist/lib/tracing.js +272 -0
  159. package/dist/lib/tracing.js.map +1 -0
  160. package/dist/lib/wait.d.ts.map +1 -1
  161. package/dist/lib/wait.js +14 -1
  162. package/dist/lib/wait.js.map +1 -1
  163. package/dist/lib/webelement.d.ts +2 -0
  164. package/dist/lib/webelement.d.ts.map +1 -1
  165. package/dist/lib/webelement.js +18 -0
  166. package/dist/lib/webelement.js.map +1 -1
  167. package/docs/accessibility.md +177 -0
  168. package/docs/api-reference.md +71 -0
  169. package/docs/assertions.md +182 -0
  170. package/docs/bidi-features.md +462 -0
  171. package/docs/browser-api.md +673 -0
  172. package/docs/browser-context.md +522 -0
  173. package/docs/cli.md +233 -0
  174. package/docs/clock.md +245 -0
  175. package/docs/dialogs.md +143 -0
  176. package/docs/driver-configuration.md +64 -0
  177. package/docs/element-api.md +219 -0
  178. package/docs/emulation.md +155 -0
  179. package/docs/error-codes.md +67 -0
  180. package/docs/getting-started.md +168 -0
  181. package/docs/keyboard-mouse.md +250 -0
  182. package/docs/mcp.md +250 -0
  183. package/docs/mobile-emulation.md +194 -0
  184. package/docs/screenshots.md +146 -0
  185. package/docs/selectors.md +382 -0
  186. package/docs/session-management.md +229 -0
  187. package/docs/tracing.md +282 -0
  188. package/package.json +25 -5
  189. package/skills/craftdriver/SKILL.md +84 -0
  190. package/skills/craftdriver/cheatsheet.md +194 -0
  191. package/skills/craftdriver/cli.md +104 -0
  192. package/skills/craftdriver/patterns.md +139 -0
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Session State Manager
3
+ * Playwright-style session persistence - save login state, cookies, localStorage
4
+ */
5
+ import fs from 'fs/promises';
6
+ export class SessionStateManager {
7
+ connection;
8
+ driver;
9
+ context;
10
+ constructor(driver, connection, context) {
11
+ this.driver = driver;
12
+ this.connection = connection;
13
+ this.context = context;
14
+ }
15
+ /**
16
+ * Save current session state to a file (Playwright-style)
17
+ * Captures cookies and optionally localStorage/sessionStorage
18
+ */
19
+ async saveState(path, options = {}) {
20
+ const state = await this.getState(options);
21
+ await fs.writeFile(path, JSON.stringify(state, null, 2), 'utf-8');
22
+ return state;
23
+ }
24
+ /**
25
+ * Load session state from a file
26
+ */
27
+ async loadState(path) {
28
+ const data = await fs.readFile(path, 'utf-8');
29
+ const state = JSON.parse(data);
30
+ await this.setState(state);
31
+ }
32
+ /**
33
+ * Get current session state
34
+ */
35
+ async getState(options = {}) {
36
+ const state = {};
37
+ // Get cookies if requested (default: true)
38
+ if (options.includeCookies !== false) {
39
+ state.cookies = await this.getCookies();
40
+ }
41
+ // Get localStorage if requested (default: true)
42
+ if (options.includeLocalStorage !== false) {
43
+ try {
44
+ state.localStorage = await this.getLocalStorage(options.origins);
45
+ }
46
+ catch {
47
+ // localStorage might not be available
48
+ }
49
+ }
50
+ // Get sessionStorage if requested (default: false)
51
+ if (options.includeSessionStorage) {
52
+ try {
53
+ state.sessionStorage = await this.getSessionStorage(options.origins);
54
+ }
55
+ catch {
56
+ // sessionStorage might not be available
57
+ }
58
+ }
59
+ return state;
60
+ }
61
+ /**
62
+ * Set session state (cookies + storage)
63
+ */
64
+ async setState(state) {
65
+ // Set cookies
66
+ if (state.cookies?.length) {
67
+ await this.setCookies(state.cookies);
68
+ }
69
+ // Set localStorage
70
+ if (state.localStorage) {
71
+ await this.setLocalStorage(state.localStorage);
72
+ }
73
+ // Set sessionStorage
74
+ if (state.sessionStorage) {
75
+ await this.setSessionStorage(state.sessionStorage);
76
+ }
77
+ }
78
+ /**
79
+ * Get all cookies using BiDi or fallback to Classic
80
+ */
81
+ async getCookies(filter) {
82
+ if (this.connection?.isConnected()) {
83
+ return this.getCookiesBiDi(filter);
84
+ }
85
+ return this.getCookiesClassic();
86
+ }
87
+ /**
88
+ * Set cookies using BiDi or fallback to Classic
89
+ */
90
+ async setCookies(cookies) {
91
+ if (this.connection?.isConnected()) {
92
+ await this.setCookiesBiDi(cookies);
93
+ }
94
+ else {
95
+ await this.setCookiesClassic(cookies);
96
+ }
97
+ }
98
+ /**
99
+ * Clear all cookies
100
+ */
101
+ async clearCookies(filter) {
102
+ if (this.connection?.isConnected()) {
103
+ await this.connection.send('storage.deleteCookies', {
104
+ filter: filter || {},
105
+ ...(this.context ? { partition: { type: 'context', context: this.context } } : {}),
106
+ });
107
+ }
108
+ else {
109
+ // Classic WebDriver - delete all cookies
110
+ const cookies = await this.getCookiesClassic();
111
+ for (const cookie of cookies) {
112
+ if (filter?.domain && cookie.domain !== filter.domain)
113
+ continue;
114
+ if (filter?.name && cookie.name !== filter.name)
115
+ continue;
116
+ await this.driver.executeScript(`document.cookie = "${cookie.name}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${cookie.domain}"`);
117
+ }
118
+ }
119
+ }
120
+ /**
121
+ * Add a single cookie
122
+ */
123
+ async addCookie(cookie) {
124
+ const expiry = cookie.expiry instanceof Date
125
+ ? Math.floor(cookie.expiry.getTime() / 1000)
126
+ : cookie.expiry;
127
+ const partialCookie = {
128
+ name: cookie.name,
129
+ value: cookie.value,
130
+ domain: cookie.domain || (await this.getCurrentDomain()),
131
+ path: cookie.path,
132
+ secure: cookie.secure,
133
+ httpOnly: cookie.httpOnly,
134
+ sameSite: cookie.sameSite?.toLowerCase(),
135
+ expiry,
136
+ };
137
+ await this.setCookies([partialCookie]);
138
+ }
139
+ // === Private Methods ===
140
+ async getCookiesBiDi(filter) {
141
+ const params = {};
142
+ if (filter) {
143
+ params.filter = filter;
144
+ }
145
+ if (this.context) {
146
+ params.partition = { type: 'context', context: this.context };
147
+ }
148
+ const result = await this.connection.send('storage.getCookies', params);
149
+ return result.cookies.map((cookie) => this.normalizeCookie(cookie));
150
+ }
151
+ async getCookiesClassic() {
152
+ const cookies = await this.driver.executeScript(`
153
+ return document.cookie.split(';').map(c => {
154
+ const [name, ...valueParts] = c.trim().split('=');
155
+ return {
156
+ name: name,
157
+ value: valueParts.join('='),
158
+ domain: location.hostname,
159
+ path: '/',
160
+ httpOnly: false,
161
+ secure: location.protocol === 'https:',
162
+ size: c.length,
163
+ sameSite: 'lax'
164
+ };
165
+ }).filter(c => c.name);
166
+ `);
167
+ return (cookies || []).map((c) => ({
168
+ name: c.name,
169
+ value: c.value,
170
+ domain: c.domain,
171
+ path: c.path || '/',
172
+ size: (c.name + c.value).length,
173
+ httpOnly: c.httpOnly ?? false,
174
+ secure: c.secure ?? false,
175
+ sameSite: c.sameSite?.toLowerCase() || 'lax',
176
+ expiry: c.expiry,
177
+ }));
178
+ }
179
+ async setCookiesBiDi(cookies) {
180
+ for (const cookie of cookies) {
181
+ // Note: sameSite: 'none' requires secure: true, so adjust if needed
182
+ let sameSite = cookie.sameSite;
183
+ let secure = cookie.secure;
184
+ if (sameSite === 'none' && !secure) {
185
+ // Invalid combo - either set secure to true or change sameSite
186
+ sameSite = 'lax'; // Default to lax for non-secure cookies
187
+ }
188
+ const partialCookie = {
189
+ name: cookie.name,
190
+ value: { type: 'string', value: this.normalizeCookieValue(cookie.value) },
191
+ domain: cookie.domain,
192
+ path: cookie.path,
193
+ httpOnly: cookie.httpOnly,
194
+ secure: secure,
195
+ sameSite: sameSite,
196
+ expiry: cookie.expiry,
197
+ };
198
+ try {
199
+ await this.connection.send('storage.setCookie', {
200
+ cookie: partialCookie,
201
+ ...(this.context ? { partition: { type: 'context', context: this.context } } : {}),
202
+ });
203
+ }
204
+ catch (error) {
205
+ // Propagate errors - cookie might be rejected for security reasons
206
+ throw error;
207
+ }
208
+ }
209
+ }
210
+ async setCookiesClassic(cookies) {
211
+ for (const cookie of cookies) {
212
+ const value = this.normalizeCookieValue(cookie.value);
213
+ let cookieStr = `${cookie.name}=${encodeURIComponent(value)}`;
214
+ if (cookie.path)
215
+ cookieStr += `; path=${cookie.path}`;
216
+ if (cookie.domain)
217
+ cookieStr += `; domain=${cookie.domain}`;
218
+ if (cookie.secure)
219
+ cookieStr += '; secure';
220
+ if (cookie.sameSite)
221
+ cookieStr += `; samesite=${cookie.sameSite}`;
222
+ if (cookie.expiry) {
223
+ const date = new Date(cookie.expiry * 1000);
224
+ cookieStr += `; expires=${date.toUTCString()}`;
225
+ }
226
+ await this.driver.executeScript(`document.cookie = ${JSON.stringify(cookieStr)}`);
227
+ }
228
+ }
229
+ normalizeCookie(cookie) {
230
+ return {
231
+ ...cookie,
232
+ value: this.normalizeCookieValue(cookie.value),
233
+ };
234
+ }
235
+ normalizeCookieValue(value) {
236
+ return typeof value === 'string' ? value : value.value;
237
+ }
238
+ async getLocalStorage(origins) {
239
+ const result = {};
240
+ const currentOrigin = await this.driver.executeScript('return location.origin');
241
+ if (!origins || origins.includes(currentOrigin)) {
242
+ const storage = await this.driver.executeScript(`
243
+ const result = {};
244
+ for (let i = 0; i < localStorage.length; i++) {
245
+ const key = localStorage.key(i);
246
+ result[key] = localStorage.getItem(key);
247
+ }
248
+ return result;
249
+ `);
250
+ if (storage && Object.keys(storage).length > 0) {
251
+ result[currentOrigin] = storage;
252
+ }
253
+ }
254
+ return result;
255
+ }
256
+ async getSessionStorage(origins) {
257
+ const result = {};
258
+ const currentOrigin = await this.driver.executeScript('return location.origin');
259
+ if (!origins || origins.includes(currentOrigin)) {
260
+ const storage = await this.driver.executeScript(`
261
+ const result = {};
262
+ for (let i = 0; i < sessionStorage.length; i++) {
263
+ const key = sessionStorage.key(i);
264
+ result[key] = sessionStorage.getItem(key);
265
+ }
266
+ return result;
267
+ `);
268
+ if (storage && Object.keys(storage).length > 0) {
269
+ result[currentOrigin] = storage;
270
+ }
271
+ }
272
+ return result;
273
+ }
274
+ async setLocalStorage(storage) {
275
+ const currentOrigin = await this.driver.executeScript('return location.origin');
276
+ for (const [origin, data] of Object.entries(storage)) {
277
+ if (origin === currentOrigin) {
278
+ for (const [key, value] of Object.entries(data)) {
279
+ await this.driver.executeScript(`localStorage.setItem(${JSON.stringify(key)}, ${JSON.stringify(value)})`);
280
+ }
281
+ }
282
+ // For other origins, we'd need to navigate there first - complex case
283
+ }
284
+ }
285
+ async setSessionStorage(storage) {
286
+ const currentOrigin = await this.driver.executeScript('return location.origin');
287
+ for (const [origin, data] of Object.entries(storage)) {
288
+ if (origin === currentOrigin) {
289
+ for (const [key, value] of Object.entries(data)) {
290
+ await this.driver.executeScript(`sessionStorage.setItem(${JSON.stringify(key)}, ${JSON.stringify(value)})`);
291
+ }
292
+ }
293
+ }
294
+ }
295
+ async getCurrentDomain() {
296
+ return this.driver.executeScript('return location.hostname');
297
+ }
298
+ }
299
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/lib/bidi/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,323 @@
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 RawNetworkCookie {
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 Cookie {
161
+ name: string;
162
+ value: string;
163
+ domain: string;
164
+ path: string;
165
+ size: number;
166
+ httpOnly: boolean;
167
+ secure: boolean;
168
+ sameSite: 'strict' | 'lax' | 'none' | 'default';
169
+ expiry?: number;
170
+ }
171
+ export interface CookieInput {
172
+ name: string;
173
+ value: string | BytesValue;
174
+ domain: string;
175
+ path?: string;
176
+ httpOnly?: boolean;
177
+ secure?: boolean;
178
+ sameSite?: 'strict' | 'lax' | 'none' | 'default';
179
+ expiry?: number;
180
+ }
181
+ export interface NetworkHeader {
182
+ name: string;
183
+ value: BytesValue;
184
+ }
185
+ export interface NetworkRequestData {
186
+ request: NetworkRequest;
187
+ url: string;
188
+ method: string;
189
+ headers: NetworkHeader[];
190
+ cookies: RawNetworkCookie[];
191
+ headersSize: number;
192
+ bodySize: number | null;
193
+ timings?: FetchTimingInfo;
194
+ }
195
+ export interface FetchTimingInfo {
196
+ timeOrigin: number;
197
+ requestTime: number;
198
+ redirectStart: number;
199
+ redirectEnd: number;
200
+ fetchStart: number;
201
+ dnsStart: number;
202
+ dnsEnd: number;
203
+ connectStart: number;
204
+ connectEnd: number;
205
+ tlsStart: number;
206
+ requestStart: number;
207
+ responseStart: number;
208
+ responseEnd: number;
209
+ }
210
+ export interface NetworkResponseData {
211
+ url: string;
212
+ protocol: string;
213
+ status: number;
214
+ statusText: string;
215
+ fromCache: boolean;
216
+ headers: NetworkHeader[];
217
+ mimeType: string;
218
+ bytesReceived: number;
219
+ headersSize: number;
220
+ bodySize: number | null;
221
+ content: {
222
+ size: number;
223
+ };
224
+ }
225
+ export interface NetworkBaseEvent {
226
+ context: BrowsingContext | null;
227
+ isBlocked: boolean;
228
+ navigation: Navigation | null;
229
+ redirectCount: number;
230
+ request: NetworkRequestData;
231
+ timestamp: number;
232
+ intercepts?: NetworkIntercept[];
233
+ }
234
+ export interface NetworkBeforeRequestSentEvent extends NetworkBaseEvent {
235
+ initiator: NetworkInitiator;
236
+ }
237
+ export interface NetworkResponseEvent extends NetworkBaseEvent {
238
+ response: NetworkResponseData;
239
+ }
240
+ export interface NetworkInitiator {
241
+ type?: 'parser' | 'script' | 'preflight' | 'other';
242
+ columnNumber?: number;
243
+ lineNumber?: number;
244
+ stackTrace?: StackTrace;
245
+ request?: NetworkRequest;
246
+ }
247
+ export interface UrlPattern {
248
+ type: 'string' | 'pattern';
249
+ pattern?: string;
250
+ protocol?: string;
251
+ hostname?: string;
252
+ port?: string;
253
+ pathname?: string;
254
+ search?: string;
255
+ }
256
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
257
+ export interface LogEntry {
258
+ level: LogLevel;
259
+ source: LogSource;
260
+ text: string;
261
+ timestamp: number;
262
+ stackTrace?: StackTrace;
263
+ type: 'console' | 'javascript';
264
+ method?: string;
265
+ args?: RemoteValue[];
266
+ }
267
+ export interface LogSource {
268
+ realm: ScriptRealm;
269
+ context?: BrowsingContext;
270
+ }
271
+ export interface CookieFilter {
272
+ name?: string;
273
+ value?: string;
274
+ domain?: string;
275
+ path?: string;
276
+ size?: number;
277
+ httpOnly?: boolean;
278
+ secure?: boolean;
279
+ sameSite?: 'strict' | 'lax' | 'none';
280
+ expiry?: number;
281
+ }
282
+ export interface PartitionDescriptor {
283
+ type: 'context' | 'storageKey';
284
+ context?: BrowsingContext;
285
+ userContext?: string;
286
+ sourceOrigin?: string;
287
+ }
288
+ export interface SetCookieParams {
289
+ cookie: RawPartialCookie;
290
+ partition?: PartitionDescriptor;
291
+ }
292
+ export interface RawPartialCookie {
293
+ name: string;
294
+ value: BytesValue;
295
+ domain: string;
296
+ path?: string;
297
+ httpOnly?: boolean;
298
+ secure?: boolean;
299
+ sameSite?: 'strict' | 'lax' | 'none' | 'default';
300
+ expiry?: number;
301
+ }
302
+ export interface GetCookiesResult {
303
+ cookies: RawNetworkCookie[];
304
+ partitionKey: {
305
+ userContext?: string;
306
+ sourceOrigin?: string;
307
+ };
308
+ }
309
+ export type UserContext = string;
310
+ export interface UserContextInfo {
311
+ userContext: UserContext;
312
+ }
313
+ export interface SubscriptionRequest {
314
+ events: string[];
315
+ contexts?: BrowsingContext[];
316
+ }
317
+ export interface SessionState {
318
+ cookies?: Cookie[];
319
+ localStorage?: Record<string, Record<string, string>>;
320
+ sessionStorage?: Record<string, Record<string, string>>;
321
+ origins?: string[];
322
+ }
323
+ //# 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"}