craftdriver 1.4.0 → 1.6.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/CHANGELOG.md +17 -3
- package/README.md +6 -2
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +4 -0
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/mcp/server.d.ts.map +1 -1
- package/dist/cli/mcp/server.js +4 -0
- package/dist/cli/mcp/server.js.map +1 -1
- package/dist/cli/parseArgs.d.ts +2 -2
- package/dist/cli/parseArgs.d.ts.map +1 -1
- package/dist/cli/parseArgs.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/bidi/storage.d.ts +13 -0
- package/dist/lib/bidi/storage.d.ts.map +1 -1
- package/dist/lib/bidi/storage.js +81 -32
- package/dist/lib/bidi/storage.js.map +1 -1
- package/dist/lib/browser.d.ts +48 -3
- package/dist/lib/browser.d.ts.map +1 -1
- package/dist/lib/browser.js +212 -86
- package/dist/lib/browser.js.map +1 -1
- package/dist/lib/browserContext.d.ts +2 -2
- package/dist/lib/browserContext.d.ts.map +1 -1
- package/dist/lib/browserContext.js +1 -1
- package/dist/lib/builder.d.ts +16 -2
- package/dist/lib/builder.d.ts.map +1 -1
- package/dist/lib/builder.js +46 -2
- package/dist/lib/builder.js.map +1 -1
- package/dist/lib/capabilities.d.ts +20 -2
- package/dist/lib/capabilities.d.ts.map +1 -1
- package/dist/lib/capabilities.js +109 -48
- package/dist/lib/capabilities.js.map +1 -1
- package/dist/lib/driver.d.ts +33 -2
- package/dist/lib/driver.d.ts.map +1 -1
- package/dist/lib/driver.js +91 -2
- package/dist/lib/driver.js.map +1 -1
- package/dist/lib/driverManager.d.ts +28 -0
- package/dist/lib/driverManager.d.ts.map +1 -1
- package/dist/lib/driverManager.js +60 -0
- package/dist/lib/driverManager.js.map +1 -1
- package/dist/lib/elementHandle.d.ts.map +1 -1
- package/dist/lib/elementHandle.js +34 -0
- package/dist/lib/elementHandle.js.map +1 -1
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +31 -10
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/launchTarget.d.ts +22 -3
- package/dist/lib/launchTarget.d.ts.map +1 -1
- package/dist/lib/launchTarget.js +159 -9
- package/dist/lib/launchTarget.js.map +1 -1
- package/dist/lib/remote.d.ts +55 -0
- package/dist/lib/remote.d.ts.map +1 -0
- package/dist/lib/remote.js +127 -0
- package/dist/lib/remote.js.map +1 -0
- package/dist/lib/safari.d.ts +90 -0
- package/dist/lib/safari.d.ts.map +1 -0
- package/dist/lib/safari.js +136 -0
- package/dist/lib/safari.js.map +1 -0
- package/dist/lib/tracing.d.ts +1 -1
- package/dist/lib/tracing.d.ts.map +1 -1
- package/dist/lib/tracing.js.map +1 -1
- package/dist/lib/types.d.ts +63 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/vibiumTrace.d.ts +1 -1
- package/dist/lib/vibiumTrace.d.ts.map +1 -1
- package/dist/lib/webelement.d.ts.map +1 -1
- package/dist/lib/webelement.js +118 -2
- package/dist/lib/webelement.js.map +1 -1
- package/docs/api-reference.md +6 -2
- package/docs/browser-api.md +5 -4
- package/docs/driver-configuration.md +60 -0
- package/docs/getting-started.md +30 -10
- package/docs/index.md +2 -1
- package/docs/keyboard-mouse.md +7 -5
- package/docs/public/examples/displayed.html +86 -0
- package/docs/recipes/run-on-browserstack.md +265 -0
- package/docs/recipes.md +15 -1
- package/docs/remote-webdriver.md +308 -0
- package/docs/safari.md +118 -0
- package/docs/standards.md +18 -0
- package/docs/why-craftdriver.md +3 -1
- package/docs/zero-config-drivers.md +12 -0
- package/package.json +5 -1
- package/skills/craftdriver/SKILL.md +4 -1
- package/skills/craftdriver/cheatsheet.md +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [1.6.0](https://github.com/dtopuzov/craftdriver/compare/v1.5.0...v1.6.0) (2026-07-16)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* add remote WebDriver support (Selenium Grid, BrowserStack) ([3941250](https://github.com/dtopuzov/craftdriver/commit/3941250fbae8fcbcc64b51ec7fa25a3cc2c2b3f0))
|
|
7
|
+
|
|
8
|
+
# [1.5.0](https://github.com/dtopuzov/craftdriver/compare/v1.4.0...v1.5.0) (2026-07-14)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* add desktop Safari support ([9fa9310](https://github.com/dtopuzov/craftdriver/commit/9fa93106346783339e8f0ab9d213f592649f4ff5))
|
|
14
|
+
|
|
1
15
|
# [1.4.0](https://github.com/dtopuzov/craftdriver/compare/v1.3.0...v1.4.0) (2026-07-12)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -198,11 +212,11 @@ Fixes: https://github.com/dtopuzov/craftdriver/issues/20
|
|
|
198
212
|
- fix(browser-context): `browser.contexts()`, `browser.defaultContext`, and `browser.newContext()` now share a single cached `BrowserContext` instance per BiDi user-context id, evicted on context close. Previously `browser.contexts()` minted a fresh wrapper every call, silently losing every `on()` listener, `addInitScript`, and `route()` registration attached to a sibling instance. [src/lib/browser.ts](src/lib/browser.ts).
|
|
199
213
|
- chore(browser-context): internal cleanup pass — dropped dead state (`_routeIds`, `_tracking`), parallelized per-page intercept registration in `ctx.route()`, fixed stale jsdoc on `ctx.route()` and `ctx.on()`, and trimmed `docs/browser-context.md` to remove the obsolete "no `storageState` round-trip" callout and a duplicated multi-user-login example. Added a "Scope and precedence (gotchas)" section documenting the `storageState` coverage (cookies + localStorage only — not sessionStorage / IndexedDB), Browser-vs-Context emulation precedence, the service-worker scope of `ctx.route()`, and the non-transactional shape of `grantPermissions`. [docs/browser-context.md](docs/browser-context.md).
|
|
200
214
|
|
|
201
|
-
- feat: `BrowserContext` identity & device emulation
|
|
215
|
+
- feat: `BrowserContext` identity & device emulation — tight, capability-gated slice. New `browser.newContext({ locale, timezoneId, geolocation })` options plus live setters `ctx.setLocale(locale | null)`, `ctx.setTimezone(timezoneId | null)`, `ctx.setGeolocation(coords | null)`, `ctx.grantPermissions(names, { origin, state? })`, and `ctx.clearPermissions(names, { origin })`. All five are scoped via BiDi `userContexts: [<id>]` / `userContext` so future pages (and popups) inherit automatically with no per-page plumbing. `locale`, `timezoneId`, and `grantPermissions` work on Chrome **and** Firefox; `setGeolocation` is reliable on Chrome and wraps the BiDi error with the engine name on Firefox where coverage is still uneven. A default `browser.newContext()` (no options) remains cross-browser. Out-of-scope by design: per-context `viewport` / `colorScheme` / `reducedMotion` / `userAgent` — those still need either CDP (Chromium-only) or BiDi primitives that aren't broadly shipped. See [docs/browser-context.md](docs/browser-context.md), tests in [tests/browser-context-emulation.test.ts](tests/browser-context-emulation.test.ts).
|
|
202
216
|
|
|
203
|
-
- feat: `BrowserContext` page-scoped hooks & routing
|
|
217
|
+
- feat: `BrowserContext` page-scoped hooks & routing — `ctx.on('page' | 'close', listener)` / `ctx.off(...)` for tab-and-popup observation across every page in a context, `ctx.addInitScript(script)` returning an `InitScriptHandle` with `.id` + `.remove()` (and matching `ctx.removeInitScript(id)`) for per-context preload scripts that don't leak to sibling contexts, `ctx.route(pattern, handler)` / `ctx.unroute(id?)` for context-scoped request mocking (URL substring, `RegExp`, or `**`-aware glob; the handler receives `{ request, fulfill, continue, abort }`), `ctx.setExtraHTTPHeaders(headers)` to swap the per-context header bag at runtime, plus `browser.newContext({ baseURL, extraHTTPHeaders })` options so `ctx.newPage({ url: '/login' })` resolves against the context's base URL and every outbound request carries the configured headers. Adds `page.context()` so a `Page` can reach back to its owning `BrowserContext`. Routes are registered per BiDi browsing context (and re-registered on every new page), which is what makes Firefox honour them under a non-default `userContext`. Works on Chrome **and** Firefox via BiDi. New exported types `BrowserContextConfig`, `BrowserContextHooks`, `InitScriptHandle`, `RoutePattern`. See [docs/browser-context.md](docs/browser-context.md), tests in [tests/browser-context-hooks.test.ts](tests/browser-context-hooks.test.ts).
|
|
204
218
|
|
|
205
|
-
- feat: `BrowserContext` cookies + storage state
|
|
219
|
+
- feat: `BrowserContext` cookies + storage state — `ctx.cookies(urls?)`, `ctx.addCookies(cookies)`, `ctx.clearCookies(filter?)`, `ctx.storageState(opts?)`, `ctx.saveStorageState(path, opts?)`, `ctx.loadStorageState(source)`, and `browser.newContext({ storageState })`. All operations are scoped to the user context via the BiDi `storageKey` partition; localStorage is restored on first navigation through an internal preload script bound to the user context. Enables the auth-fixture pattern (log in once, save to JSON, reuse across tests) and proper multi-user isolation. Works on Chrome **and** Firefox. New exported types `ClearCookiesFilter`, `ContextStorageStateOptions`. See [docs/browser-context.md](docs/browser-context.md), tests in [tests/browser-context-storage.test.ts](tests/browser-context-storage.test.ts).
|
|
206
220
|
|
|
207
221
|
- chore(tests): drop the `bidi-` filename prefix on the four BiDi-specific test files (`bidi-network` → `network`, `bidi-logs` → `logs`, `bidi-load-state` → `load-state`, `bidi-storage` → `storage`). The prefix dates back to when those were the only BiDi tests; today most tests are BiDi-only (BiDi is default-on) and the inconsistent prefix actively misled readers. BiDi-ness is now treated as an implementation detail of the feature, not a test category. Renamed via `git mv` so blame survives. Updated [.github/instructions/tests.instructions.md](.github/instructions/tests.instructions.md) accordingly. Also renamed the non-test helper `tests/auto-trace.ts` → `tests/_auto-trace.ts` so it sorts to the top of the directory and reads as "not a test" at a glance.
|
|
208
222
|
- test: smoke tests for the MCP server in [tests/mcp-smoke.test.ts](tests/mcp-smoke.test.ts) — spawn `node bin/craftdriver.mjs mcp` as a child process, speak JSON-RPC 2.0 over its stdio (no LLM required — MCP is a deterministic protocol), and assert on the protocol surface. Three cases: `tools/list` returns the 14 documented tools by name, `browser_navigate` + `browser_snapshot` against [examples/login.html](examples/login.html) yields refs for the known form controls, and `browser_click` on a missing selector returns `isError: true` with a stable `structuredContent.error.code`.
|
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ CraftDriver is for writing boringly reliable automation against real browsers, w
|
|
|
16
16
|
## Why CraftDriver?
|
|
17
17
|
|
|
18
18
|
- 🍺 **Focused Node.js API** - browser automation without a giant framework around it.
|
|
19
|
-
- 🧭 **Real browsers** - drives installed Chrome, Chromium, and Firefox instead of patched browser engine builds.
|
|
19
|
+
- 🧭 **Real browsers** - drives installed Chrome, Chromium, and Firefox instead of patched browser engine builds, plus real [Safari on macOS](https://dtopuzov.github.io/craftdriver/safari).
|
|
20
20
|
- 🌐 **Standards that age well** - W3C WebDriver standards stay stable while browser-private protocols change.
|
|
21
21
|
- 🚦 **Readable, auto-waited flows** - role, label, text, test id, CSS, XPath, click, fill, and expect.
|
|
22
22
|
- 📡 **Network control** - mock, block, intercept, and wait for browser requests and responses.
|
|
@@ -24,6 +24,8 @@ CraftDriver is for writing boringly reliable automation against real browsers, w
|
|
|
24
24
|
- ⏱️ **Virtual clock** - freeze or fast-forward `Date`, timers, and time-sensitive UI.
|
|
25
25
|
- ♿ **Accessibility audits** - run axe-core checks on pages, elements, and locators.
|
|
26
26
|
- 🧾 **Trace evidence** - capture actions, console output, errors, network events, and screenshots.
|
|
27
|
+
- ⚛️ **Electron apps** - drive packaged Electron desktop app renderers, matched to the app's bundled Chromium.
|
|
28
|
+
- ☁️ **Remote WebDriver** - use the Browser API with a self-hosted Selenium Grid or a cloud provider like [BrowserStack](https://www.browserstack.com/).
|
|
27
29
|
- 🤖 **Agent-friendly** - CLI, MCP, and assistant rules when coding agents need the browser.
|
|
28
30
|
|
|
29
31
|
## Choose Your Path
|
|
@@ -99,7 +101,6 @@ await browser.a11y.check();
|
|
|
99
101
|
| -------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
100
102
|
| Getting started | Install, launch a browser, write the first test | [Getting started](https://dtopuzov.github.io/craftdriver/getting-started) |
|
|
101
103
|
| Driver management | Zero-config driver resolution, cache behavior, env vars, offline mode | [Driver configuration](https://dtopuzov.github.io/craftdriver/driver-configuration) |
|
|
102
|
-
| Electron apps | Drive packaged Electron renderers with a version-pinned chromedriver | [Electron apps](https://dtopuzov.github.io/craftdriver/electron) |
|
|
103
104
|
| Browser control | Navigation, tabs, popups, iframes, content helpers, evaluate, init scripts | [Browser API](https://dtopuzov.github.io/craftdriver/browser-api) |
|
|
104
105
|
| Locators | CSS, XPath, text, role, label, test id, and composable `locator()` chains | [Selectors](https://dtopuzov.github.io/craftdriver/selectors) |
|
|
105
106
|
| Element actions | Click, fill, upload, inspect, and interact through element handles | [Element API](https://dtopuzov.github.io/craftdriver/element-api) |
|
|
@@ -115,6 +116,9 @@ await browser.a11y.check();
|
|
|
115
116
|
| Tracing | Crash-resilient NDJSON plus Vibium Player compatible trace zips | [Tracing](https://dtopuzov.github.io/craftdriver/tracing) |
|
|
116
117
|
| Accessibility | Built-in axe-core audits for page, element, and locator scopes | [Accessibility](https://dtopuzov.github.io/craftdriver/accessibility) |
|
|
117
118
|
| Virtual time | Fake `Date`, `setTimeout`, and `setInterval` for time-sensitive flows | [Virtual clock](https://dtopuzov.github.io/craftdriver/clock) |
|
|
119
|
+
| Electron apps | Drive packaged Electron renderers with a version-pinned chromedriver | [Electron apps](https://dtopuzov.github.io/craftdriver/electron) |
|
|
120
|
+
| Safari (macOS) | Real desktop Safari via WebDriver Classic — enable once with `safaridriver --enable` | [Safari](https://dtopuzov.github.io/craftdriver/safari) |
|
|
121
|
+
| Remote WebDriver | Run on a self-hosted Selenium Grid or a cloud provider like BrowserStack | [Remote WebDriver](https://dtopuzov.github.io/craftdriver/remote-webdriver) |
|
|
118
122
|
| AI agents | CLI, MCP server, assistant bootstrap, packaged skill files | [AI agent guide](https://dtopuzov.github.io/craftdriver/agents) |
|
|
119
123
|
|
|
120
124
|
## Links
|
package/dist/cli/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOvD,UAAU,aAAa;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGlE;AAUD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAc5H"}
|
package/dist/cli/daemon.js
CHANGED
|
@@ -14,10 +14,14 @@ import net from 'net';
|
|
|
14
14
|
import fs from 'fs';
|
|
15
15
|
import path from 'path';
|
|
16
16
|
import { Browser } from '../lib/browser.js';
|
|
17
|
+
import { assertLocalOnlyLaunch } from '../lib/launchTarget.js';
|
|
17
18
|
import { CraftdriverError, ErrorCode } from '../lib/errors.js';
|
|
18
19
|
import { DAEMON_SOCKET_PATH, DAEMON_PID_PATH } from './defaults.js';
|
|
19
20
|
import { createBrowserHandle, dispatch } from './dispatcher.js';
|
|
20
21
|
export async function runDaemon(opts) {
|
|
22
|
+
// The daemon is a local dev tool only — never reachable against a
|
|
23
|
+
// Grid/cloud. Fail fast at startup, not on first browser use.
|
|
24
|
+
assertLocalOnlyLaunch(opts.launch);
|
|
21
25
|
const socketPath = opts.socketPath ?? DAEMON_SOCKET_PATH;
|
|
22
26
|
const pidPath = opts.pidPath ?? DAEMON_PID_PATH;
|
|
23
27
|
await fs.promises.mkdir(path.dirname(socketPath), { recursive: true });
|
package/dist/cli/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkDnE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,wGAAwG;IACxG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+FAA+F;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwHxE"}
|
package/dist/cli/mcp/server.js
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* stdin EOF (or SIGINT/SIGTERM) → close browser, exit 0
|
|
18
18
|
*/
|
|
19
19
|
import { Browser } from '../../lib/browser.js';
|
|
20
|
+
import { assertLocalOnlyLaunch } from '../../lib/launchTarget.js';
|
|
20
21
|
import { CraftdriverError, ErrorCode } from '../../lib/errors.js';
|
|
21
22
|
import { createBrowserHandle } from '../dispatcher.js';
|
|
22
23
|
import { TOOLS, getTool, runTool } from './tools.js';
|
|
@@ -26,6 +27,9 @@ const PROTOCOL_VERSION = '2024-11-05';
|
|
|
26
27
|
const SERVER_NAME = 'craftdriver';
|
|
27
28
|
const SERVER_VERSION = '0.1.0';
|
|
28
29
|
export async function runMcpServer(opts) {
|
|
30
|
+
// The MCP server is a local dev tool only — never reachable against a
|
|
31
|
+
// Grid/cloud. Fail fast at startup, not on first browser use.
|
|
32
|
+
assertLocalOnlyLaunch(opts.launch);
|
|
29
33
|
const input = opts.input ?? process.stdin;
|
|
30
34
|
const output = opts.output ?? process.stdout;
|
|
31
35
|
const handle = createBrowserHandle(() => Browser.launch(opts.launch));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/parseArgs.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* --pretty force pretty output even when piped
|
|
10
10
|
* --explain include one-line BiDi step log (placeholder)
|
|
11
11
|
* --headless / --headed launch option (only honoured for ephemeral / first daemon start)
|
|
12
|
-
* --browser <name> chrome|chromium|firefox
|
|
12
|
+
* --browser <name> chrome|chromium|firefox|safari
|
|
13
13
|
* --ephemeral run from stdin, don't talk to daemon
|
|
14
14
|
*
|
|
15
15
|
* Returns `null` when the user only asked for help / version.
|
|
@@ -32,6 +32,6 @@ export interface ParsedCommand {
|
|
|
32
32
|
args: Record<string, unknown>;
|
|
33
33
|
flags: GlobalFlags;
|
|
34
34
|
}
|
|
35
|
-
export declare const HELP_TEXT = "craftdriver \u2014 agent-first WebDriver CLI\n\nUSAGE\n craftdriver <command> [args...] [flags]\n\nCOMMON COMMANDS\n go <url> navigate the active page\n find <selector> [--all] [--limit N] [--offset M]\n click <selector>\n fill <selector> <value>\n press <key> [selector]\n hover <selector>\n text [selector] [--limit N]\n attr <selector> <name>\n value <selector>\n is visible|enabled|checked <selector>\n wait <selector> [--state visible|hidden|attached|detached] [--timeout ms]\n wait load [--state load|domcontentloaded|networkidle]\n exists <selector> 0-wait probe; exit 0 if any match\n pages list open pages\n snapshot sanitized DOM summary with refs\n (use ref=eN as a selector)\n screenshot [-o file.png] [--full-page] [--selector S]\n eval <js> advanced; evaluate JS on active page\n back | forward | reload | status | quit\n\nDAEMON\n daemon start launch background browser (Unix socket)\n daemon status PID, browser, active page URL\n daemon stop graceful shutdown\n\nINIT (agent guide files for the current project)\n init <flavor> [--force] [--dry-run]\n flavors: agents | copilot | claude | cursor | gemini | all\n writes a short rules file under the path each tool expects:\n agents \u2192 AGENTS.md\n copilot \u2192 .github/copilot-instructions.md\n claude \u2192 CLAUDE.md\n cursor \u2192 .cursor/rules/craftdriver.mdc\n gemini \u2192 GEMINI.md\n all \u2192 every file above\n\nMCP SERVER (for hosted / sandboxed AI agents)\n mcp speak Model Context Protocol on stdio\n install snippet (Claude Code):\n claude mcp add craftdriver -- npx -y craftdriver mcp\n install snippet (Cursor / Windsurf / Zed):\n { \"mcpServers\": { \"craftdriver\": {\n \"command\": \"npx\", \"args\": [\"-y\", \"craftdriver\", \"mcp\"] } } }\n\nEPHEMERAL MODE (sandboxed agents)\n craftdriver --ephemeral < script.txt\n (one command per line; same syntax as on the CLI)\n\nSELECTOR SYNTAX\n CSS by default. Prefix to switch kind:\n role=button[name=Submit] text=Sign In label=Email\n placeholder=Search\u2026 testid=login-btn xpath=//div[1]\n\nFLAGS\n --timeout <ms> per-call timeout (default 5000ms)\n --json | --pretty force output format\n --headless / --headed override headless mode (first launch only)\n --browser <chrome|chromium|firefox>\n --ephemeral no daemon; read commands from stdin\n\nEXIT CODES\n 0 success 1 assertion/timeout/no-match 2 usage error\n";
|
|
35
|
+
export declare const HELP_TEXT = "craftdriver \u2014 agent-first WebDriver CLI\n\nUSAGE\n craftdriver <command> [args...] [flags]\n\nCOMMON COMMANDS\n go <url> navigate the active page\n find <selector> [--all] [--limit N] [--offset M]\n click <selector>\n fill <selector> <value>\n press <key> [selector]\n hover <selector>\n text [selector] [--limit N]\n attr <selector> <name>\n value <selector>\n is visible|enabled|checked <selector>\n wait <selector> [--state visible|hidden|attached|detached] [--timeout ms]\n wait load [--state load|domcontentloaded|networkidle]\n exists <selector> 0-wait probe; exit 0 if any match\n pages list open pages\n snapshot sanitized DOM summary with refs\n (use ref=eN as a selector)\n screenshot [-o file.png] [--full-page] [--selector S]\n eval <js> advanced; evaluate JS on active page\n back | forward | reload | status | quit\n\nDAEMON\n daemon start launch background browser (Unix socket)\n daemon status PID, browser, active page URL\n daemon stop graceful shutdown\n\nINIT (agent guide files for the current project)\n init <flavor> [--force] [--dry-run]\n flavors: agents | copilot | claude | cursor | gemini | all\n writes a short rules file under the path each tool expects:\n agents \u2192 AGENTS.md\n copilot \u2192 .github/copilot-instructions.md\n claude \u2192 CLAUDE.md\n cursor \u2192 .cursor/rules/craftdriver.mdc\n gemini \u2192 GEMINI.md\n all \u2192 every file above\n\nMCP SERVER (for hosted / sandboxed AI agents)\n mcp speak Model Context Protocol on stdio\n install snippet (Claude Code):\n claude mcp add craftdriver -- npx -y craftdriver mcp\n install snippet (Cursor / Windsurf / Zed):\n { \"mcpServers\": { \"craftdriver\": {\n \"command\": \"npx\", \"args\": [\"-y\", \"craftdriver\", \"mcp\"] } } }\n\nEPHEMERAL MODE (sandboxed agents)\n craftdriver --ephemeral < script.txt\n (one command per line; same syntax as on the CLI)\n\nSELECTOR SYNTAX\n CSS by default. Prefix to switch kind:\n role=button[name=Submit] text=Sign In label=Email\n placeholder=Search\u2026 testid=login-btn xpath=//div[1]\n\nFLAGS\n --timeout <ms> per-call timeout (default 5000ms)\n --json | --pretty force output format\n --headless / --headed override headless mode (first launch only)\n --browser <chrome|chromium|firefox|safari>\n --ephemeral no daemon; read commands from stdin\n\nEXIT CODES\n 0 success 1 assertion/timeout/no-match 2 usage error\n";
|
|
36
36
|
export declare function parseArgv(argv: string[]): ParsedCommand | null;
|
|
37
37
|
//# sourceMappingURL=parseArgs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseArgs.d.ts","sourceRoot":"","sources":["../../src/cli/parseArgs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"parseArgs.d.ts","sourceRoot":"","sources":["../../src/cli/parseArgs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,kwFAoErB,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,CA2I9D"}
|
package/dist/cli/parseArgs.js
CHANGED
|
@@ -61,7 +61,7 @@ FLAGS
|
|
|
61
61
|
--timeout <ms> per-call timeout (default ${5000}ms)
|
|
62
62
|
--json | --pretty force output format
|
|
63
63
|
--headless / --headed override headless mode (first launch only)
|
|
64
|
-
--browser <chrome|chromium|firefox>
|
|
64
|
+
--browser <chrome|chromium|firefox|safari>
|
|
65
65
|
--ephemeral no daemon; read commands from stdin
|
|
66
66
|
|
|
67
67
|
EXIT CODES
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { CraftdriverError, ErrorCode, type ErrorCodeName, type ErrorCodeValue, type CraftdriverErrorOptions, } from './lib/errors.js';
|
|
2
2
|
export { Browser, devices, type LaunchOptions, type LoadState, type Dialog, type DialogType, type MobileEmulation, type DeviceMetrics, type DeviceName, type Download, type EmulateOptions, type ElectronLaunchOptions, type PageMatcher, } from './lib/browser.js';
|
|
3
|
+
export { type RemoteWebDriverOptions, type RemoteAuth } from './lib/remote.js';
|
|
3
4
|
export { Key } from './lib/keys.js';
|
|
4
5
|
export { By } from './lib/by.js';
|
|
5
6
|
export { Locator } from './lib/locator.js';
|
|
@@ -13,6 +14,7 @@ export { NetworkInterceptor, LogMonitor, SessionStateManager, type Cookie, type
|
|
|
13
14
|
export { ChromeService, type ChromeServiceOptions } from './lib/chrome.js';
|
|
14
15
|
export { ElectronService, type ElectronServiceOptions } from './lib/electron.js';
|
|
15
16
|
export { FirefoxService, type FirefoxServiceOptions } from './lib/firefox.js';
|
|
17
|
+
export { SafariService, type SafariServiceOptions } from './lib/safari.js';
|
|
16
18
|
export { ElectronRemote, type MainProcessCallback, type ElectronRemoteOptions, type ElectronMainConnectInfo, } from './lib/electronRemote.js';
|
|
17
19
|
export { type ElectronDialogMock, type ElectronDialogMethod, type ElectronDialogCall, type ElectronDialogResult, type ElectronOpenDialogResult, type ElectronSaveDialogResult, type ElectronMessageBoxResult, } from './lib/electronDialogMock.js';
|
|
18
20
|
export { type ElectronMock, type ElectronMockCall } from './lib/electronMock.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EACP,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EACL,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export { NetworkInterceptor, LogMonitor, SessionStateManager, } from './lib/bidi
|
|
|
15
15
|
export { ChromeService } from './lib/chrome.js';
|
|
16
16
|
export { ElectronService } from './lib/electron.js';
|
|
17
17
|
export { FirefoxService } from './lib/firefox.js';
|
|
18
|
+
export { SafariService } from './lib/safari.js';
|
|
18
19
|
// Electron main-process access (browser.electron)
|
|
19
20
|
export { ElectronRemote, } from './lib/electronRemote.js';
|
|
20
21
|
export { ElectronMainLogMonitor, } from './lib/electronMainLogs.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EACL,gBAAgB,EAChB,SAAS,GAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EACP,OAAO,GAYR,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EACL,gBAAgB,EAChB,SAAS,GAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EACP,OAAO,GAYR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EACL,cAAc,GAOf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAQvC,+DAA+D;AAC/D,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,mBAAmB,GAWpB,MAAM,qBAAqB,CAAC;AAE7B,0EAA0E;AAC1E,OAAO,EAAE,aAAa,EAA6B,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAA+B,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,cAAc,EAA8B,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAA6B,MAAM,iBAAiB,CAAC;AAE3E,kDAAkD;AAClD,OAAO,EACL,cAAc,GAIf,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EACL,sBAAsB,GAIvB,MAAM,2BAA2B,CAAC;AAEnC,wBAAwB;AACxB,OAAO,EACL,KAAK,GAGN,MAAM,gBAAgB,CAAC;AAExB,4EAA4E;AAC5E,OAAO,EACL,IAAI,EACJ,SAAS,GAMV,MAAM,eAAe,CAAC"}
|
|
@@ -70,8 +70,21 @@ export declare class SessionStateManager {
|
|
|
70
70
|
}): Promise<void>;
|
|
71
71
|
private getCookiesBiDi;
|
|
72
72
|
private getCookiesClassic;
|
|
73
|
+
/**
|
|
74
|
+
* Map a W3C Classic cookie object onto the `Cookie` shape this module's
|
|
75
|
+
* callers expect. The Classic endpoint carries no `size`, so we compute it
|
|
76
|
+
* the same way the old JS-based path did — `(name + value).length` — to keep
|
|
77
|
+
* the return shape backward compatible.
|
|
78
|
+
*/
|
|
79
|
+
private classicCookieToCookie;
|
|
73
80
|
private setCookiesBiDi;
|
|
74
81
|
private setCookiesClassic;
|
|
82
|
+
/**
|
|
83
|
+
* Convert this module's lowercase sameSite (`strict`/`lax`/`none`/`default`)
|
|
84
|
+
* to the W3C Classic capitalized form. `default`/undefined is dropped so the
|
|
85
|
+
* driver applies the browser's own default.
|
|
86
|
+
*/
|
|
87
|
+
private toClassicSameSite;
|
|
75
88
|
private normalizeCookie;
|
|
76
89
|
private normalizeCookieValue;
|
|
77
90
|
private getLocalStorage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/lib/bidi/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/lib/bidi/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EACV,eAAe,EACf,MAAM,EACN,WAAW,EACX,YAAY,EAKb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAkB;gBAEtB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe;IAMxF;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IAMvF;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IA6BxE;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBlD;;OAEG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOhF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE;;OAEG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9E;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;QACrC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsBH,cAAc;YAgBd,iBAAiB;IAQ/B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;YAqBf,cAAc;YAiCd,iBAAiB;IAqC/B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,oBAAoB;YAId,eAAe;YAuBf,iBAAiB;YAuBjB,eAAe;YAef,iBAAiB;YAcjB,gBAAgB;CAG/B"}
|
package/dist/lib/bidi/storage.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Playwright-style session persistence - save login state, cookies, localStorage
|
|
4
4
|
*/
|
|
5
5
|
import fs from 'fs/promises';
|
|
6
|
+
import { CraftdriverError, ErrorCode } from '../errors.js';
|
|
6
7
|
export class SessionStateManager {
|
|
7
8
|
connection;
|
|
8
9
|
driver;
|
|
@@ -106,14 +107,20 @@ export class SessionStateManager {
|
|
|
106
107
|
});
|
|
107
108
|
}
|
|
108
109
|
else {
|
|
109
|
-
// Classic WebDriver
|
|
110
|
+
// Classic WebDriver — delete cookies via the native cookie store, which
|
|
111
|
+
// (unlike `document.cookie = "...expires=..."`) can also remove HttpOnly
|
|
112
|
+
// cookies. No filter → clear everything in one call.
|
|
113
|
+
if (!filter?.domain && !filter?.name) {
|
|
114
|
+
await this.driver.deleteAllCookies();
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
110
117
|
const cookies = await this.getCookiesClassic();
|
|
111
118
|
for (const cookie of cookies) {
|
|
112
119
|
if (filter?.domain && cookie.domain !== filter.domain)
|
|
113
120
|
continue;
|
|
114
121
|
if (filter?.name && cookie.name !== filter.name)
|
|
115
122
|
continue;
|
|
116
|
-
await this.driver.
|
|
123
|
+
await this.driver.deleteCookie(cookie.name);
|
|
117
124
|
}
|
|
118
125
|
}
|
|
119
126
|
}
|
|
@@ -149,22 +156,26 @@ export class SessionStateManager {
|
|
|
149
156
|
return result.cookies.map((cookie) => this.normalizeCookie(cookie));
|
|
150
157
|
}
|
|
151
158
|
async getCookiesClassic() {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
159
|
+
// Read from the browser's native cookie store via the W3C Classic cookie
|
|
160
|
+
// endpoint (not `document.cookie`), so HttpOnly cookies are included and
|
|
161
|
+
// secure/sameSite/path/expiry reflect the real stored values.
|
|
162
|
+
const cookies = await this.driver.getCookies();
|
|
163
|
+
return (cookies || []).map((c) => this.classicCookieToCookie(c));
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Map a W3C Classic cookie object onto the `Cookie` shape this module's
|
|
167
|
+
* callers expect. The Classic endpoint carries no `size`, so we compute it
|
|
168
|
+
* the same way the old JS-based path did — `(name + value).length` — to keep
|
|
169
|
+
* the return shape backward compatible.
|
|
170
|
+
*/
|
|
171
|
+
classicCookieToCookie(c) {
|
|
172
|
+
const raw = (c.sameSite || '').toLowerCase();
|
|
173
|
+
const sameSite = raw === 'strict' || raw === 'lax' || raw === 'none'
|
|
174
|
+
? raw
|
|
175
|
+
: c.sameSite
|
|
176
|
+
? 'default'
|
|
177
|
+
: 'lax';
|
|
155
178
|
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
179
|
name: c.name,
|
|
169
180
|
value: c.value,
|
|
170
181
|
domain: c.domain,
|
|
@@ -172,9 +183,9 @@ export class SessionStateManager {
|
|
|
172
183
|
size: (c.name + c.value).length,
|
|
173
184
|
httpOnly: c.httpOnly ?? false,
|
|
174
185
|
secure: c.secure ?? false,
|
|
175
|
-
sameSite
|
|
186
|
+
sameSite,
|
|
176
187
|
expiry: c.expiry,
|
|
177
|
-
}
|
|
188
|
+
};
|
|
178
189
|
}
|
|
179
190
|
async setCookiesBiDi(cookies) {
|
|
180
191
|
for (const cookie of cookies) {
|
|
@@ -209,21 +220,59 @@ export class SessionStateManager {
|
|
|
209
220
|
}
|
|
210
221
|
async setCookiesClassic(cookies) {
|
|
211
222
|
for (const cookie of cookies) {
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
223
|
+
const input = {
|
|
224
|
+
name: cookie.name,
|
|
225
|
+
value: this.normalizeCookieValue(cookie.value),
|
|
226
|
+
};
|
|
216
227
|
if (cookie.domain)
|
|
217
|
-
|
|
218
|
-
if (cookie.
|
|
219
|
-
|
|
220
|
-
if (cookie.
|
|
221
|
-
|
|
222
|
-
if (cookie.
|
|
223
|
-
|
|
224
|
-
|
|
228
|
+
input.domain = cookie.domain;
|
|
229
|
+
if (cookie.path)
|
|
230
|
+
input.path = cookie.path;
|
|
231
|
+
if (cookie.secure !== undefined)
|
|
232
|
+
input.secure = cookie.secure;
|
|
233
|
+
if (cookie.httpOnly !== undefined)
|
|
234
|
+
input.httpOnly = cookie.httpOnly;
|
|
235
|
+
if (cookie.expiry !== undefined)
|
|
236
|
+
input.expiry = cookie.expiry;
|
|
237
|
+
const sameSite = this.toClassicSameSite(cookie.sameSite);
|
|
238
|
+
if (sameSite)
|
|
239
|
+
input.sameSite = sameSite;
|
|
240
|
+
// Native `POST /cookie` — sets HttpOnly and the real sameSite/secure
|
|
241
|
+
// flags, which a `document.cookie = "..."` assignment cannot do.
|
|
242
|
+
try {
|
|
243
|
+
await this.driver.addCookie(input);
|
|
244
|
+
}
|
|
245
|
+
catch (err) {
|
|
246
|
+
// The W3C cookie endpoint rejects a cookie whose domain doesn't match
|
|
247
|
+
// the current document with `invalid cookie domain`. The previous
|
|
248
|
+
// `document.cookie = "..."` path silently ignored such cookies (the
|
|
249
|
+
// browser refuses cross-origin document.cookie writes without error),
|
|
250
|
+
// so preserve that best-effort behavior for state restore — skip the
|
|
251
|
+
// unsettable cookie rather than aborting the whole restore. Any other
|
|
252
|
+
// addCookie failure still propagates.
|
|
253
|
+
if (CraftdriverError.is(err, ErrorCode.DRIVER_ERROR) &&
|
|
254
|
+
err.detail?.webDriverError === 'invalid cookie domain') {
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
throw err;
|
|
225
258
|
}
|
|
226
|
-
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Convert this module's lowercase sameSite (`strict`/`lax`/`none`/`default`)
|
|
263
|
+
* to the W3C Classic capitalized form. `default`/undefined is dropped so the
|
|
264
|
+
* driver applies the browser's own default.
|
|
265
|
+
*/
|
|
266
|
+
toClassicSameSite(sameSite) {
|
|
267
|
+
switch (sameSite) {
|
|
268
|
+
case 'strict':
|
|
269
|
+
return 'Strict';
|
|
270
|
+
case 'lax':
|
|
271
|
+
return 'Lax';
|
|
272
|
+
case 'none':
|
|
273
|
+
return 'None';
|
|
274
|
+
default:
|
|
275
|
+
return undefined;
|
|
227
276
|
}
|
|
228
277
|
}
|
|
229
278
|
normalizeCookie(cookie) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/lib/bidi/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/lib/bidi/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,aAAa,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwB3D,MAAM,OAAO,mBAAmB;IACtB,UAAU,CAAwB;IAClC,MAAM,CAAS;IACf,OAAO,CAAmB;IAElC,YAAY,MAAc,EAAE,UAAiC,EAAE,OAAyB;QACtF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,UAA+B,EAAE;QAC7D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;QAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,UAA+B,EAAE;QAC9C,MAAM,KAAK,GAAiB,EAAE,CAAC;QAE/B,2CAA2C;QAC3C,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YACrC,KAAK,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1C,CAAC;QAED,gDAAgD;QAChD,IAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,KAAK,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC;YAAC,MAAM,CAAC;gBACP,sCAAsC;YACxC,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,KAAK,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvE,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAmB;QAChC,cAAc;QACd,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,CAAC;QAED,qBAAqB;QACrB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAA2C;QAC1D,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAAiC;QAChD,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,MAA2C;QAC5D,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBAClD,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,yEAAyE;YACzE,qDAAqD;YACrD,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;oBAAE,SAAS;gBAChE,IAAI,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;oBAAE,SAAS;gBAC1D,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MASf;QACC,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,YAAY,IAAI;YAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAEpB,MAAM,aAAa,GAAgB;YACjC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxD,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAA+B;YACrE,MAAM;SACP,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,0BAA0B;IAElB,KAAK,CAAC,cAAc,CAAC,MAG5B;QACC,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAW,CAAC,IAAI,CAAmB,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAC3F,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,yEAAyE;QACzE,yEAAyE;QACzE,8DAA8D;QAC9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/C,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;OAKG;IACK,qBAAqB,CAAC,CAAgB;QAC5C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,QAAQ,GACZ,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM;YACjD,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,KAAK,CAAC;QACd,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG;YACnB,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM;YAC/B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,KAAK;YAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK;YACzB,QAAQ;YACR,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAiC;QAC5D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,oEAAoE;YACpE,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC/B,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gBACnC,+DAA+D;gBAC/D,QAAQ,GAAG,KAAK,CAAC,CAAC,wCAAwC;YAC5D,CAAC;YAED,MAAM,aAAa,GAAqB;gBACtC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACzE,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBAC/C,MAAM,EAAE,aAAa;oBACrB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mEAAmE;gBACnE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAAiC;QAC/D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAuB;gBAChC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/C,CAAC;YACF,IAAI,MAAM,CAAC,MAAM;gBAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAChD,IAAI,MAAM,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9D,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACpE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,QAAQ;gBAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAExC,qEAAqE;YACrE,iEAAiE;YACjE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sEAAsE;gBACtE,kEAAkE;gBAClE,oEAAoE;gBACpE,sEAAsE;gBACtE,qEAAqE;gBACrE,sEAAsE;gBACtE,sCAAsC;gBACtC,IACE,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,YAAY,CAAC;oBAChD,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,uBAAuB,EACtD,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CACvB,QAAgD;QAEhD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB,KAAK,KAAK;gBACR,OAAO,KAAK,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,MAAwB;QAC9C,OAAO;YACL,GAAG,MAAM;YACT,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC;SAC/C,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,KAA0B;QACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAkB;QAC9C,MAAM,MAAM,GAA2C,EAAE,CAAC;QAE1D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAS,wBAAwB,CAAC,CAAC;QAExF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAyB;;;;;;;OAOvE,CAAC,CAAC;YAEH,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAAkB;QAChD,MAAM,MAAM,GAA2C,EAAE,CAAC;QAE1D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAS,wBAAwB,CAAC,CAAC;QAExF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAyB;;;;;;;OAOvE,CAAC,CAAC;YAEH,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAA+C;QAC3E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAS,wBAAwB,CAAC,CAAC;QAExF,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;gBAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAC7B,wBAAwB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CACzE,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,sEAAsE;QACxE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAA+C;QAC7E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAS,wBAAwB,CAAC,CAAC;QAExF,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;gBAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAC7B,0BAA0B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAC3E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAS,0BAA0B,CAAC,CAAC;IACvE,CAAC;CACF"}
|