craftdriver 0.2.1 → 1.0.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 (84) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/dist/lib/bidi/connection.d.ts +1 -1
  3. package/dist/lib/bidi/connection.d.ts.map +1 -1
  4. package/dist/lib/bidi/connection.js +3 -2
  5. package/dist/lib/bidi/connection.js.map +1 -1
  6. package/dist/lib/bidi/index.d.ts +40 -3
  7. package/dist/lib/bidi/index.d.ts.map +1 -1
  8. package/dist/lib/bidi/index.js +55 -18
  9. package/dist/lib/bidi/index.js.map +1 -1
  10. package/dist/lib/bidi/logs.d.ts.map +1 -1
  11. package/dist/lib/bidi/logs.js +7 -2
  12. package/dist/lib/bidi/logs.js.map +1 -1
  13. package/dist/lib/bidi/network.d.ts +9 -0
  14. package/dist/lib/bidi/network.d.ts.map +1 -1
  15. package/dist/lib/bidi/network.js +26 -11
  16. package/dist/lib/bidi/network.js.map +1 -1
  17. package/dist/lib/browser.d.ts +51 -4
  18. package/dist/lib/browser.d.ts.map +1 -1
  19. package/dist/lib/browser.js +215 -66
  20. package/dist/lib/browser.js.map +1 -1
  21. package/dist/lib/browserContext.d.ts +7 -2
  22. package/dist/lib/browserContext.d.ts.map +1 -1
  23. package/dist/lib/browserContext.js +17 -8
  24. package/dist/lib/browserContext.js.map +1 -1
  25. package/dist/lib/builder.d.ts +2 -1
  26. package/dist/lib/builder.d.ts.map +1 -1
  27. package/dist/lib/builder.js +35 -5
  28. package/dist/lib/builder.js.map +1 -1
  29. package/dist/lib/driver.d.ts.map +1 -1
  30. package/dist/lib/driver.js +21 -6
  31. package/dist/lib/driver.js.map +1 -1
  32. package/dist/lib/driverManager.d.ts +6 -0
  33. package/dist/lib/driverManager.d.ts.map +1 -1
  34. package/dist/lib/driverManager.js +97 -22
  35. package/dist/lib/driverManager.js.map +1 -1
  36. package/dist/lib/expect.d.ts.map +1 -1
  37. package/dist/lib/expect.js +91 -229
  38. package/dist/lib/expect.js.map +1 -1
  39. package/dist/lib/firefox.d.ts.map +1 -1
  40. package/dist/lib/firefox.js +2 -1
  41. package/dist/lib/firefox.js.map +1 -1
  42. package/dist/lib/frame.d.ts.map +1 -1
  43. package/dist/lib/frame.js +4 -3
  44. package/dist/lib/frame.js.map +1 -1
  45. package/dist/lib/http.d.ts +7 -0
  46. package/dist/lib/http.d.ts.map +1 -1
  47. package/dist/lib/http.js +37 -0
  48. package/dist/lib/http.js.map +1 -1
  49. package/dist/lib/loadState.d.ts +23 -0
  50. package/dist/lib/loadState.d.ts.map +1 -0
  51. package/dist/lib/loadState.js +25 -0
  52. package/dist/lib/loadState.js.map +1 -0
  53. package/dist/lib/locator.d.ts.map +1 -1
  54. package/dist/lib/locator.js +11 -4
  55. package/dist/lib/locator.js.map +1 -1
  56. package/dist/lib/mouse.d.ts.map +1 -1
  57. package/dist/lib/mouse.js +2 -1
  58. package/dist/lib/mouse.js.map +1 -1
  59. package/dist/lib/page.d.ts +14 -1
  60. package/dist/lib/page.d.ts.map +1 -1
  61. package/dist/lib/page.js +41 -9
  62. package/dist/lib/page.js.map +1 -1
  63. package/dist/lib/service.d.ts +1 -0
  64. package/dist/lib/service.d.ts.map +1 -1
  65. package/dist/lib/service.js +21 -3
  66. package/dist/lib/service.js.map +1 -1
  67. package/dist/lib/timing.d.ts +104 -0
  68. package/dist/lib/timing.d.ts.map +1 -0
  69. package/dist/lib/timing.js +108 -0
  70. package/dist/lib/timing.js.map +1 -0
  71. package/dist/lib/wait.d.ts.map +1 -1
  72. package/dist/lib/wait.js +5 -4
  73. package/dist/lib/wait.js.map +1 -1
  74. package/docs/bidi-features.md +10 -2
  75. package/docs/browser-api.md +2 -1
  76. package/docs/browser-context.md +11 -14
  77. package/docs/dialogs.md +14 -3
  78. package/docs/driver-configuration.md +126 -8
  79. package/docs/emulation.md +8 -4
  80. package/docs/error-codes.md +8 -3
  81. package/docs/keyboard-mouse.md +20 -7
  82. package/docs/session-management.md +1 -1
  83. package/package.json +4 -1
  84. package/skills/craftdriver/SKILL.md +3 -2
