@vforsh/argus 0.1.11 → 0.1.13
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/dist/.tsbuildinfo +1 -1
- package/dist/argus.js +12792 -7821
- package/dist/bin.js +4 -47
- package/dist/bin.js.map +1 -1
- package/dist/cdp/sendCdpCommand.d.ts +6 -2
- package/dist/cdp/sendCdpCommand.d.ts.map +1 -1
- package/dist/cdp/sendCdpCommand.js +18 -12
- package/dist/cdp/sendCdpCommand.js.map +1 -1
- package/dist/cli/plugins/registerPlugins.d.ts.map +1 -1
- package/dist/cli/plugins/registerPlugins.js +1 -1
- package/dist/cli/plugins/registerPlugins.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +2 -1
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/register/domCommandBuilder.d.ts +23 -0
- package/dist/cli/register/domCommandBuilder.d.ts.map +1 -0
- package/dist/cli/register/domCommandBuilder.js +36 -0
- package/dist/cli/register/domCommandBuilder.js.map +1 -0
- package/dist/cli/register/index.d.ts +4 -0
- package/dist/cli/register/index.d.ts.map +1 -0
- package/dist/cli/register/index.js +49 -0
- package/dist/cli/register/index.js.map +1 -0
- package/dist/cli/register/registerAuth.d.ts.map +1 -1
- package/dist/cli/register/registerAuth.js +103 -4
- package/dist/cli/register/registerAuth.js.map +1 -1
- package/dist/cli/register/registerChrome.d.ts.map +1 -1
- package/dist/cli/register/registerChrome.js +53 -14
- package/dist/cli/register/registerChrome.js.map +1 -1
- package/dist/cli/register/registerClick.d.ts.map +1 -1
- package/dist/cli/register/registerClick.js +2 -1
- package/dist/cli/register/registerClick.js.map +1 -1
- package/dist/cli/register/registerDialog.d.ts +3 -0
- package/dist/cli/register/registerDialog.d.ts.map +1 -0
- package/dist/cli/register/registerDialog.js +45 -0
- package/dist/cli/register/registerDialog.js.map +1 -0
- package/dist/cli/register/registerDom.d.ts.map +1 -1
- package/dist/cli/register/registerDom.js +142 -121
- package/dist/cli/register/registerDom.js.map +1 -1
- package/dist/cli/register/registerEval.js +1 -1
- package/dist/cli/register/registerEval.js.map +1 -1
- package/dist/cli/register/registerFill.d.ts.map +1 -1
- package/dist/cli/register/registerFill.js +4 -3
- package/dist/cli/register/registerFill.js.map +1 -1
- package/dist/cli/register/registerHover.d.ts.map +1 -1
- package/dist/cli/register/registerHover.js +2 -1
- package/dist/cli/register/registerHover.js.map +1 -1
- package/dist/cli/register/registerLocate.d.ts +3 -0
- package/dist/cli/register/registerLocate.d.ts.map +1 -0
- package/dist/cli/register/registerLocate.js +48 -0
- package/dist/cli/register/registerLocate.js.map +1 -0
- package/dist/cli/register/registerNet.d.ts.map +1 -1
- package/dist/cli/register/registerNet.js +234 -13
- package/dist/cli/register/registerNet.js.map +1 -1
- package/dist/cli/register/registerQuickAccess.d.ts.map +1 -1
- package/dist/cli/register/registerQuickAccess.js +33 -3
- package/dist/cli/register/registerQuickAccess.js.map +1 -1
- package/dist/cli/register/registerStorage.d.ts.map +1 -1
- package/dist/cli/register/registerStorage.js +26 -21
- package/dist/cli/register/registerStorage.js.map +1 -1
- package/dist/cli/validation.d.ts +1 -0
- package/dist/cli/validation.d.ts.map +1 -1
- package/dist/cli/validation.js +1 -0
- package/dist/cli/validation.js.map +1 -1
- package/dist/commands/auth.d.ts +39 -18
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +104 -122
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/authCookieSupport.d.ts +54 -0
- package/dist/commands/authCookieSupport.d.ts.map +1 -0
- package/dist/commands/authCookieSupport.js +206 -0
- package/dist/commands/authCookieSupport.js.map +1 -0
- package/dist/commands/authCookies.d.ts +60 -0
- package/dist/commands/authCookies.d.ts.map +1 -0
- package/dist/commands/authCookies.js +149 -0
- package/dist/commands/authCookies.js.map +1 -0
- package/dist/commands/chrome/authState.d.ts +23 -0
- package/dist/commands/chrome/authState.d.ts.map +1 -0
- package/dist/commands/chrome/authState.js +97 -0
- package/dist/commands/chrome/authState.js.map +1 -0
- package/dist/commands/chrome/browser.d.ts +5 -0
- package/dist/commands/chrome/browser.d.ts.map +1 -0
- package/dist/commands/chrome/browser.js +71 -0
- package/dist/commands/chrome/browser.js.map +1 -0
- package/dist/commands/chrome/processes.d.ts +24 -0
- package/dist/commands/chrome/processes.d.ts.map +1 -0
- package/dist/commands/chrome/processes.js +115 -0
- package/dist/commands/chrome/processes.js.map +1 -0
- package/dist/commands/chrome/shared.d.ts +31 -0
- package/dist/commands/chrome/shared.d.ts.map +1 -0
- package/dist/commands/chrome/shared.js +48 -0
- package/dist/commands/chrome/shared.js.map +1 -0
- package/dist/commands/chrome/targets.d.ts +26 -0
- package/dist/commands/chrome/targets.d.ts.map +1 -0
- package/dist/commands/chrome/targets.js +240 -0
- package/dist/commands/chrome/targets.js.map +1 -0
- package/dist/commands/chrome.d.ts +6 -63
- package/dist/commands/chrome.d.ts.map +1 -1
- package/dist/commands/chrome.js +3 -511
- package/dist/commands/chrome.js.map +1 -1
- package/dist/commands/chromeStart.d.ts +1 -0
- package/dist/commands/chromeStart.d.ts.map +1 -1
- package/dist/commands/chromeStart.js +28 -3
- package/dist/commands/chromeStart.js.map +1 -1
- package/dist/commands/code.d.ts.map +1 -1
- package/dist/commands/code.js +9 -1
- package/dist/commands/code.js.map +1 -1
- package/dist/commands/dialog.d.ts +13 -0
- package/dist/commands/dialog.d.ts.map +1 -0
- package/dist/commands/dialog.js +71 -0
- package/dist/commands/dialog.js.map +1 -0
- package/dist/commands/dom/shared.d.ts +16 -0
- package/dist/commands/dom/shared.d.ts.map +1 -0
- package/dist/commands/dom/shared.js +69 -0
- package/dist/commands/dom/shared.js.map +1 -0
- package/dist/commands/domAdd.d.ts.map +1 -1
- package/dist/commands/domAdd.js +11 -27
- package/dist/commands/domAdd.js.map +1 -1
- package/dist/commands/domClick.d.ts +1 -0
- package/dist/commands/domClick.d.ts.map +1 -1
- package/dist/commands/domClick.js +32 -48
- package/dist/commands/domClick.js.map +1 -1
- package/dist/commands/domFill.d.ts +1 -0
- package/dist/commands/domFill.d.ts.map +1 -1
- package/dist/commands/domFill.js +21 -38
- package/dist/commands/domFill.js.map +1 -1
- package/dist/commands/domFocus.d.ts +2 -1
- package/dist/commands/domFocus.d.ts.map +1 -1
- package/dist/commands/domFocus.js +12 -26
- package/dist/commands/domFocus.js.map +1 -1
- package/dist/commands/domHover.d.ts +2 -1
- package/dist/commands/domHover.d.ts.map +1 -1
- package/dist/commands/domHover.js +12 -26
- package/dist/commands/domHover.js.map +1 -1
- package/dist/commands/domInfo.d.ts +2 -1
- package/dist/commands/domInfo.d.ts.map +1 -1
- package/dist/commands/domInfo.js +11 -25
- package/dist/commands/domInfo.js.map +1 -1
- package/dist/commands/domModify.d.ts.map +1 -1
- package/dist/commands/domModify.js +14 -26
- package/dist/commands/domModify.js.map +1 -1
- package/dist/commands/domRemove.d.ts.map +1 -1
- package/dist/commands/domRemove.js +10 -25
- package/dist/commands/domRemove.js.map +1 -1
- package/dist/commands/domScroll.d.ts.map +1 -1
- package/dist/commands/domScroll.js +7 -33
- package/dist/commands/domScroll.js.map +1 -1
- package/dist/commands/domScrollTo.d.ts.map +1 -1
- package/dist/commands/domScrollTo.js +7 -33
- package/dist/commands/domScrollTo.js.map +1 -1
- package/dist/commands/domSetFile.d.ts.map +1 -1
- package/dist/commands/domSetFile.js +14 -36
- package/dist/commands/domSetFile.js.map +1 -1
- package/dist/commands/domTree.d.ts.map +1 -1
- package/dist/commands/domTree.js +12 -27
- package/dist/commands/domTree.js.map +1 -1
- package/dist/commands/extension/setup.js +1 -1
- package/dist/commands/extension/setup.js.map +1 -1
- package/dist/commands/locate.d.ts +17 -0
- package/dist/commands/locate.d.ts.map +1 -0
- package/dist/commands/locate.js +117 -0
- package/dist/commands/locate.js.map +1 -0
- package/dist/commands/net.d.ts +2 -5
- package/dist/commands/net.d.ts.map +1 -1
- package/dist/commands/net.js +5 -7
- package/dist/commands/net.js.map +1 -1
- package/dist/commands/netBody.d.ts +6 -0
- package/dist/commands/netBody.d.ts.map +1 -0
- package/dist/commands/netBody.js +32 -0
- package/dist/commands/netBody.js.map +1 -0
- package/dist/commands/netCapture.d.ts +36 -0
- package/dist/commands/netCapture.d.ts.map +1 -0
- package/dist/commands/netCapture.js +105 -0
- package/dist/commands/netCapture.js.map +1 -0
- package/dist/commands/netClear.d.ts +5 -0
- package/dist/commands/netClear.d.ts.map +1 -0
- package/dist/commands/netClear.js +20 -0
- package/dist/commands/netClear.js.map +1 -0
- package/dist/commands/netExport.d.ts +13 -0
- package/dist/commands/netExport.d.ts.map +1 -0
- package/dist/commands/netExport.js +124 -0
- package/dist/commands/netExport.js.map +1 -0
- package/dist/commands/netInspect.d.ts +12 -0
- package/dist/commands/netInspect.d.ts.map +1 -0
- package/dist/commands/netInspect.js +205 -0
- package/dist/commands/netInspect.js.map +1 -0
- package/dist/commands/netRequestClient.d.ts +17 -0
- package/dist/commands/netRequestClient.d.ts.map +1 -0
- package/dist/commands/netRequestClient.js +54 -0
- package/dist/commands/netRequestClient.js.map +1 -0
- package/dist/commands/netRequestTarget.d.ts +14 -0
- package/dist/commands/netRequestTarget.d.ts.map +1 -0
- package/dist/commands/netRequestTarget.js +36 -0
- package/dist/commands/netRequestTarget.js.map +1 -0
- package/dist/commands/netShared.d.ts +40 -0
- package/dist/commands/netShared.d.ts.map +1 -0
- package/dist/commands/netShared.js +108 -0
- package/dist/commands/netShared.js.map +1 -0
- package/dist/commands/netShow.d.ts +5 -0
- package/dist/commands/netShow.d.ts.map +1 -0
- package/dist/commands/netShow.js +28 -0
- package/dist/commands/netShow.js.map +1 -0
- package/dist/commands/netSummary.d.ts +6 -0
- package/dist/commands/netSummary.d.ts.map +1 -0
- package/dist/commands/netSummary.js +99 -0
- package/dist/commands/netSummary.js.map +1 -0
- package/dist/commands/netTail.d.ts +2 -5
- package/dist/commands/netTail.d.ts.map +1 -1
- package/dist/commands/netTail.js +7 -15
- package/dist/commands/netTail.js.map +1 -1
- package/dist/commands/netWatch.d.ts +11 -0
- package/dist/commands/netWatch.d.ts.map +1 -0
- package/dist/commands/netWatch.js +55 -0
- package/dist/commands/netWatch.js.map +1 -0
- package/dist/commands/resolveTestId.d.ts +2 -1
- package/dist/commands/resolveTestId.d.ts.map +1 -1
- package/dist/commands/resolveTestId.js +3 -3
- package/dist/commands/resolveTestId.js.map +1 -1
- package/dist/commands/start.d.ts +2 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +77 -49
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/storage.d.ts +17 -0
- package/dist/commands/storage.d.ts.map +1 -0
- package/dist/commands/storage.js +67 -0
- package/dist/commands/storage.js.map +1 -0
- package/dist/commands/watcherNativeHost.d.ts.map +1 -1
- package/dist/commands/watcherNativeHost.js +13 -2
- package/dist/commands/watcherNativeHost.js.map +1 -1
- package/dist/commands/watcherSession.d.ts +29 -0
- package/dist/commands/watcherSession.d.ts.map +1 -0
- package/dist/commands/watcherSession.js +64 -0
- package/dist/commands/watcherSession.js.map +1 -0
- package/dist/commands/watcherStart.d.ts +1 -1
- package/dist/commands/watcherStart.d.ts.map +1 -1
- package/dist/commands/watcherStart.js +15 -40
- package/dist/commands/watcherStart.js.map +1 -1
- package/dist/config/argusConfig.d.ts.map +1 -1
- package/dist/config/argusConfig.js +69 -81
- package/dist/config/argusConfig.js.map +1 -1
- package/dist/net/har.d.ts +86 -0
- package/dist/net/har.d.ts.map +1 -0
- package/dist/net/har.js +125 -0
- package/dist/net/har.js.map +1 -0
- package/dist/net/summary.d.ts +33 -0
- package/dist/net/summary.d.ts.map +1 -0
- package/dist/net/summary.js +128 -0
- package/dist/net/summary.js.map +1 -0
- package/dist/output/accessibility.js +16 -12
- package/dist/output/accessibility.js.map +1 -1
- package/dist/output/code.d.ts +2 -1
- package/dist/output/code.d.ts.map +1 -1
- package/dist/output/code.js +10 -0
- package/dist/output/code.js.map +1 -1
- package/dist/output/dom.d.ts.map +1 -1
- package/dist/output/dom.js +2 -1
- package/dist/output/dom.js.map +1 -1
- package/dist/output/format.d.ts +1 -3
- package/dist/output/format.d.ts.map +1 -1
- package/dist/output/format.js +0 -8
- package/dist/output/format.js.map +1 -1
- package/dist/output/locate.d.ts +3 -0
- package/dist/output/locate.d.ts.map +1 -0
- package/dist/output/locate.js +25 -0
- package/dist/output/locate.js.map +1 -0
- package/dist/output/net.d.ts +13 -0
- package/dist/output/net.d.ts.map +1 -0
- package/dist/output/net.js +239 -0
- package/dist/output/net.js.map +1 -0
- package/dist/watchers/queryParams.d.ts +17 -0
- package/dist/watchers/queryParams.d.ts.map +1 -1
- package/dist/watchers/queryParams.js +61 -0
- package/dist/watchers/queryParams.js.map +1 -1
- package/dist/watchers/requestWatcher.d.ts +13 -1
- package/dist/watchers/requestWatcher.d.ts.map +1 -1
- package/dist/watchers/requestWatcher.js +32 -0
- package/dist/watchers/requestWatcher.js.map +1 -1
- package/package.json +2 -5
- package/dist/commands/storageLocal.d.ts +0 -18
- package/dist/commands/storageLocal.d.ts.map +0 -1
- package/dist/commands/storageLocal.js +0 -92
- package/dist/commands/storageLocal.js.map +0 -1
- package/dist/plugin.d.ts +0 -29
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -2
- package/dist/plugin.js.map +0 -1
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { cookieMatchesHost, getOriginHost, isTrackingCookieName, normalizeCookieSameSite, } from '@vforsh/argus-core';
|
|
2
|
+
import { writeFile } from 'node:fs/promises';
|
|
3
|
+
import { requestWatcherJson, writeRequestError } from '../watchers/requestWatcher.js';
|
|
4
|
+
const COOKIE_EXPORT_FORMATS = new Set(['netscape', 'json', 'header']);
|
|
5
|
+
export const fetchAuthCookies = async (id, input, output) => {
|
|
6
|
+
const result = await requestWatcherJson({
|
|
7
|
+
id,
|
|
8
|
+
path: '/auth/cookies',
|
|
9
|
+
query: buildCookieQuery(input),
|
|
10
|
+
timeoutMs: 10_000,
|
|
11
|
+
});
|
|
12
|
+
if (!result.ok) {
|
|
13
|
+
writeRequestError(result, output);
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return result.data;
|
|
17
|
+
};
|
|
18
|
+
export const normalizeCookieIdentityInput = (input, output) => {
|
|
19
|
+
const name = input.name.trim();
|
|
20
|
+
const domain = input.domain.trim();
|
|
21
|
+
const path = input.path.trim();
|
|
22
|
+
if (!name) {
|
|
23
|
+
return writeCookieInputError(output, 'name is required');
|
|
24
|
+
}
|
|
25
|
+
if (!domain) {
|
|
26
|
+
return writeCookieInputError(output, 'domain is required');
|
|
27
|
+
}
|
|
28
|
+
if (!path) {
|
|
29
|
+
return writeCookieInputError(output, 'path is required');
|
|
30
|
+
}
|
|
31
|
+
if (!path.startsWith('/')) {
|
|
32
|
+
return writeCookieInputError(output, 'path must start with "/"');
|
|
33
|
+
}
|
|
34
|
+
return { name, domain, path };
|
|
35
|
+
};
|
|
36
|
+
export const parseCookieSetInput = (input, output) => {
|
|
37
|
+
const identity = normalizeCookieIdentityInput(input, output);
|
|
38
|
+
if (!identity) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const sameSite = normalizeCookieSameSite(input.sameSite);
|
|
42
|
+
if (input.sameSite && !sameSite) {
|
|
43
|
+
return writeCookieInputError(output, 'sameSite must be one of: Strict, Lax, None');
|
|
44
|
+
}
|
|
45
|
+
const expires = parseCookieExpires(input.expires, output);
|
|
46
|
+
if (expires === null) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
if (input.session && input.expires) {
|
|
50
|
+
return writeCookieInputError(output, 'Cannot combine --session with --expires');
|
|
51
|
+
}
|
|
52
|
+
if (sameSite === 'None' && input.secure !== true) {
|
|
53
|
+
return writeCookieInputError(output, 'sameSite=None requires --secure');
|
|
54
|
+
}
|
|
55
|
+
const session = input.session === true || expires === undefined;
|
|
56
|
+
return {
|
|
57
|
+
...identity,
|
|
58
|
+
value: input.value,
|
|
59
|
+
secure: input.secure === true,
|
|
60
|
+
httpOnly: input.httpOnly === true,
|
|
61
|
+
session,
|
|
62
|
+
expires: session ? null : expires,
|
|
63
|
+
sameSite,
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
export const resolveCookieClearScope = (options, output) => {
|
|
67
|
+
const scopes = [
|
|
68
|
+
options.forOrigin ? 'origin' : null,
|
|
69
|
+
options.site ? 'site' : null,
|
|
70
|
+
options.domain?.trim() ? 'domain' : null,
|
|
71
|
+
options.browserContext ? 'browserContext' : null,
|
|
72
|
+
].filter(Boolean);
|
|
73
|
+
if (scopes.length === 1) {
|
|
74
|
+
return scopes[0];
|
|
75
|
+
}
|
|
76
|
+
return writeCookieInputError(output, 'Choose exactly one cookie clear scope: --for-origin, --site, --domain, or --browser-context');
|
|
77
|
+
};
|
|
78
|
+
export const filterCookies = (origin, cookies, options) => {
|
|
79
|
+
const originHost = options.forOrigin ? getOriginHost(origin) : null;
|
|
80
|
+
return cookies.filter((cookie) => matchesCookieFilters(cookie, originHost, options));
|
|
81
|
+
};
|
|
82
|
+
export const formatCookieLine = (cookie, showValues) => {
|
|
83
|
+
const flags = [formatExpiryFlag(cookie), cookie.httpOnly ? 'httpOnly' : null, cookie.secure ? 'secure' : null, formatSameSiteFlag(cookie)]
|
|
84
|
+
.filter(Boolean)
|
|
85
|
+
.join(',');
|
|
86
|
+
const value = resolveCookieValue(cookie, showValues);
|
|
87
|
+
const flagSuffix = flags ? ` [${flags}]` : '';
|
|
88
|
+
const valueSuffix = value ? ` ${value}` : '';
|
|
89
|
+
return `${cookie.name} ${cookie.domain}${cookie.path}${flagSuffix}${valueSuffix}`.trim();
|
|
90
|
+
};
|
|
91
|
+
export const formatCookieIdentityLine = (cookie) => `${cookie.name} ${cookie.domain}${cookie.path}`;
|
|
92
|
+
export const normalizeExportFormat = (format) => {
|
|
93
|
+
if (!format) {
|
|
94
|
+
return 'netscape';
|
|
95
|
+
}
|
|
96
|
+
if (!COOKIE_EXPORT_FORMATS.has(format)) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
switch (format) {
|
|
100
|
+
case 'netscape':
|
|
101
|
+
case 'json':
|
|
102
|
+
case 'header':
|
|
103
|
+
return format;
|
|
104
|
+
default:
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
export const serializeCookies = (cookies, format) => {
|
|
109
|
+
switch (format) {
|
|
110
|
+
case 'netscape':
|
|
111
|
+
return formatCookiesAsNetscape(cookies);
|
|
112
|
+
case 'json':
|
|
113
|
+
return JSON.stringify(cookies, null, 2);
|
|
114
|
+
case 'header':
|
|
115
|
+
return formatCookiesAsHeader(cookies);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
export const writeOutput = async (content, outPath) => {
|
|
119
|
+
const withTrailingNewline = content.endsWith('\n') ? content : `${content}\n`;
|
|
120
|
+
if (outPath && outPath !== '-') {
|
|
121
|
+
await writeFile(outPath, withTrailingNewline, 'utf8');
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
process.stdout.write(withTrailingNewline);
|
|
125
|
+
};
|
|
126
|
+
const writeCookieInputError = (output, message) => {
|
|
127
|
+
output.writeWarn(message);
|
|
128
|
+
process.exitCode = 2;
|
|
129
|
+
return null;
|
|
130
|
+
};
|
|
131
|
+
const parseCookieExpires = (value, output) => {
|
|
132
|
+
if (!value?.trim()) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
const trimmed = value.trim();
|
|
136
|
+
if (/^\d+$/.test(trimmed)) {
|
|
137
|
+
return Number(trimmed);
|
|
138
|
+
}
|
|
139
|
+
const timestamp = Date.parse(trimmed);
|
|
140
|
+
if (!Number.isFinite(timestamp)) {
|
|
141
|
+
return writeCookieInputError(output, `Invalid --expires value: ${value}. Use Unix seconds or an ISO timestamp.`);
|
|
142
|
+
}
|
|
143
|
+
return Math.floor(timestamp / 1000);
|
|
144
|
+
};
|
|
145
|
+
const buildCookieQuery = (input) => {
|
|
146
|
+
const params = new URLSearchParams();
|
|
147
|
+
if (input.domain?.trim()) {
|
|
148
|
+
params.set('domain', input.domain.trim());
|
|
149
|
+
}
|
|
150
|
+
if (input.includeValues) {
|
|
151
|
+
params.set('includeValues', 'true');
|
|
152
|
+
}
|
|
153
|
+
return params;
|
|
154
|
+
};
|
|
155
|
+
const matchesCookieFilters = (cookie, originHost, options) => {
|
|
156
|
+
if (options.sessionOnly && !cookie.session) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
if (options.httpOnly && !cookie.httpOnly) {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
if (options.secure && !cookie.secure) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
if (originHost && !cookieMatchesHost(cookie.domain, originHost)) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
if (options.excludeTracking && isTrackingCookieName(cookie.name)) {
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
return true;
|
|
172
|
+
};
|
|
173
|
+
const formatExpiryFlag = (cookie) => {
|
|
174
|
+
if (cookie.session) {
|
|
175
|
+
return 'session';
|
|
176
|
+
}
|
|
177
|
+
if (cookie.expires != null) {
|
|
178
|
+
return `exp=${Math.trunc(cookie.expires)}`;
|
|
179
|
+
}
|
|
180
|
+
return null;
|
|
181
|
+
};
|
|
182
|
+
const formatSameSiteFlag = (cookie) => (cookie.sameSite ? `sameSite=${cookie.sameSite}` : null);
|
|
183
|
+
const resolveCookieValue = (cookie, showValues) => {
|
|
184
|
+
if (showValues && cookie.value != null) {
|
|
185
|
+
return cookie.value;
|
|
186
|
+
}
|
|
187
|
+
return cookie.valuePreview ?? '';
|
|
188
|
+
};
|
|
189
|
+
const formatCookiesAsNetscape = (cookies) => {
|
|
190
|
+
const lines = ['# Netscape HTTP Cookie File', '# This file was generated by Argus.', ''];
|
|
191
|
+
for (const cookie of cookies) {
|
|
192
|
+
lines.push([
|
|
193
|
+
formatNetscapeDomain(cookie),
|
|
194
|
+
cookie.domain.startsWith('.') ? 'TRUE' : 'FALSE',
|
|
195
|
+
cookie.path,
|
|
196
|
+
cookie.secure ? 'TRUE' : 'FALSE',
|
|
197
|
+
String(cookie.session ? 0 : Math.max(0, Math.trunc(cookie.expires ?? 0))),
|
|
198
|
+
cookie.name,
|
|
199
|
+
cookie.value ?? '',
|
|
200
|
+
].join('\t'));
|
|
201
|
+
}
|
|
202
|
+
return lines.join('\n');
|
|
203
|
+
};
|
|
204
|
+
const formatNetscapeDomain = (cookie) => (cookie.httpOnly ? `#HttpOnly_${cookie.domain}` : cookie.domain);
|
|
205
|
+
const formatCookiesAsHeader = (cookies) => `Cookie: ${cookies.map((cookie) => `${cookie.name}=${cookie.value ?? ''}`).join('; ')}`;
|
|
206
|
+
//# sourceMappingURL=authCookieSupport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authCookieSupport.js","sourceRoot":"","sources":["../../src/commands/authCookieSupport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export type AuthCookiesOptions = {
|
|
2
|
+
json?: boolean;
|
|
3
|
+
domain?: string;
|
|
4
|
+
forOrigin?: boolean;
|
|
5
|
+
excludeTracking?: boolean;
|
|
6
|
+
showValues?: boolean;
|
|
7
|
+
sessionOnly?: boolean;
|
|
8
|
+
httpOnly?: boolean;
|
|
9
|
+
secure?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type AuthExportCookiesOptions = {
|
|
12
|
+
format?: string;
|
|
13
|
+
domain?: string;
|
|
14
|
+
forOrigin?: boolean;
|
|
15
|
+
excludeTracking?: boolean;
|
|
16
|
+
out?: string;
|
|
17
|
+
};
|
|
18
|
+
export type AuthCookieGetOptions = {
|
|
19
|
+
domain: string;
|
|
20
|
+
path: string;
|
|
21
|
+
showValue?: boolean;
|
|
22
|
+
json?: boolean;
|
|
23
|
+
};
|
|
24
|
+
export type AuthCookieSetOptions = {
|
|
25
|
+
domain: string;
|
|
26
|
+
path: string;
|
|
27
|
+
secure?: boolean;
|
|
28
|
+
httpOnly?: boolean;
|
|
29
|
+
sameSite?: string;
|
|
30
|
+
expires?: string;
|
|
31
|
+
session?: boolean;
|
|
32
|
+
json?: boolean;
|
|
33
|
+
};
|
|
34
|
+
export type AuthCookieDeleteOptions = {
|
|
35
|
+
domain: string;
|
|
36
|
+
path: string;
|
|
37
|
+
json?: boolean;
|
|
38
|
+
};
|
|
39
|
+
export type AuthCookieClearOptions = {
|
|
40
|
+
forOrigin?: boolean;
|
|
41
|
+
site?: boolean;
|
|
42
|
+
domain?: string;
|
|
43
|
+
browserContext?: boolean;
|
|
44
|
+
sessionOnly?: boolean;
|
|
45
|
+
authOnly?: boolean;
|
|
46
|
+
json?: boolean;
|
|
47
|
+
};
|
|
48
|
+
/** Execute `argus auth cookies`. */
|
|
49
|
+
export declare const runAuthCookies: (id: string | undefined, options: AuthCookiesOptions) => Promise<void>;
|
|
50
|
+
/** Execute `argus auth export-cookies`. */
|
|
51
|
+
export declare const runAuthExportCookies: (id: string | undefined, options: AuthExportCookiesOptions) => Promise<void>;
|
|
52
|
+
/** Execute `argus auth cookies get`. */
|
|
53
|
+
export declare const runAuthCookieGet: (id: string | undefined, name: string, options: AuthCookieGetOptions) => Promise<void>;
|
|
54
|
+
/** Execute `argus auth cookies set`. */
|
|
55
|
+
export declare const runAuthCookieSet: (id: string | undefined, name: string, value: string, options: AuthCookieSetOptions) => Promise<void>;
|
|
56
|
+
/** Execute `argus auth cookies delete`. */
|
|
57
|
+
export declare const runAuthCookieDelete: (id: string | undefined, name: string, options: AuthCookieDeleteOptions) => Promise<void>;
|
|
58
|
+
/** Execute `argus auth cookies clear`. */
|
|
59
|
+
export declare const runAuthCookieClear: (id: string | undefined, options: AuthCookieClearOptions) => Promise<void>;
|
|
60
|
+
//# sourceMappingURL=authCookies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authCookies.d.ts","sourceRoot":"","sources":["../../src/commands/authCookies.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,kBAAkB,GAAG;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACpC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,oCAAoC;AACpC,eAAO,MAAM,cAAc,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,kBAAkB,KAAG,OAAO,CAAC,IAAI,CAsBtG,CAAA;AAED,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAgBlH,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,SAAS,oBAAoB,KAAG,OAAO,CAAC,IAAI,CAkCxH,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,SAAS,oBAAoB,KAAG,OAAO,CAAC,IAAI,CA0BvI,CAAA;AAED,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,SAAS,uBAAuB,KAAG,OAAO,CAAC,IAAI,CA+B9H,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,sBAAsB,KAAG,OAAO,CAAC,IAAI,CAmC9G,CAAA"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { createOutput } from '../output/io.js';
|
|
2
|
+
import { requestWatcherAction } from '../watchers/requestWatcher.js';
|
|
3
|
+
import { fetchAuthCookies, filterCookies, formatCookieIdentityLine, formatCookieLine, normalizeCookieIdentityInput, normalizeExportFormat, parseCookieSetInput, resolveCookieClearScope, serializeCookies, writeOutput, } from './authCookieSupport.js';
|
|
4
|
+
/** Execute `argus auth cookies`. */
|
|
5
|
+
export const runAuthCookies = async (id, options) => {
|
|
6
|
+
const output = createOutput(options);
|
|
7
|
+
const includeValues = options.showValues === true;
|
|
8
|
+
const response = await fetchAuthCookies(id, { domain: options.domain, includeValues }, output);
|
|
9
|
+
if (!response) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const cookies = filterCookies(response.origin, response.cookies, options);
|
|
13
|
+
if (options.json) {
|
|
14
|
+
output.writeJson({ ...response, cookies });
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (cookies.length === 0) {
|
|
18
|
+
output.writeHuman('No cookies matched.');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
for (const cookie of cookies) {
|
|
22
|
+
output.writeHuman(formatCookieLine(cookie, includeValues));
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
/** Execute `argus auth export-cookies`. */
|
|
26
|
+
export const runAuthExportCookies = async (id, options) => {
|
|
27
|
+
const output = createOutput({});
|
|
28
|
+
const format = normalizeExportFormat(options.format);
|
|
29
|
+
if (!format) {
|
|
30
|
+
output.writeWarn(`Invalid --format value: ${options.format}. Expected one of: netscape, json, header.`);
|
|
31
|
+
process.exitCode = 2;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const response = await fetchAuthCookies(id, { domain: options.domain, includeValues: true }, output);
|
|
35
|
+
if (!response) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const serialized = serializeCookies(filterCookies(response.origin, response.cookies, options), format);
|
|
39
|
+
await writeOutput(serialized, options.out);
|
|
40
|
+
};
|
|
41
|
+
/** Execute `argus auth cookies get`. */
|
|
42
|
+
export const runAuthCookieGet = async (id, name, options) => {
|
|
43
|
+
const output = createOutput(options);
|
|
44
|
+
const identity = normalizeCookieIdentityInput({ name, domain: options.domain, path: options.path }, output);
|
|
45
|
+
if (!identity) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const result = await requestWatcherAction({
|
|
49
|
+
id,
|
|
50
|
+
path: '/auth/cookies/get',
|
|
51
|
+
method: 'POST',
|
|
52
|
+
body: {
|
|
53
|
+
...identity,
|
|
54
|
+
includeValue: options.showValue === true,
|
|
55
|
+
},
|
|
56
|
+
}, output);
|
|
57
|
+
if (!result) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (options.json) {
|
|
61
|
+
output.writeJson(result.data);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (!result.data.cookie) {
|
|
65
|
+
output.writeHuman('No cookie matched exact identity.');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
output.writeHuman(formatCookieLine(result.data.cookie, options.showValue === true));
|
|
69
|
+
};
|
|
70
|
+
/** Execute `argus auth cookies set`. */
|
|
71
|
+
export const runAuthCookieSet = async (id, name, value, options) => {
|
|
72
|
+
const output = createOutput(options);
|
|
73
|
+
const cookie = parseCookieSetInput({ name, value, ...options }, output);
|
|
74
|
+
if (!cookie) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const result = await requestWatcherAction({
|
|
78
|
+
id,
|
|
79
|
+
path: '/auth/cookies/set',
|
|
80
|
+
method: 'POST',
|
|
81
|
+
body: { cookie },
|
|
82
|
+
}, output);
|
|
83
|
+
if (!result) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (options.json) {
|
|
87
|
+
output.writeJson(result.data);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
output.writeHuman(`Set ${formatCookieLine(result.data.cookie, false)}`);
|
|
91
|
+
};
|
|
92
|
+
/** Execute `argus auth cookies delete`. */
|
|
93
|
+
export const runAuthCookieDelete = async (id, name, options) => {
|
|
94
|
+
const output = createOutput(options);
|
|
95
|
+
const identity = normalizeCookieIdentityInput({ name, domain: options.domain, path: options.path }, output);
|
|
96
|
+
if (!identity) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const result = await requestWatcherAction({
|
|
100
|
+
id,
|
|
101
|
+
path: '/auth/cookies/delete',
|
|
102
|
+
method: 'POST',
|
|
103
|
+
body: identity,
|
|
104
|
+
}, output);
|
|
105
|
+
if (!result) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (options.json) {
|
|
109
|
+
output.writeJson(result.data);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (!result.data.deleted) {
|
|
113
|
+
output.writeHuman('No cookie matched exact identity.');
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
output.writeHuman(`Deleted ${formatCookieIdentityLine(result.data.cookie)}`);
|
|
117
|
+
};
|
|
118
|
+
/** Execute `argus auth cookies clear`. */
|
|
119
|
+
export const runAuthCookieClear = async (id, options) => {
|
|
120
|
+
const output = createOutput(options);
|
|
121
|
+
const scope = resolveCookieClearScope(options, output);
|
|
122
|
+
if (!scope) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const result = await requestWatcherAction({
|
|
126
|
+
id,
|
|
127
|
+
path: '/auth/cookies/clear',
|
|
128
|
+
method: 'POST',
|
|
129
|
+
body: {
|
|
130
|
+
scope,
|
|
131
|
+
domain: scope === 'domain' ? options.domain : undefined,
|
|
132
|
+
sessionOnly: options.sessionOnly === true,
|
|
133
|
+
authOnly: options.authOnly === true,
|
|
134
|
+
},
|
|
135
|
+
}, output);
|
|
136
|
+
if (!result) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
if (options.json) {
|
|
140
|
+
output.writeJson(result.data);
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const scopeSuffix = result.data.scopeValue ? ` (${result.data.scopeValue})` : '';
|
|
144
|
+
output.writeHuman(`Cleared ${result.data.cleared} cookie(s) from ${result.data.scope}${scopeSuffix}`);
|
|
145
|
+
for (const cookie of result.data.cookies) {
|
|
146
|
+
output.writeHuman(formatCookieIdentityLine(cookie));
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=authCookies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authCookies.js","sourceRoot":"","sources":["../../src/commands/authCookies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type AuthStateSnapshot } from '@vforsh/argus-core';
|
|
2
|
+
/**
|
|
3
|
+
* Load an auth-state file into a fresh Chrome instance by seeding cookies first,
|
|
4
|
+
* then restoring storage in the same tab so sessionStorage survives the final navigation.
|
|
5
|
+
*/
|
|
6
|
+
export declare const applyAuthStateToChrome: (input: {
|
|
7
|
+
authStatePath: string;
|
|
8
|
+
cdpHost: string;
|
|
9
|
+
cdpPort: number;
|
|
10
|
+
startupUrl?: string | null;
|
|
11
|
+
}) => Promise<{
|
|
12
|
+
startupUrl: string | null;
|
|
13
|
+
}>;
|
|
14
|
+
/** Apply an in-memory auth-state snapshot to a fresh Chrome hydration target. */
|
|
15
|
+
export declare const applyAuthStateSnapshotToChrome: (input: {
|
|
16
|
+
snapshot: AuthStateSnapshot;
|
|
17
|
+
cdpHost: string;
|
|
18
|
+
cdpPort: number;
|
|
19
|
+
startupUrl?: string | null;
|
|
20
|
+
}) => Promise<{
|
|
21
|
+
startupUrl: string | null;
|
|
22
|
+
}>;
|
|
23
|
+
//# sourceMappingURL=authState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authState.d.ts","sourceRoot":"","sources":["../../../src/commands/chrome/authState.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,KAAK,iBAAiB,EACtB,MAAM,oBAAoB,CAAA;AAO3B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAU,OAAO;IACnD,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B,KAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAQxC,CAAA;AAED,iFAAiF;AACjF,eAAO,MAAM,8BAA8B,GAAU,OAAO;IAC3D,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B,KAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAuBxC,CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { buildAuthStateStorageSeedExpression, hydrateAuthState, } from '@vforsh/argus-core';
|
|
2
|
+
import { sendCdpCommand, sendCdpRequest } from '../../cdp/sendCdpCommand.js';
|
|
3
|
+
import { fetchJson } from '../../httpClient.js';
|
|
4
|
+
import { normalizeUrl } from './shared.js';
|
|
5
|
+
import { loadAuthStateSnapshot } from '../auth.js';
|
|
6
|
+
/**
|
|
7
|
+
* Load an auth-state file into a fresh Chrome instance by seeding cookies first,
|
|
8
|
+
* then restoring storage in the same tab so sessionStorage survives the final navigation.
|
|
9
|
+
*/
|
|
10
|
+
export const applyAuthStateToChrome = async (input) => {
|
|
11
|
+
const snapshot = await loadAuthStateSnapshot(input.authStatePath);
|
|
12
|
+
return applyAuthStateSnapshotToChrome({
|
|
13
|
+
snapshot,
|
|
14
|
+
cdpHost: input.cdpHost,
|
|
15
|
+
cdpPort: input.cdpPort,
|
|
16
|
+
startupUrl: input.startupUrl,
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
/** Apply an in-memory auth-state snapshot to a fresh Chrome hydration target. */
|
|
20
|
+
export const applyAuthStateSnapshotToChrome = async (input) => {
|
|
21
|
+
const target = await createHydrationTarget(input.cdpHost, input.cdpPort);
|
|
22
|
+
if (!target.webSocketDebuggerUrl) {
|
|
23
|
+
throw new Error(`Hydration target ${target.id} has no webSocketDebuggerUrl.`);
|
|
24
|
+
}
|
|
25
|
+
const wsUrl = target.webSocketDebuggerUrl;
|
|
26
|
+
return hydrateAuthState({
|
|
27
|
+
driver: {
|
|
28
|
+
setCookies: async (cookies) => {
|
|
29
|
+
await setCookies(wsUrl, cookies);
|
|
30
|
+
},
|
|
31
|
+
navigateAndWait: async (url) => {
|
|
32
|
+
await navigateAndWaitForLoad(wsUrl, url);
|
|
33
|
+
},
|
|
34
|
+
seedStorage: async (originState) => {
|
|
35
|
+
await seedStorage(wsUrl, originState);
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
snapshot: input.snapshot,
|
|
39
|
+
startupUrl: input.startupUrl ? normalizeUrl(input.startupUrl) : null,
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
const createHydrationTarget = async (cdpHost, cdpPort) => fetchJson(`http://${cdpHost}:${cdpPort}/json/new?${encodeURIComponent('about:blank')}`, { method: 'PUT' });
|
|
43
|
+
const setCookies = async (wsUrl, cookies) => {
|
|
44
|
+
if (cookies.length === 0) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
await sendCdpCommand(wsUrl, {
|
|
48
|
+
id: 1,
|
|
49
|
+
method: 'Network.setCookies',
|
|
50
|
+
params: {
|
|
51
|
+
cookies: cookies.map((cookie) => ({
|
|
52
|
+
name: cookie.name,
|
|
53
|
+
value: cookie.value,
|
|
54
|
+
domain: cookie.domain,
|
|
55
|
+
path: cookie.path,
|
|
56
|
+
secure: cookie.secure,
|
|
57
|
+
httpOnly: cookie.httpOnly,
|
|
58
|
+
sameSite: cookie.sameSite ?? undefined,
|
|
59
|
+
expires: cookie.session ? undefined : (cookie.expires ?? undefined),
|
|
60
|
+
})),
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
const navigateAndWaitForLoad = async (wsUrl, url) => {
|
|
65
|
+
await sendCdpCommand(wsUrl, {
|
|
66
|
+
id: 1,
|
|
67
|
+
method: 'Page.navigate',
|
|
68
|
+
params: { url },
|
|
69
|
+
});
|
|
70
|
+
await sendCdpRequest(wsUrl, {
|
|
71
|
+
id: 1,
|
|
72
|
+
method: 'Runtime.evaluate',
|
|
73
|
+
params: {
|
|
74
|
+
expression: `new Promise((resolve) => {
|
|
75
|
+
if (document.readyState === 'complete') {
|
|
76
|
+
resolve(true)
|
|
77
|
+
return
|
|
78
|
+
}
|
|
79
|
+
addEventListener('load', () => resolve(true), { once: true })
|
|
80
|
+
})`,
|
|
81
|
+
awaitPromise: true,
|
|
82
|
+
returnByValue: true,
|
|
83
|
+
},
|
|
84
|
+
}, 10_000);
|
|
85
|
+
};
|
|
86
|
+
const seedStorage = async (wsUrl, originState) => {
|
|
87
|
+
await sendCdpCommand(wsUrl, {
|
|
88
|
+
id: 1,
|
|
89
|
+
method: 'Runtime.evaluate',
|
|
90
|
+
params: {
|
|
91
|
+
expression: buildAuthStateStorageSeedExpression(originState),
|
|
92
|
+
awaitPromise: false,
|
|
93
|
+
returnByValue: true,
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=authState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authState.js","sourceRoot":"","sources":["../../../src/commands/chrome/authState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChromeCommandOptions } from './shared.js';
|
|
2
|
+
export declare const runChromeVersion: (options: ChromeCommandOptions) => Promise<void>;
|
|
3
|
+
export declare const runChromeStatus: (options: ChromeCommandOptions) => Promise<void>;
|
|
4
|
+
export declare const runChromeStop: (options: ChromeCommandOptions) => Promise<void>;
|
|
5
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/commands/chrome/browser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAGvD,eAAO,MAAM,gBAAgB,GAAU,SAAS,oBAAoB,KAAG,OAAO,CAAC,IAAI,CAmBlF,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,SAAS,oBAAoB,KAAG,OAAO,CAAC,IAAI,CAwBjF,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,SAAS,oBAAoB,KAAG,OAAO,CAAC,IAAI,CAgC/E,CAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { sendCdpCommand } from '../../cdp/sendCdpCommand.js';
|
|
2
|
+
import { createOutput } from '../../output/io.js';
|
|
3
|
+
import { loadChromeVersion, resolveChromeEndpointOrExit } from './shared.js';
|
|
4
|
+
export const runChromeVersion = async (options) => {
|
|
5
|
+
const output = createOutput(options);
|
|
6
|
+
const endpoint = await resolveChromeEndpointOrExit(options, output);
|
|
7
|
+
if (!endpoint) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const response = await loadChromeVersion(endpoint, output);
|
|
11
|
+
if (!response) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (options.json) {
|
|
15
|
+
output.writeJson(response);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
output.writeHuman(`Browser: ${response.Browser}`);
|
|
19
|
+
output.writeHuman(`WebSocket: ${response.webSocketDebuggerUrl}`);
|
|
20
|
+
};
|
|
21
|
+
export const runChromeStatus = async (options) => {
|
|
22
|
+
const output = createOutput(options);
|
|
23
|
+
const endpoint = await resolveChromeEndpointOrExit(options, output);
|
|
24
|
+
if (!endpoint) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const response = await loadChromeVersion(endpoint, output);
|
|
28
|
+
if (!response) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (!response.Browser) {
|
|
32
|
+
output.writeWarn(`invalid response from ${endpoint.host}:${endpoint.port}`);
|
|
33
|
+
process.exitCode = 1;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (options.json) {
|
|
37
|
+
output.writeJson(response);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
output.writeHuman(`ok ${endpoint.host}:${endpoint.port} ${response.Browser}`);
|
|
41
|
+
};
|
|
42
|
+
export const runChromeStop = async (options) => {
|
|
43
|
+
const output = createOutput(options);
|
|
44
|
+
const endpoint = await resolveChromeEndpointOrExit(options, output);
|
|
45
|
+
if (!endpoint) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const response = await loadChromeVersion(endpoint, output);
|
|
49
|
+
if (!response) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (!response.webSocketDebuggerUrl) {
|
|
53
|
+
output.writeWarn(`No browser WebSocket endpoint exposed at ${endpoint.host}:${endpoint.port}.`);
|
|
54
|
+
process.exitCode = 1;
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
await sendCdpCommand(response.webSocketDebuggerUrl, { id: 1, method: 'Browser.close' });
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
output.writeWarn(`Failed to close Chrome at ${endpoint.host}:${endpoint.port}: ${error instanceof Error ? error.message : error}`);
|
|
62
|
+
process.exitCode = 1;
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (options.json) {
|
|
66
|
+
output.writeJson({ closed: true, host: endpoint.host, port: endpoint.port });
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
output.writeHuman(`closed ${endpoint.host}:${endpoint.port}`);
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=browser.js.map
|