@letsscrapedata/controller 0.0.46 → 0.0.47
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 +90 -12
- package/dist/index.d.cts +26 -3
- package/dist/index.d.ts +26 -3
- package/dist/index.js +97 -19
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1214,8 +1214,11 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1214
1214
|
#browserIdx;
|
|
1215
1215
|
#browserContextIdx;
|
|
1216
1216
|
#browserContext;
|
|
1217
|
+
#browserContextCreationMethod;
|
|
1217
1218
|
#apiContext;
|
|
1218
1219
|
#createTime;
|
|
1220
|
+
#lastStatusUpdateTime;
|
|
1221
|
+
#status;
|
|
1219
1222
|
#incognito;
|
|
1220
1223
|
#proxy;
|
|
1221
1224
|
#maxPagesPerBrowserContext;
|
|
@@ -1241,7 +1244,7 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1241
1244
|
(0, import_utils3.loginfo)(`##browser ${lsdPage.id()} ${openType}ed`);
|
|
1242
1245
|
}
|
|
1243
1246
|
}
|
|
1244
|
-
constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, maxViewportOfNewPage = true) {
|
|
1247
|
+
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, maxViewportOfNewPage = true) {
|
|
1245
1248
|
if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
|
|
1246
1249
|
throw new Error(`Invalid lsdBrowser parameter`);
|
|
1247
1250
|
}
|
|
@@ -1253,9 +1256,13 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1253
1256
|
this.#browserIdx = browserIdx;
|
|
1254
1257
|
this.#browserContextIdx = browserContextIdx;
|
|
1255
1258
|
this.#browserContext = browserContext;
|
|
1259
|
+
this.#browserContextCreationMethod = browserContextCreationMethod;
|
|
1256
1260
|
const apiRequestContext = browserContext.request;
|
|
1257
1261
|
this.#apiContext = new PlaywrightApiContext(apiRequestContext);
|
|
1258
|
-
|
|
1262
|
+
const currentTime = (0, import_utils3.getCurrentUnixTime)();
|
|
1263
|
+
this.#createTime = currentTime;
|
|
1264
|
+
this.#lastStatusUpdateTime = currentTime;
|
|
1265
|
+
this.#status = "free";
|
|
1259
1266
|
this.#incognito = incognito === false ? false : true;
|
|
1260
1267
|
this.#proxy = proxy?.proxyUrl ? proxy : null;
|
|
1261
1268
|
this.#maxPagesPerBrowserContext = maxPagesPerBrowserContext;
|
|
@@ -1271,8 +1278,8 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1271
1278
|
const { browserIdx: browserIdx2, browserContextIdx: browserContextIdx2, pageIdx } = pageInfo;
|
|
1272
1279
|
(0, import_utils3.logwarn)(`##browser page-${browserIdx2}-${browserContextIdx2}-${pageIdx} has been already created`);
|
|
1273
1280
|
} else {
|
|
1274
|
-
const
|
|
1275
|
-
const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime:
|
|
1281
|
+
const currentTime2 = (0, import_utils3.getCurrentUnixTime)();
|
|
1282
|
+
const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime: currentTime2, lastStatusUpdateTime: currentTime2, taskId: 0, relatedId: 0, misc: {} };
|
|
1276
1283
|
const lsdPage = new PlaywrightPage(this, page, pageInfo2);
|
|
1277
1284
|
if (this.#maxViewportOfNewPage) {
|
|
1278
1285
|
await lsdPage.maximizeViewport();
|
|
@@ -1309,7 +1316,10 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1309
1316
|
}
|
|
1310
1317
|
async close() {
|
|
1311
1318
|
if (this.#browserContext) {
|
|
1319
|
+
this.#status = "closed";
|
|
1320
|
+
this.#lastStatusUpdateTime = (0, import_utils3.getCurrentUnixTime)();
|
|
1312
1321
|
await this.#browserContext.close();
|
|
1322
|
+
(0, import_utils3.loginfo)(`browserContext ${this.id()} closed at ${this.#lastStatusUpdateTime}`);
|
|
1313
1323
|
}
|
|
1314
1324
|
return true;
|
|
1315
1325
|
}
|
|
@@ -1361,6 +1371,9 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1361
1371
|
return false;
|
|
1362
1372
|
}
|
|
1363
1373
|
}
|
|
1374
|
+
creationMethod() {
|
|
1375
|
+
return this.#browserContextCreationMethod;
|
|
1376
|
+
}
|
|
1364
1377
|
doesMeetBrowserContextRequirements(browserContextRequirements) {
|
|
1365
1378
|
if (!this.#lsdBrowser.doesMeetBrowserContextRequirements(browserContextRequirements)) {
|
|
1366
1379
|
return false;
|
|
@@ -1410,6 +1423,15 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1410
1423
|
return null;
|
|
1411
1424
|
}
|
|
1412
1425
|
}
|
|
1426
|
+
free() {
|
|
1427
|
+
if (this.#status === "busy") {
|
|
1428
|
+
this.#status = "free";
|
|
1429
|
+
this.#lastStatusUpdateTime = (0, import_utils3.getCurrentUnixTime)();
|
|
1430
|
+
return true;
|
|
1431
|
+
} else {
|
|
1432
|
+
return false;
|
|
1433
|
+
}
|
|
1434
|
+
}
|
|
1413
1435
|
hasFreePage(pageNum = 1) {
|
|
1414
1436
|
if (this.#maxPagesPerBrowserContext - this.#lsdPages.length > pageNum) {
|
|
1415
1437
|
return true;
|
|
@@ -1477,6 +1499,18 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
|
|
|
1477
1499
|
return false;
|
|
1478
1500
|
}
|
|
1479
1501
|
}
|
|
1502
|
+
status() {
|
|
1503
|
+
return this.#status;
|
|
1504
|
+
}
|
|
1505
|
+
use() {
|
|
1506
|
+
if (this.#status === "free") {
|
|
1507
|
+
this.#status = "busy";
|
|
1508
|
+
this.#lastStatusUpdateTime = (0, import_utils3.getCurrentUnixTime)();
|
|
1509
|
+
return true;
|
|
1510
|
+
} else {
|
|
1511
|
+
return false;
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1480
1514
|
_origBrowserContext() {
|
|
1481
1515
|
return this.#browserContext;
|
|
1482
1516
|
}
|
|
@@ -1488,6 +1522,7 @@ var PlaywrightBrowser = class extends import_node_events3.default {
|
|
|
1488
1522
|
#browser;
|
|
1489
1523
|
#browserIdx;
|
|
1490
1524
|
#pid;
|
|
1525
|
+
#createTime;
|
|
1491
1526
|
#lsdBrowserContexts;
|
|
1492
1527
|
#browserControllerType;
|
|
1493
1528
|
#browserType;
|
|
@@ -1521,6 +1556,7 @@ var PlaywrightBrowser = class extends import_node_events3.default {
|
|
|
1521
1556
|
this.#browser = browser;
|
|
1522
1557
|
this.#browserIdx = browserIdx;
|
|
1523
1558
|
this.#pid = pid;
|
|
1559
|
+
this.#createTime = (0, import_utils4.getCurrentUnixTime)();
|
|
1524
1560
|
this.#lsdBrowserContexts = [];
|
|
1525
1561
|
this.#browserControllerType = "playwright";
|
|
1526
1562
|
this.#browserType = browerType;
|
|
@@ -1538,7 +1574,7 @@ var PlaywrightBrowser = class extends import_node_events3.default {
|
|
|
1538
1574
|
}
|
|
1539
1575
|
const incognito = typeof options?.incognito === "boolean" ? options.incognito : true;
|
|
1540
1576
|
for (const browserContext of browserContexts) {
|
|
1541
|
-
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1577
|
+
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1542
1578
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
1543
1579
|
(0, import_utils4.loginfo)(`##browserContext ${lsdBrowserContext.id()} ${this.#browserCreationMethod}ed`);
|
|
1544
1580
|
}
|
|
@@ -1596,7 +1632,7 @@ var PlaywrightBrowser = class extends import_node_events3.default {
|
|
|
1596
1632
|
}
|
|
1597
1633
|
const browserContext = await this.#browser.newContext(browserContextOptions);
|
|
1598
1634
|
const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
|
|
1599
|
-
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1635
|
+
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1600
1636
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
1601
1637
|
(0, import_utils4.loginfo)(`##browser ${lsdBrowserContext.id()} created`);
|
|
1602
1638
|
return lsdBrowserContext;
|
|
@@ -1623,6 +1659,9 @@ var PlaywrightBrowser = class extends import_node_events3.default {
|
|
|
1623
1659
|
browserType() {
|
|
1624
1660
|
return this.#browserType;
|
|
1625
1661
|
}
|
|
1662
|
+
createTime() {
|
|
1663
|
+
return this.#createTime;
|
|
1664
|
+
}
|
|
1626
1665
|
doesMeetBrowserContextRequirements(browserContextRequirements) {
|
|
1627
1666
|
const { browserControllerTypes, browserTypes, browserHeadlesses } = browserContextRequirements;
|
|
1628
1667
|
return (browserControllerTypes.length === 0 || browserControllerTypes.includes(this.#browserControllerType)) && (browserTypes.length === 0 || browserTypes.includes(this.#browserType)) && (browserHeadlesses.length === 0 || browserHeadlesses.includes(this.#headless));
|
|
@@ -2748,12 +2787,15 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
2748
2787
|
#browserIdx;
|
|
2749
2788
|
#browserContextIdx;
|
|
2750
2789
|
#browserContext;
|
|
2790
|
+
#browserContextCreationMethod;
|
|
2751
2791
|
/**
|
|
2752
2792
|
* the userAgent of pages in this browserContext if userAgent
|
|
2753
2793
|
* * Notice: it is not the actual userAgent if !#userAgent (ignored if !#userAgent)
|
|
2754
2794
|
*/
|
|
2755
2795
|
#userAgent;
|
|
2756
2796
|
#createTime;
|
|
2797
|
+
#lastStatusUpdateTime;
|
|
2798
|
+
#status;
|
|
2757
2799
|
#incognito;
|
|
2758
2800
|
#proxy;
|
|
2759
2801
|
#maxPagesPerBrowserContext;
|
|
@@ -2782,7 +2824,7 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
2782
2824
|
(0, import_utils7.loginfo)(`##browser ${lsdPage.id()} ${openType}ed`);
|
|
2783
2825
|
}
|
|
2784
2826
|
}
|
|
2785
|
-
constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "", maxViewportOfNewPage = true) {
|
|
2827
|
+
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "", maxViewportOfNewPage = true) {
|
|
2786
2828
|
if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
|
|
2787
2829
|
throw new Error(`Invalid lsdBrowser parameter`);
|
|
2788
2830
|
}
|
|
@@ -2794,8 +2836,12 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
2794
2836
|
this.#browserIdx = browserIdx;
|
|
2795
2837
|
this.#browserContextIdx = browserContextIdx;
|
|
2796
2838
|
this.#browserContext = browserContext;
|
|
2839
|
+
this.#browserContextCreationMethod = browserContextCreationMethod;
|
|
2797
2840
|
this.#userAgent = userAgent;
|
|
2798
|
-
|
|
2841
|
+
const currentTime = (0, import_utils7.getCurrentUnixTime)();
|
|
2842
|
+
this.#createTime = currentTime;
|
|
2843
|
+
this.#lastStatusUpdateTime = currentTime;
|
|
2844
|
+
this.#status = "free";
|
|
2799
2845
|
this.#incognito = incognito === false ? false : true;
|
|
2800
2846
|
this.#proxy = proxy?.proxyUrl ? proxy : null;
|
|
2801
2847
|
this.#maxPagesPerBrowserContext = maxPagesPerBrowserContext;
|
|
@@ -2816,8 +2862,8 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
2816
2862
|
const { browserIdx: browserIdx2, browserContextIdx: browserContextIdx2, pageIdx } = pageInfo;
|
|
2817
2863
|
(0, import_utils7.logwarn)(`##browser page-${browserIdx2}-${browserContextIdx2}-${pageIdx} has been already created`);
|
|
2818
2864
|
} else {
|
|
2819
|
-
const
|
|
2820
|
-
const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime:
|
|
2865
|
+
const currentTime2 = (0, import_utils7.getCurrentUnixTime)();
|
|
2866
|
+
const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime: currentTime2, lastStatusUpdateTime: currentTime2, taskId: 0, relatedId: 0, misc: {} };
|
|
2821
2867
|
const lsdPage = new PuppeteerPage(this, page, pageInfo2);
|
|
2822
2868
|
if (this.#maxViewportOfNewPage) {
|
|
2823
2869
|
await lsdPage.maximizeViewport();
|
|
@@ -2847,6 +2893,15 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
2847
2893
|
return;
|
|
2848
2894
|
});
|
|
2849
2895
|
}
|
|
2896
|
+
free() {
|
|
2897
|
+
if (this.#status === "busy") {
|
|
2898
|
+
this.#status = "free";
|
|
2899
|
+
this.#lastStatusUpdateTime = (0, import_utils7.getCurrentUnixTime)();
|
|
2900
|
+
return true;
|
|
2901
|
+
} else {
|
|
2902
|
+
return false;
|
|
2903
|
+
}
|
|
2904
|
+
}
|
|
2850
2905
|
apiContext() {
|
|
2851
2906
|
throw new Error("Not supported in PuppeteerPage.");
|
|
2852
2907
|
}
|
|
@@ -2855,7 +2910,10 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
2855
2910
|
}
|
|
2856
2911
|
async close() {
|
|
2857
2912
|
if (this.#browserContext) {
|
|
2913
|
+
this.#status = "closed";
|
|
2914
|
+
this.#lastStatusUpdateTime = (0, import_utils7.getCurrentUnixTime)();
|
|
2858
2915
|
await this.#browserContext.close();
|
|
2916
|
+
(0, import_utils7.loginfo)(`browserContext ${this.id()} closed at ${this.#lastStatusUpdateTime}`);
|
|
2859
2917
|
}
|
|
2860
2918
|
return true;
|
|
2861
2919
|
}
|
|
@@ -2907,6 +2965,9 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
2907
2965
|
return false;
|
|
2908
2966
|
}
|
|
2909
2967
|
}
|
|
2968
|
+
creationMethod() {
|
|
2969
|
+
return this.#browserContextCreationMethod;
|
|
2970
|
+
}
|
|
2910
2971
|
doesMeetBrowserContextRequirements(browserContextRequirements) {
|
|
2911
2972
|
if (!this.#lsdBrowser.doesMeetBrowserContextRequirements(browserContextRequirements)) {
|
|
2912
2973
|
return false;
|
|
@@ -3025,6 +3086,18 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
|
|
|
3025
3086
|
return false;
|
|
3026
3087
|
}
|
|
3027
3088
|
}
|
|
3089
|
+
status() {
|
|
3090
|
+
return this.#status;
|
|
3091
|
+
}
|
|
3092
|
+
use() {
|
|
3093
|
+
if (this.#status === "free") {
|
|
3094
|
+
this.#status = "busy";
|
|
3095
|
+
this.#lastStatusUpdateTime = (0, import_utils7.getCurrentUnixTime)();
|
|
3096
|
+
return true;
|
|
3097
|
+
} else {
|
|
3098
|
+
return false;
|
|
3099
|
+
}
|
|
3100
|
+
}
|
|
3028
3101
|
_origBrowserContext() {
|
|
3029
3102
|
return this.#browserContext;
|
|
3030
3103
|
}
|
|
@@ -3036,6 +3109,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
|
|
|
3036
3109
|
#browser;
|
|
3037
3110
|
#browserIdx;
|
|
3038
3111
|
#pid;
|
|
3112
|
+
#createTime;
|
|
3039
3113
|
#lsdBrowserContexts;
|
|
3040
3114
|
#browserControllerType;
|
|
3041
3115
|
#browserType;
|
|
@@ -3072,6 +3146,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
|
|
|
3072
3146
|
this.#browser = browser;
|
|
3073
3147
|
this.#browserIdx = browserIdx;
|
|
3074
3148
|
this.#pid = pid;
|
|
3149
|
+
this.#createTime = (0, import_utils8.getCurrentUnixTime)();
|
|
3075
3150
|
this.#lsdBrowserContexts = [];
|
|
3076
3151
|
this.#browserControllerType = "puppeteer";
|
|
3077
3152
|
this.#browserType = browerType;
|
|
@@ -3086,7 +3161,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
|
|
|
3086
3161
|
const browserContexts = browser.browserContexts();
|
|
3087
3162
|
const incognito = typeof options?.incognito === "boolean" ? options.incognito : false;
|
|
3088
3163
|
for (const browserContext of browserContexts) {
|
|
3089
|
-
const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), this.#userAgent(), maxViewportOfNewPage);
|
|
3164
|
+
const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), this.#userAgent(), maxViewportOfNewPage);
|
|
3090
3165
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
3091
3166
|
(0, import_utils8.loginfo)(`##browser ${lsdBrowserContext.id()} ${this.#browserCreationMethod}ed`);
|
|
3092
3167
|
}
|
|
@@ -3138,7 +3213,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
|
|
|
3138
3213
|
const browserContext = await this.#browser.createBrowserContext(browserContextOptions);
|
|
3139
3214
|
const userAgent = options?.userAgent ? options.userAgent : "";
|
|
3140
3215
|
const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
|
|
3141
|
-
const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
|
|
3216
|
+
const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
|
|
3142
3217
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
3143
3218
|
(0, import_utils8.loginfo)(`##browser ${lsdBrowserContext.id()} created`);
|
|
3144
3219
|
return lsdBrowserContext;
|
|
@@ -3167,6 +3242,9 @@ var PuppeteerBrowser = class extends import_node_events6.default {
|
|
|
3167
3242
|
browserType() {
|
|
3168
3243
|
return this.#browserType;
|
|
3169
3244
|
}
|
|
3245
|
+
createTime() {
|
|
3246
|
+
return this.#createTime;
|
|
3247
|
+
}
|
|
3170
3248
|
doesMeetBrowserContextRequirements(browserContextRequirements) {
|
|
3171
3249
|
const { browserControllerTypes, browserTypes, browserHeadlesses } = browserContextRequirements;
|
|
3172
3250
|
return (browserControllerTypes.length === 0 || browserControllerTypes.includes(this.#browserControllerType)) && (browserTypes.length === 0 || browserTypes.includes(this.#browserType)) && (browserHeadlesses.length === 0 || browserHeadlesses.includes(this.#headless));
|
package/dist/index.d.cts
CHANGED
|
@@ -12,6 +12,8 @@ type AllApiRequestContext = APIRequestContext;
|
|
|
12
12
|
type CheerioNode = cheerio.Cheerio;
|
|
13
13
|
type BrowserControllerType = "puppeteer" | "playwright";
|
|
14
14
|
type BrowserCreationMethod = "launch" | "connect";
|
|
15
|
+
type BrowserContextCreationMethod = "launch" | "new";
|
|
16
|
+
type BrowserContextStatus = "free" | "busy" | "closed";
|
|
15
17
|
type LsdBrowserType = "chromium" | "firefox" | "webkit";
|
|
16
18
|
interface BrowserContextRequirements {
|
|
17
19
|
browserControllerTypes: BrowserControllerType[];
|
|
@@ -992,6 +994,10 @@ interface LsdBrowserContext extends EventEmitter {
|
|
|
992
994
|
* @param browserContextRequirements
|
|
993
995
|
*/
|
|
994
996
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
997
|
+
/**
|
|
998
|
+
* Free a busy LsdBrowserContext.
|
|
999
|
+
*/
|
|
1000
|
+
free(): boolean;
|
|
995
1001
|
/**
|
|
996
1002
|
* get a free page from current pages or by creating a new page
|
|
997
1003
|
*/
|
|
@@ -1004,10 +1010,16 @@ interface LsdBrowserContext extends EventEmitter {
|
|
|
1004
1010
|
hasFreePage(pageNum?: number): boolean;
|
|
1005
1011
|
id(): string;
|
|
1006
1012
|
isIncognito(): boolean;
|
|
1013
|
+
creationMethod(): BrowserContextCreationMethod;
|
|
1007
1014
|
page(pageIdx: number): LsdPage | null;
|
|
1008
1015
|
pages(): LsdPage[];
|
|
1009
1016
|
proxy(): ProxyInController | null;
|
|
1010
1017
|
setStateData(stateData: BrowserStateData): Promise<boolean>;
|
|
1018
|
+
status(): BrowserContextStatus;
|
|
1019
|
+
/**
|
|
1020
|
+
* start to use this LsdBrowserContext
|
|
1021
|
+
*/
|
|
1022
|
+
use(): boolean;
|
|
1011
1023
|
_origBrowserContext(): AllBrowserContext;
|
|
1012
1024
|
}
|
|
1013
1025
|
interface LsdBrowser extends EventEmitter {
|
|
@@ -1023,6 +1035,7 @@ interface LsdBrowser extends EventEmitter {
|
|
|
1023
1035
|
browserControllerType(): BrowserControllerType;
|
|
1024
1036
|
browserCreationMethod(): BrowserCreationMethod;
|
|
1025
1037
|
browserType(): LsdBrowserType;
|
|
1038
|
+
createTime(): number;
|
|
1026
1039
|
/**
|
|
1027
1040
|
* doest this browser meet browserContextRequirements (incognitos ignored in browser)?
|
|
1028
1041
|
* @param browserContextRequirements
|
|
@@ -1097,6 +1110,7 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1097
1110
|
browserControllerType(): BrowserControllerType;
|
|
1098
1111
|
browserCreationMethod(): BrowserCreationMethod;
|
|
1099
1112
|
browserType(): LsdBrowserType;
|
|
1113
|
+
createTime(): number;
|
|
1100
1114
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1101
1115
|
executablePath(): string;
|
|
1102
1116
|
id(): string;
|
|
@@ -1115,13 +1129,15 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1115
1129
|
|
|
1116
1130
|
declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowserContext {
|
|
1117
1131
|
#private;
|
|
1118
|
-
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, maxViewportOfNewPage?: boolean);
|
|
1132
|
+
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, maxViewportOfNewPage?: boolean);
|
|
1119
1133
|
apiContext(): LsdApiContext;
|
|
1120
1134
|
browser(): LsdBrowser;
|
|
1121
1135
|
close(): Promise<boolean>;
|
|
1122
1136
|
closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
|
|
1137
|
+
creationMethod(): BrowserContextCreationMethod;
|
|
1123
1138
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1124
1139
|
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1140
|
+
free(): boolean;
|
|
1125
1141
|
hasFreePage(pageNum?: number): boolean;
|
|
1126
1142
|
id(): string;
|
|
1127
1143
|
isIncognito(): boolean;
|
|
@@ -1129,6 +1145,8 @@ declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowse
|
|
|
1129
1145
|
pages(): LsdPage[];
|
|
1130
1146
|
proxy(): ProxyInController | null;
|
|
1131
1147
|
setStateData(stateData: BrowserStateData): Promise<boolean>;
|
|
1148
|
+
status(): BrowserContextStatus;
|
|
1149
|
+
use(): boolean;
|
|
1132
1150
|
_origBrowserContext(): AllBrowserContext;
|
|
1133
1151
|
}
|
|
1134
1152
|
|
|
@@ -1219,6 +1237,7 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1219
1237
|
browserControllerType(): BrowserControllerType;
|
|
1220
1238
|
browserCreationMethod(): BrowserCreationMethod;
|
|
1221
1239
|
browserType(): LsdBrowserType;
|
|
1240
|
+
createTime(): number;
|
|
1222
1241
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1223
1242
|
executablePath(): string;
|
|
1224
1243
|
id(): string;
|
|
@@ -1237,11 +1256,13 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1237
1256
|
|
|
1238
1257
|
declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowserContext {
|
|
1239
1258
|
#private;
|
|
1240
|
-
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxViewportOfNewPage?: boolean);
|
|
1259
|
+
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxViewportOfNewPage?: boolean);
|
|
1260
|
+
free(): boolean;
|
|
1241
1261
|
apiContext(): LsdApiContext;
|
|
1242
1262
|
browser(): LsdBrowser;
|
|
1243
1263
|
close(): Promise<boolean>;
|
|
1244
1264
|
closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
|
|
1265
|
+
creationMethod(): BrowserContextCreationMethod;
|
|
1245
1266
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1246
1267
|
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1247
1268
|
hasFreePage(pageNum?: number): boolean;
|
|
@@ -1251,6 +1272,8 @@ declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowser
|
|
|
1251
1272
|
pages(): LsdPage[];
|
|
1252
1273
|
proxy(): ProxyInController | null;
|
|
1253
1274
|
setStateData(stateData: BrowserStateData): Promise<boolean>;
|
|
1275
|
+
status(): BrowserContextStatus;
|
|
1276
|
+
use(): boolean;
|
|
1254
1277
|
_origBrowserContext(): AllBrowserContext;
|
|
1255
1278
|
}
|
|
1256
1279
|
|
|
@@ -1425,4 +1448,4 @@ declare class LsdBrowserController implements LsdBrowserController$1 {
|
|
|
1425
1448
|
}
|
|
1426
1449
|
declare const controller: LsdBrowserController;
|
|
1427
1450
|
|
|
1428
|
-
export { type AllApiRequestContext, type AllBrowser, type AllBrowserContext, type AllElement, type AllFrame, type AllPage, type AllResponse, type BrowserContextRequirements, type BrowserControllerType, type BrowserCreationMethod, type BrowserLaunchMethod, type BrowserStateData, CheerioElement, type CheerioNode, CheerioPage, type ClientCertificate, type CookieItem, type GotoOptions, type IframeOption, type InputOptions, type KeyInput, type KeyPressOptions, type LocalStorageItem, type LocalStorageOrigin, type LowerCasePaperFormat, type LsdApiContext, type LsdApiContextOptions, type LsdApiResponse, type LsdBrowser, type LsdBrowserContext, type LsdBrowserContextOptions, type LsdBrowserController$1 as LsdBrowserController, type LsdBrowserType, type LsdConnectOptions, type LsdElement, type LsdFetchOptions, type LsdLaunchOptions, type LsdPage, type MouseClickOptions, type MouseClickType, type NavigationWaitUntil, type PDFMargin, type PDFOptions, type PageEvent, type PageExtInPlaywright, type PageExtInPuppeteer, type PageInfo, type PageOpenType, type PageStatus, type PaperFormat, PlaywrightBrowser, PlaywrightBrowserContext, type PlaywrightBrowserTypes, PlaywrightElement, PlaywrightPage, type ProxyInController, PuppeteerBrowser, PuppeteerBrowserContext, PuppeteerElement, PuppeteerPage, type RequestInterceptionAction, type RequestInterceptionOption, type RequestMatch, type RequestMethod, type RequestResourceType, type ResponseHandler, type ResponseHandlerOptions, type ResponseInterceptionItem, type ResponseInterceptionOption, type ResponseMatch, type ResponsePageData, type ScreenshotOptions, type SelectOptions, type UpdatablePageInfo, type ViewportSize, type WaitElementOptions, type WaitElementState, type WaitNavigationOptions, controller };
|
|
1451
|
+
export { type AllApiRequestContext, type AllBrowser, type AllBrowserContext, type AllElement, type AllFrame, type AllPage, type AllResponse, type BrowserContextCreationMethod, type BrowserContextRequirements, type BrowserContextStatus, type BrowserControllerType, type BrowserCreationMethod, type BrowserLaunchMethod, type BrowserStateData, CheerioElement, type CheerioNode, CheerioPage, type ClientCertificate, type CookieItem, type GotoOptions, type IframeOption, type InputOptions, type KeyInput, type KeyPressOptions, type LocalStorageItem, type LocalStorageOrigin, type LowerCasePaperFormat, type LsdApiContext, type LsdApiContextOptions, type LsdApiResponse, type LsdBrowser, type LsdBrowserContext, type LsdBrowserContextOptions, type LsdBrowserController$1 as LsdBrowserController, type LsdBrowserType, type LsdConnectOptions, type LsdElement, type LsdFetchOptions, type LsdLaunchOptions, type LsdPage, type MouseClickOptions, type MouseClickType, type NavigationWaitUntil, type PDFMargin, type PDFOptions, type PageEvent, type PageExtInPlaywright, type PageExtInPuppeteer, type PageInfo, type PageOpenType, type PageStatus, type PaperFormat, PlaywrightBrowser, PlaywrightBrowserContext, type PlaywrightBrowserTypes, PlaywrightElement, PlaywrightPage, type ProxyInController, PuppeteerBrowser, PuppeteerBrowserContext, PuppeteerElement, PuppeteerPage, type RequestInterceptionAction, type RequestInterceptionOption, type RequestMatch, type RequestMethod, type RequestResourceType, type ResponseHandler, type ResponseHandlerOptions, type ResponseInterceptionItem, type ResponseInterceptionOption, type ResponseMatch, type ResponsePageData, type ScreenshotOptions, type SelectOptions, type UpdatablePageInfo, type ViewportSize, type WaitElementOptions, type WaitElementState, type WaitNavigationOptions, controller };
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ type AllApiRequestContext = APIRequestContext;
|
|
|
12
12
|
type CheerioNode = cheerio.Cheerio;
|
|
13
13
|
type BrowserControllerType = "puppeteer" | "playwright";
|
|
14
14
|
type BrowserCreationMethod = "launch" | "connect";
|
|
15
|
+
type BrowserContextCreationMethod = "launch" | "new";
|
|
16
|
+
type BrowserContextStatus = "free" | "busy" | "closed";
|
|
15
17
|
type LsdBrowserType = "chromium" | "firefox" | "webkit";
|
|
16
18
|
interface BrowserContextRequirements {
|
|
17
19
|
browserControllerTypes: BrowserControllerType[];
|
|
@@ -992,6 +994,10 @@ interface LsdBrowserContext extends EventEmitter {
|
|
|
992
994
|
* @param browserContextRequirements
|
|
993
995
|
*/
|
|
994
996
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
997
|
+
/**
|
|
998
|
+
* Free a busy LsdBrowserContext.
|
|
999
|
+
*/
|
|
1000
|
+
free(): boolean;
|
|
995
1001
|
/**
|
|
996
1002
|
* get a free page from current pages or by creating a new page
|
|
997
1003
|
*/
|
|
@@ -1004,10 +1010,16 @@ interface LsdBrowserContext extends EventEmitter {
|
|
|
1004
1010
|
hasFreePage(pageNum?: number): boolean;
|
|
1005
1011
|
id(): string;
|
|
1006
1012
|
isIncognito(): boolean;
|
|
1013
|
+
creationMethod(): BrowserContextCreationMethod;
|
|
1007
1014
|
page(pageIdx: number): LsdPage | null;
|
|
1008
1015
|
pages(): LsdPage[];
|
|
1009
1016
|
proxy(): ProxyInController | null;
|
|
1010
1017
|
setStateData(stateData: BrowserStateData): Promise<boolean>;
|
|
1018
|
+
status(): BrowserContextStatus;
|
|
1019
|
+
/**
|
|
1020
|
+
* start to use this LsdBrowserContext
|
|
1021
|
+
*/
|
|
1022
|
+
use(): boolean;
|
|
1011
1023
|
_origBrowserContext(): AllBrowserContext;
|
|
1012
1024
|
}
|
|
1013
1025
|
interface LsdBrowser extends EventEmitter {
|
|
@@ -1023,6 +1035,7 @@ interface LsdBrowser extends EventEmitter {
|
|
|
1023
1035
|
browserControllerType(): BrowserControllerType;
|
|
1024
1036
|
browserCreationMethod(): BrowserCreationMethod;
|
|
1025
1037
|
browserType(): LsdBrowserType;
|
|
1038
|
+
createTime(): number;
|
|
1026
1039
|
/**
|
|
1027
1040
|
* doest this browser meet browserContextRequirements (incognitos ignored in browser)?
|
|
1028
1041
|
* @param browserContextRequirements
|
|
@@ -1097,6 +1110,7 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1097
1110
|
browserControllerType(): BrowserControllerType;
|
|
1098
1111
|
browserCreationMethod(): BrowserCreationMethod;
|
|
1099
1112
|
browserType(): LsdBrowserType;
|
|
1113
|
+
createTime(): number;
|
|
1100
1114
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1101
1115
|
executablePath(): string;
|
|
1102
1116
|
id(): string;
|
|
@@ -1115,13 +1129,15 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1115
1129
|
|
|
1116
1130
|
declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowserContext {
|
|
1117
1131
|
#private;
|
|
1118
|
-
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, maxViewportOfNewPage?: boolean);
|
|
1132
|
+
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, maxViewportOfNewPage?: boolean);
|
|
1119
1133
|
apiContext(): LsdApiContext;
|
|
1120
1134
|
browser(): LsdBrowser;
|
|
1121
1135
|
close(): Promise<boolean>;
|
|
1122
1136
|
closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
|
|
1137
|
+
creationMethod(): BrowserContextCreationMethod;
|
|
1123
1138
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1124
1139
|
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1140
|
+
free(): boolean;
|
|
1125
1141
|
hasFreePage(pageNum?: number): boolean;
|
|
1126
1142
|
id(): string;
|
|
1127
1143
|
isIncognito(): boolean;
|
|
@@ -1129,6 +1145,8 @@ declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowse
|
|
|
1129
1145
|
pages(): LsdPage[];
|
|
1130
1146
|
proxy(): ProxyInController | null;
|
|
1131
1147
|
setStateData(stateData: BrowserStateData): Promise<boolean>;
|
|
1148
|
+
status(): BrowserContextStatus;
|
|
1149
|
+
use(): boolean;
|
|
1132
1150
|
_origBrowserContext(): AllBrowserContext;
|
|
1133
1151
|
}
|
|
1134
1152
|
|
|
@@ -1219,6 +1237,7 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1219
1237
|
browserControllerType(): BrowserControllerType;
|
|
1220
1238
|
browserCreationMethod(): BrowserCreationMethod;
|
|
1221
1239
|
browserType(): LsdBrowserType;
|
|
1240
|
+
createTime(): number;
|
|
1222
1241
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1223
1242
|
executablePath(): string;
|
|
1224
1243
|
id(): string;
|
|
@@ -1237,11 +1256,13 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1237
1256
|
|
|
1238
1257
|
declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowserContext {
|
|
1239
1258
|
#private;
|
|
1240
|
-
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxViewportOfNewPage?: boolean);
|
|
1259
|
+
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxViewportOfNewPage?: boolean);
|
|
1260
|
+
free(): boolean;
|
|
1241
1261
|
apiContext(): LsdApiContext;
|
|
1242
1262
|
browser(): LsdBrowser;
|
|
1243
1263
|
close(): Promise<boolean>;
|
|
1244
1264
|
closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
|
|
1265
|
+
creationMethod(): BrowserContextCreationMethod;
|
|
1245
1266
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1246
1267
|
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1247
1268
|
hasFreePage(pageNum?: number): boolean;
|
|
@@ -1251,6 +1272,8 @@ declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowser
|
|
|
1251
1272
|
pages(): LsdPage[];
|
|
1252
1273
|
proxy(): ProxyInController | null;
|
|
1253
1274
|
setStateData(stateData: BrowserStateData): Promise<boolean>;
|
|
1275
|
+
status(): BrowserContextStatus;
|
|
1276
|
+
use(): boolean;
|
|
1254
1277
|
_origBrowserContext(): AllBrowserContext;
|
|
1255
1278
|
}
|
|
1256
1279
|
|
|
@@ -1425,4 +1448,4 @@ declare class LsdBrowserController implements LsdBrowserController$1 {
|
|
|
1425
1448
|
}
|
|
1426
1449
|
declare const controller: LsdBrowserController;
|
|
1427
1450
|
|
|
1428
|
-
export { type AllApiRequestContext, type AllBrowser, type AllBrowserContext, type AllElement, type AllFrame, type AllPage, type AllResponse, type BrowserContextRequirements, type BrowserControllerType, type BrowserCreationMethod, type BrowserLaunchMethod, type BrowserStateData, CheerioElement, type CheerioNode, CheerioPage, type ClientCertificate, type CookieItem, type GotoOptions, type IframeOption, type InputOptions, type KeyInput, type KeyPressOptions, type LocalStorageItem, type LocalStorageOrigin, type LowerCasePaperFormat, type LsdApiContext, type LsdApiContextOptions, type LsdApiResponse, type LsdBrowser, type LsdBrowserContext, type LsdBrowserContextOptions, type LsdBrowserController$1 as LsdBrowserController, type LsdBrowserType, type LsdConnectOptions, type LsdElement, type LsdFetchOptions, type LsdLaunchOptions, type LsdPage, type MouseClickOptions, type MouseClickType, type NavigationWaitUntil, type PDFMargin, type PDFOptions, type PageEvent, type PageExtInPlaywright, type PageExtInPuppeteer, type PageInfo, type PageOpenType, type PageStatus, type PaperFormat, PlaywrightBrowser, PlaywrightBrowserContext, type PlaywrightBrowserTypes, PlaywrightElement, PlaywrightPage, type ProxyInController, PuppeteerBrowser, PuppeteerBrowserContext, PuppeteerElement, PuppeteerPage, type RequestInterceptionAction, type RequestInterceptionOption, type RequestMatch, type RequestMethod, type RequestResourceType, type ResponseHandler, type ResponseHandlerOptions, type ResponseInterceptionItem, type ResponseInterceptionOption, type ResponseMatch, type ResponsePageData, type ScreenshotOptions, type SelectOptions, type UpdatablePageInfo, type ViewportSize, type WaitElementOptions, type WaitElementState, type WaitNavigationOptions, controller };
|
|
1451
|
+
export { type AllApiRequestContext, type AllBrowser, type AllBrowserContext, type AllElement, type AllFrame, type AllPage, type AllResponse, type BrowserContextCreationMethod, type BrowserContextRequirements, type BrowserContextStatus, type BrowserControllerType, type BrowserCreationMethod, type BrowserLaunchMethod, type BrowserStateData, CheerioElement, type CheerioNode, CheerioPage, type ClientCertificate, type CookieItem, type GotoOptions, type IframeOption, type InputOptions, type KeyInput, type KeyPressOptions, type LocalStorageItem, type LocalStorageOrigin, type LowerCasePaperFormat, type LsdApiContext, type LsdApiContextOptions, type LsdApiResponse, type LsdBrowser, type LsdBrowserContext, type LsdBrowserContextOptions, type LsdBrowserController$1 as LsdBrowserController, type LsdBrowserType, type LsdConnectOptions, type LsdElement, type LsdFetchOptions, type LsdLaunchOptions, type LsdPage, type MouseClickOptions, type MouseClickType, type NavigationWaitUntil, type PDFMargin, type PDFOptions, type PageEvent, type PageExtInPlaywright, type PageExtInPuppeteer, type PageInfo, type PageOpenType, type PageStatus, type PaperFormat, PlaywrightBrowser, PlaywrightBrowserContext, type PlaywrightBrowserTypes, PlaywrightElement, PlaywrightPage, type ProxyInController, PuppeteerBrowser, PuppeteerBrowserContext, PuppeteerElement, PuppeteerPage, type RequestInterceptionAction, type RequestInterceptionOption, type RequestMatch, type RequestMethod, type RequestResourceType, type ResponseHandler, type ResponseHandlerOptions, type ResponseInterceptionItem, type ResponseInterceptionOption, type ResponseMatch, type ResponsePageData, type ScreenshotOptions, type SelectOptions, type UpdatablePageInfo, type ViewportSize, type WaitElementOptions, type WaitElementState, type WaitNavigationOptions, controller };
|
package/dist/index.js
CHANGED
|
@@ -1168,8 +1168,11 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1168
1168
|
#browserIdx;
|
|
1169
1169
|
#browserContextIdx;
|
|
1170
1170
|
#browserContext;
|
|
1171
|
+
#browserContextCreationMethod;
|
|
1171
1172
|
#apiContext;
|
|
1172
1173
|
#createTime;
|
|
1174
|
+
#lastStatusUpdateTime;
|
|
1175
|
+
#status;
|
|
1173
1176
|
#incognito;
|
|
1174
1177
|
#proxy;
|
|
1175
1178
|
#maxPagesPerBrowserContext;
|
|
@@ -1195,7 +1198,7 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1195
1198
|
loginfo3(`##browser ${lsdPage.id()} ${openType}ed`);
|
|
1196
1199
|
}
|
|
1197
1200
|
}
|
|
1198
|
-
constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, maxViewportOfNewPage = true) {
|
|
1201
|
+
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, maxViewportOfNewPage = true) {
|
|
1199
1202
|
if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
|
|
1200
1203
|
throw new Error(`Invalid lsdBrowser parameter`);
|
|
1201
1204
|
}
|
|
@@ -1207,9 +1210,13 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1207
1210
|
this.#browserIdx = browserIdx;
|
|
1208
1211
|
this.#browserContextIdx = browserContextIdx;
|
|
1209
1212
|
this.#browserContext = browserContext;
|
|
1213
|
+
this.#browserContextCreationMethod = browserContextCreationMethod;
|
|
1210
1214
|
const apiRequestContext = browserContext.request;
|
|
1211
1215
|
this.#apiContext = new PlaywrightApiContext(apiRequestContext);
|
|
1212
|
-
|
|
1216
|
+
const currentTime = getCurrentUnixTime2();
|
|
1217
|
+
this.#createTime = currentTime;
|
|
1218
|
+
this.#lastStatusUpdateTime = currentTime;
|
|
1219
|
+
this.#status = "free";
|
|
1213
1220
|
this.#incognito = incognito === false ? false : true;
|
|
1214
1221
|
this.#proxy = proxy?.proxyUrl ? proxy : null;
|
|
1215
1222
|
this.#maxPagesPerBrowserContext = maxPagesPerBrowserContext;
|
|
@@ -1225,8 +1232,8 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1225
1232
|
const { browserIdx: browserIdx2, browserContextIdx: browserContextIdx2, pageIdx } = pageInfo;
|
|
1226
1233
|
logwarn2(`##browser page-${browserIdx2}-${browserContextIdx2}-${pageIdx} has been already created`);
|
|
1227
1234
|
} else {
|
|
1228
|
-
const
|
|
1229
|
-
const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime:
|
|
1235
|
+
const currentTime2 = getCurrentUnixTime2();
|
|
1236
|
+
const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime: currentTime2, lastStatusUpdateTime: currentTime2, taskId: 0, relatedId: 0, misc: {} };
|
|
1230
1237
|
const lsdPage = new PlaywrightPage(this, page, pageInfo2);
|
|
1231
1238
|
if (this.#maxViewportOfNewPage) {
|
|
1232
1239
|
await lsdPage.maximizeViewport();
|
|
@@ -1263,7 +1270,10 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1263
1270
|
}
|
|
1264
1271
|
async close() {
|
|
1265
1272
|
if (this.#browserContext) {
|
|
1273
|
+
this.#status = "closed";
|
|
1274
|
+
this.#lastStatusUpdateTime = getCurrentUnixTime2();
|
|
1266
1275
|
await this.#browserContext.close();
|
|
1276
|
+
loginfo3(`browserContext ${this.id()} closed at ${this.#lastStatusUpdateTime}`);
|
|
1267
1277
|
}
|
|
1268
1278
|
return true;
|
|
1269
1279
|
}
|
|
@@ -1315,6 +1325,9 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1315
1325
|
return false;
|
|
1316
1326
|
}
|
|
1317
1327
|
}
|
|
1328
|
+
creationMethod() {
|
|
1329
|
+
return this.#browserContextCreationMethod;
|
|
1330
|
+
}
|
|
1318
1331
|
doesMeetBrowserContextRequirements(browserContextRequirements) {
|
|
1319
1332
|
if (!this.#lsdBrowser.doesMeetBrowserContextRequirements(browserContextRequirements)) {
|
|
1320
1333
|
return false;
|
|
@@ -1364,6 +1377,15 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1364
1377
|
return null;
|
|
1365
1378
|
}
|
|
1366
1379
|
}
|
|
1380
|
+
free() {
|
|
1381
|
+
if (this.#status === "busy") {
|
|
1382
|
+
this.#status = "free";
|
|
1383
|
+
this.#lastStatusUpdateTime = getCurrentUnixTime2();
|
|
1384
|
+
return true;
|
|
1385
|
+
} else {
|
|
1386
|
+
return false;
|
|
1387
|
+
}
|
|
1388
|
+
}
|
|
1367
1389
|
hasFreePage(pageNum = 1) {
|
|
1368
1390
|
if (this.#maxPagesPerBrowserContext - this.#lsdPages.length > pageNum) {
|
|
1369
1391
|
return true;
|
|
@@ -1431,17 +1453,30 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
|
|
|
1431
1453
|
return false;
|
|
1432
1454
|
}
|
|
1433
1455
|
}
|
|
1456
|
+
status() {
|
|
1457
|
+
return this.#status;
|
|
1458
|
+
}
|
|
1459
|
+
use() {
|
|
1460
|
+
if (this.#status === "free") {
|
|
1461
|
+
this.#status = "busy";
|
|
1462
|
+
this.#lastStatusUpdateTime = getCurrentUnixTime2();
|
|
1463
|
+
return true;
|
|
1464
|
+
} else {
|
|
1465
|
+
return false;
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1434
1468
|
_origBrowserContext() {
|
|
1435
1469
|
return this.#browserContext;
|
|
1436
1470
|
}
|
|
1437
1471
|
};
|
|
1438
1472
|
|
|
1439
1473
|
// src/playwright/browser.ts
|
|
1440
|
-
import { getPerformanceOfPidTree, logerr as logerr3, loginfo as loginfo4, logwarn as logwarn3 } from "@letsscrapedata/utils";
|
|
1474
|
+
import { getCurrentUnixTime as getCurrentUnixTime3, getPerformanceOfPidTree, logerr as logerr3, loginfo as loginfo4, logwarn as logwarn3 } from "@letsscrapedata/utils";
|
|
1441
1475
|
var PlaywrightBrowser = class extends EventEmitter3 {
|
|
1442
1476
|
#browser;
|
|
1443
1477
|
#browserIdx;
|
|
1444
1478
|
#pid;
|
|
1479
|
+
#createTime;
|
|
1445
1480
|
#lsdBrowserContexts;
|
|
1446
1481
|
#browserControllerType;
|
|
1447
1482
|
#browserType;
|
|
@@ -1475,6 +1510,7 @@ var PlaywrightBrowser = class extends EventEmitter3 {
|
|
|
1475
1510
|
this.#browser = browser;
|
|
1476
1511
|
this.#browserIdx = browserIdx;
|
|
1477
1512
|
this.#pid = pid;
|
|
1513
|
+
this.#createTime = getCurrentUnixTime3();
|
|
1478
1514
|
this.#lsdBrowserContexts = [];
|
|
1479
1515
|
this.#browserControllerType = "playwright";
|
|
1480
1516
|
this.#browserType = browerType;
|
|
@@ -1492,7 +1528,7 @@ var PlaywrightBrowser = class extends EventEmitter3 {
|
|
|
1492
1528
|
}
|
|
1493
1529
|
const incognito = typeof options?.incognito === "boolean" ? options.incognito : true;
|
|
1494
1530
|
for (const browserContext of browserContexts) {
|
|
1495
|
-
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1531
|
+
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1496
1532
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
1497
1533
|
loginfo4(`##browserContext ${lsdBrowserContext.id()} ${this.#browserCreationMethod}ed`);
|
|
1498
1534
|
}
|
|
@@ -1550,7 +1586,7 @@ var PlaywrightBrowser = class extends EventEmitter3 {
|
|
|
1550
1586
|
}
|
|
1551
1587
|
const browserContext = await this.#browser.newContext(browserContextOptions);
|
|
1552
1588
|
const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
|
|
1553
|
-
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1589
|
+
const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
|
|
1554
1590
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
1555
1591
|
loginfo4(`##browser ${lsdBrowserContext.id()} created`);
|
|
1556
1592
|
return lsdBrowserContext;
|
|
@@ -1577,6 +1613,9 @@ var PlaywrightBrowser = class extends EventEmitter3 {
|
|
|
1577
1613
|
browserType() {
|
|
1578
1614
|
return this.#browserType;
|
|
1579
1615
|
}
|
|
1616
|
+
createTime() {
|
|
1617
|
+
return this.#createTime;
|
|
1618
|
+
}
|
|
1580
1619
|
doesMeetBrowserContextRequirements(browserContextRequirements) {
|
|
1581
1620
|
const { browserControllerTypes, browserTypes, browserHeadlesses } = browserContextRequirements;
|
|
1582
1621
|
return (browserControllerTypes.length === 0 || browserControllerTypes.includes(this.#browserControllerType)) && (browserTypes.length === 0 || browserTypes.includes(this.#browserType)) && (browserHeadlesses.length === 0 || browserHeadlesses.includes(this.#headless));
|
|
@@ -1900,7 +1939,7 @@ var PuppeteerElement = class _PuppeteerElement {
|
|
|
1900
1939
|
};
|
|
1901
1940
|
|
|
1902
1941
|
// src/puppeteer/page.ts
|
|
1903
|
-
import { getCurrentUnixTime as
|
|
1942
|
+
import { getCurrentUnixTime as getCurrentUnixTime4, logerr as logerr5, loginfo as loginfo5, unreachable as unreachable4 } from "@letsscrapedata/utils";
|
|
1904
1943
|
var PuppeteerPage = class extends EventEmitter4 {
|
|
1905
1944
|
#lsdBrowserContext;
|
|
1906
1945
|
#page;
|
|
@@ -2098,7 +2137,7 @@ var PuppeteerPage = class extends EventEmitter4 {
|
|
|
2098
2137
|
this.#lsdBrowserContext = browserContext;
|
|
2099
2138
|
this.#page = page;
|
|
2100
2139
|
this.#status = "free";
|
|
2101
|
-
const currentTime =
|
|
2140
|
+
const currentTime = getCurrentUnixTime4();
|
|
2102
2141
|
const { browserIdx = 0, browserContextIdx = 0, pageIdx = 0, openType = "other", openTime = currentTime, lastStatusUpdateTime = currentTime, taskId = 0, relatedId = 0, misc = {} } = pageInfo ? pageInfo : {};
|
|
2103
2142
|
this.#page.pageInfo = { browserIdx, browserContextIdx, pageIdx, openType, openTime, lastStatusUpdateTime, taskId, relatedId, misc };
|
|
2104
2143
|
this.#pageId = `page-${browserIdx}-${browserContextIdx}-${pageIdx}`;
|
|
@@ -2696,18 +2735,21 @@ var PuppeteerPage = class extends EventEmitter4 {
|
|
|
2696
2735
|
};
|
|
2697
2736
|
|
|
2698
2737
|
// src/puppeteer/context.ts
|
|
2699
|
-
import { getCurrentUnixTime as
|
|
2738
|
+
import { getCurrentUnixTime as getCurrentUnixTime5, logerr as logerr6, loginfo as loginfo6, logwarn as logwarn4, sleep as sleep2 } from "@letsscrapedata/utils";
|
|
2700
2739
|
var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
2701
2740
|
#lsdBrowser;
|
|
2702
2741
|
#browserIdx;
|
|
2703
2742
|
#browserContextIdx;
|
|
2704
2743
|
#browserContext;
|
|
2744
|
+
#browserContextCreationMethod;
|
|
2705
2745
|
/**
|
|
2706
2746
|
* the userAgent of pages in this browserContext if userAgent
|
|
2707
2747
|
* * Notice: it is not the actual userAgent if !#userAgent (ignored if !#userAgent)
|
|
2708
2748
|
*/
|
|
2709
2749
|
#userAgent;
|
|
2710
2750
|
#createTime;
|
|
2751
|
+
#lastStatusUpdateTime;
|
|
2752
|
+
#status;
|
|
2711
2753
|
#incognito;
|
|
2712
2754
|
#proxy;
|
|
2713
2755
|
#maxPagesPerBrowserContext;
|
|
@@ -2722,7 +2764,7 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
2722
2764
|
}
|
|
2723
2765
|
const pages = await this.#browserContext.pages();
|
|
2724
2766
|
const openType = this.#lsdBrowser.browserCreationMethod();
|
|
2725
|
-
const lastStatusUpdateTime =
|
|
2767
|
+
const lastStatusUpdateTime = getCurrentUnixTime5();
|
|
2726
2768
|
for (const page of pages) {
|
|
2727
2769
|
const pageInfo = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType, openTime: this.#createTime, lastStatusUpdateTime, taskId: 0, relatedId: 0, misc: {} };
|
|
2728
2770
|
const lsdPage = new PuppeteerPage(this, page, pageInfo);
|
|
@@ -2736,7 +2778,7 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
2736
2778
|
loginfo6(`##browser ${lsdPage.id()} ${openType}ed`);
|
|
2737
2779
|
}
|
|
2738
2780
|
}
|
|
2739
|
-
constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "", maxViewportOfNewPage = true) {
|
|
2781
|
+
constructor(lsdBrowser, browserContext, browserContextCreationMethod, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "", maxViewportOfNewPage = true) {
|
|
2740
2782
|
if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
|
|
2741
2783
|
throw new Error(`Invalid lsdBrowser parameter`);
|
|
2742
2784
|
}
|
|
@@ -2748,8 +2790,12 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
2748
2790
|
this.#browserIdx = browserIdx;
|
|
2749
2791
|
this.#browserContextIdx = browserContextIdx;
|
|
2750
2792
|
this.#browserContext = browserContext;
|
|
2793
|
+
this.#browserContextCreationMethod = browserContextCreationMethod;
|
|
2751
2794
|
this.#userAgent = userAgent;
|
|
2752
|
-
|
|
2795
|
+
const currentTime = getCurrentUnixTime5();
|
|
2796
|
+
this.#createTime = currentTime;
|
|
2797
|
+
this.#lastStatusUpdateTime = currentTime;
|
|
2798
|
+
this.#status = "free";
|
|
2753
2799
|
this.#incognito = incognito === false ? false : true;
|
|
2754
2800
|
this.#proxy = proxy?.proxyUrl ? proxy : null;
|
|
2755
2801
|
this.#maxPagesPerBrowserContext = maxPagesPerBrowserContext;
|
|
@@ -2770,8 +2816,8 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
2770
2816
|
const { browserIdx: browserIdx2, browserContextIdx: browserContextIdx2, pageIdx } = pageInfo;
|
|
2771
2817
|
logwarn4(`##browser page-${browserIdx2}-${browserContextIdx2}-${pageIdx} has been already created`);
|
|
2772
2818
|
} else {
|
|
2773
|
-
const
|
|
2774
|
-
const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime:
|
|
2819
|
+
const currentTime2 = getCurrentUnixTime5();
|
|
2820
|
+
const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime: currentTime2, lastStatusUpdateTime: currentTime2, taskId: 0, relatedId: 0, misc: {} };
|
|
2775
2821
|
const lsdPage = new PuppeteerPage(this, page, pageInfo2);
|
|
2776
2822
|
if (this.#maxViewportOfNewPage) {
|
|
2777
2823
|
await lsdPage.maximizeViewport();
|
|
@@ -2801,6 +2847,15 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
2801
2847
|
return;
|
|
2802
2848
|
});
|
|
2803
2849
|
}
|
|
2850
|
+
free() {
|
|
2851
|
+
if (this.#status === "busy") {
|
|
2852
|
+
this.#status = "free";
|
|
2853
|
+
this.#lastStatusUpdateTime = getCurrentUnixTime5();
|
|
2854
|
+
return true;
|
|
2855
|
+
} else {
|
|
2856
|
+
return false;
|
|
2857
|
+
}
|
|
2858
|
+
}
|
|
2804
2859
|
apiContext() {
|
|
2805
2860
|
throw new Error("Not supported in PuppeteerPage.");
|
|
2806
2861
|
}
|
|
@@ -2809,7 +2864,10 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
2809
2864
|
}
|
|
2810
2865
|
async close() {
|
|
2811
2866
|
if (this.#browserContext) {
|
|
2867
|
+
this.#status = "closed";
|
|
2868
|
+
this.#lastStatusUpdateTime = getCurrentUnixTime5();
|
|
2812
2869
|
await this.#browserContext.close();
|
|
2870
|
+
loginfo6(`browserContext ${this.id()} closed at ${this.#lastStatusUpdateTime}`);
|
|
2813
2871
|
}
|
|
2814
2872
|
return true;
|
|
2815
2873
|
}
|
|
@@ -2845,7 +2903,7 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
2845
2903
|
return false;
|
|
2846
2904
|
}
|
|
2847
2905
|
try {
|
|
2848
|
-
const maxUpdateTime =
|
|
2906
|
+
const maxUpdateTime = getCurrentUnixTime5() - this.#maxPageFreeSeconds;
|
|
2849
2907
|
let freePages = this.#lsdPages.filter((p) => p.isFree() && p.pageInfo().lastStatusUpdateTime < maxUpdateTime);
|
|
2850
2908
|
if (freePages.length === this.#lsdPages.length) {
|
|
2851
2909
|
freePages = freePages.slice(1);
|
|
@@ -2861,6 +2919,9 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
2861
2919
|
return false;
|
|
2862
2920
|
}
|
|
2863
2921
|
}
|
|
2922
|
+
creationMethod() {
|
|
2923
|
+
return this.#browserContextCreationMethod;
|
|
2924
|
+
}
|
|
2864
2925
|
doesMeetBrowserContextRequirements(browserContextRequirements) {
|
|
2865
2926
|
if (!this.#lsdBrowser.doesMeetBrowserContextRequirements(browserContextRequirements)) {
|
|
2866
2927
|
return false;
|
|
@@ -2979,17 +3040,30 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
|
|
|
2979
3040
|
return false;
|
|
2980
3041
|
}
|
|
2981
3042
|
}
|
|
3043
|
+
status() {
|
|
3044
|
+
return this.#status;
|
|
3045
|
+
}
|
|
3046
|
+
use() {
|
|
3047
|
+
if (this.#status === "free") {
|
|
3048
|
+
this.#status = "busy";
|
|
3049
|
+
this.#lastStatusUpdateTime = getCurrentUnixTime5();
|
|
3050
|
+
return true;
|
|
3051
|
+
} else {
|
|
3052
|
+
return false;
|
|
3053
|
+
}
|
|
3054
|
+
}
|
|
2982
3055
|
_origBrowserContext() {
|
|
2983
3056
|
return this.#browserContext;
|
|
2984
3057
|
}
|
|
2985
3058
|
};
|
|
2986
3059
|
|
|
2987
3060
|
// src/puppeteer/browser.ts
|
|
2988
|
-
import { getPerformanceOfPidTree as getPerformanceOfPidTree2, logerr as logerr7, loginfo as loginfo7, logwarn as logwarn5 } from "@letsscrapedata/utils";
|
|
3061
|
+
import { getCurrentUnixTime as getCurrentUnixTime6, getPerformanceOfPidTree as getPerformanceOfPidTree2, logerr as logerr7, loginfo as loginfo7, logwarn as logwarn5 } from "@letsscrapedata/utils";
|
|
2989
3062
|
var PuppeteerBrowser = class extends EventEmitter6 {
|
|
2990
3063
|
#browser;
|
|
2991
3064
|
#browserIdx;
|
|
2992
3065
|
#pid;
|
|
3066
|
+
#createTime;
|
|
2993
3067
|
#lsdBrowserContexts;
|
|
2994
3068
|
#browserControllerType;
|
|
2995
3069
|
#browserType;
|
|
@@ -3026,6 +3100,7 @@ var PuppeteerBrowser = class extends EventEmitter6 {
|
|
|
3026
3100
|
this.#browser = browser;
|
|
3027
3101
|
this.#browserIdx = browserIdx;
|
|
3028
3102
|
this.#pid = pid;
|
|
3103
|
+
this.#createTime = getCurrentUnixTime6();
|
|
3029
3104
|
this.#lsdBrowserContexts = [];
|
|
3030
3105
|
this.#browserControllerType = "puppeteer";
|
|
3031
3106
|
this.#browserType = browerType;
|
|
@@ -3040,7 +3115,7 @@ var PuppeteerBrowser = class extends EventEmitter6 {
|
|
|
3040
3115
|
const browserContexts = browser.browserContexts();
|
|
3041
3116
|
const incognito = typeof options?.incognito === "boolean" ? options.incognito : false;
|
|
3042
3117
|
for (const browserContext of browserContexts) {
|
|
3043
|
-
const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), this.#userAgent(), maxViewportOfNewPage);
|
|
3118
|
+
const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, "launch", incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), this.#userAgent(), maxViewportOfNewPage);
|
|
3044
3119
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
3045
3120
|
loginfo7(`##browser ${lsdBrowserContext.id()} ${this.#browserCreationMethod}ed`);
|
|
3046
3121
|
}
|
|
@@ -3092,7 +3167,7 @@ var PuppeteerBrowser = class extends EventEmitter6 {
|
|
|
3092
3167
|
const browserContext = await this.#browser.createBrowserContext(browserContextOptions);
|
|
3093
3168
|
const userAgent = options?.userAgent ? options.userAgent : "";
|
|
3094
3169
|
const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
|
|
3095
|
-
const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
|
|
3170
|
+
const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, "new", true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
|
|
3096
3171
|
this.#lsdBrowserContexts.push(lsdBrowserContext);
|
|
3097
3172
|
loginfo7(`##browser ${lsdBrowserContext.id()} created`);
|
|
3098
3173
|
return lsdBrowserContext;
|
|
@@ -3121,6 +3196,9 @@ var PuppeteerBrowser = class extends EventEmitter6 {
|
|
|
3121
3196
|
browserType() {
|
|
3122
3197
|
return this.#browserType;
|
|
3123
3198
|
}
|
|
3199
|
+
createTime() {
|
|
3200
|
+
return this.#createTime;
|
|
3201
|
+
}
|
|
3124
3202
|
doesMeetBrowserContextRequirements(browserContextRequirements) {
|
|
3125
3203
|
const { browserControllerTypes, browserTypes, browserHeadlesses } = browserContextRequirements;
|
|
3126
3204
|
return (browserControllerTypes.length === 0 || browserControllerTypes.includes(this.#browserControllerType)) && (browserTypes.length === 0 || browserTypes.includes(this.#browserType)) && (browserHeadlesses.length === 0 || browserHeadlesses.includes(this.#headless));
|
package/package.json
CHANGED