@@ -98,22 +98,35 @@ await browser.keyboard.press('Backspace');
98
98
 
99
99
  ## Mouse
100
100
 
101
- Access the mouse API via `browser.mouse`.
101
+ Access the mouse API via `browser.mouse`. `click()`, `move()`, and
102
+ `dragAndDrop()` all accept a `Target`: a CSS selector string, a `By`
103
+ locator, or `{ x, y }` coordinates.
102
104
 
103
- ### click(x, y)
105
+ ### click(target, options?)
104
106
 
105
- Click at specific coordinates.
107
+ Click at coordinates or on an element.
106
108
 
107
109
  ```typescript
108
- await browser.mouse.click(100, 200);
110
+ await browser.mouse.click({ x: 100, y: 200 });
111
+ await browser.mouse.click('#submit');
112
+ await browser.mouse.click('#submit', { button: 'right', clickCount: 2 });
109
113
  ```
110
114
 
111
- ### move(x, y)
115
+ ### dblclick(target, options?)
112
116
 
113
- Move the mouse to coordinates.
117
+ Double-click at coordinates or on an element (shorthand for `click(target, { clickCount: 2 })`).
114
118
 
115
119
  ```typescript
116
- await browser.mouse.move(150, 300);
120
+ await browser.mouse.dblclick('#item');
121
+ ```
122
+
123
+ ### move(target, options?)
124
+
125
+ Move the mouse to coordinates or over an element.
126
+
127
+ ```typescript
128
+ await browser.mouse.move({ x: 150, y: 300 });
129
+ await browser.mouse.move('#target');
117
130
  ```
118
131
 
119
132
  ### down()
@@ -213,7 +213,7 @@ async function testLoginPersistence() {
213
213
  | `includeCookies` | `boolean` | `true` | Include cookies in saved state |
214
214
  | `includeLocalStorage` | `boolean` | `true` | Include localStorage |
215
215
  | `includeSessionStorage` | `boolean` | `false` | Include sessionStorage |
216
- | `origins` | `string[]` | all | Limit to specific origins |
216
+ | `origins` | `string[]` | all | Filter localStorage/sessionStorage capture by origin. Capture is always scoped to the page's *current* origin — this only decides whether that one origin is included, it does not collect storage from other origins the page hasn't visited. Cookies are unaffected by this option. |
217
217
 
218
218
  ### SessionStateManager (browser.storage)
219
219
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "craftdriver",
3
- "version": "0.2.1",
3
+ "version": "1.0.0",
4
4
  "description": "Modern WebDriver automation library for NodeJS",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,6 +17,8 @@
17
17
  "test:firefox": "BROWSER_NAME=firefox HEADLESS=true vitest run --maxWorkers=2",
18
18
  "test:chrome": "BROWSER_NAME=chrome vitest run",
19
19
  "test:chromium": "BROWSER_NAME=chromium vitest run",
20
+ "bench": "HEADLESS=true vitest run --config vitest.perf.config.ts",
21
+ "bench:realapp": "HEADLESS=true vitest run --config vitest.perf.realapp.config.ts",
20
22
  "clean": "rimraf dist",
21
23
  "serve": "http-server ./examples -a 127.0.0.1 -p 8080 -c-1 --cors",
22
24
  "examples:start": "npm run serve",
@@ -87,6 +89,7 @@
87
89
  "overrides": {
88
90
  "brace-expansion": "5.0.6",
89
91
  "ip-address": "10.1.1",
92
+ "npm": "^11.18.0",
90
93
  "undici": "7.28.0"
91
94
  }
92
95
  }
@@ -1,7 +1,8 @@
1
1
  # craftdriver — SKILL
2
2
 
3
- Modern BiDi-first WebDriver library for Node.js. Playwright ergonomics,
4
- WebDriver standards-compliance, no AI in the hot path.
3
+ Modern WebDriver library for Node.js picks the fastest correct protocol
4
+ (Classic or BiDi) per command. Playwright ergonomics, WebDriver
5
+ standards-compliance, no AI in the hot path.
5
6
 
6
7
  ## Core loop
7
8