@letsscrapedata/controller 0.0.68 → 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 +27 -27
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +27 -27
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -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) => {
|
|
@@ -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) => {
|
|
@@ -7158,8 +7158,8 @@ var CamoufoxPage = class extends import_node_events11.default {
|
|
|
7158
7158
|
throw new Error("No valid page");
|
|
7159
7159
|
}
|
|
7160
7160
|
const cookies = await this.#getCookies(this.#page);
|
|
7161
|
-
const
|
|
7162
|
-
return { cookies,
|
|
7161
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
7162
|
+
return { cookies, origins };
|
|
7163
7163
|
}
|
|
7164
7164
|
status() {
|
|
7165
7165
|
return this.#status;
|
|
@@ -7281,8 +7281,8 @@ var CamoufoxApiContext = class {
|
|
|
7281
7281
|
throw new Error(`ApiContext has already been destroyed`);
|
|
7282
7282
|
}
|
|
7283
7283
|
const storageState = await this.#apiRequestContext.storageState();
|
|
7284
|
-
const { cookies, origins
|
|
7285
|
-
return { cookies,
|
|
7284
|
+
const { cookies, origins } = storageState;
|
|
7285
|
+
return { cookies, origins };
|
|
7286
7286
|
}
|
|
7287
7287
|
async destroy() {
|
|
7288
7288
|
await this.#apiRequestContext.dispose();
|
|
@@ -7549,7 +7549,7 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7549
7549
|
throw new Error("No valid browserContext");
|
|
7550
7550
|
}
|
|
7551
7551
|
try {
|
|
7552
|
-
const { cookies,
|
|
7552
|
+
const { cookies, origins } = stateData;
|
|
7553
7553
|
const page = await this.getPage();
|
|
7554
7554
|
if (!page) {
|
|
7555
7555
|
return false;
|
|
@@ -7558,7 +7558,7 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7558
7558
|
if (cookies.length > 0) {
|
|
7559
7559
|
await this.#browserContext.addCookies(cookies);
|
|
7560
7560
|
}
|
|
7561
|
-
if (
|
|
7561
|
+
if (origins.length > 0) {
|
|
7562
7562
|
await origPage.route("**/*", async (route) => {
|
|
7563
7563
|
const request = route.request();
|
|
7564
7564
|
await route.fulfill({
|
|
@@ -7567,7 +7567,7 @@ var CamoufoxBrowserContext = class extends import_node_events12.default {
|
|
|
7567
7567
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
7568
7568
|
});
|
|
7569
7569
|
});
|
|
7570
|
-
for (const localStorageOrigin of
|
|
7570
|
+
for (const localStorageOrigin of origins) {
|
|
7571
7571
|
const { origin, localStorage } = localStorageOrigin;
|
|
7572
7572
|
await origPage.goto(origin);
|
|
7573
7573
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -8166,7 +8166,7 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
8166
8166
|
const { proxy, stateData, userAgent, timeout, ignoreHTTPSErrors, extraHTTPHeaders, httpCredentials } = options;
|
|
8167
8167
|
const apiRequestContext = await import_playwright.request.newContext({
|
|
8168
8168
|
proxy: proxy ? { server: proxy.proxyUrl, username: proxy.username, password: proxy.password } : void 0,
|
|
8169
|
-
storageState: stateData ? { cookies: stateData.cookies, origins: stateData.
|
|
8169
|
+
storageState: stateData ? { cookies: stateData.cookies, origins: stateData.origins } : void 0,
|
|
8170
8170
|
userAgent,
|
|
8171
8171
|
timeout,
|
|
8172
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) => {
|
|
@@ -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) => {
|
|
@@ -7107,8 +7107,8 @@ var CamoufoxPage = class extends EventEmitter11 {
|
|
|
7107
7107
|
throw new Error("No valid page");
|
|
7108
7108
|
}
|
|
7109
7109
|
const cookies = await this.#getCookies(this.#page);
|
|
7110
|
-
const
|
|
7111
|
-
return { cookies,
|
|
7110
|
+
const origins = await this.#getLocalStorage(this.#page);
|
|
7111
|
+
return { cookies, origins };
|
|
7112
7112
|
}
|
|
7113
7113
|
status() {
|
|
7114
7114
|
return this.#status;
|
|
@@ -7230,8 +7230,8 @@ var CamoufoxApiContext = class {
|
|
|
7230
7230
|
throw new Error(`ApiContext has already been destroyed`);
|
|
7231
7231
|
}
|
|
7232
7232
|
const storageState = await this.#apiRequestContext.storageState();
|
|
7233
|
-
const { cookies, origins
|
|
7234
|
-
return { cookies,
|
|
7233
|
+
const { cookies, origins } = storageState;
|
|
7234
|
+
return { cookies, origins };
|
|
7235
7235
|
}
|
|
7236
7236
|
async destroy() {
|
|
7237
7237
|
await this.#apiRequestContext.dispose();
|
|
@@ -7498,7 +7498,7 @@ var CamoufoxBrowserContext = class extends EventEmitter12 {
|
|
|
7498
7498
|
throw new Error("No valid browserContext");
|
|
7499
7499
|
}
|
|
7500
7500
|
try {
|
|
7501
|
-
const { cookies,
|
|
7501
|
+
const { cookies, origins } = stateData;
|
|
7502
7502
|
const page = await this.getPage();
|
|
7503
7503
|
if (!page) {
|
|
7504
7504
|
return false;
|
|
@@ -7507,7 +7507,7 @@ var CamoufoxBrowserContext = class extends EventEmitter12 {
|
|
|
7507
7507
|
if (cookies.length > 0) {
|
|
7508
7508
|
await this.#browserContext.addCookies(cookies);
|
|
7509
7509
|
}
|
|
7510
|
-
if (
|
|
7510
|
+
if (origins.length > 0) {
|
|
7511
7511
|
await origPage.route("**/*", async (route) => {
|
|
7512
7512
|
const request = route.request();
|
|
7513
7513
|
await route.fulfill({
|
|
@@ -7516,7 +7516,7 @@ var CamoufoxBrowserContext = class extends EventEmitter12 {
|
|
|
7516
7516
|
body: `<html><body><h1>${request.url()}</h1></body></html>`
|
|
7517
7517
|
});
|
|
7518
7518
|
});
|
|
7519
|
-
for (const localStorageOrigin of
|
|
7519
|
+
for (const localStorageOrigin of origins) {
|
|
7520
7520
|
const { origin, localStorage } = localStorageOrigin;
|
|
7521
7521
|
await origPage.goto(origin);
|
|
7522
7522
|
await origPage.evaluate((localStorageItems) => {
|
|
@@ -8115,7 +8115,7 @@ var LsdBrowserController = class _LsdBrowserController {
|
|
|
8115
8115
|
const { proxy, stateData, userAgent, timeout, ignoreHTTPSErrors, extraHTTPHeaders, httpCredentials } = options;
|
|
8116
8116
|
const apiRequestContext = await apiRequestInPlaywright.newContext({
|
|
8117
8117
|
proxy: proxy ? { server: proxy.proxyUrl, username: proxy.username, password: proxy.password } : void 0,
|
|
8118
|
-
storageState: stateData ? { cookies: stateData.cookies, origins: stateData.
|
|
8118
|
+
storageState: stateData ? { cookies: stateData.cookies, origins: stateData.origins } : void 0,
|
|
8119
8119
|
userAgent,
|
|
8120
8120
|
timeout,
|
|
8121
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",
|