sweetlink 0.2.0 → 0.2.2
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 +21 -2
- package/LICENSE +1 -1
- package/README.md +6 -6
- package/dist/daemon/src/cli.d.ts +3 -0
- package/dist/daemon/src/cli.d.ts.map +1 -0
- package/dist/daemon/src/cli.js +14 -0
- package/dist/daemon/src/cli.js.map +1 -0
- package/dist/daemon/src/codename.d.ts.map +1 -1
- package/dist/daemon/src/codename.js +11 -11
- package/dist/daemon/src/codename.js.map +1 -1
- package/dist/daemon/src/index.d.ts +1 -1
- package/dist/daemon/src/index.js +143 -128
- package/dist/daemon/src/index.js.map +1 -1
- package/dist/shared/src/env.d.ts.map +1 -1
- package/dist/shared/src/env.js +12 -12
- package/dist/shared/src/env.js.map +1 -1
- package/dist/shared/src/index.d.ts +30 -30
- package/dist/shared/src/index.d.ts.map +1 -1
- package/dist/shared/src/index.js +17 -17
- package/dist/shared/src/index.js.map +1 -1
- package/dist/shared/src/node.d.ts +1 -1
- package/dist/shared/src/node.d.ts.map +1 -1
- package/dist/shared/src/node.js +18 -18
- package/dist/shared/src/node.js.map +1 -1
- package/dist/src/codex.d.ts +1 -1
- package/dist/src/codex.js +19 -19
- package/dist/src/codex.js.map +1 -1
- package/dist/src/commands/click.d.ts +1 -1
- package/dist/src/commands/click.d.ts.map +1 -1
- package/dist/src/commands/click.js +32 -24
- package/dist/src/commands/click.js.map +1 -1
- package/dist/src/commands/run-js.d.ts +1 -1
- package/dist/src/commands/run-js.d.ts.map +1 -1
- package/dist/src/commands/run-js.js +10 -10
- package/dist/src/commands/run-js.js.map +1 -1
- package/dist/src/commands/trust-ca.d.ts +1 -1
- package/dist/src/commands/trust-ca.js +15 -15
- package/dist/src/core/config-file.d.ts.map +1 -1
- package/dist/src/core/config-file.js +49 -41
- package/dist/src/core/config-file.js.map +1 -1
- package/dist/src/core/config.d.ts +2 -2
- package/dist/src/core/config.d.ts.map +1 -1
- package/dist/src/core/config.js +22 -18
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/dev-bootstrap.d.ts +1 -1
- package/dist/src/core/dev-bootstrap.d.ts.map +1 -1
- package/dist/src/core/dev-bootstrap.js +12 -12
- package/dist/src/core/dev-bootstrap.js.map +1 -1
- package/dist/src/core/env.d.ts +1 -1
- package/dist/src/core/env.d.ts.map +1 -1
- package/dist/src/core/env.js +3 -3
- package/dist/src/core/env.js.map +1 -1
- package/dist/src/devtools-registry.d.ts.map +1 -1
- package/dist/src/devtools-registry.js +48 -46
- package/dist/src/devtools-registry.js.map +1 -1
- package/dist/src/env.d.ts +1 -1
- package/dist/src/env.js +1 -1
- package/dist/src/http.d.ts.map +1 -1
- package/dist/src/http.js +7 -6
- package/dist/src/http.js.map +1 -1
- package/dist/src/index.d.ts +7 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +399 -367
- package/dist/src/index.js.map +1 -1
- package/dist/src/runtime/browser/client.d.ts +5 -4
- package/dist/src/runtime/browser/client.d.ts.map +1 -1
- package/dist/src/runtime/browser/client.js +79 -72
- package/dist/src/runtime/browser/client.js.map +1 -1
- package/dist/src/runtime/browser/commands/index.d.ts +2 -2
- package/dist/src/runtime/browser/commands/index.js +17 -17
- package/dist/src/runtime/browser/commands/index.js.map +1 -1
- package/dist/src/runtime/browser/dom-to-image-loader.d.ts.map +1 -1
- package/dist/src/runtime/browser/dom-to-image-loader.js +7 -7
- package/dist/src/runtime/browser/dom-to-image-loader.js.map +1 -1
- package/dist/src/runtime/browser/index.d.ts +3 -3
- package/dist/src/runtime/browser/index.js +2 -2
- package/dist/src/runtime/browser/module-loader.js +2 -2
- package/dist/src/runtime/browser/screenshot/hooks.d.ts +5 -5
- package/dist/src/runtime/browser/screenshot/hooks.d.ts.map +1 -1
- package/dist/src/runtime/browser/screenshot/hooks.js +32 -29
- package/dist/src/runtime/browser/screenshot/hooks.js.map +1 -1
- package/dist/src/runtime/browser/screenshot/index.d.ts +3 -3
- package/dist/src/runtime/browser/screenshot/index.d.ts.map +1 -1
- package/dist/src/runtime/browser/screenshot/index.js +17 -15
- package/dist/src/runtime/browser/screenshot/index.js.map +1 -1
- package/dist/src/runtime/browser/screenshot/renderers/dom-to-image.d.ts +1 -1
- package/dist/src/runtime/browser/screenshot/renderers/dom-to-image.js +13 -13
- package/dist/src/runtime/browser/screenshot/renderers/dom-to-image.js.map +1 -1
- package/dist/src/runtime/browser/screenshot/renderers/html2canvas.d.ts +1 -1
- package/dist/src/runtime/browser/screenshot/renderers/html2canvas.d.ts.map +1 -1
- package/dist/src/runtime/browser/screenshot/renderers/html2canvas.js +24 -24
- package/dist/src/runtime/browser/screenshot/renderers/html2canvas.js.map +1 -1
- package/dist/src/runtime/browser/screenshot/targets.d.ts +2 -2
- package/dist/src/runtime/browser/screenshot/targets.js +9 -9
- package/dist/src/runtime/browser/screenshot/utils.d.ts +1 -1
- package/dist/src/runtime/browser/screenshot/utils.d.ts.map +1 -1
- package/dist/src/runtime/browser/screenshot/utils.js +73 -71
- package/dist/src/runtime/browser/screenshot/utils.js.map +1 -1
- package/dist/src/runtime/browser/selector-discovery.d.ts +1 -1
- package/dist/src/runtime/browser/selector-discovery.d.ts.map +1 -1
- package/dist/src/runtime/browser/selector-discovery.js +24 -22
- package/dist/src/runtime/browser/selector-discovery.js.map +1 -1
- package/dist/src/runtime/browser/storage/session-storage.d.ts +10 -5
- package/dist/src/runtime/browser/storage/session-storage.d.ts.map +1 -1
- package/dist/src/runtime/browser/storage/session-storage.js +12 -10
- package/dist/src/runtime/browser/storage/session-storage.js.map +1 -1
- package/dist/src/runtime/browser/types.d.ts +7 -7
- package/dist/src/runtime/browser/types.js +1 -1
- package/dist/src/runtime/browser/utils/console.d.ts +1 -1
- package/dist/src/runtime/browser/utils/console.js +16 -16
- package/dist/src/runtime/browser/utils/console.js.map +1 -1
- package/dist/src/runtime/browser/utils/environment.js +2 -2
- package/dist/src/runtime/browser/utils/errors.d.ts.map +1 -1
- package/dist/src/runtime/browser/utils/errors.js +11 -11
- package/dist/src/runtime/browser/utils/number.d.ts.map +1 -1
- package/dist/src/runtime/browser/utils/number.js.map +1 -1
- package/dist/src/runtime/browser/utils/object.d.ts.map +1 -1
- package/dist/src/runtime/browser/utils/object.js +2 -2
- package/dist/src/runtime/browser/utils/object.js.map +1 -1
- package/dist/src/runtime/browser/utils/sanitize.js +2 -2
- package/dist/src/runtime/browser/utils/time.d.ts.map +1 -1
- package/dist/src/runtime/browser/utils/time.js +1 -1
- package/dist/src/runtime/chrome/cookies.d.ts +4 -4
- package/dist/src/runtime/chrome/cookies.d.ts.map +1 -1
- package/dist/src/runtime/chrome/cookies.js +31 -31
- package/dist/src/runtime/chrome/cookies.js.map +1 -1
- package/dist/src/runtime/chrome/deep-link.d.ts +1 -1
- package/dist/src/runtime/chrome/deep-link.d.ts.map +1 -1
- package/dist/src/runtime/chrome/deep-link.js +46 -36
- package/dist/src/runtime/chrome/deep-link.js.map +1 -1
- package/dist/src/runtime/chrome/diagnostics.d.ts.map +1 -1
- package/dist/src/runtime/chrome/diagnostics.js +13 -11
- package/dist/src/runtime/chrome/diagnostics.js.map +1 -1
- package/dist/src/runtime/chrome/focus.d.ts.map +1 -1
- package/dist/src/runtime/chrome/focus.js +5 -5
- package/dist/src/runtime/chrome/focus.js.map +1 -1
- package/dist/src/runtime/chrome/launch.d.ts.map +1 -1
- package/dist/src/runtime/chrome/launch.js +30 -30
- package/dist/src/runtime/chrome/launch.js.map +1 -1
- package/dist/src/runtime/chrome/puppeteer.d.ts +2 -2
- package/dist/src/runtime/chrome/puppeteer.d.ts.map +1 -1
- package/dist/src/runtime/chrome/puppeteer.js +16 -11
- package/dist/src/runtime/chrome/puppeteer.js.map +1 -1
- package/dist/src/runtime/chrome/reuse.d.ts.map +1 -1
- package/dist/src/runtime/chrome/reuse.js +38 -35
- package/dist/src/runtime/chrome/reuse.js.map +1 -1
- package/dist/src/runtime/chrome/session.d.ts +1 -1
- package/dist/src/runtime/chrome/session.d.ts.map +1 -1
- package/dist/src/runtime/chrome/session.js +12 -10
- package/dist/src/runtime/chrome/session.js.map +1 -1
- package/dist/src/runtime/chrome.d.ts +8 -8
- package/dist/src/runtime/chrome.js +8 -8
- package/dist/src/runtime/cookies.d.ts +1 -16
- package/dist/src/runtime/cookies.d.ts.map +1 -1
- package/dist/src/runtime/cookies.js +175 -286
- package/dist/src/runtime/cookies.js.map +1 -1
- package/dist/src/runtime/devstack.d.ts +1 -1
- package/dist/src/runtime/devstack.d.ts.map +1 -1
- package/dist/src/runtime/devstack.js +31 -28
- package/dist/src/runtime/devstack.js.map +1 -1
- package/dist/src/runtime/devtools/background.js +22 -22
- package/dist/src/runtime/devtools/cdp.d.ts +3 -3
- package/dist/src/runtime/devtools/cdp.d.ts.map +1 -1
- package/dist/src/runtime/devtools/cdp.js +59 -55
- package/dist/src/runtime/devtools/cdp.js.map +1 -1
- package/dist/src/runtime/devtools/config.d.ts.map +1 -1
- package/dist/src/runtime/devtools/config.js +15 -15
- package/dist/src/runtime/devtools/config.js.map +1 -1
- package/dist/src/runtime/devtools/constants.d.ts.map +1 -1
- package/dist/src/runtime/devtools/constants.js +18 -10
- package/dist/src/runtime/devtools/constants.js.map +1 -1
- package/dist/src/runtime/devtools/diagnostics.d.ts +4 -4
- package/dist/src/runtime/devtools/diagnostics.d.ts.map +1 -1
- package/dist/src/runtime/devtools/diagnostics.js +40 -38
- package/dist/src/runtime/devtools/diagnostics.js.map +1 -1
- package/dist/src/runtime/devtools/oauth.d.ts +1 -1
- package/dist/src/runtime/devtools/oauth.d.ts.map +1 -1
- package/dist/src/runtime/devtools/oauth.js +35 -28
- package/dist/src/runtime/devtools/oauth.js.map +1 -1
- package/dist/src/runtime/devtools/types.d.ts +3 -3
- package/dist/src/runtime/devtools/types.d.ts.map +1 -1
- package/dist/src/runtime/devtools.d.ts +7 -7
- package/dist/src/runtime/devtools.js +7 -7
- package/dist/src/runtime/next-devtools.d.ts.map +1 -1
- package/dist/src/runtime/next-devtools.js +12 -12
- package/dist/src/runtime/next-devtools.js.map +1 -1
- package/dist/src/runtime/screenshot.d.ts +9 -9
- package/dist/src/runtime/screenshot.d.ts.map +1 -1
- package/dist/src/runtime/screenshot.js +65 -46
- package/dist/src/runtime/screenshot.js.map +1 -1
- package/dist/src/runtime/scripts.d.ts +1 -1
- package/dist/src/runtime/scripts.d.ts.map +1 -1
- package/dist/src/runtime/scripts.js +28 -28
- package/dist/src/runtime/scripts.js.map +1 -1
- package/dist/src/runtime/session.d.ts +6 -6
- package/dist/src/runtime/session.d.ts.map +1 -1
- package/dist/src/runtime/session.js +35 -35
- package/dist/src/runtime/session.js.map +1 -1
- package/dist/src/runtime/smoke.d.ts +3 -3
- package/dist/src/runtime/smoke.d.ts.map +1 -1
- package/dist/src/runtime/smoke.js +85 -79
- package/dist/src/runtime/smoke.js.map +1 -1
- package/dist/src/runtime/url.d.ts +2 -2
- package/dist/src/runtime/url.d.ts.map +1 -1
- package/dist/src/runtime/url.js +20 -20
- package/dist/src/runtime/url.js.map +1 -1
- package/dist/src/screenshot-hooks.d.ts +1 -1
- package/dist/src/screenshot-hooks.d.ts.map +1 -1
- package/dist/src/screenshot-hooks.js +12 -12
- package/dist/src/screenshot-hooks.js.map +1 -1
- package/dist/src/shared/env.d.ts.map +1 -1
- package/dist/src/shared/env.js +11 -11
- package/dist/src/shared/env.js.map +1 -1
- package/dist/src/shared/index.d.ts +30 -30
- package/dist/src/shared/index.d.ts.map +1 -1
- package/dist/src/shared/index.js +17 -17
- package/dist/src/shared/index.js.map +1 -1
- package/dist/src/shared/node.d.ts +1 -1
- package/dist/src/shared/node.d.ts.map +1 -1
- package/dist/src/shared/node.js +18 -18
- package/dist/src/shared/node.js.map +1 -1
- package/dist/src/token.d.ts +1 -1
- package/dist/src/token.d.ts.map +1 -1
- package/dist/src/token.js +16 -16
- package/dist/src/token.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/util/app-label.js +4 -4
- package/dist/src/util/errors.d.ts.map +1 -1
- package/dist/src/util/errors.js +12 -10
- package/dist/src/util/errors.js.map +1 -1
- package/dist/src/util/path.js +2 -2
- package/dist/src/util/regex.js +4 -4
- package/package.json +53 -45
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BENIGN_CONSOLE_TYPES, IGNORABLE_DIAGNOSTIC_MESSAGES } from
|
|
1
|
+
import { BENIGN_CONSOLE_TYPES, IGNORABLE_DIAGNOSTIC_MESSAGES } from "./constants.js";
|
|
2
2
|
const createLineCollector = (maxLines = 100) => {
|
|
3
3
|
const lines = [];
|
|
4
4
|
let truncatedCount = 0;
|
|
@@ -25,36 +25,36 @@ const isAuthDiagnostic = (entry) => {
|
|
|
25
25
|
if (!entry) {
|
|
26
26
|
return false;
|
|
27
27
|
}
|
|
28
|
-
const type = typeof entry.type ===
|
|
29
|
-
if (type ===
|
|
28
|
+
const type = typeof entry.type === "string" ? entry.type.toLowerCase() : "";
|
|
29
|
+
if (type === "auth-fetch") {
|
|
30
30
|
return true;
|
|
31
31
|
}
|
|
32
|
-
const message = typeof entry.message ===
|
|
33
|
-
return message.includes(
|
|
32
|
+
const message = typeof entry.message === "string" ? entry.message : "";
|
|
33
|
+
return message.includes("Authentication required");
|
|
34
34
|
};
|
|
35
35
|
const appendAuthDiagnostics = (append, diagnostics) => {
|
|
36
36
|
const authDiagnostics = diagnostics.filter((entry) => isAuthDiagnostic(entry));
|
|
37
37
|
if (authDiagnostics.length === 0) {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
append(`Detected ${authDiagnostics.length} authentication failure${authDiagnostics.length === 1 ?
|
|
40
|
+
append(`Detected ${authDiagnostics.length} authentication failure${authDiagnostics.length === 1 ? "" : "s"} while loading the page.`);
|
|
41
41
|
for (const entry of authDiagnostics.slice(-5)) {
|
|
42
|
-
const statusLabel = entry?.status ? ` status=${entry.status}` :
|
|
43
|
-
const originLabel = entry?.source ? ` (${entry.source})` :
|
|
44
|
-
const message = typeof entry?.message ===
|
|
42
|
+
const statusLabel = entry?.status ? ` status=${entry.status}` : "";
|
|
43
|
+
const originLabel = entry?.source ? ` (${entry.source})` : "";
|
|
44
|
+
const message = typeof entry?.message === "string" ? entry.message : "Authentication required";
|
|
45
45
|
append(` auth${statusLabel}${originLabel}: ${message}`);
|
|
46
46
|
}
|
|
47
|
-
append(
|
|
47
|
+
append(" Hint: complete the real OAuth consent flow or issue a new session token before rerunning SweetLink.");
|
|
48
48
|
};
|
|
49
49
|
const appendConsoleErrors = (append, label, diagnostics) => {
|
|
50
50
|
for (const error of diagnostics) {
|
|
51
51
|
if (isAuthDiagnostic(error)) {
|
|
52
52
|
continue;
|
|
53
53
|
}
|
|
54
|
-
const origin = error?.source ? ` (${error.source})` :
|
|
55
|
-
append(`${label} console ${error?.type ??
|
|
54
|
+
const origin = error?.source ? ` (${error.source})` : "";
|
|
55
|
+
append(`${label} console ${error?.type ?? "error"}${origin}: ${error?.message ?? "unknown error"}`);
|
|
56
56
|
if (error?.stack) {
|
|
57
|
-
for (const stackLine of error.stack.split(
|
|
57
|
+
for (const stackLine of error.stack.split("\n")) {
|
|
58
58
|
append(` ${stackLine.trim()}`);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
@@ -65,8 +65,8 @@ const appendOverlayDiagnostics = (append, label, overlayText) => {
|
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
append(`${label} Next.js overlay:`);
|
|
68
|
-
for (const overlayLine of overlayText.split(
|
|
69
|
-
const normalized = overlayLine.replaceAll(/\s+/g,
|
|
68
|
+
for (const overlayLine of overlayText.split("\n")) {
|
|
69
|
+
const normalized = overlayLine.replaceAll(/\s+/g, " ").trim();
|
|
70
70
|
if (normalized.length === 0) {
|
|
71
71
|
continue;
|
|
72
72
|
}
|
|
@@ -77,13 +77,15 @@ const appendRouteError = (append, label, routeError) => {
|
|
|
77
77
|
if (!routeError?.message) {
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
|
-
const digestLabel = routeError.digest ? ` (digest ${routeError.digest})` :
|
|
80
|
+
const digestLabel = routeError.digest ? ` (digest ${routeError.digest})` : "";
|
|
81
81
|
append(`${label} route error: ${routeError.message}${digestLabel}`);
|
|
82
82
|
};
|
|
83
83
|
export function logBootstrapDiagnostics(label, diagnostics) {
|
|
84
84
|
const { append, flush } = createLineCollector();
|
|
85
|
-
append(`${label} document=${diagnostics.readyState ??
|
|
86
|
-
const errors = Array.isArray(diagnostics.errors)
|
|
85
|
+
append(`${label} document=${diagnostics.readyState ?? "unknown"}, autoFlag=${diagnostics.autoFlag ? "set" : "unset"}, emits=${diagnostics.bootstrapEmits ?? 0}, sessionStorage=${diagnostics.sessionStorageAuto ?? "null"}.`);
|
|
86
|
+
const errors = Array.isArray(diagnostics.errors)
|
|
87
|
+
? diagnostics.errors
|
|
88
|
+
: [];
|
|
87
89
|
appendAuthDiagnostics(append, errors);
|
|
88
90
|
appendConsoleErrors(append, label, errors);
|
|
89
91
|
appendOverlayDiagnostics(append, label, diagnostics.overlayText);
|
|
@@ -99,11 +101,11 @@ export function logDevtoolsConsoleSummary(label, entries, limit = 20) {
|
|
|
99
101
|
const interesting = sorted.filter((entry) => {
|
|
100
102
|
if (!entry)
|
|
101
103
|
return false;
|
|
102
|
-
const type = entry.type?.toLowerCase() ??
|
|
104
|
+
const type = entry.type?.toLowerCase() ?? "";
|
|
103
105
|
if (BENIGN_CONSOLE_TYPES.has(type)) {
|
|
104
106
|
return false;
|
|
105
107
|
}
|
|
106
|
-
const message = entry.text ??
|
|
108
|
+
const message = entry.text ?? "";
|
|
107
109
|
if (IGNORABLE_DIAGNOSTIC_MESSAGES.some((ignored) => message.includes(ignored))) {
|
|
108
110
|
return false;
|
|
109
111
|
}
|
|
@@ -111,22 +113,22 @@ export function logDevtoolsConsoleSummary(label, entries, limit = 20) {
|
|
|
111
113
|
});
|
|
112
114
|
const chosenSource = interesting.length > 0 ? interesting : sorted;
|
|
113
115
|
const chosen = chosenSource.slice(-Math.min(limit, chosenSource.length));
|
|
114
|
-
const interestingLabel = interesting.length > 0 ?
|
|
115
|
-
console.warn(`${label}: showing ${chosen.length} ${interestingLabel} console event${chosen.length === 1 ?
|
|
116
|
+
const interestingLabel = interesting.length > 0 ? "error/warn" : "recent";
|
|
117
|
+
console.warn(`${label}: showing ${chosen.length} ${interestingLabel} console event${chosen.length === 1 ? "" : "s"}${interesting.length === 0 ? " (no obvious errors detected)" : ""}.`);
|
|
116
118
|
const skipped = chosenSource.length - chosen.length;
|
|
117
119
|
for (const entry of chosen) {
|
|
118
|
-
const timestamp = entry.ts ? new Date(entry.ts).toLocaleTimeString() :
|
|
120
|
+
const timestamp = entry.ts ? new Date(entry.ts).toLocaleTimeString() : "unknown";
|
|
119
121
|
const location = entry.location?.url
|
|
120
|
-
? ` (${entry.location.url}${typeof entry.location.lineNumber ===
|
|
121
|
-
:
|
|
122
|
+
? ` (${entry.location.url}${typeof entry.location.lineNumber === "number" ? `:${entry.location.lineNumber}` : ""})`
|
|
123
|
+
: "";
|
|
122
124
|
const args = Array.isArray(entry.args) && entry.args.length > 0
|
|
123
|
-
? entry.args.map((value) => formatConsoleArg(value)).join(
|
|
124
|
-
: (entry.text ??
|
|
125
|
-
const message = args ||
|
|
126
|
-
console.warn(` [${timestamp}] ${entry.type ??
|
|
125
|
+
? entry.args.map((value) => formatConsoleArg(value)).join(" ")
|
|
126
|
+
: (entry.text ?? "");
|
|
127
|
+
const message = args || "(no message)";
|
|
128
|
+
console.warn(` [${timestamp}] ${entry.type ?? "log"}${location}: ${message}`);
|
|
127
129
|
}
|
|
128
130
|
if (skipped > 0) {
|
|
129
|
-
console.warn(` … ${skipped} additional event${skipped === 1 ?
|
|
131
|
+
console.warn(` … ${skipped} additional event${skipped === 1 ? "" : "s"} not shown. Run "pnpm sweetlink devtools console --tail ${Math.min(200, chosenSource.length)}" for full output.`);
|
|
130
132
|
}
|
|
131
133
|
}
|
|
132
134
|
export function diagnosticsContainBlockingIssues(diagnostics) {
|
|
@@ -137,21 +139,21 @@ export function diagnosticsContainBlockingIssues(diagnostics) {
|
|
|
137
139
|
return true;
|
|
138
140
|
}
|
|
139
141
|
const authFailure = diagnostics.errors?.find((entry) => {
|
|
140
|
-
const type = typeof entry?.type ===
|
|
141
|
-
if (type ===
|
|
142
|
+
const type = typeof entry?.type === "string" ? entry.type.toLowerCase() : "";
|
|
143
|
+
if (type === "auth-fetch") {
|
|
142
144
|
return true;
|
|
143
145
|
}
|
|
144
|
-
const message = typeof entry?.message ===
|
|
145
|
-
return message.includes(
|
|
146
|
+
const message = typeof entry?.message === "string" ? entry.message : "";
|
|
147
|
+
return message.includes("Authentication required");
|
|
146
148
|
});
|
|
147
149
|
if (authFailure) {
|
|
148
150
|
return true;
|
|
149
151
|
}
|
|
150
152
|
if (diagnostics.errors?.length) {
|
|
151
153
|
const nonTrivialTypes = diagnostics.errors.filter((entry) => {
|
|
152
|
-
const type = (entry.type ??
|
|
153
|
-
if (type ===
|
|
154
|
-
const message = typeof entry.message ===
|
|
154
|
+
const type = (entry.type ?? "error").toLowerCase();
|
|
155
|
+
if (type === "error" || type === "unhandledrejection" || type === "warning") {
|
|
156
|
+
const message = typeof entry.message === "string" ? entry.message : "";
|
|
155
157
|
if (message && IGNORABLE_DIAGNOSTIC_MESSAGES.some((needle) => message.includes(needle))) {
|
|
156
158
|
return false;
|
|
157
159
|
}
|
|
@@ -166,7 +168,7 @@ export function diagnosticsContainBlockingIssues(diagnostics) {
|
|
|
166
168
|
return false;
|
|
167
169
|
}
|
|
168
170
|
export function formatConsoleArg(value) {
|
|
169
|
-
if (typeof value ===
|
|
171
|
+
if (typeof value === "string") {
|
|
170
172
|
return value;
|
|
171
173
|
}
|
|
172
174
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../../src/runtime/devtools/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../../src/runtime/devtools/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/runtime/devtools/oauth.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/runtime/devtools/oauth.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAGV,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAEpB,UAAU,gCAAgC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAUD,wBAAsB,6BAA6B,CAAC,EAClD,WAAW,EACX,UAAU,EACV,UAAU,GACX,EAAE,gCAAgC,GAAG,OAAO,CAAC,4BAA4B,CAAC,CA8C1E"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import path from
|
|
2
|
-
import { pathToFileURL } from
|
|
3
|
-
import { logDebugError } from
|
|
4
|
-
import { delay } from
|
|
5
|
-
import { connectPuppeteerBrowser, navigatePuppeteerPage, resolvePuppeteerPage, waitForPageReady, } from
|
|
6
|
-
import { urlsRoughlyMatch } from
|
|
7
|
-
import { evaluateInDevToolsTab, fetchDevToolsTabsWithRetry } from
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
3
|
+
import { logDebugError } from "../../util/errors.js";
|
|
4
|
+
import { delay } from "../../util/time.js";
|
|
5
|
+
import { connectPuppeteerBrowser, navigatePuppeteerPage, resolvePuppeteerPage, waitForPageReady, } from "../chrome/puppeteer.js";
|
|
6
|
+
import { urlsRoughlyMatch } from "../url.js";
|
|
7
|
+
import { evaluateInDevToolsTab, fetchDevToolsTabsWithRetry } from "./cdp.js";
|
|
8
8
|
let cachedAutomation = null;
|
|
9
9
|
const warnedMissingScriptPaths = new Set();
|
|
10
10
|
export async function attemptTwitterOauthAutoAccept({ devtoolsUrl, sessionUrl, scriptPath, }) {
|
|
@@ -13,11 +13,14 @@ export async function attemptTwitterOauthAutoAccept({ devtoolsUrl, sessionUrl, s
|
|
|
13
13
|
if (!warnedMissingScriptPaths.has(scriptPath ?? null)) {
|
|
14
14
|
const message = scriptPath
|
|
15
15
|
? `[sweetlink] OAuth automation script not found at "${scriptPath}". Auto-authorize is disabled.`
|
|
16
|
-
:
|
|
16
|
+
: "[sweetlink] No OAuth automation script configured. Auto-authorize is disabled.";
|
|
17
17
|
console.warn(message);
|
|
18
18
|
warnedMissingScriptPaths.add(scriptPath ?? null);
|
|
19
19
|
}
|
|
20
|
-
return {
|
|
20
|
+
return {
|
|
21
|
+
handled: false,
|
|
22
|
+
reason: scriptPath ? "oauth-handler-not-found" : "oauth-handler-not-configured",
|
|
23
|
+
};
|
|
21
24
|
}
|
|
22
25
|
const context = {
|
|
23
26
|
devtoolsUrl,
|
|
@@ -27,11 +30,11 @@ export async function attemptTwitterOauthAutoAccept({ devtoolsUrl, sessionUrl, s
|
|
|
27
30
|
urlsRoughlyMatch,
|
|
28
31
|
connectPuppeteer: async (attempts = 3) => {
|
|
29
32
|
try {
|
|
30
|
-
const puppeteerModule = await import(
|
|
33
|
+
const puppeteerModule = await import("puppeteer-core");
|
|
31
34
|
return await connectPuppeteerBrowser(puppeteerModule.default, devtoolsUrl, attempts);
|
|
32
35
|
}
|
|
33
36
|
catch (error) {
|
|
34
|
-
logDebugError(
|
|
37
|
+
logDebugError("Unable to load Puppeteer for OAuth automation", error);
|
|
35
38
|
return null;
|
|
36
39
|
}
|
|
37
40
|
},
|
|
@@ -46,15 +49,17 @@ export async function attemptTwitterOauthAutoAccept({ devtoolsUrl, sessionUrl, s
|
|
|
46
49
|
return normalizeAutomationResult(rawResult);
|
|
47
50
|
}
|
|
48
51
|
catch (error) {
|
|
49
|
-
logDebugError(
|
|
50
|
-
return { handled: false, reason:
|
|
52
|
+
logDebugError("OAuth automation script threw an error", error);
|
|
53
|
+
return { handled: false, reason: "oauth-handler-error" };
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
async function loadOauthAutomation(scriptPath) {
|
|
54
57
|
if (!scriptPath) {
|
|
55
58
|
return null;
|
|
56
59
|
}
|
|
57
|
-
const resolvedPath = path.isAbsolute(scriptPath)
|
|
60
|
+
const resolvedPath = path.isAbsolute(scriptPath)
|
|
61
|
+
? scriptPath
|
|
62
|
+
: path.resolve(process.cwd(), scriptPath);
|
|
58
63
|
if (cachedAutomation && cachedAutomation.path === resolvedPath) {
|
|
59
64
|
return cachedAutomation.automation;
|
|
60
65
|
}
|
|
@@ -81,7 +86,7 @@ function normalizeAutomationModule(candidate) {
|
|
|
81
86
|
if (isAutomation(candidate)) {
|
|
82
87
|
return candidate;
|
|
83
88
|
}
|
|
84
|
-
if (typeof candidate ===
|
|
89
|
+
if (typeof candidate === "object") {
|
|
85
90
|
const record = candidate;
|
|
86
91
|
if (isAutomation(record.default)) {
|
|
87
92
|
return record.default;
|
|
@@ -89,11 +94,11 @@ function normalizeAutomationModule(candidate) {
|
|
|
89
94
|
if (isAutomation(record.automation)) {
|
|
90
95
|
return record.automation;
|
|
91
96
|
}
|
|
92
|
-
if (typeof record.authorize ===
|
|
97
|
+
if (typeof record.authorize === "function") {
|
|
93
98
|
return { authorize: record.authorize };
|
|
94
99
|
}
|
|
95
100
|
}
|
|
96
|
-
if (typeof candidate ===
|
|
101
|
+
if (typeof candidate === "function") {
|
|
97
102
|
const fn = candidate;
|
|
98
103
|
return {
|
|
99
104
|
authorize: (context) => Promise.resolve(fn(context)),
|
|
@@ -102,29 +107,31 @@ function normalizeAutomationModule(candidate) {
|
|
|
102
107
|
return null;
|
|
103
108
|
}
|
|
104
109
|
function isAutomation(value) {
|
|
105
|
-
if (!value || typeof value !==
|
|
110
|
+
if (!value || typeof value !== "object") {
|
|
106
111
|
return false;
|
|
107
112
|
}
|
|
108
113
|
const record = value;
|
|
109
|
-
return typeof record.authorize ===
|
|
114
|
+
return typeof record.authorize === "function";
|
|
110
115
|
}
|
|
111
116
|
function normalizeAutomationResult(value) {
|
|
112
|
-
if (value && typeof value ===
|
|
117
|
+
if (value && typeof value === "object") {
|
|
113
118
|
const record = value;
|
|
114
|
-
if (typeof record.handled ===
|
|
119
|
+
if (typeof record.handled === "boolean") {
|
|
115
120
|
return {
|
|
116
121
|
handled: record.handled,
|
|
117
|
-
action: typeof record.action ===
|
|
118
|
-
reason: typeof record.reason ===
|
|
119
|
-
clickedText: typeof record.clickedText ===
|
|
122
|
+
action: typeof record.action === "string" ? record.action : undefined,
|
|
123
|
+
reason: typeof record.reason === "string" ? record.reason : undefined,
|
|
124
|
+
clickedText: typeof record.clickedText === "string" || record.clickedText === null
|
|
125
|
+
? record.clickedText
|
|
126
|
+
: undefined,
|
|
120
127
|
hasUsernameInput: record.hasUsernameInput === true,
|
|
121
128
|
hasPasswordInput: record.hasPasswordInput === true,
|
|
122
|
-
url: typeof record.url ===
|
|
123
|
-
host: typeof record.host ===
|
|
124
|
-
title: typeof record.title ===
|
|
129
|
+
url: typeof record.url === "string" ? record.url : undefined,
|
|
130
|
+
host: typeof record.host === "string" ? record.host : undefined,
|
|
131
|
+
title: typeof record.title === "string" ? record.title : undefined,
|
|
125
132
|
};
|
|
126
133
|
}
|
|
127
134
|
}
|
|
128
|
-
return { handled: false, reason:
|
|
135
|
+
return { handled: false, reason: "oauth-handler-invalid-result" };
|
|
129
136
|
}
|
|
130
137
|
//# sourceMappingURL=oauth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/runtime/devtools/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/runtime/devtools/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Browser, Page } from
|
|
2
|
-
import type { Browser as PuppeteerBrowser, Page as PuppeteerPage } from
|
|
1
|
+
import type { Browser, Page } from "playwright-core";
|
|
2
|
+
import type { Browser as PuppeteerBrowser, Page as PuppeteerPage } from "puppeteer-core";
|
|
3
3
|
export interface SweetLinkBootstrapDiagnostics {
|
|
4
4
|
readyState?: string;
|
|
5
5
|
autoFlag?: boolean;
|
|
@@ -21,7 +21,7 @@ export interface SweetLinkBootstrapDiagnostics {
|
|
|
21
21
|
digest?: string | null;
|
|
22
22
|
} | null;
|
|
23
23
|
}
|
|
24
|
-
export type BootstrapDiagnosticError = NonNullable<SweetLinkBootstrapDiagnostics[
|
|
24
|
+
export type BootstrapDiagnosticError = NonNullable<SweetLinkBootstrapDiagnostics["errors"]>[number];
|
|
25
25
|
export interface DevToolsTabEntry {
|
|
26
26
|
id: string;
|
|
27
27
|
title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/devtools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/devtools/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
1
|
+
export * from "./devtools/background.js";
|
|
2
|
+
export * from "./devtools/cdp.js";
|
|
3
|
+
export * from "./devtools/config.js";
|
|
4
|
+
export * from "./devtools/constants.js";
|
|
5
|
+
export * from "./devtools/diagnostics.js";
|
|
6
|
+
export * from "./devtools/oauth.js";
|
|
7
|
+
export * from "./devtools/types.js";
|
|
8
8
|
//# sourceMappingURL=devtools.d.ts.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* biome-ignore lint/performance/noBarrelFile: devtools index re-exports helpers for public API stability. */
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
2
|
+
export * from "./devtools/background.js";
|
|
3
|
+
export * from "./devtools/cdp.js";
|
|
4
|
+
export * from "./devtools/config.js";
|
|
5
|
+
export * from "./devtools/constants.js";
|
|
6
|
+
export * from "./devtools/diagnostics.js";
|
|
7
|
+
export * from "./devtools/oauth.js";
|
|
8
|
+
export * from "./devtools/types.js";
|
|
9
9
|
//# sourceMappingURL=devtools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-devtools.d.ts","sourceRoot":"","sources":["../../../src/runtime/next-devtools.ts"],"names":[],"mappings":"AAgEA,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"next-devtools.d.ts","sourceRoot":"","sources":["../../../src/runtime/next-devtools.ts"],"names":[],"mappings":"AAgEA,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBvF"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { logDebugError } from
|
|
2
|
-
const ACCEPT_HEADER =
|
|
1
|
+
import { logDebugError } from "../util/errors.js";
|
|
2
|
+
const ACCEPT_HEADER = "application/json, text/event-stream";
|
|
3
3
|
async function callNextDevtoolsTool(origin, toolName, args = {}) {
|
|
4
4
|
const controller = new AbortController();
|
|
5
5
|
const timeout = setTimeout(() => controller.abort(), 2500);
|
|
6
6
|
try {
|
|
7
7
|
const response = await fetch(`${origin}/_next/mcp`, {
|
|
8
|
-
method:
|
|
8
|
+
method: "POST",
|
|
9
9
|
headers: {
|
|
10
10
|
Accept: ACCEPT_HEADER,
|
|
11
|
-
|
|
11
|
+
"Content-Type": "application/json",
|
|
12
12
|
},
|
|
13
13
|
body: JSON.stringify({
|
|
14
|
-
jsonrpc:
|
|
14
|
+
jsonrpc: "2.0",
|
|
15
15
|
id: `${Date.now()}`,
|
|
16
|
-
method:
|
|
16
|
+
method: "tools/call",
|
|
17
17
|
params: {
|
|
18
18
|
name: toolName,
|
|
19
19
|
arguments: args,
|
|
@@ -26,9 +26,9 @@ async function callNextDevtoolsTool(origin, toolName, args = {}) {
|
|
|
26
26
|
}
|
|
27
27
|
const raw = await response.text();
|
|
28
28
|
const dataLine = raw
|
|
29
|
-
.split(
|
|
29
|
+
.split("\n")
|
|
30
30
|
.map((line) => line.trim())
|
|
31
|
-
.find((line) => line.startsWith(
|
|
31
|
+
.find((line) => line.startsWith("data:"));
|
|
32
32
|
if (!dataLine) {
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
@@ -39,7 +39,7 @@ async function callNextDevtoolsTool(origin, toolName, args = {}) {
|
|
|
39
39
|
return JSON.parse(payload);
|
|
40
40
|
}
|
|
41
41
|
catch (error) {
|
|
42
|
-
logDebugError(
|
|
42
|
+
logDebugError("Next DevTools call failed", error);
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
45
|
finally {
|
|
@@ -54,17 +54,17 @@ export async function fetchNextDevtoolsErrors(targetUrl) {
|
|
|
54
54
|
catch {
|
|
55
55
|
return null;
|
|
56
56
|
}
|
|
57
|
-
const result = await callNextDevtoolsTool(origin,
|
|
57
|
+
const result = await callNextDevtoolsTool(origin, "get_errors");
|
|
58
58
|
const content = result?.result?.content;
|
|
59
59
|
if (!Array.isArray(content) || content.length === 0) {
|
|
60
60
|
return null;
|
|
61
61
|
}
|
|
62
|
-
const textChunk = content.find((entry) => entry?.type ===
|
|
62
|
+
const textChunk = content.find((entry) => entry?.type === "text" && typeof entry.text === "string");
|
|
63
63
|
if (!textChunk?.text) {
|
|
64
64
|
return null;
|
|
65
65
|
}
|
|
66
66
|
const normalized = textChunk.text.trim();
|
|
67
|
-
if (normalized.toLowerCase().startsWith(
|
|
67
|
+
if (normalized.toLowerCase().startsWith("no errors detected")) {
|
|
68
68
|
return null;
|
|
69
69
|
}
|
|
70
70
|
return normalized;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-devtools.js","sourceRoot":"","sources":["../../../src/runtime/next-devtools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAalD,MAAM,aAAa,GAAG,qCAAqC,CAAC;AAE5D,KAAK,UAAU,oBAAoB,CACjC,MAAc,EACd,QAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"next-devtools.js","sourceRoot":"","sources":["../../../src/runtime/next-devtools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import type { SweetLinkCommandResult, SweetLinkScreenshotRenderer } from
|
|
2
|
-
import type { CliConfig } from
|
|
3
|
-
import type { SweetLinkConsoleDump } from
|
|
1
|
+
import type { SweetLinkCommandResult, SweetLinkScreenshotRenderer } from "../../shared/src/index.js";
|
|
2
|
+
import type { CliConfig } from "../types.js";
|
|
3
|
+
import type { SweetLinkConsoleDump } from "./session.js";
|
|
4
4
|
export interface DevToolsCaptureOptions {
|
|
5
5
|
readonly devtoolsUrl: string;
|
|
6
6
|
readonly sessionUrl: string;
|
|
7
7
|
readonly selector?: string;
|
|
8
8
|
readonly quality: number;
|
|
9
|
-
readonly mode:
|
|
9
|
+
readonly mode: "full" | "element";
|
|
10
10
|
readonly outputPath: string;
|
|
11
11
|
}
|
|
12
12
|
export interface SweetLinkScreenshotResultPayload {
|
|
13
|
-
readonly mimeType:
|
|
13
|
+
readonly mimeType: "image/jpeg";
|
|
14
14
|
readonly base64: string;
|
|
15
15
|
readonly width: number;
|
|
16
16
|
readonly height: number;
|
|
@@ -21,9 +21,9 @@ export type ScreenshotFallbackContext = {
|
|
|
21
21
|
readonly token: string;
|
|
22
22
|
readonly sessionId: string;
|
|
23
23
|
readonly payload: {
|
|
24
|
-
readonly type:
|
|
24
|
+
readonly type: "screenshot";
|
|
25
25
|
readonly id: string;
|
|
26
|
-
readonly mode:
|
|
26
|
+
readonly mode: "full" | "element";
|
|
27
27
|
readonly selector?: string;
|
|
28
28
|
readonly quality: number;
|
|
29
29
|
readonly timeoutMs: number;
|
|
@@ -45,7 +45,7 @@ export type DevToolsRecoveryContext = {
|
|
|
45
45
|
readonly devtoolsUrl: string;
|
|
46
46
|
readonly selector?: string;
|
|
47
47
|
readonly quality: number;
|
|
48
|
-
readonly mode:
|
|
48
|
+
readonly mode: "full" | "element";
|
|
49
49
|
readonly outputPath: string;
|
|
50
50
|
readonly prompt: string | undefined;
|
|
51
51
|
readonly suppressOutput: boolean;
|
|
@@ -69,7 +69,7 @@ export declare function attemptDevToolsCapture(options: DevToolsCaptureOptions):
|
|
|
69
69
|
width: number;
|
|
70
70
|
height: number;
|
|
71
71
|
sizeKb: number;
|
|
72
|
-
renderer:
|
|
72
|
+
renderer: "puppeteer";
|
|
73
73
|
} | null>;
|
|
74
74
|
export declare function tryDevToolsRecovery(context: DevToolsRecoveryContext): Promise<boolean>;
|
|
75
75
|
export declare function persistScreenshotResult(outputPath: string, result: SweetLinkCommandResult, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../src/runtime/screenshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../src/runtime/screenshot.ts"],"names":[],"mappings":"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"}
|