@monoes/monobrowse 2.24.1 → 2.24.3
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/LICENSE +191 -0
- package/dist/src/__tests__/open-url-navigate-error.test.js +31 -0
- package/dist/src/__tests__/open-url-navigate-error.test.js.map +1 -1
- package/dist/src/__tests__/profile-dir.test.js +6 -2
- package/dist/src/__tests__/profile-dir.test.js.map +1 -1
- package/dist/src/browser/browser-lifecycle.d.ts +1 -1
- package/dist/src/browser/browser-lifecycle.d.ts.map +1 -1
- package/dist/src/browser/browser-lifecycle.js +24 -22
- package/dist/src/browser/browser-lifecycle.js.map +1 -1
- package/dist/src/browser/browser-page.d.ts.map +1 -1
- package/dist/src/browser/browser-page.js +5 -1
- package/dist/src/browser/browser-page.js.map +1 -1
- package/dist/src/browser/profile-dir.d.ts +1 -1
- package/dist/src/browser/profile-dir.d.ts.map +1 -1
- package/dist/src/browser/profile-dir.js +5 -4
- package/dist/src/browser/profile-dir.js.map +1 -1
- package/dist/src/cli/attention-wall.d.ts.map +1 -1
- package/dist/src/cli/attention-wall.js +46 -35
- package/dist/src/cli/attention-wall.js.map +1 -1
- package/dist/src/cli.js +0 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -9
- package/src/__tests__/open-url-navigate-error.test.ts +33 -0
- package/src/__tests__/profile-dir.test.ts +6 -2
- package/src/browser/browser-lifecycle.ts +26 -24
- package/src/browser/browser-page.ts +5 -1
- package/src/browser/profile-dir.ts +5 -4
- package/src/cli/attention-wall.ts +53 -45
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { randomUUID } from 'node:crypto';
|
|
9
9
|
import { tmpdir } from 'node:os';
|
|
10
|
-
import {
|
|
10
|
+
import { sessionProfileDirPath } from '../browser/profile-dir.js';
|
|
11
11
|
import { output } from './output.js';
|
|
12
12
|
import { getBrowser, session } from './session.js';
|
|
13
13
|
// URL patterns that signal an unambiguous login/auth wall.
|
|
@@ -90,7 +90,8 @@ export async function switchToHeaded(url, port) {
|
|
|
90
90
|
headedPort = await browser.launchBrowser({
|
|
91
91
|
port: 0,
|
|
92
92
|
headless: false,
|
|
93
|
-
userDataDir:
|
|
93
|
+
userDataDir: sessionProfileDirPath(randomUUID().slice(0, 8), tmpdir(), true),
|
|
94
|
+
ownsUserDataDir: true,
|
|
94
95
|
});
|
|
95
96
|
}
|
|
96
97
|
catch (err) {
|
|
@@ -103,42 +104,52 @@ export async function switchToHeaded(url, port) {
|
|
|
103
104
|
session.refs = new Map();
|
|
104
105
|
throw new Error(`Cannot open headed browser: ${err instanceof Error ? err.message : String(err)}`);
|
|
105
106
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
let authCookies = [];
|
|
108
|
+
let authLocalStorage = {};
|
|
109
|
+
try {
|
|
110
|
+
const conn = await browser.connectToTarget(headedPort);
|
|
111
|
+
session.client = conn.client;
|
|
112
|
+
session.sessionId = conn.sessionId;
|
|
113
|
+
session.targetId = conn.target.id;
|
|
114
|
+
session.refs = new Map();
|
|
115
|
+
if (savedCookies.length) {
|
|
116
|
+
try {
|
|
117
|
+
await browser.setCookies(session.client, session.sessionId, savedCookies);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
/* ignore */
|
|
121
|
+
}
|
|
114
122
|
}
|
|
115
|
-
|
|
116
|
-
|
|
123
|
+
await browser.openUrl(session.client, session.sessionId, url);
|
|
124
|
+
output.printInfo('Browser window opened. Complete the required action (login / CAPTCHA), then press Enter to continue in headless mode...');
|
|
125
|
+
await waitForEnter();
|
|
126
|
+
// Capture post-auth cookies
|
|
127
|
+
authCookies = await browser
|
|
128
|
+
.getCookies(session.client, session.sessionId)
|
|
129
|
+
.catch(() => []);
|
|
130
|
+
authLocalStorage = await browser
|
|
131
|
+
.getLocalStorage(session.client, session.sessionId)
|
|
132
|
+
.catch(() => ({}));
|
|
133
|
+
}
|
|
134
|
+
finally {
|
|
135
|
+
// Close headed session — actually terminate the underlying Chrome process
|
|
136
|
+
// (Browser.close CDP command, PID-kill fallback), not just our CDP client
|
|
137
|
+
// connection, so the visible authenticated window doesn't linger forever.
|
|
138
|
+
if (session.sessionId) {
|
|
139
|
+
browser.teardownRouteInterception(session.sessionId);
|
|
140
|
+
browser.stopRequestCapture(session.sessionId);
|
|
141
|
+
browser.teardownDialogHandling(session.sessionId);
|
|
142
|
+
browser.teardownConsoleCapture(session.sessionId);
|
|
143
|
+
}
|
|
144
|
+
await browser.closeBrowser(session.client, headedPort);
|
|
145
|
+
if (session.client) {
|
|
146
|
+
session.client.close();
|
|
147
|
+
session.client = null;
|
|
117
148
|
}
|
|
149
|
+
session.sessionId = '';
|
|
150
|
+
session.parentSessionId = '';
|
|
151
|
+
session.targetId = '';
|
|
118
152
|
}
|
|
119
|
-
await browser.openUrl(session.client, session.sessionId, url);
|
|
120
|
-
output.printInfo('Browser window opened. Complete the required action (login / CAPTCHA), then press Enter to continue in headless mode...');
|
|
121
|
-
await waitForEnter();
|
|
122
|
-
// Capture post-auth cookies
|
|
123
|
-
const authCookies = await browser
|
|
124
|
-
.getCookies(session.client, session.sessionId)
|
|
125
|
-
.catch(() => []);
|
|
126
|
-
const authLocalStorage = await browser
|
|
127
|
-
.getLocalStorage(session.client, session.sessionId)
|
|
128
|
-
.catch(() => ({}));
|
|
129
|
-
// Close headed session — actually terminate the underlying Chrome process
|
|
130
|
-
// (Browser.close CDP command, PID-kill fallback), not just our CDP client
|
|
131
|
-
// connection, so the visible authenticated window doesn't linger forever.
|
|
132
|
-
browser.teardownRouteInterception(session.sessionId);
|
|
133
|
-
browser.stopRequestCapture(session.sessionId);
|
|
134
|
-
browser.teardownDialogHandling(session.sessionId);
|
|
135
|
-
browser.teardownConsoleCapture(session.sessionId);
|
|
136
|
-
await browser.closeBrowser(session.client, headedPort);
|
|
137
|
-
session.client.close();
|
|
138
|
-
session.client = null;
|
|
139
|
-
session.sessionId = '';
|
|
140
|
-
session.parentSessionId = '';
|
|
141
|
-
session.targetId = '';
|
|
142
153
|
// Relaunch headless and restore session
|
|
143
154
|
session.port = await browser.launchBrowser({ port, headless: true });
|
|
144
155
|
const headlessConn = await browser.connectToTarget(session.port);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attention-wall.js","sourceRoot":"","sources":["../../../src/cli/attention-wall.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"attention-wall.js","sourceRoot":"","sources":["../../../src/cli/attention-wall.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli.js
CHANGED
|
File without changes
|