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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchTarget.js","sourceRoot":"","sources":["../../src/lib/launchTarget.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launchTarget.js","sourceRoot":"","sources":["../../src/lib/launchTarget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Capabilities, WebDriverEndpoint } from './types.js';
|
|
2
|
+
export interface RemoteAuth {
|
|
3
|
+
username: string;
|
|
4
|
+
password: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Options for connecting to any W3C-compatible remote WebDriver endpoint —
|
|
8
|
+
* a self-hosted Selenium Grid, BrowserStack, or another cloud provider.
|
|
9
|
+
* Provider-specific detail (BrowserStack's `bstack:options`, etc.) is
|
|
10
|
+
* forwarded through `capabilities` without schema conversion.
|
|
11
|
+
*/
|
|
12
|
+
export interface RemoteWebDriverOptions {
|
|
13
|
+
/** The remote endpoint's WebDriver base URL, e.g. `https://hub.browserstack.com/wd/hub`. */
|
|
14
|
+
url: string;
|
|
15
|
+
/**
|
|
16
|
+
* Basic auth credentials. Mutually exclusive with URL-embedded user-info
|
|
17
|
+
* (`https://user:pass@host/...`) — set one, not both.
|
|
18
|
+
*/
|
|
19
|
+
auth?: RemoteAuth;
|
|
20
|
+
/** W3C capabilities merged under `alwaysMatch`; vendor namespaces are not schema-checked. */
|
|
21
|
+
capabilities?: Record<string, unknown>;
|
|
22
|
+
/** Timeout for the initial `POST /session` call. Defaults to craftdriver's local session-create timeout. */
|
|
23
|
+
sessionTimeoutMs?: number;
|
|
24
|
+
/** Default timeout applied to every WebDriver command after the session is created, unless overridden per call. */
|
|
25
|
+
commandTimeoutMs?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface ParsedRemoteEndpoint {
|
|
28
|
+
endpoint: WebDriverEndpoint;
|
|
29
|
+
/** Timeout for the one `POST /session` call only — not stored on the endpoint, which is per-command. */
|
|
30
|
+
sessionTimeoutMs?: number;
|
|
31
|
+
}
|
|
32
|
+
/** Parse and runtime-validate remote launch options without exposing credentials. */
|
|
33
|
+
export declare function parseRemoteEndpoint(options: RemoteWebDriverOptions): ParsedRemoteEndpoint;
|
|
34
|
+
/**
|
|
35
|
+
* Build W3C capabilities for a remote session. Mirrors
|
|
36
|
+
* `buildLaunchCapabilities()`'s shape but never injects anything local-only
|
|
37
|
+
* (download prefs, `--headless`, binary paths) — remote users pass those
|
|
38
|
+
* through `remote.capabilities` themselves (e.g.
|
|
39
|
+
* `capabilities['goog:chromeOptions']`).
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildRemoteCapabilities(input: {
|
|
42
|
+
browserName: string;
|
|
43
|
+
bidiRequested: boolean;
|
|
44
|
+
userCapabilities?: Record<string, unknown>;
|
|
45
|
+
}): Capabilities;
|
|
46
|
+
/**
|
|
47
|
+
* Strip query string, fragment, and embedded user-info from a URL before
|
|
48
|
+
* it goes into a log line. Some remote providers proxy the BiDi
|
|
49
|
+
* `webSocketUrl` through tokens embedded in the query string or user-info —
|
|
50
|
+
* this must never end up in the Classic-fallback warning. Falls back to a
|
|
51
|
+
* fixed placeholder if the string isn't a parseable URL at all (safer than
|
|
52
|
+
* logging it verbatim).
|
|
53
|
+
*/
|
|
54
|
+
export declare function redactUrlForLog(url: string): string;
|
|
55
|
+
//# sourceMappingURL=remote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/lib/remote.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIlE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,4FAA4F;IAC5F,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,4GAA4G;IAC5G,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mHAAmH;IACnH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAcD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,wGAAwG;IACxG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,oBAAoB,CAwFzF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,GAAG,YAAY,CAQf;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWnD"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import { applyBidiDefaults } from './capabilities.js';
|
|
3
|
+
import { CraftdriverError, ErrorCode } from './errors.js';
|
|
4
|
+
function invalidArgument(message, detail) {
|
|
5
|
+
return new CraftdriverError(ErrorCode.INVALID_ARGUMENT, message, detail ? { detail } : undefined);
|
|
6
|
+
}
|
|
7
|
+
function positiveNumber(value, optionName) {
|
|
8
|
+
if (value === undefined)
|
|
9
|
+
return undefined;
|
|
10
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
|
|
11
|
+
throw invalidArgument(`remote.${optionName} must be a positive number of milliseconds.`);
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
/** Parse and runtime-validate remote launch options without exposing credentials. */
|
|
16
|
+
export function parseRemoteEndpoint(options) {
|
|
17
|
+
if (!options || typeof options !== 'object' || Array.isArray(options)) {
|
|
18
|
+
throw invalidArgument('remote must be an object containing a url.');
|
|
19
|
+
}
|
|
20
|
+
if (typeof options.url !== 'string' || options.url.trim() === '') {
|
|
21
|
+
throw invalidArgument('remote.url must be a non-empty string.');
|
|
22
|
+
}
|
|
23
|
+
let parsed;
|
|
24
|
+
try {
|
|
25
|
+
parsed = new URL(options.url);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// The invalid URL may contain credentials, so do not echo it.
|
|
29
|
+
throw invalidArgument('remote.url is not a valid URL (check the scheme, host, and any embedded credentials).');
|
|
30
|
+
}
|
|
31
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
32
|
+
throw invalidArgument(`remote.url must use http or https (got "${parsed.protocol.replace(/:$/, '')}").`);
|
|
33
|
+
}
|
|
34
|
+
if (parsed.search) {
|
|
35
|
+
throw invalidArgument('remote.url must not include a query string.');
|
|
36
|
+
}
|
|
37
|
+
if (parsed.hash) {
|
|
38
|
+
throw invalidArgument('remote.url must not include a fragment.');
|
|
39
|
+
}
|
|
40
|
+
// Extract URL credentials so downstream URLs remain safe to log.
|
|
41
|
+
const userInfoPresent = parsed.username !== '' || parsed.password !== '';
|
|
42
|
+
if (userInfoPresent && options.auth) {
|
|
43
|
+
throw invalidArgument('remote.url embeds credentials and remote.auth is also set — provide credentials one way, not both.');
|
|
44
|
+
}
|
|
45
|
+
let auth;
|
|
46
|
+
if (userInfoPresent) {
|
|
47
|
+
auth = {
|
|
48
|
+
username: decodeURIComponent(parsed.username),
|
|
49
|
+
password: decodeURIComponent(parsed.password),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else if (options.auth !== undefined) {
|
|
53
|
+
if (typeof options.auth !== 'object' || options.auth === null || Array.isArray(options.auth)) {
|
|
54
|
+
throw invalidArgument('remote.auth must be an object with username and password.');
|
|
55
|
+
}
|
|
56
|
+
const candidate = options.auth;
|
|
57
|
+
if (typeof candidate.username !== 'string' || typeof candidate.password !== 'string') {
|
|
58
|
+
throw invalidArgument('remote.auth.username and remote.auth.password must be strings.');
|
|
59
|
+
}
|
|
60
|
+
auth = { username: candidate.username, password: candidate.password };
|
|
61
|
+
}
|
|
62
|
+
if (auth && (auth.username === '' || auth.password === '')) {
|
|
63
|
+
throw invalidArgument('remote.auth requires a non-empty username and password.');
|
|
64
|
+
}
|
|
65
|
+
if (options.capabilities !== undefined &&
|
|
66
|
+
(typeof options.capabilities !== 'object' ||
|
|
67
|
+
options.capabilities === null ||
|
|
68
|
+
Array.isArray(options.capabilities))) {
|
|
69
|
+
throw invalidArgument('remote.capabilities must be an object.');
|
|
70
|
+
}
|
|
71
|
+
const sessionTimeoutMs = positiveNumber(options.sessionTimeoutMs, 'sessionTimeoutMs');
|
|
72
|
+
const commandTimeoutMs = positiveNumber(options.commandTimeoutMs, 'commandTimeoutMs');
|
|
73
|
+
const port = parsed.port ? Number(parsed.port) : parsed.protocol === 'https:' ? 443 : 80;
|
|
74
|
+
const rawPath = parsed.pathname === '/' ? '' : parsed.pathname.replace(/\/$/, '');
|
|
75
|
+
return {
|
|
76
|
+
endpoint: {
|
|
77
|
+
protocol: parsed.protocol === 'https:' ? 'https' : 'http',
|
|
78
|
+
hostname: parsed.hostname,
|
|
79
|
+
port,
|
|
80
|
+
path: rawPath,
|
|
81
|
+
auth,
|
|
82
|
+
// Unique per session so quitting one never tears down another's
|
|
83
|
+
// keep-alive sockets — concurrent sessions often share one hub host:port.
|
|
84
|
+
poolKey: randomUUID(),
|
|
85
|
+
commandTimeoutMs,
|
|
86
|
+
},
|
|
87
|
+
sessionTimeoutMs,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Build W3C capabilities for a remote session. Mirrors
|
|
92
|
+
* `buildLaunchCapabilities()`'s shape but never injects anything local-only
|
|
93
|
+
* (download prefs, `--headless`, binary paths) — remote users pass those
|
|
94
|
+
* through `remote.capabilities` themselves (e.g.
|
|
95
|
+
* `capabilities['goog:chromeOptions']`).
|
|
96
|
+
*/
|
|
97
|
+
export function buildRemoteCapabilities(input) {
|
|
98
|
+
const caps = { ...(input.userCapabilities ?? {}) };
|
|
99
|
+
if (caps.browserName === undefined) {
|
|
100
|
+
caps.browserName = input.browserName;
|
|
101
|
+
}
|
|
102
|
+
// Strict remote hubs require the Classic string prompt behavior.
|
|
103
|
+
applyBidiDefaults(caps, input.bidiRequested, 'string');
|
|
104
|
+
return caps;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Strip query string, fragment, and embedded user-info from a URL before
|
|
108
|
+
* it goes into a log line. Some remote providers proxy the BiDi
|
|
109
|
+
* `webSocketUrl` through tokens embedded in the query string or user-info —
|
|
110
|
+
* this must never end up in the Classic-fallback warning. Falls back to a
|
|
111
|
+
* fixed placeholder if the string isn't a parseable URL at all (safer than
|
|
112
|
+
* logging it verbatim).
|
|
113
|
+
*/
|
|
114
|
+
export function redactUrlForLog(url) {
|
|
115
|
+
try {
|
|
116
|
+
const parsed = new URL(url);
|
|
117
|
+
parsed.username = '';
|
|
118
|
+
parsed.password = '';
|
|
119
|
+
parsed.search = '';
|
|
120
|
+
parsed.hash = '';
|
|
121
|
+
return parsed.toString();
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return '<unparseable-url-redacted>';
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=remote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/lib/remote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { DriverService, type DriverServiceOptions } from './service.js';
|
|
2
|
+
export type SafariServiceOptions = Omit<DriverServiceOptions, 'command'> & {
|
|
3
|
+
/**
|
|
4
|
+
* Absolute path to a `safaridriver` binary.
|
|
5
|
+
* When omitted, craftdriver resolves the driver automatically — but, unlike
|
|
6
|
+
* Chrome/Firefox, **never by downloading**: Safari's WebDriver support ships
|
|
7
|
+
* with macOS/Safari itself. Resolution order (first match wins):
|
|
8
|
+
* 1. this `binaryPath`
|
|
9
|
+
* 2. CRAFTDRIVER_SAFARIDRIVER_PATH env var
|
|
10
|
+
* 3. CRAFTDRIVER_DRIVER_PATH env var
|
|
11
|
+
* 4. /usr/bin/safaridriver (the fixed system location on macOS)
|
|
12
|
+
* 5. safaridriver on PATH
|
|
13
|
+
* 6. a clear, actionable error if nothing resolves (no download fallback)
|
|
14
|
+
*
|
|
15
|
+
* Use this to select Safari Technology Preview's own `safaridriver`, e.g.
|
|
16
|
+
* `/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver`.
|
|
17
|
+
*/
|
|
18
|
+
binaryPath?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Extra `safaridriver` CLI arguments, passed through verbatim after the
|
|
21
|
+
* `--port <port>` flag. For example, `args: ['--diagnose']` turns on
|
|
22
|
+
* safaridriver's diagnostic logging (Apple writes the logs under
|
|
23
|
+
* `~/Library/Logs/com.apple.WebDriver/`), which is useful when a Safari
|
|
24
|
+
* session fails to start and the standard stdout/stderr tail isn't enough
|
|
25
|
+
* to tell why.
|
|
26
|
+
*/
|
|
27
|
+
args?: string[];
|
|
28
|
+
};
|
|
29
|
+
export declare class SafariService extends DriverService {
|
|
30
|
+
private readonly binaryPath;
|
|
31
|
+
constructor(options?: SafariServiceOptions);
|
|
32
|
+
start(): Promise<void>;
|
|
33
|
+
protected buildCommandArgs(port: number): string[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns true if `message` looks like the error `safaridriver` produces when
|
|
37
|
+
* a client attempts `POST /session` while "Allow Remote Automation" has not
|
|
38
|
+
* been enabled (Safari's Develop menu, or `safaridriver --enable`).
|
|
39
|
+
*
|
|
40
|
+
* There is no single documented exact string for this — Apple's guidance and
|
|
41
|
+
* community reports describe the wording rather than pin one byte-for-byte
|
|
42
|
+
* wire format, and we don't have a live Safari box to capture the literal
|
|
43
|
+
* response from right now. So this matches defensively on a few likely, distinctive substrings
|
|
44
|
+
* rather than one exact string, case-insensitively, while staying narrow
|
|
45
|
+
* enough not to false-positive on unrelated failures (connection refused,
|
|
46
|
+
* invalid session id, etc.).
|
|
47
|
+
*/
|
|
48
|
+
export declare function isRemoteAutomationDisabledError(message: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Returns true if `message` looks like the error `safaridriver` produces when
|
|
51
|
+
* a client attempts `POST /session` while another Safari WebDriver session is
|
|
52
|
+
* already active. Per Apple's documented constraint: only one Safari browser
|
|
53
|
+
* instance can be under automation at a
|
|
54
|
+
* time, and only one WebDriver session can attach to it — a second `POST
|
|
55
|
+
* /session` is refused by `safaridriver` itself, not something craftdriver
|
|
56
|
+
* controls.
|
|
57
|
+
*
|
|
58
|
+
* As with {@link isRemoteAutomationDisabledError}, there is no live Safari box
|
|
59
|
+
* to capture the literal wire text from right now, so this matches
|
|
60
|
+
* defensively on a few likely, distinctive substrings rather than one exact
|
|
61
|
+
* string, case-insensitively. `safaridriver` reports this as a W3C `session
|
|
62
|
+
* not created` error whose message body indicates an existing/active
|
|
63
|
+
* session — so this checks for "session" together with "already"/"active"/"in
|
|
64
|
+
* progress" wording, which is narrow enough not to false-positive on an
|
|
65
|
+
* unrelated `session not created` failure such as a genuine crash-at-launch
|
|
66
|
+
* (those don't mention an existing session at all).
|
|
67
|
+
*/
|
|
68
|
+
export declare function isSecondSessionRefusedError(message: string): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Augments a session-creation failure with Safari's remedy when it matches
|
|
71
|
+
* {@link isRemoteAutomationDisabledError} (checked first, since it is the more
|
|
72
|
+
* specific/common failure) or {@link isSecondSessionRefusedError}; otherwise
|
|
73
|
+
* returns the error unchanged.
|
|
74
|
+
*
|
|
75
|
+
* Wired into `Builder.build()`'s session-creation failure path:
|
|
76
|
+
* when constructing a Safari session fails, this is called on the thrown
|
|
77
|
+
* error before it propagates to the caller.
|
|
78
|
+
*
|
|
79
|
+
* Deliberately does **not** run `safaridriver --enable` itself: that flips a
|
|
80
|
+
* security setting and may prompt for administrator authentication, which
|
|
81
|
+
* library code must never do on the user's behalf. Likewise, the second-
|
|
82
|
+
* session case is deliberately message augmentation only — no in-process
|
|
83
|
+
* queue, retry loop, or wait-for-other-session-to-close logic. An in-process
|
|
84
|
+
* queue cannot coordinate across separate test-runner processes (the common
|
|
85
|
+
* case — parallel CI workers, separate `vitest`/`playwright` processes) and
|
|
86
|
+
* risks `launch()` hanging indefinitely waiting for another process's Safari
|
|
87
|
+
* session to close.
|
|
88
|
+
*/
|
|
89
|
+
export declare function augmentSafariSessionError(err: unknown): Error;
|
|
90
|
+
//# sourceMappingURL=safari.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safari.d.ts","sourceRoot":"","sources":["../../src/lib/safari.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIxE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG;IACzE;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAEpC,OAAO,GAAE,oBAAyB;IA8BxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAcT,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;CAG5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOxE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CA6B7D"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { DriverService } from './service.js';
|
|
2
|
+
import { resolveSafariDriver } from './driverManager.js';
|
|
3
|
+
import { CraftdriverError, ErrorCode } from './errors.js';
|
|
4
|
+
export class SafariService extends DriverService {
|
|
5
|
+
binaryPath;
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
// Platform guard first, before any option handling or filesystem access:
|
|
8
|
+
// safaridriver exists only on macOS (Apple ships no Windows/Linux build),
|
|
9
|
+
// so there is nothing to resolve off-darwin. Fail immediately with a stable
|
|
10
|
+
// machine-readable code rather than letting resolution find nothing and
|
|
11
|
+
// throw a vaguer "not found" later. (There is no path to running real
|
|
12
|
+
// Safari on Linux, ever — Apple ships no Windows/Linux build.)
|
|
13
|
+
if (process.platform !== 'darwin') {
|
|
14
|
+
throw new CraftdriverError(ErrorCode.UNSUPPORTED, `browserName: 'safari' is only supported on macOS (this platform is '${process.platform}'). ` +
|
|
15
|
+
'Safari and safaridriver ship only on Apple platforms; there is no Windows or Linux build.', { detail: { browserName: 'safari', platform: process.platform } });
|
|
16
|
+
}
|
|
17
|
+
const { binaryPath, ...rest } = options;
|
|
18
|
+
// Pass a placeholder command; the real path is resolved asynchronously in
|
|
19
|
+
// start() (safaridriver serves the standard Classic /status readiness
|
|
20
|
+
// endpoint, same as chromedriver/geckodriver).
|
|
21
|
+
super({
|
|
22
|
+
command: binaryPath ?? 'safaridriver',
|
|
23
|
+
pathBase: '',
|
|
24
|
+
readinessPath: '/status',
|
|
25
|
+
...rest,
|
|
26
|
+
});
|
|
27
|
+
this.binaryPath = binaryPath;
|
|
28
|
+
}
|
|
29
|
+
async start() {
|
|
30
|
+
if (this.proc)
|
|
31
|
+
return;
|
|
32
|
+
this.opts.command = await resolveSafariDriver({ binaryPath: this.binaryPath });
|
|
33
|
+
await super.start();
|
|
34
|
+
}
|
|
35
|
+
// `DriverService.buildCommandArgs()`'s default is chromedriver/geckodriver's
|
|
36
|
+
// `--port=<port>` (equals-separated). Apple documents safaridriver's flag as
|
|
37
|
+
// space-separated (`safaridriver --port <port>`; see Apple's "Testing with
|
|
38
|
+
// WebDriver in Safari"). An equals-separated
|
|
39
|
+
// `--port=N` is not the documented syntax and risks safaridriver treating the
|
|
40
|
+
// whole thing as an unrecognized single argument. Override to emit the two
|
|
41
|
+
// tokens safaridriver expects, still passing through any extra `args` (e.g.
|
|
42
|
+
// `--diagnose`) untouched.
|
|
43
|
+
buildCommandArgs(port) {
|
|
44
|
+
return ['--port', String(port), ...this.opts.args];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns true if `message` looks like the error `safaridriver` produces when
|
|
49
|
+
* a client attempts `POST /session` while "Allow Remote Automation" has not
|
|
50
|
+
* been enabled (Safari's Develop menu, or `safaridriver --enable`).
|
|
51
|
+
*
|
|
52
|
+
* There is no single documented exact string for this — Apple's guidance and
|
|
53
|
+
* community reports describe the wording rather than pin one byte-for-byte
|
|
54
|
+
* wire format, and we don't have a live Safari box to capture the literal
|
|
55
|
+
* response from right now. So this matches defensively on a few likely, distinctive substrings
|
|
56
|
+
* rather than one exact string, case-insensitively, while staying narrow
|
|
57
|
+
* enough not to false-positive on unrelated failures (connection refused,
|
|
58
|
+
* invalid session id, etc.).
|
|
59
|
+
*/
|
|
60
|
+
export function isRemoteAutomationDisabledError(message) {
|
|
61
|
+
const text = message.toLowerCase();
|
|
62
|
+
return (text.includes('remote automation') ||
|
|
63
|
+
(text.includes('automation') && text.includes('develop menu')) ||
|
|
64
|
+
text.includes('safaridriver --enable'));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns true if `message` looks like the error `safaridriver` produces when
|
|
68
|
+
* a client attempts `POST /session` while another Safari WebDriver session is
|
|
69
|
+
* already active. Per Apple's documented constraint: only one Safari browser
|
|
70
|
+
* instance can be under automation at a
|
|
71
|
+
* time, and only one WebDriver session can attach to it — a second `POST
|
|
72
|
+
* /session` is refused by `safaridriver` itself, not something craftdriver
|
|
73
|
+
* controls.
|
|
74
|
+
*
|
|
75
|
+
* As with {@link isRemoteAutomationDisabledError}, there is no live Safari box
|
|
76
|
+
* to capture the literal wire text from right now, so this matches
|
|
77
|
+
* defensively on a few likely, distinctive substrings rather than one exact
|
|
78
|
+
* string, case-insensitively. `safaridriver` reports this as a W3C `session
|
|
79
|
+
* not created` error whose message body indicates an existing/active
|
|
80
|
+
* session — so this checks for "session" together with "already"/"active"/"in
|
|
81
|
+
* progress" wording, which is narrow enough not to false-positive on an
|
|
82
|
+
* unrelated `session not created` failure such as a genuine crash-at-launch
|
|
83
|
+
* (those don't mention an existing session at all).
|
|
84
|
+
*/
|
|
85
|
+
export function isSecondSessionRefusedError(message) {
|
|
86
|
+
const text = message.toLowerCase();
|
|
87
|
+
if (!text.includes('session'))
|
|
88
|
+
return false;
|
|
89
|
+
return ((text.includes('already') && (text.includes('active') || text.includes('session'))) ||
|
|
90
|
+
text.includes('session already') ||
|
|
91
|
+
(text.includes('in progress') && text.includes('session')) ||
|
|
92
|
+
text.includes('only one') ||
|
|
93
|
+
(text.includes('another') && text.includes('session')));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Augments a session-creation failure with Safari's remedy when it matches
|
|
97
|
+
* {@link isRemoteAutomationDisabledError} (checked first, since it is the more
|
|
98
|
+
* specific/common failure) or {@link isSecondSessionRefusedError}; otherwise
|
|
99
|
+
* returns the error unchanged.
|
|
100
|
+
*
|
|
101
|
+
* Wired into `Builder.build()`'s session-creation failure path:
|
|
102
|
+
* when constructing a Safari session fails, this is called on the thrown
|
|
103
|
+
* error before it propagates to the caller.
|
|
104
|
+
*
|
|
105
|
+
* Deliberately does **not** run `safaridriver --enable` itself: that flips a
|
|
106
|
+
* security setting and may prompt for administrator authentication, which
|
|
107
|
+
* library code must never do on the user's behalf. Likewise, the second-
|
|
108
|
+
* session case is deliberately message augmentation only — no in-process
|
|
109
|
+
* queue, retry loop, or wait-for-other-session-to-close logic. An in-process
|
|
110
|
+
* queue cannot coordinate across separate test-runner processes (the common
|
|
111
|
+
* case — parallel CI workers, separate `vitest`/`playwright` processes) and
|
|
112
|
+
* risks `launch()` hanging indefinitely waiting for another process's Safari
|
|
113
|
+
* session to close.
|
|
114
|
+
*/
|
|
115
|
+
export function augmentSafariSessionError(err) {
|
|
116
|
+
const original = err instanceof Error ? err : new Error(String(err));
|
|
117
|
+
if (isRemoteAutomationDisabledError(original.message)) {
|
|
118
|
+
return new Error(`${original.message}\n` +
|
|
119
|
+
'Remedy: Safari WebDriver automation is not enabled. Run `safaridriver --enable`, ' +
|
|
120
|
+
'or open Safari and enable Develop → Allow Remote Automation, then retry. ' +
|
|
121
|
+
'craftdriver does not run this for you — it changes a security setting and may ' +
|
|
122
|
+
'require administrator authentication.', { cause: original });
|
|
123
|
+
}
|
|
124
|
+
if (isSecondSessionRefusedError(original.message)) {
|
|
125
|
+
return new Error(`${original.message}\n` +
|
|
126
|
+
'Remedy: only one Safari WebDriver session can be active at a time — this is ' +
|
|
127
|
+
"Safari's automation model, not a craftdriver limitation. Run Safari tests " +
|
|
128
|
+
'serially on this Mac (e.g. `npm run test:safari`, which already forces ' +
|
|
129
|
+
'--maxWorkers=1); do not launch a second Safari session while one is still open. ' +
|
|
130
|
+
'For concurrent Safari coverage, use separate macOS hosts, or run one additional ' +
|
|
131
|
+
'session in Safari Technology Preview alongside stable Safari (each has its own ' +
|
|
132
|
+
'safaridriver, so the two can run one session each at the same time).', { cause: original });
|
|
133
|
+
}
|
|
134
|
+
return original;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=safari.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safari.js","sourceRoot":"","sources":["../../src/lib/safari.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/tracing.d.ts
CHANGED
|
@@ -113,7 +113,7 @@ export declare class Tracer {
|
|
|
113
113
|
private actionIndex;
|
|
114
114
|
/** Tracks in-flight screenshot captures so `stop()` can drain them. */
|
|
115
115
|
private pendingCaptures;
|
|
116
|
-
constructor(browser: Browser, conn: BiDiConnection, browserName:
|
|
116
|
+
constructor(browser: Browser, conn: BiDiConnection, browserName: string);
|
|
117
117
|
get isRunning(): boolean;
|
|
118
118
|
start(opts: TraceStartOptions): Promise<void>;
|
|
119
119
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/lib/tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,mCAAmC;AACnC,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACjF;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACrH;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;CAAE,GAC3G;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACtG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,qBAAa,MAAM;IAqBf,OAAO,CAAC,WAAW;IApBrB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAK;IACxB,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAA4B;gBAGjD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,cAAc,EACZ,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/lib/tracing.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/tracing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/lib/tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA6CvD,MAAM,OAAO,MAAM;IAqBP;IApBF,OAAO,CAAU;IACjB,IAAI,CAAiB;IACrB,WAAW,GAAG,CAAC,CAAC;IAChB,YAAY,GAAG,EAAE,CAAC;IAClB,MAAM,GAAG,EAAE,CAAC;IACZ,EAAE,GAAkB,IAAI,CAAC;IACzB,MAAM,GAAsB,EAAE,CAAC;IAC/B,eAAe,GAAG,CAAC,CAAC;IACpB,oBAAoB,GAAG,KAAK,CAAC;IAC7B,OAAO,GAAG,KAAK,CAAC;IAChB,cAAc,GAAG,IAAI,CAAC;IACtB,cAAc,GAAmB,MAAM,CAAC;IACxC,UAAU,CAAU;IACpB,WAAW,GAAG,CAAC,CAAC;IACxB,uEAAuE;IAC/D,eAAe,GAAyB,EAAE,CAAC;IAEnD,YACE,OAAgB,EAChB,IAAoB,EACZ,
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/lib/tracing.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -21,5 +21,68 @@ export interface WebDriverEndpoint {
|
|
|
21
21
|
hostname: string;
|
|
22
22
|
port: number;
|
|
23
23
|
path?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Basic auth credentials for this endpoint (remote WebDriver only — a
|
|
26
|
+
* local `DriverService` endpoint never sets this). Sent as an
|
|
27
|
+
* `Authorization` header by `HttpClient`, never logged.
|
|
28
|
+
*/
|
|
29
|
+
auth?: {
|
|
30
|
+
username: string;
|
|
31
|
+
password: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Unique key stamped on remote endpoints (`parseRemoteEndpoint`) so each
|
|
35
|
+
* remote session gets its own keep-alive agent instead of sharing one by
|
|
36
|
+
* `host:port` — many concurrent sessions legitimately share one grid/hub
|
|
37
|
+
* host. Local endpoints never set this; they keep sharing by `host:port`
|
|
38
|
+
* (every local `DriverService` picks its own free port anyway).
|
|
39
|
+
*/
|
|
40
|
+
poolKey?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Default per-command timeout (remote WebDriver only). Applied by
|
|
43
|
+
* `HttpClient.send()` when the caller doesn't pass its own `timeoutMs`.
|
|
44
|
+
*/
|
|
45
|
+
commandTimeoutMs?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A cookie as serialized by the W3C WebDriver **Classic** cookie endpoints
|
|
49
|
+
* (`GET /session/{id}/cookie` and `/cookie/{name}`).
|
|
50
|
+
*
|
|
51
|
+
* This is intentionally kept in the transport-layer `types.ts` (not
|
|
52
|
+
* `bidi/types.ts`) so `Driver` stays BiDi-agnostic — `bidi/` depends on
|
|
53
|
+
* `driver.ts`, never the reverse. It mirrors the WebDriver spec's "cookie"
|
|
54
|
+
* JSON object. Unlike BiDi's `RawNetworkCookie`, the Classic wire object
|
|
55
|
+
* carries no `size` field; callers that need one compute it.
|
|
56
|
+
*
|
|
57
|
+
* `sameSite` is typed loosely on read because driver casing varies in practice
|
|
58
|
+
* (Chromedriver/geckodriver return capitalized `Lax`/`Strict`/`None`).
|
|
59
|
+
*/
|
|
60
|
+
export interface ClassicCookie {
|
|
61
|
+
name: string;
|
|
62
|
+
value: string;
|
|
63
|
+
path: string;
|
|
64
|
+
domain: string;
|
|
65
|
+
secure: boolean;
|
|
66
|
+
httpOnly: boolean;
|
|
67
|
+
/** Seconds since the Unix epoch (W3C uses seconds, not milliseconds). */
|
|
68
|
+
expiry?: number;
|
|
69
|
+
sameSite?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The cookie object accepted by `POST /session/{id}/cookie` (`addCookie`).
|
|
73
|
+
* Only `name` and `value` are required; the driver fills `domain`/`path` from
|
|
74
|
+
* the current document when omitted. `sameSite` must be the spec's capitalized
|
|
75
|
+
* form (`None` | `Lax` | `Strict`).
|
|
76
|
+
*/
|
|
77
|
+
export interface ClassicCookieInput {
|
|
78
|
+
name: string;
|
|
79
|
+
value: string;
|
|
80
|
+
path?: string;
|
|
81
|
+
domain?: string;
|
|
82
|
+
secure?: boolean;
|
|
83
|
+
httpOnly?: boolean;
|
|
84
|
+
/** Seconds since the Unix epoch. */
|
|
85
|
+
expiry?: number;
|
|
86
|
+
sameSite?: 'None' | 'Lax' | 'Strict';
|
|
24
87
|
}
|
|
25
88
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;CACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vibiumTrace.d.ts","sourceRoot":"","sources":["../../src/lib/vibiumTrace.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"vibiumTrace.d.ts","sourceRoot":"","sources":["../../src/lib/vibiumTrace.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+CD,+EAA+E;AAC/E,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4KlF"}
|