@letsscrapedata/controller 0.1.0 → 0.5.0
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 +206 -98
- package/dist/index.d.cts +37 -11
- package/dist/index.d.ts +37 -11
- package/dist/index.js +206 -98
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -159,6 +159,11 @@ interface BrowserOptions {
|
|
|
159
159
|
* @default 900
|
|
160
160
|
*/
|
|
161
161
|
maxPageFreeSeconds?: number;
|
|
162
|
+
/**
|
|
163
|
+
* maximum duration (in seconds) for which the idle page is reserved for tasks with the same domainName.
|
|
164
|
+
* @default 0, that means no reservation
|
|
165
|
+
*/
|
|
166
|
+
maxReservedSeconds?: number;
|
|
162
167
|
/**
|
|
163
168
|
* @default true
|
|
164
169
|
*/
|
|
@@ -284,6 +289,11 @@ type LsdBrowserContextOptions = {
|
|
|
284
289
|
* * puppeteer: set when creating the new page in the browserContext
|
|
285
290
|
*/
|
|
286
291
|
userAgent?: string;
|
|
292
|
+
/**
|
|
293
|
+
* maximum duration (in seconds) for which the idle page is reserved for tasks with the same domainName.
|
|
294
|
+
* @default 0, that means no reservation
|
|
295
|
+
*/
|
|
296
|
+
maxReservedSeconds?: number;
|
|
287
297
|
};
|
|
288
298
|
type PageStatus = "free" | "busy" | "closed";
|
|
289
299
|
/**
|
|
@@ -332,7 +342,6 @@ interface PageInfo {
|
|
|
332
342
|
* page's status: free or busy
|
|
333
343
|
* @default current unix time
|
|
334
344
|
*/
|
|
335
|
-
lastStatusUpdateTime: number;
|
|
336
345
|
/**
|
|
337
346
|
* taskId that are using this page
|
|
338
347
|
* @default 0
|
|
@@ -352,7 +361,6 @@ interface UpdatablePageInfo {
|
|
|
352
361
|
* page's status: free or busy
|
|
353
362
|
* @default current unix time
|
|
354
363
|
*/
|
|
355
|
-
lastStatusUpdateTime?: number;
|
|
356
364
|
/**
|
|
357
365
|
* taskId that are using this page
|
|
358
366
|
* @default 0
|
|
@@ -1087,7 +1095,14 @@ interface LsdPage extends EventEmitter {
|
|
|
1087
1095
|
*/
|
|
1088
1096
|
goto(url: string, options?: GotoOptions): Promise<boolean>;
|
|
1089
1097
|
id(): string;
|
|
1090
|
-
|
|
1098
|
+
/**
|
|
1099
|
+
* Is the current page free (available) for a new task for domainName?
|
|
1100
|
+
* @param domainName default "":
|
|
1101
|
+
** If it is "" and the current page URL is not "" / "about:blank", the current page must have been idle for maxReservedSeconds; otherwise, return false.
|
|
1102
|
+
** If it is not "", the current page URL must contain domainName; otherwise, return false.
|
|
1103
|
+
*/
|
|
1104
|
+
isAvailable(domainName?: string): boolean;
|
|
1105
|
+
lastStatusUpdateTime(): number;
|
|
1091
1106
|
/**
|
|
1092
1107
|
* valid only in CheerioPage
|
|
1093
1108
|
* @param html
|
|
@@ -1213,8 +1228,10 @@ interface LsdBrowserContext extends EventEmitter {
|
|
|
1213
1228
|
free(clearStateData?: boolean): boolean;
|
|
1214
1229
|
/**
|
|
1215
1230
|
* get a free page from current pages or by creating a new page
|
|
1231
|
+
* @param domainName default "", if it is not "", prioritize retrieving from a free page whose URL includes that value
|
|
1232
|
+
* @param always default false, whether a (new) page is always allocated, ignoring maxPagesPerBrowserContext
|
|
1216
1233
|
*/
|
|
1217
|
-
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1234
|
+
getPage(domainName?: string, always?: boolean): Promise<LsdPage | null>;
|
|
1218
1235
|
/**
|
|
1219
1236
|
* whether can get a number of free page(s)
|
|
1220
1237
|
* * refer to getPage()
|
|
@@ -1225,6 +1242,10 @@ interface LsdBrowserContext extends EventEmitter {
|
|
|
1225
1242
|
isFree(): boolean;
|
|
1226
1243
|
isIncognito(): boolean;
|
|
1227
1244
|
creationMethod(): BrowserContextCreationMethod;
|
|
1245
|
+
/**
|
|
1246
|
+
* get maximum duration (in seconds) for which the idle page is reserved for tasks with the same domainName.
|
|
1247
|
+
*/
|
|
1248
|
+
maxReservedSeconds(): number;
|
|
1228
1249
|
page(pageIdx: number): LsdPage | null;
|
|
1229
1250
|
pages(): LsdPage[];
|
|
1230
1251
|
proxy(): ProxyInController | null;
|
|
@@ -1347,19 +1368,20 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1347
1368
|
|
|
1348
1369
|
declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowserContext {
|
|
1349
1370
|
#private;
|
|
1350
|
-
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxViewportOfNewPage?: boolean);
|
|
1371
|
+
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxReservedSeconds?: number, maxViewportOfNewPage?: boolean);
|
|
1351
1372
|
apiContext(): LsdApiContext;
|
|
1352
1373
|
browser(): LsdBrowser;
|
|
1353
1374
|
close(): Promise<boolean>;
|
|
1354
1375
|
closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
|
|
1355
1376
|
creationMethod(): BrowserContextCreationMethod;
|
|
1356
1377
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1357
|
-
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1378
|
+
getPage(domainName?: string, always?: boolean): Promise<LsdPage | null>;
|
|
1358
1379
|
free(clearStateData?: boolean): boolean;
|
|
1359
1380
|
hasFreePage(pageNum?: number): boolean;
|
|
1360
1381
|
id(): string;
|
|
1361
1382
|
isFree(): boolean;
|
|
1362
1383
|
isIncognito(): boolean;
|
|
1384
|
+
maxReservedSeconds(): number;
|
|
1363
1385
|
page(pageIdx: number): LsdPage | null;
|
|
1364
1386
|
pages(): LsdPage[];
|
|
1365
1387
|
proxy(): ProxyInController | null;
|
|
@@ -1395,7 +1417,8 @@ declare class PlaywrightPage extends EventEmitter implements LsdPage {
|
|
|
1395
1417
|
free(): Promise<boolean>;
|
|
1396
1418
|
goto(url: string, options?: GotoOptions | undefined): Promise<boolean>;
|
|
1397
1419
|
id(): string;
|
|
1398
|
-
|
|
1420
|
+
isAvailable(domainName?: string): boolean;
|
|
1421
|
+
lastStatusUpdateTime(): number;
|
|
1399
1422
|
localStroage(): Promise<LocalStorageOrigin[]>;
|
|
1400
1423
|
load(): boolean;
|
|
1401
1424
|
mainFrame(): AllFrame;
|
|
@@ -1497,19 +1520,20 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1497
1520
|
|
|
1498
1521
|
declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowserContext {
|
|
1499
1522
|
#private;
|
|
1500
|
-
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);
|
|
1523
|
+
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxReservedSeconds?: number, maxViewportOfNewPage?: boolean);
|
|
1501
1524
|
apiContext(): LsdApiContext;
|
|
1502
1525
|
browser(): LsdBrowser;
|
|
1503
1526
|
close(): Promise<boolean>;
|
|
1504
1527
|
closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
|
|
1505
1528
|
creationMethod(): BrowserContextCreationMethod;
|
|
1506
1529
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1507
|
-
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1530
|
+
getPage(domainName?: string, always?: boolean): Promise<LsdPage | null>;
|
|
1508
1531
|
free(clearStateData?: boolean): boolean;
|
|
1509
1532
|
hasFreePage(pageNum?: number): boolean;
|
|
1510
1533
|
id(): string;
|
|
1511
1534
|
isIncognito(): boolean;
|
|
1512
1535
|
isFree(): boolean;
|
|
1536
|
+
maxReservedSeconds(): number;
|
|
1513
1537
|
page(pageIdx: number): LsdPage | null;
|
|
1514
1538
|
pages(): LsdPage[];
|
|
1515
1539
|
proxy(): ProxyInController | null;
|
|
@@ -1545,7 +1569,8 @@ declare class PuppeteerPage extends EventEmitter implements LsdPage {
|
|
|
1545
1569
|
free(): Promise<boolean>;
|
|
1546
1570
|
goto(url: string, options?: GotoOptions | undefined): Promise<boolean>;
|
|
1547
1571
|
id(): string;
|
|
1548
|
-
|
|
1572
|
+
isAvailable(domainName?: string): boolean;
|
|
1573
|
+
lastStatusUpdateTime(): number;
|
|
1549
1574
|
localStroage(): Promise<LocalStorageOrigin[]>;
|
|
1550
1575
|
load(): boolean;
|
|
1551
1576
|
mainFrame(): AllFrame;
|
|
@@ -1651,7 +1676,8 @@ declare class CheerioPage extends EventEmitter implements LsdPage {
|
|
|
1651
1676
|
free(): Promise<boolean>;
|
|
1652
1677
|
goto(): Promise<boolean>;
|
|
1653
1678
|
id(): string;
|
|
1654
|
-
|
|
1679
|
+
isAvailable(): boolean;
|
|
1680
|
+
lastStatusUpdateTime(): number;
|
|
1655
1681
|
load(html: string, isHtml?: boolean): boolean;
|
|
1656
1682
|
localStroage(): Promise<LocalStorageOrigin[]>;
|
|
1657
1683
|
mainFrame(): AllFrame;
|
package/dist/index.d.ts
CHANGED
|
@@ -159,6 +159,11 @@ interface BrowserOptions {
|
|
|
159
159
|
* @default 900
|
|
160
160
|
*/
|
|
161
161
|
maxPageFreeSeconds?: number;
|
|
162
|
+
/**
|
|
163
|
+
* maximum duration (in seconds) for which the idle page is reserved for tasks with the same domainName.
|
|
164
|
+
* @default 0, that means no reservation
|
|
165
|
+
*/
|
|
166
|
+
maxReservedSeconds?: number;
|
|
162
167
|
/**
|
|
163
168
|
* @default true
|
|
164
169
|
*/
|
|
@@ -284,6 +289,11 @@ type LsdBrowserContextOptions = {
|
|
|
284
289
|
* * puppeteer: set when creating the new page in the browserContext
|
|
285
290
|
*/
|
|
286
291
|
userAgent?: string;
|
|
292
|
+
/**
|
|
293
|
+
* maximum duration (in seconds) for which the idle page is reserved for tasks with the same domainName.
|
|
294
|
+
* @default 0, that means no reservation
|
|
295
|
+
*/
|
|
296
|
+
maxReservedSeconds?: number;
|
|
287
297
|
};
|
|
288
298
|
type PageStatus = "free" | "busy" | "closed";
|
|
289
299
|
/**
|
|
@@ -332,7 +342,6 @@ interface PageInfo {
|
|
|
332
342
|
* page's status: free or busy
|
|
333
343
|
* @default current unix time
|
|
334
344
|
*/
|
|
335
|
-
lastStatusUpdateTime: number;
|
|
336
345
|
/**
|
|
337
346
|
* taskId that are using this page
|
|
338
347
|
* @default 0
|
|
@@ -352,7 +361,6 @@ interface UpdatablePageInfo {
|
|
|
352
361
|
* page's status: free or busy
|
|
353
362
|
* @default current unix time
|
|
354
363
|
*/
|
|
355
|
-
lastStatusUpdateTime?: number;
|
|
356
364
|
/**
|
|
357
365
|
* taskId that are using this page
|
|
358
366
|
* @default 0
|
|
@@ -1087,7 +1095,14 @@ interface LsdPage extends EventEmitter {
|
|
|
1087
1095
|
*/
|
|
1088
1096
|
goto(url: string, options?: GotoOptions): Promise<boolean>;
|
|
1089
1097
|
id(): string;
|
|
1090
|
-
|
|
1098
|
+
/**
|
|
1099
|
+
* Is the current page free (available) for a new task for domainName?
|
|
1100
|
+
* @param domainName default "":
|
|
1101
|
+
** If it is "" and the current page URL is not "" / "about:blank", the current page must have been idle for maxReservedSeconds; otherwise, return false.
|
|
1102
|
+
** If it is not "", the current page URL must contain domainName; otherwise, return false.
|
|
1103
|
+
*/
|
|
1104
|
+
isAvailable(domainName?: string): boolean;
|
|
1105
|
+
lastStatusUpdateTime(): number;
|
|
1091
1106
|
/**
|
|
1092
1107
|
* valid only in CheerioPage
|
|
1093
1108
|
* @param html
|
|
@@ -1213,8 +1228,10 @@ interface LsdBrowserContext extends EventEmitter {
|
|
|
1213
1228
|
free(clearStateData?: boolean): boolean;
|
|
1214
1229
|
/**
|
|
1215
1230
|
* get a free page from current pages or by creating a new page
|
|
1231
|
+
* @param domainName default "", if it is not "", prioritize retrieving from a free page whose URL includes that value
|
|
1232
|
+
* @param always default false, whether a (new) page is always allocated, ignoring maxPagesPerBrowserContext
|
|
1216
1233
|
*/
|
|
1217
|
-
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1234
|
+
getPage(domainName?: string, always?: boolean): Promise<LsdPage | null>;
|
|
1218
1235
|
/**
|
|
1219
1236
|
* whether can get a number of free page(s)
|
|
1220
1237
|
* * refer to getPage()
|
|
@@ -1225,6 +1242,10 @@ interface LsdBrowserContext extends EventEmitter {
|
|
|
1225
1242
|
isFree(): boolean;
|
|
1226
1243
|
isIncognito(): boolean;
|
|
1227
1244
|
creationMethod(): BrowserContextCreationMethod;
|
|
1245
|
+
/**
|
|
1246
|
+
* get maximum duration (in seconds) for which the idle page is reserved for tasks with the same domainName.
|
|
1247
|
+
*/
|
|
1248
|
+
maxReservedSeconds(): number;
|
|
1228
1249
|
page(pageIdx: number): LsdPage | null;
|
|
1229
1250
|
pages(): LsdPage[];
|
|
1230
1251
|
proxy(): ProxyInController | null;
|
|
@@ -1347,19 +1368,20 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1347
1368
|
|
|
1348
1369
|
declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowserContext {
|
|
1349
1370
|
#private;
|
|
1350
|
-
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxViewportOfNewPage?: boolean);
|
|
1371
|
+
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxReservedSeconds?: number, maxViewportOfNewPage?: boolean);
|
|
1351
1372
|
apiContext(): LsdApiContext;
|
|
1352
1373
|
browser(): LsdBrowser;
|
|
1353
1374
|
close(): Promise<boolean>;
|
|
1354
1375
|
closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
|
|
1355
1376
|
creationMethod(): BrowserContextCreationMethod;
|
|
1356
1377
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1357
|
-
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1378
|
+
getPage(domainName?: string, always?: boolean): Promise<LsdPage | null>;
|
|
1358
1379
|
free(clearStateData?: boolean): boolean;
|
|
1359
1380
|
hasFreePage(pageNum?: number): boolean;
|
|
1360
1381
|
id(): string;
|
|
1361
1382
|
isFree(): boolean;
|
|
1362
1383
|
isIncognito(): boolean;
|
|
1384
|
+
maxReservedSeconds(): number;
|
|
1363
1385
|
page(pageIdx: number): LsdPage | null;
|
|
1364
1386
|
pages(): LsdPage[];
|
|
1365
1387
|
proxy(): ProxyInController | null;
|
|
@@ -1395,7 +1417,8 @@ declare class PlaywrightPage extends EventEmitter implements LsdPage {
|
|
|
1395
1417
|
free(): Promise<boolean>;
|
|
1396
1418
|
goto(url: string, options?: GotoOptions | undefined): Promise<boolean>;
|
|
1397
1419
|
id(): string;
|
|
1398
|
-
|
|
1420
|
+
isAvailable(domainName?: string): boolean;
|
|
1421
|
+
lastStatusUpdateTime(): number;
|
|
1399
1422
|
localStroage(): Promise<LocalStorageOrigin[]>;
|
|
1400
1423
|
load(): boolean;
|
|
1401
1424
|
mainFrame(): AllFrame;
|
|
@@ -1497,19 +1520,20 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
|
|
|
1497
1520
|
|
|
1498
1521
|
declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowserContext {
|
|
1499
1522
|
#private;
|
|
1500
|
-
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);
|
|
1523
|
+
constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, browserContextCreationMethod: BrowserContextCreationMethod, incognito?: boolean, proxy?: ProxyInController | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxReservedSeconds?: number, maxViewportOfNewPage?: boolean);
|
|
1501
1524
|
apiContext(): LsdApiContext;
|
|
1502
1525
|
browser(): LsdBrowser;
|
|
1503
1526
|
close(): Promise<boolean>;
|
|
1504
1527
|
closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
|
|
1505
1528
|
creationMethod(): BrowserContextCreationMethod;
|
|
1506
1529
|
doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
|
|
1507
|
-
getPage(always?: boolean): Promise<LsdPage | null>;
|
|
1530
|
+
getPage(domainName?: string, always?: boolean): Promise<LsdPage | null>;
|
|
1508
1531
|
free(clearStateData?: boolean): boolean;
|
|
1509
1532
|
hasFreePage(pageNum?: number): boolean;
|
|
1510
1533
|
id(): string;
|
|
1511
1534
|
isIncognito(): boolean;
|
|
1512
1535
|
isFree(): boolean;
|
|
1536
|
+
maxReservedSeconds(): number;
|
|
1513
1537
|
page(pageIdx: number): LsdPage | null;
|
|
1514
1538
|
pages(): LsdPage[];
|
|
1515
1539
|
proxy(): ProxyInController | null;
|
|
@@ -1545,7 +1569,8 @@ declare class PuppeteerPage extends EventEmitter implements LsdPage {
|
|
|
1545
1569
|
free(): Promise<boolean>;
|
|
1546
1570
|
goto(url: string, options?: GotoOptions | undefined): Promise<boolean>;
|
|
1547
1571
|
id(): string;
|
|
1548
|
-
|
|
1572
|
+
isAvailable(domainName?: string): boolean;
|
|
1573
|
+
lastStatusUpdateTime(): number;
|
|
1549
1574
|
localStroage(): Promise<LocalStorageOrigin[]>;
|
|
1550
1575
|
load(): boolean;
|
|
1551
1576
|
mainFrame(): AllFrame;
|
|
@@ -1651,7 +1676,8 @@ declare class CheerioPage extends EventEmitter implements LsdPage {
|
|
|
1651
1676
|
free(): Promise<boolean>;
|
|
1652
1677
|
goto(): Promise<boolean>;
|
|
1653
1678
|
id(): string;
|
|
1654
|
-
|
|
1679
|
+
isAvailable(): boolean;
|
|
1680
|
+
lastStatusUpdateTime(): number;
|
|
1655
1681
|
load(html: string, isHtml?: boolean): boolean;
|
|
1656
1682
|
localStroage(): Promise<LocalStorageOrigin[]>;
|
|
1657
1683
|
mainFrame(): AllFrame;
|