@letsscrapedata/controller 0.0.67 → 0.0.69
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/index.cjs +34 -35
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +31 -32
- package/package.json +7 -6
package/dist/index.cjs
CHANGED
|
@@ -28,8 +28,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
|
|
30
30
|
// src/index.ts
|
|
31
|
-
var
|
|
32
|
-
__export(
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
33
|
CheerioElement: () => CheerioElement,
|
|
34
34
|
CheerioPage: () => CheerioPage,
|
|
35
35
|
ControllerEvent: () => ControllerEvent,
|
|
@@ -47,7 +47,7 @@ __export(src_exports, {
|
|
|
47
47
|
controller: () => controller,
|
|
48
48
|
setControllerLogFun: () => setControllerLogFun
|
|
49
49
|
});
|
|
50
|
-
module.exports = __toCommonJS(
|
|
50
|
+
module.exports = __toCommonJS(index_exports);
|
|
51
51
|
|
|
52
52
|
// src/types/types.ts
|
|
53
53
|
var ControllerEvent = /* @__PURE__ */ ((ControllerEvent2) => {
|
|
@@ -1329,8 +1329,8 @@ var PlaywrightPage = class extends import_node_events.default {
|
|
|
1329
1329
|
throw new Error("No valid page");
|
|
1330
1330
|
}
|
|
1331
1331
|
const cookies = await this.#getCookies(this.#page);
|
|
1332
|
-
const
|
|
1333
|
-
return { cookies,
|
|
1332
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
1333
|
+
return { cookies, origins };
|
|
1334
1334
|
}
|
|
1335
1335
|
status() {
|
|
1336
1336
|
return this.#status;
|
|
@@ -1452,8 +1452,8 @@ var PlaywrightApiContext = class {
|
|
|
1452
1452
|
throw new Error(`ApiContext has already been destroyed`);
|
|
1453
1453
|
}
|
|
1454
1454
|
const storageState = await this.#apiRequestContext.storageState();
|
|
1455
|
-
const { cookies, origins
|
|
1456
|
-
return { cookies,
|
|
1455
|
+
const { cookies, origins } = storageState;
|
|
1456
|
+
return { cookies, origins };
|
|
1457
1457
|
}
|
|
1458
1458
|
async destroy() {
|
|
1459
1459
|
await this.#apiRequestContext.dispose();
|
|
@@ -1720,7 +1720,7 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1720
1720
|
throw new Error("No valid browserContext");
|
|
1721
1721
|
}
|
|
1722
1722
|
try {
|
|
1723
|
-
const { cookies,
|
|
1723
|
+
const { cookies, origins } = stateData;
|
|
1724
1724
|
const page = await this.getPage();
|
|
1725
1725
|
if (!page) {
|
|
1726
1726
|
return false;
|
|
@@ -1729,7 +1729,7 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1729
1729
|
if (cookies.length > 0) {
|
|
1730
1730
|
await this.#browserContext.addCookies(cookies);
|
|
1731
1731
|
}
|
|
1732
|
-
if (
|
|
1732
|
+
if (origins.length > 0) {
|
|
1733
1733
|
await origPage.route("**/*", async (route) => {
|
|
1734
1734
|
const request = route.request();
|
|
1735
1735
|
await route.fulfill({
|
|
@@ -1738,7 +1738,7 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1738
1738
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
1739
1739
|
});
|
|
1740
1740
|
});
|
|
1741
|
-
for (const localStorageOrigin of
|
|
1741
|
+
for (const localStorageOrigin of origins) {
|
|
1742
1742
|
const { origin, localStorage } = localStorageOrigin;
|
|
1743
1743
|
await origPage.goto(origin);
|
|
1744
1744
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -2198,7 +2198,7 @@ var PuppeteerElement = class _PuppeteerElement {
|
|
|
2198
2198
|
await this.#$ele.press(key, options);
|
|
2199
2199
|
return true;
|
|
2200
2200
|
}
|
|
2201
|
-
async screenshot(options) {
|
|
2201
|
+
async screenshot(options = {}) {
|
|
2202
2202
|
return await this.#$ele.screenshot(options);
|
|
2203
2203
|
}
|
|
2204
2204
|
async scrollIntoView() {
|
|
@@ -3124,8 +3124,8 @@ var PuppeteerPage = class extends import_node_events4.default {
|
|
|
3124
3124
|
throw new Error("No valid page");
|
|
3125
3125
|
}
|
|
3126
3126
|
const cookies = await this.#getCookies(this.#page);
|
|
3127
|
-
const
|
|
3128
|
-
return { cookies,
|
|
3127
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
3128
|
+
return { cookies, origins };
|
|
3129
3129
|
}
|
|
3130
3130
|
status() {
|
|
3131
3131
|
return this.#status;
|
|
@@ -3506,7 +3506,7 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3506
3506
|
throw new Error("No valid browserContext");
|
|
3507
3507
|
}
|
|
3508
3508
|
try {
|
|
3509
|
-
const { cookies,
|
|
3509
|
+
const { cookies, origins } = stateData;
|
|
3510
3510
|
const page = await this.getPage();
|
|
3511
3511
|
if (!page) {
|
|
3512
3512
|
return false;
|
|
@@ -3515,7 +3515,7 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3515
3515
|
if (cookies.length > 0) {
|
|
3516
3516
|
await origPage.setCookie(...cookies);
|
|
3517
3517
|
}
|
|
3518
|
-
if (
|
|
3518
|
+
if (origins.length > 0) {
|
|
3519
3519
|
await origPage.setRequestInterception(true);
|
|
3520
3520
|
origPage.on("request" /* PAGE_REQUEST */, (request) => {
|
|
3521
3521
|
request.respond({
|
|
@@ -3524,7 +3524,7 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3524
3524
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
3525
3525
|
});
|
|
3526
3526
|
});
|
|
3527
|
-
for (const localStorageOrigin of
|
|
3527
|
+
for (const localStorageOrigin of origins) {
|
|
3528
3528
|
const { origin, localStorage } = localStorageOrigin;
|
|
3529
3529
|
await origPage.goto(origin);
|
|
3530
3530
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -5334,8 +5334,8 @@ var PatchrightPage = class extends import_node_events8.default {
|
|
|
5334
5334
|
throw new Error("No valid page");
|
|
5335
5335
|
}
|
|
5336
5336
|
const cookies = await this.#getCookies(this.#page);
|
|
5337
|
-
const
|
|
5338
|
-
return { cookies,
|
|
5337
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
5338
|
+
return { cookies, origins };
|
|
5339
5339
|
}
|
|
5340
5340
|
status() {
|
|
5341
5341
|
return this.#status;
|
|
@@ -5457,8 +5457,8 @@ var PatchrightApiContext = class {
|
|
|
5457
5457
|
throw new Error(`ApiContext has already been destroyed`);
|
|
5458
5458
|
}
|
|
5459
5459
|
const storageState = await this.#apiRequestContext.storageState();
|
|
5460
|
-
const { cookies, origins
|
|
5461
|
-
return { cookies,
|
|
5460
|
+
const { cookies, origins } = storageState;
|
|
5461
|
+
return { cookies, origins };
|
|
5462
5462
|
}
|
|
5463
5463
|
async destroy() {
|
|
5464
5464
|
await this.#apiRequestContext.dispose();
|
|
@@ -5725,7 +5725,7 @@ var PatchrightBrowserContext = class extends import_node_events9.default {
|
|
|
5725
5725
|
throw new Error("No valid browserContext");
|
|
5726
5726
|
}
|
|
5727
5727
|
try {
|
|
5728
|
-
const { cookies,
|
|
5728
|
+
const { cookies, origins } = stateData;
|
|
5729
5729
|
const page = await this.getPage();
|
|
5730
5730
|
if (!page) {
|
|
5731
5731
|
return false;
|
|
@@ -5734,7 +5734,7 @@ var PatchrightBrowserContext = class extends import_node_events9.default {
|
|
|
5734
5734
|
if (cookies.length > 0) {
|
|
5735
5735
|
await this.#browserContext.addCookies(cookies);
|
|
5736
5736
|
}
|
|
5737
|
-
if (
|
|
5737
|
+
if (origins.length > 0) {
|
|
5738
5738
|
await origPage.route("**/*", async (route) => {
|
|
5739
5739
|
const request = route.request();
|
|
5740
5740
|
await route.fulfill({
|
|
@@ -5743,7 +5743,7 @@ var PatchrightBrowserContext = class extends import_node_events9.default {
|
|
|
5743
5743
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
5744
5744
|
});
|
|
5745
5745
|
});
|
|
5746
|
-
for (const localStorageOrigin of
|
|
5746
|
+
for (const localStorageOrigin of origins) {
|
|
5747
5747
|
const { origin, localStorage } = localStorageOrigin;
|
|
5748
5748
|
await origPage.goto(origin);
|
|
5749
5749
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -6292,7 +6292,7 @@ var CamoufoxPage = class extends import_node_events11.default {
|
|
|
6292
6292
|
#closeWhenFree;
|
|
6293
6293
|
#resquestInterceptionOptions;
|
|
6294
6294
|
#responseInterceptionOptions;
|
|
6295
|
-
#client;
|
|
6295
|
+
// #client: CDPSession | null;
|
|
6296
6296
|
#responseCb;
|
|
6297
6297
|
#isDebugTask;
|
|
6298
6298
|
#hasValidUrl(page) {
|
|
@@ -6562,7 +6562,6 @@ var CamoufoxPage = class extends import_node_events11.default {
|
|
|
6562
6562
|
this.#closeWhenFree = false;
|
|
6563
6563
|
this.#resquestInterceptionOptions = [];
|
|
6564
6564
|
this.#responseInterceptionOptions = [];
|
|
6565
|
-
this.#client = null;
|
|
6566
6565
|
this.#responseCb = null;
|
|
6567
6566
|
this.#isDebugTask = false;
|
|
6568
6567
|
loginfo(`##browser LsdPage ${this.#pageId} ${openType}ed`);
|
|
@@ -7159,8 +7158,8 @@ var CamoufoxPage = class extends import_node_events11.default {
|
|
|
7159
7158
|
throw new Error("No valid page");
|
|
7160
7159
|
}
|
|
7161
7160
|
const cookies = await this.#getCookies(this.#page);
|
|
7162
|
-
const
|
|
7163
|
-
return { cookies,
|
|
7161
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
7162
|
+
return { cookies, origins };
|
|
7164
7163
|
}
|
|
7165
7164
|
status() {
|
|
7166
7165
|
return this.#status;
|
|
@@ -7282,8 +7281,8 @@ var CamoufoxApiContext = class {
|
|
|
7282
7281
|
throw new Error(`ApiContext has already been destroyed`);
|
|
7283
7282
|
}
|
|
7284
7283
|
const storageState = await this.#apiRequestContext.storageState();
|
|
7285
|
-
const { cookies, origins
|
|
7286
|
-
return { cookies,
|
|
7284
|
+
const { cookies, origins } = storageState;
|
|
7285
|
+
return { cookies, origins };
|
|
7287
7286
|
}
|
|
7288
7287
|
async destroy() {
|
|
7289
7288
|
await this.#apiRequestContext.dispose();
|
|
@@ -7550,7 +7549,7 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7550
7549
|
throw new Error("No valid browserContext");
|
|
7551
7550
|
}
|
|
7552
7551
|
try {
|
|
7553
|
-
const { cookies,
|
|
7552
|
+
const { cookies, origins } = stateData;
|
|
7554
7553
|
const page = await this.getPage();
|
|
7555
7554
|
if (!page) {
|
|
7556
7555
|
return false;
|
|
@@ -7559,7 +7558,7 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7559
7558
|
if (cookies.length > 0) {
|
|
7560
7559
|
await this.#browserContext.addCookies(cookies);
|
|
7561
7560
|
}
|
|
7562
|
-
if (
|
|
7561
|
+
if (origins.length > 0) {
|
|
7563
7562
|
await origPage.route("**/*", async (route) => {
|
|
7564
7563
|
const request = route.request();
|
|
7565
7564
|
await route.fulfill({
|
|
@@ -7568,7 +7567,7 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7568
7567
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
7569
7568
|
});
|
|
7570
7569
|
});
|
|
7571
|
-
for (const localStorageOrigin of
|
|
7570
|
+
for (const localStorageOrigin of origins) {
|
|
7572
7571
|
const { origin, localStorage } = localStorageOrigin;
|
|
7573
7572
|
await origPage.goto(origin);
|
|
7574
7573
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -8027,8 +8026,8 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
8027
8026
|
lsdBrowser = new PatchrightBrowser(browser, browserType, "launch", actOptions, this.#nextBrowserIdx++, browserPid);
|
|
8028
8027
|
}
|
|
8029
8028
|
} else if (browserControllerType === "puppeteer") {
|
|
8030
|
-
const
|
|
8031
|
-
const launchOptions = { headless, timeout,
|
|
8029
|
+
const pupBrowserType = this.#puppeteerProduct(browserType);
|
|
8030
|
+
const launchOptions = { headless, timeout, browser: pupBrowserType };
|
|
8032
8031
|
if (executablePath) {
|
|
8033
8032
|
launchOptions.executablePath = executablePath;
|
|
8034
8033
|
}
|
|
@@ -8167,7 +8166,7 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
8167
8166
|
const { proxy, stateData, userAgent, timeout, ignoreHTTPSErrors, extraHTTPHeaders, httpCredentials } = options;
|
|
8168
8167
|
const apiRequestContext = await import_playwright.request.newContext({
|
|
8169
8168
|
proxy: proxy ? { server: proxy.proxyUrl, username: proxy.username, password: proxy.password } : void 0,
|
|
8170
|
-
storageState: stateData ? { cookies: stateData.cookies, origins: stateData.
|
|
8169
|
+
storageState: stateData ? { cookies: stateData.cookies, origins: stateData.origins } : void 0,
|
|
8171
8170
|
userAgent,
|
|
8172
8171
|
timeout,
|
|
8173
8172
|
ignoreHTTPSErrors,
|
package/dist/index.d.cts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1278,8 +1278,8 @@ var PlaywrightPage = class extends EventEmitter {
|
|
|
1278
1278
|
throw new Error("No valid page");
|
|
1279
1279
|
}
|
|
1280
1280
|
const cookies = await this.#getCookies(this.#page);
|
|
1281
|
-
const
|
|
1282
|
-
return { cookies,
|
|
1281
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
1282
|
+
return { cookies, origins };
|
|
1283
1283
|
}
|
|
1284
1284
|
status() {
|
|
1285
1285
|
return this.#status;
|
|
@@ -1401,8 +1401,8 @@ var PlaywrightApiContext = class {
|
|
|
1401
1401
|
throw new Error(`ApiContext has already been destroyed`);
|
|
1402
1402
|
}
|
|
1403
1403
|
const storageState = await this.#apiRequestContext.storageState();
|
|
1404
|
-
const { cookies, origins
|
|
1405
|
-
return { cookies,
|
|
1404
|
+
const { cookies, origins } = storageState;
|
|
1405
|
+
return { cookies, origins };
|
|
1406
1406
|
}
|
|
1407
1407
|
async destroy() {
|
|
1408
1408
|
await this.#apiRequestContext.dispose();
|
|
@@ -1669,7 +1669,7 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1669
1669
|
throw new Error("No valid browserContext");
|
|
1670
1670
|
}
|
|
1671
1671
|
try {
|
|
1672
|
-
const { cookies,
|
|
1672
|
+
const { cookies, origins } = stateData;
|
|
1673
1673
|
const page = await this.getPage();
|
|
1674
1674
|
if (!page) {
|
|
1675
1675
|
return false;
|
|
@@ -1678,7 +1678,7 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1678
1678
|
if (cookies.length > 0) {
|
|
1679
1679
|
await this.#browserContext.addCookies(cookies);
|
|
1680
1680
|
}
|
|
1681
|
-
if (
|
|
1681
|
+
if (origins.length > 0) {
|
|
1682
1682
|
await origPage.route("**/*", async (route) => {
|
|
1683
1683
|
const request = route.request();
|
|
1684
1684
|
await route.fulfill({
|
|
@@ -1687,7 +1687,7 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1687
1687
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
1688
1688
|
});
|
|
1689
1689
|
});
|
|
1690
|
-
for (const localStorageOrigin of
|
|
1690
|
+
for (const localStorageOrigin of origins) {
|
|
1691
1691
|
const { origin, localStorage } = localStorageOrigin;
|
|
1692
1692
|
await origPage.goto(origin);
|
|
1693
1693
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -2147,7 +2147,7 @@ var PuppeteerElement = class _PuppeteerElement {
|
|
|
2147
2147
|
await this.#$ele.press(key, options);
|
|
2148
2148
|
return true;
|
|
2149
2149
|
}
|
|
2150
|
-
async screenshot(options) {
|
|
2150
|
+
async screenshot(options = {}) {
|
|
2151
2151
|
return await this.#$ele.screenshot(options);
|
|
2152
2152
|
}
|
|
2153
2153
|
async scrollIntoView() {
|
|
@@ -3073,8 +3073,8 @@ var PuppeteerPage = class extends EventEmitter4 {
|
|
|
3073
3073
|
throw new Error("No valid page");
|
|
3074
3074
|
}
|
|
3075
3075
|
const cookies = await this.#getCookies(this.#page);
|
|
3076
|
-
const
|
|
3077
|
-
return { cookies,
|
|
3076
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
3077
|
+
return { cookies, origins };
|
|
3078
3078
|
}
|
|
3079
3079
|
status() {
|
|
3080
3080
|
return this.#status;
|
|
@@ -3455,7 +3455,7 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
3455
3455
|
throw new Error("No valid browserContext");
|
|
3456
3456
|
}
|
|
3457
3457
|
try {
|
|
3458
|
-
const { cookies,
|
|
3458
|
+
const { cookies, origins } = stateData;
|
|
3459
3459
|
const page = await this.getPage();
|
|
3460
3460
|
if (!page) {
|
|
3461
3461
|
return false;
|
|
@@ -3464,7 +3464,7 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
3464
3464
|
if (cookies.length > 0) {
|
|
3465
3465
|
await origPage.setCookie(...cookies);
|
|
3466
3466
|
}
|
|
3467
|
-
if (
|
|
3467
|
+
if (origins.length > 0) {
|
|
3468
3468
|
await origPage.setRequestInterception(true);
|
|
3469
3469
|
origPage.on("request" /* PAGE_REQUEST */, (request) => {
|
|
3470
3470
|
request.respond({
|
|
@@ -3473,7 +3473,7 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
3473
3473
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
3474
3474
|
});
|
|
3475
3475
|
});
|
|
3476
|
-
for (const localStorageOrigin of
|
|
3476
|
+
for (const localStorageOrigin of origins) {
|
|
3477
3477
|
const { origin, localStorage } = localStorageOrigin;
|
|
3478
3478
|
await origPage.goto(origin);
|
|
3479
3479
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -5283,8 +5283,8 @@ var PatchrightPage = class extends EventEmitter8 {
|
|
|
5283
5283
|
throw new Error("No valid page");
|
|
5284
5284
|
}
|
|
5285
5285
|
const cookies = await this.#getCookies(this.#page);
|
|
5286
|
-
const
|
|
5287
|
-
return { cookies,
|
|
5286
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
5287
|
+
return { cookies, origins };
|
|
5288
5288
|
}
|
|
5289
5289
|
status() {
|
|
5290
5290
|
return this.#status;
|
|
@@ -5406,8 +5406,8 @@ var PatchrightApiContext = class {
|
|
|
5406
5406
|
throw new Error(`ApiContext has already been destroyed`);
|
|
5407
5407
|
}
|
|
5408
5408
|
const storageState = await this.#apiRequestContext.storageState();
|
|
5409
|
-
const { cookies, origins
|
|
5410
|
-
return { cookies,
|
|
5409
|
+
const { cookies, origins } = storageState;
|
|
5410
|
+
return { cookies, origins };
|
|
5411
5411
|
}
|
|
5412
5412
|
async destroy() {
|
|
5413
5413
|
await this.#apiRequestContext.dispose();
|
|
@@ -5674,7 +5674,7 @@ var PatchrightBrowserContext = class extends EventEmitter9 {
|
|
|
5674
5674
|
throw new Error("No valid browserContext");
|
|
5675
5675
|
}
|
|
5676
5676
|
try {
|
|
5677
|
-
const { cookies,
|
|
5677
|
+
const { cookies, origins } = stateData;
|
|
5678
5678
|
const page = await this.getPage();
|
|
5679
5679
|
if (!page) {
|
|
5680
5680
|
return false;
|
|
@@ -5683,7 +5683,7 @@ var PatchrightBrowserContext = class extends EventEmitter9 {
|
|
|
5683
5683
|
if (cookies.length > 0) {
|
|
5684
5684
|
await this.#browserContext.addCookies(cookies);
|
|
5685
5685
|
}
|
|
5686
|
-
if (
|
|
5686
|
+
if (origins.length > 0) {
|
|
5687
5687
|
await origPage.route("**/*", async (route) => {
|
|
5688
5688
|
const request = route.request();
|
|
5689
5689
|
await route.fulfill({
|
|
@@ -5692,7 +5692,7 @@ var PatchrightBrowserContext = class extends EventEmitter9 {
|
|
|
5692
5692
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
5693
5693
|
});
|
|
5694
5694
|
});
|
|
5695
|
-
for (const localStorageOrigin of
|
|
5695
|
+
for (const localStorageOrigin of origins) {
|
|
5696
5696
|
const { origin, localStorage } = localStorageOrigin;
|
|
5697
5697
|
await origPage.goto(origin);
|
|
5698
5698
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -6241,7 +6241,7 @@ var CamoufoxPage = class extends EventEmitter11 {
|
|
|
6241
6241
|
#closeWhenFree;
|
|
6242
6242
|
#resquestInterceptionOptions;
|
|
6243
6243
|
#responseInterceptionOptions;
|
|
6244
|
-
#client;
|
|
6244
|
+
// #client: CDPSession | null;
|
|
6245
6245
|
#responseCb;
|
|
6246
6246
|
#isDebugTask;
|
|
6247
6247
|
#hasValidUrl(page) {
|
|
@@ -6511,7 +6511,6 @@ var CamoufoxPage = class extends EventEmitter11 {
|
|
|
6511
6511
|
this.#closeWhenFree = false;
|
|
6512
6512
|
this.#resquestInterceptionOptions = [];
|
|
6513
6513
|
this.#responseInterceptionOptions = [];
|
|
6514
|
-
this.#client = null;
|
|
6515
6514
|
this.#responseCb = null;
|
|
6516
6515
|
this.#isDebugTask = false;
|
|
6517
6516
|
loginfo(`##browser LsdPage ${this.#pageId} ${openType}ed`);
|
|
@@ -7108,8 +7107,8 @@ var CamoufoxPage = class extends EventEmitter11 {
|
|
|
7108
7107
|
throw new Error("No valid page");
|
|
7109
7108
|
}
|
|
7110
7109
|
const cookies = await this.#getCookies(this.#page);
|
|
7111
|
-
const
|
|
7112
|
-
return { cookies,
|
|
7110
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
7111
|
+
return { cookies, origins };
|
|
7113
7112
|
}
|
|
7114
7113
|
status() {
|
|
7115
7114
|
return this.#status;
|
|
@@ -7231,8 +7230,8 @@ var CamoufoxApiContext = class {
|
|
|
7231
7230
|
throw new Error(`ApiContext has already been destroyed`);
|
|
7232
7231
|
}
|
|
7233
7232
|
const storageState = await this.#apiRequestContext.storageState();
|
|
7234
|
-
const { cookies, origins
|
|
7235
|
-
return { cookies,
|
|
7233
|
+
const { cookies, origins } = storageState;
|
|
7234
|
+
return { cookies, origins };
|
|
7236
7235
|
}
|
|
7237
7236
|
async destroy() {
|
|
7238
7237
|
await this.#apiRequestContext.dispose();
|
|
@@ -7499,7 +7498,7 @@ var CamoufoxBrowserContext = class extends EventEmitter12 {
|
|
|
7499
7498
|
throw new Error("No valid browserContext");
|
|
7500
7499
|
}
|
|
7501
7500
|
try {
|
|
7502
|
-
const { cookies,
|
|
7501
|
+
const { cookies, origins } = stateData;
|
|
7503
7502
|
const page = await this.getPage();
|
|
7504
7503
|
if (!page) {
|
|
7505
7504
|
return false;
|
|
@@ -7508,7 +7507,7 @@ var CamoufoxBrowserContext = class extends EventEmitter12 {
|
|
|
7508
7507
|
if (cookies.length > 0) {
|
|
7509
7508
|
await this.#browserContext.addCookies(cookies);
|
|
7510
7509
|
}
|
|
7511
|
-
if (
|
|
7510
|
+
if (origins.length > 0) {
|
|
7512
7511
|
await origPage.route("**/*", async (route) => {
|
|
7513
7512
|
const request = route.request();
|
|
7514
7513
|
await route.fulfill({
|
|
@@ -7517,7 +7516,7 @@ var CamoufoxBrowserContext = class extends EventEmitter12 {
|
|
|
7517
7516
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
7518
7517
|
});
|
|
7519
7518
|
});
|
|
7520
|
-
for (const localStorageOrigin of
|
|
7519
|
+
for (const localStorageOrigin of origins) {
|
|
7521
7520
|
const { origin, localStorage } = localStorageOrigin;
|
|
7522
7521
|
await origPage.goto(origin);
|
|
7523
7522
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -7976,8 +7975,8 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
7976
7975
|
lsdBrowser = new PatchrightBrowser(browser, browserType, "launch", actOptions, this.#nextBrowserIdx++, browserPid);
|
|
7977
7976
|
}
|
|
7978
7977
|
} else if (browserControllerType === "puppeteer") {
|
|
7979
|
-
const
|
|
7980
|
-
const launchOptions = { headless, timeout,
|
|
7978
|
+
const pupBrowserType = this.#puppeteerProduct(browserType);
|
|
7979
|
+
const launchOptions = { headless, timeout, browser: pupBrowserType };
|
|
7981
7980
|
if (executablePath) {
|
|
7982
7981
|
launchOptions.executablePath = executablePath;
|
|
7983
7982
|
}
|
|
@@ -8116,7 +8115,7 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
8116
8115
|
const { proxy, stateData, userAgent, timeout, ignoreHTTPSErrors, extraHTTPHeaders, httpCredentials } = options;
|
|
8117
8116
|
const apiRequestContext = await apiRequestInPlaywright.newContext({
|
|
8118
8117
|
proxy: proxy ? { server: proxy.proxyUrl, username: proxy.username, password: proxy.password } : void 0,
|
|
8119
|
-
storageState: stateData ? { cookies: stateData.cookies, origins: stateData.
|
|
8118
|
+
storageState: stateData ? { cookies: stateData.cookies, origins: stateData.origins } : void 0,
|
|
8120
8119
|
userAgent,
|
|
8121
8120
|
timeout,
|
|
8122
8121
|
ignoreHTTPSErrors,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@letsscrapedata/controller",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.69",
|
|
4
4
|
"description": "Unified browser / HTML controller interfaces that support patchright, camoufox, playwright, puppeteer and cheerio",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -52,15 +52,16 @@
|
|
|
52
52
|
"camoufox-js-lsd": "^0.6.5",
|
|
53
53
|
"cheerio": "^1.0.0",
|
|
54
54
|
"patchright": "^1.52.5",
|
|
55
|
-
"playwright": "^1.
|
|
55
|
+
"playwright": "^1.54.2",
|
|
56
56
|
"playwright-extra": "^4.3.6",
|
|
57
|
-
"puppeteer": "^
|
|
57
|
+
"puppeteer": "^24.16.0",
|
|
58
58
|
"puppeteer-extra": "^3.3.6",
|
|
59
|
-
"puppeteer-extra-plugin-stealth": "^2.11.2"
|
|
59
|
+
"puppeteer-extra-plugin-stealth": "^2.11.2",
|
|
60
|
+
"utils": "^0.3.1"
|
|
60
61
|
},
|
|
61
62
|
"devDependencies": {
|
|
62
63
|
"@types/cheerio": "^0.22.35",
|
|
63
|
-
"tsup": "^8.0
|
|
64
|
-
"typescript": "^5.
|
|
64
|
+
"tsup": "^8.5.0",
|
|
65
|
+
"typescript": "^5.9.2"
|
|
65
66
|
}
|
|
66
67
|
}
|