@letsscrapedata/controller 0.0.19 → 0.0.20

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 CHANGED
@@ -1143,10 +1143,11 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
1143
1143
  #proxy;
1144
1144
  #maxPagesPerBrowserContext;
1145
1145
  #maxPageFreeSeconds;
1146
+ #maxViewportOfNewPage;
1146
1147
  #lsdPages;
1147
1148
  #nextPageIdx;
1148
1149
  #gettingPage;
1149
- #initPages() {
1150
+ async #initPages() {
1150
1151
  if (!this.#browserContext) {
1151
1152
  throw new Error("Invalid browserContext");
1152
1153
  }
@@ -1156,11 +1157,14 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
1156
1157
  for (const page of pages) {
1157
1158
  const pageInfo = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType, openTime: this.#createTime, lastStatusUpdateTime, taskId: 0, relatedId: 0, misc: {} };
1158
1159
  const lsdPage = new PlaywrightPage(this, page, pageInfo);
1160
+ if (this.#maxViewportOfNewPage) {
1161
+ await lsdPage.maximizeViewport();
1162
+ }
1159
1163
  this.#lsdPages.push(lsdPage);
1160
1164
  (0, import_utils3.loginfo)(`##browser ${lsdPage.id()} ${openType}ed`);
1161
1165
  }
1162
1166
  }
1163
- constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0) {
1167
+ constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, maxViewportOfNewPage = true) {
1164
1168
  if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
1165
1169
  throw new Error(`Invalid lsdBrowser parameter`);
1166
1170
  }
@@ -1177,6 +1181,7 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
1177
1181
  this.#proxy = proxy?.server ? proxy : null;
1178
1182
  this.#maxPagesPerBrowserContext = maxPagesPerBrowserContext;
1179
1183
  this.#maxPageFreeSeconds = maxPageFreeSeconds;
1184
+ this.#maxViewportOfNewPage = maxViewportOfNewPage;
1180
1185
  this.#lsdPages = [];
1181
1186
  this.#nextPageIdx = 1;
1182
1187
  this.#gettingPage = false;
@@ -1190,6 +1195,9 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
1190
1195
  const currentTime = (0, import_utils3.getCurrentUnixTime)();
1191
1196
  const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime: currentTime, lastStatusUpdateTime: currentTime, taskId: 0, relatedId: 0, misc: {} };
1192
1197
  const lsdPage = new PlaywrightPage(this, page, pageInfo2);
1198
+ if (this.#maxViewportOfNewPage) {
1199
+ await lsdPage.maximizeViewport();
1200
+ }
1193
1201
  this.#lsdPages.push(lsdPage);
1194
1202
  (0, import_utils3.loginfo)(`##browser ${lsdPage.id()} created`);
1195
1203
  }
@@ -1407,7 +1415,7 @@ var PlaywrightBrowser = class extends import_node_events3.default {
1407
1415
  throw new Error(`Invalid playwright browser parameter`);
1408
1416
  }
1409
1417
  super();
1410
- const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, headless = false, executablePath = "" } = options;
1418
+ const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, maxViewportOfNewPage = true, headless = false, executablePath = "" } = options;
1411
1419
  this.#browser = browser;
1412
1420
  this.#browserIdx = browserIdx;
1413
1421
  this.#lsdBrowserContexts = [];
@@ -1415,8 +1423,8 @@ var PlaywrightBrowser = class extends import_node_events3.default {
1415
1423
  this.#browserType = browerType;
1416
1424
  this.#browserCreationMethod = browserCreateMethod;
1417
1425
  this.#headless = headless;
1418
- this.#options = options;
1419
1426
  this.#proxy = options?.proxy ? Object.assign({}, options.proxy) : null;
1427
+ this.#options = Object.assign({}, options, { closeFreePagesIntervalSeconds, maxPageFreeSeconds, maxViewportOfNewPage, headless, executablePath, proxy: this.#proxy });
1420
1428
  this.#executablePath = executablePath;
1421
1429
  this.#nextBrowserContextIdx = 1;
1422
1430
  this.#closeFreePagesIntervalId = null;
@@ -1427,7 +1435,7 @@ var PlaywrightBrowser = class extends import_node_events3.default {
1427
1435
  }
1428
1436
  const incognito = typeof options?.incognito === "boolean" ? options.incognito : true;
1429
1437
  for (const browserContext of browserContexts) {
1430
- const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx++, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds());
1438
+ const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx++, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
1431
1439
  this.#lsdBrowserContexts.push(lsdBrowserContext);
1432
1440
  (0, import_utils4.loginfo)(`##browser ${lsdBrowserContext.id()} ${this.#browserCreationMethod}ed`);
1433
1441
  }
@@ -1482,7 +1490,8 @@ var PlaywrightBrowser = class extends import_node_events3.default {
1482
1490
  browserContextOptions.userAgent = options.userAgent;
1483
1491
  }
1484
1492
  const browserContext = await this.#browser.newContext(browserContextOptions);
1485
- const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, true, proxy, this.#browserIdx++, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds());
1493
+ const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
1494
+ const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, true, proxy, this.#browserIdx++, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
1486
1495
  this.#lsdBrowserContexts.push(lsdBrowserContext);
1487
1496
  (0, import_utils4.loginfo)(`##browser ${lsdBrowserContext.id()} created`);
1488
1497
  return lsdBrowserContext;
@@ -2599,6 +2608,7 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
2599
2608
  #proxy;
2600
2609
  #maxPagesPerBrowserContext;
2601
2610
  #maxPageFreeSeconds;
2611
+ #maxViewportOfNewPage;
2602
2612
  #lsdPages;
2603
2613
  #nextPageIdx;
2604
2614
  #gettingPage;
@@ -2612,6 +2622,9 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
2612
2622
  for (const page of pages) {
2613
2623
  const pageInfo = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType, openTime: this.#createTime, lastStatusUpdateTime, taskId: 0, relatedId: 0, misc: {} };
2614
2624
  const lsdPage = new PuppeteerPage(this, page, pageInfo);
2625
+ if (this.#maxViewportOfNewPage) {
2626
+ await lsdPage.maximizeViewport();
2627
+ }
2615
2628
  if (this.#userAgent) {
2616
2629
  await lsdPage.setUserAgent(this.#userAgent);
2617
2630
  }
@@ -2619,7 +2632,7 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
2619
2632
  (0, import_utils7.loginfo)(`##browser ${lsdPage.id()} ${openType}ed`);
2620
2633
  }
2621
2634
  }
2622
- constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "") {
2635
+ constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "", maxViewportOfNewPage = true) {
2623
2636
  if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
2624
2637
  throw new Error(`Invalid lsdBrowser parameter`);
2625
2638
  }
@@ -2637,6 +2650,7 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
2637
2650
  this.#proxy = proxy?.server ? proxy : null;
2638
2651
  this.#maxPagesPerBrowserContext = maxPagesPerBrowserContext;
2639
2652
  this.#maxPageFreeSeconds = maxPageFreeSeconds;
2653
+ this.#maxViewportOfNewPage = maxViewportOfNewPage;
2640
2654
  this.#lsdPages = [];
2641
2655
  this.#nextPageIdx = 1;
2642
2656
  this.#gettingPage = false;
@@ -2655,6 +2669,9 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
2655
2669
  const currentTime = (0, import_utils7.getCurrentUnixTime)();
2656
2670
  const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime: currentTime, lastStatusUpdateTime: currentTime, taskId: 0, relatedId: 0, misc: {} };
2657
2671
  const lsdPage = new PuppeteerPage(this, page, pageInfo2);
2672
+ if (this.#maxViewportOfNewPage) {
2673
+ await lsdPage.maximizeViewport();
2674
+ }
2658
2675
  if (this.#userAgent) {
2659
2676
  await lsdPage.setUserAgent(this.#userAgent);
2660
2677
  }
@@ -2878,7 +2895,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
2878
2895
  throw new Error(`Invalid puppeteer browser parameter`);
2879
2896
  }
2880
2897
  super();
2881
- const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, headless = false, executablePath = "" } = options;
2898
+ const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, maxViewportOfNewPage = true, headless = false, executablePath = "" } = options;
2882
2899
  this.#browser = browser;
2883
2900
  this.#browserIdx = browserIdx;
2884
2901
  this.#lsdBrowserContexts = [];
@@ -2887,7 +2904,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
2887
2904
  this.#browserCreationMethod = browserCreateMethod;
2888
2905
  this.#headless = headless;
2889
2906
  this.#proxy = options?.proxy ? Object.assign({}, options.proxy) : null;
2890
- this.#options = options;
2907
+ this.#options = Object.assign({}, options, { closeFreePagesIntervalSeconds, maxPageFreeSeconds, maxViewportOfNewPage, headless, executablePath, proxy: this.#proxy });
2891
2908
  this.#executablePath = executablePath;
2892
2909
  this.#nextBrowserContextIdx = 1;
2893
2910
  this.#closeFreePagesIntervalId = null;
@@ -2895,7 +2912,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
2895
2912
  const browserContexts = browser.browserContexts();
2896
2913
  const incognito = typeof options?.incognito === "boolean" ? options.incognito : false;
2897
2914
  for (const browserContext of browserContexts) {
2898
- const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), this.#userAgent());
2915
+ const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), this.#userAgent(), maxViewportOfNewPage);
2899
2916
  this.#lsdBrowserContexts.push(lsdBrowserContext);
2900
2917
  (0, import_utils8.loginfo)(`##browser ${lsdBrowserContext.id()} ${this.#browserCreationMethod}ed`);
2901
2918
  }
@@ -2947,7 +2964,8 @@ var PuppeteerBrowser = class extends import_node_events6.default {
2947
2964
  }
2948
2965
  const browserContext = await this.#browser.createBrowserContext(browserContextOptions);
2949
2966
  const userAgent = options?.userAgent ? options.userAgent : "";
2950
- const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent);
2967
+ const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
2968
+ const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
2951
2969
  this.#lsdBrowserContexts.push(lsdBrowserContext);
2952
2970
  (0, import_utils8.loginfo)(`##browser ${lsdBrowserContext.id()} created`);
2953
2971
  return lsdBrowserContext;
package/dist/index.d.cts CHANGED
@@ -61,6 +61,10 @@ interface BrowserOptions {
61
61
  * @default 900
62
62
  */
63
63
  maxPageFreeSeconds?: number;
64
+ /**
65
+ * @default true
66
+ */
67
+ maxViewportOfNewPage?: boolean;
64
68
  /**
65
69
  * The proxy actually used by the connected browser; for efficient web scraping, please pass an accurate value
66
70
  * * this will used as default proxy when creating new browserContexts later
@@ -130,6 +134,10 @@ interface LsdConnectOptions extends BrowserOptions {
130
134
  }
131
135
  type LsdBrowserContextOptions = {
132
136
  proxy: Proxy | null;
137
+ /**
138
+ * @default browser.options.maxViewportOfNewPage
139
+ */
140
+ maxViewportOfNewPage?: boolean;
133
141
  /**
134
142
  * userAgent of the browserContext:
135
143
  * * playwright: set when creating the new browserContext
@@ -968,7 +976,7 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
968
976
 
969
977
  declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowserContext {
970
978
  #private;
971
- constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, incognito?: boolean, proxy?: Proxy | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number);
979
+ constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, incognito?: boolean, proxy?: Proxy | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, maxViewportOfNewPage?: boolean);
972
980
  browser(): LsdBrowser;
973
981
  close(): Promise<boolean>;
974
982
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
@@ -1076,7 +1084,7 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
1076
1084
 
1077
1085
  declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowserContext {
1078
1086
  #private;
1079
- constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, incognito?: boolean, proxy?: Proxy | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string);
1087
+ constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, incognito?: boolean, proxy?: Proxy | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxViewportOfNewPage?: boolean);
1080
1088
  browser(): LsdBrowser;
1081
1089
  close(): Promise<boolean>;
1082
1090
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
package/dist/index.d.ts CHANGED
@@ -61,6 +61,10 @@ interface BrowserOptions {
61
61
  * @default 900
62
62
  */
63
63
  maxPageFreeSeconds?: number;
64
+ /**
65
+ * @default true
66
+ */
67
+ maxViewportOfNewPage?: boolean;
64
68
  /**
65
69
  * The proxy actually used by the connected browser; for efficient web scraping, please pass an accurate value
66
70
  * * this will used as default proxy when creating new browserContexts later
@@ -130,6 +134,10 @@ interface LsdConnectOptions extends BrowserOptions {
130
134
  }
131
135
  type LsdBrowserContextOptions = {
132
136
  proxy: Proxy | null;
137
+ /**
138
+ * @default browser.options.maxViewportOfNewPage
139
+ */
140
+ maxViewportOfNewPage?: boolean;
133
141
  /**
134
142
  * userAgent of the browserContext:
135
143
  * * playwright: set when creating the new browserContext
@@ -968,7 +976,7 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
968
976
 
969
977
  declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowserContext {
970
978
  #private;
971
- constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, incognito?: boolean, proxy?: Proxy | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number);
979
+ constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext, incognito?: boolean, proxy?: Proxy | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, maxViewportOfNewPage?: boolean);
972
980
  browser(): LsdBrowser;
973
981
  close(): Promise<boolean>;
974
982
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
@@ -1076,7 +1084,7 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
1076
1084
 
1077
1085
  declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowserContext {
1078
1086
  #private;
1079
- constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, incognito?: boolean, proxy?: Proxy | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string);
1087
+ constructor(lsdBrowser: LsdBrowser, browserContext: BrowserContext$1, incognito?: boolean, proxy?: Proxy | null, browserIdx?: number, browserContextIdx?: number, maxPagesPerBrowserContext?: number, maxPageFreeSeconds?: number, userAgent?: string, maxViewportOfNewPage?: boolean);
1080
1088
  browser(): LsdBrowser;
1081
1089
  close(): Promise<boolean>;
1082
1090
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
package/dist/index.js CHANGED
@@ -1123,10 +1123,11 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
1123
1123
  #proxy;
1124
1124
  #maxPagesPerBrowserContext;
1125
1125
  #maxPageFreeSeconds;
1126
+ #maxViewportOfNewPage;
1126
1127
  #lsdPages;
1127
1128
  #nextPageIdx;
1128
1129
  #gettingPage;
1129
- #initPages() {
1130
+ async #initPages() {
1130
1131
  if (!this.#browserContext) {
1131
1132
  throw new Error("Invalid browserContext");
1132
1133
  }
@@ -1136,11 +1137,14 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
1136
1137
  for (const page of pages) {
1137
1138
  const pageInfo = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType, openTime: this.#createTime, lastStatusUpdateTime, taskId: 0, relatedId: 0, misc: {} };
1138
1139
  const lsdPage = new PlaywrightPage(this, page, pageInfo);
1140
+ if (this.#maxViewportOfNewPage) {
1141
+ await lsdPage.maximizeViewport();
1142
+ }
1139
1143
  this.#lsdPages.push(lsdPage);
1140
1144
  loginfo2(`##browser ${lsdPage.id()} ${openType}ed`);
1141
1145
  }
1142
1146
  }
1143
- constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0) {
1147
+ constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, maxViewportOfNewPage = true) {
1144
1148
  if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
1145
1149
  throw new Error(`Invalid lsdBrowser parameter`);
1146
1150
  }
@@ -1157,6 +1161,7 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
1157
1161
  this.#proxy = proxy?.server ? proxy : null;
1158
1162
  this.#maxPagesPerBrowserContext = maxPagesPerBrowserContext;
1159
1163
  this.#maxPageFreeSeconds = maxPageFreeSeconds;
1164
+ this.#maxViewportOfNewPage = maxViewportOfNewPage;
1160
1165
  this.#lsdPages = [];
1161
1166
  this.#nextPageIdx = 1;
1162
1167
  this.#gettingPage = false;
@@ -1170,6 +1175,9 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
1170
1175
  const currentTime = getCurrentUnixTime2();
1171
1176
  const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime: currentTime, lastStatusUpdateTime: currentTime, taskId: 0, relatedId: 0, misc: {} };
1172
1177
  const lsdPage = new PlaywrightPage(this, page, pageInfo2);
1178
+ if (this.#maxViewportOfNewPage) {
1179
+ await lsdPage.maximizeViewport();
1180
+ }
1173
1181
  this.#lsdPages.push(lsdPage);
1174
1182
  loginfo2(`##browser ${lsdPage.id()} created`);
1175
1183
  }
@@ -1387,7 +1395,7 @@ var PlaywrightBrowser = class extends EventEmitter3 {
1387
1395
  throw new Error(`Invalid playwright browser parameter`);
1388
1396
  }
1389
1397
  super();
1390
- const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, headless = false, executablePath = "" } = options;
1398
+ const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, maxViewportOfNewPage = true, headless = false, executablePath = "" } = options;
1391
1399
  this.#browser = browser;
1392
1400
  this.#browserIdx = browserIdx;
1393
1401
  this.#lsdBrowserContexts = [];
@@ -1395,8 +1403,8 @@ var PlaywrightBrowser = class extends EventEmitter3 {
1395
1403
  this.#browserType = browerType;
1396
1404
  this.#browserCreationMethod = browserCreateMethod;
1397
1405
  this.#headless = headless;
1398
- this.#options = options;
1399
1406
  this.#proxy = options?.proxy ? Object.assign({}, options.proxy) : null;
1407
+ this.#options = Object.assign({}, options, { closeFreePagesIntervalSeconds, maxPageFreeSeconds, maxViewportOfNewPage, headless, executablePath, proxy: this.#proxy });
1400
1408
  this.#executablePath = executablePath;
1401
1409
  this.#nextBrowserContextIdx = 1;
1402
1410
  this.#closeFreePagesIntervalId = null;
@@ -1407,7 +1415,7 @@ var PlaywrightBrowser = class extends EventEmitter3 {
1407
1415
  }
1408
1416
  const incognito = typeof options?.incognito === "boolean" ? options.incognito : true;
1409
1417
  for (const browserContext of browserContexts) {
1410
- const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx++, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds());
1418
+ const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx++, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
1411
1419
  this.#lsdBrowserContexts.push(lsdBrowserContext);
1412
1420
  loginfo3(`##browser ${lsdBrowserContext.id()} ${this.#browserCreationMethod}ed`);
1413
1421
  }
@@ -1462,7 +1470,8 @@ var PlaywrightBrowser = class extends EventEmitter3 {
1462
1470
  browserContextOptions.userAgent = options.userAgent;
1463
1471
  }
1464
1472
  const browserContext = await this.#browser.newContext(browserContextOptions);
1465
- const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, true, proxy, this.#browserIdx++, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds());
1473
+ const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
1474
+ const lsdBrowserContext = new PlaywrightBrowserContext(this, browserContext, true, proxy, this.#browserIdx++, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), maxViewportOfNewPage);
1466
1475
  this.#lsdBrowserContexts.push(lsdBrowserContext);
1467
1476
  loginfo3(`##browser ${lsdBrowserContext.id()} created`);
1468
1477
  return lsdBrowserContext;
@@ -2579,6 +2588,7 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2579
2588
  #proxy;
2580
2589
  #maxPagesPerBrowserContext;
2581
2590
  #maxPageFreeSeconds;
2591
+ #maxViewportOfNewPage;
2582
2592
  #lsdPages;
2583
2593
  #nextPageIdx;
2584
2594
  #gettingPage;
@@ -2592,6 +2602,9 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2592
2602
  for (const page of pages) {
2593
2603
  const pageInfo = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType, openTime: this.#createTime, lastStatusUpdateTime, taskId: 0, relatedId: 0, misc: {} };
2594
2604
  const lsdPage = new PuppeteerPage(this, page, pageInfo);
2605
+ if (this.#maxViewportOfNewPage) {
2606
+ await lsdPage.maximizeViewport();
2607
+ }
2595
2608
  if (this.#userAgent) {
2596
2609
  await lsdPage.setUserAgent(this.#userAgent);
2597
2610
  }
@@ -2599,7 +2612,7 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2599
2612
  loginfo5(`##browser ${lsdPage.id()} ${openType}ed`);
2600
2613
  }
2601
2614
  }
2602
- constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "") {
2615
+ constructor(lsdBrowser, browserContext, incognito = false, proxy = null, browserIdx = 0, browserContextIdx = 0, maxPagesPerBrowserContext = 20, maxPageFreeSeconds = 0, userAgent = "", maxViewportOfNewPage = true) {
2603
2616
  if (!lsdBrowser || typeof lsdBrowser.browserContexts !== "function") {
2604
2617
  throw new Error(`Invalid lsdBrowser parameter`);
2605
2618
  }
@@ -2617,6 +2630,7 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2617
2630
  this.#proxy = proxy?.server ? proxy : null;
2618
2631
  this.#maxPagesPerBrowserContext = maxPagesPerBrowserContext;
2619
2632
  this.#maxPageFreeSeconds = maxPageFreeSeconds;
2633
+ this.#maxViewportOfNewPage = maxViewportOfNewPage;
2620
2634
  this.#lsdPages = [];
2621
2635
  this.#nextPageIdx = 1;
2622
2636
  this.#gettingPage = false;
@@ -2635,6 +2649,9 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2635
2649
  const currentTime = getCurrentUnixTime4();
2636
2650
  const pageInfo2 = { browserIdx: this.#browserIdx, browserContextIdx: this.#browserContextIdx, pageIdx: this.#nextPageIdx++, openType: "other", openTime: currentTime, lastStatusUpdateTime: currentTime, taskId: 0, relatedId: 0, misc: {} };
2637
2651
  const lsdPage = new PuppeteerPage(this, page, pageInfo2);
2652
+ if (this.#maxViewportOfNewPage) {
2653
+ await lsdPage.maximizeViewport();
2654
+ }
2638
2655
  if (this.#userAgent) {
2639
2656
  await lsdPage.setUserAgent(this.#userAgent);
2640
2657
  }
@@ -2858,7 +2875,7 @@ var PuppeteerBrowser = class extends EventEmitter6 {
2858
2875
  throw new Error(`Invalid puppeteer browser parameter`);
2859
2876
  }
2860
2877
  super();
2861
- const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, headless = false, executablePath = "" } = options;
2878
+ const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, maxViewportOfNewPage = true, headless = false, executablePath = "" } = options;
2862
2879
  this.#browser = browser;
2863
2880
  this.#browserIdx = browserIdx;
2864
2881
  this.#lsdBrowserContexts = [];
@@ -2867,7 +2884,7 @@ var PuppeteerBrowser = class extends EventEmitter6 {
2867
2884
  this.#browserCreationMethod = browserCreateMethod;
2868
2885
  this.#headless = headless;
2869
2886
  this.#proxy = options?.proxy ? Object.assign({}, options.proxy) : null;
2870
- this.#options = options;
2887
+ this.#options = Object.assign({}, options, { closeFreePagesIntervalSeconds, maxPageFreeSeconds, maxViewportOfNewPage, headless, executablePath, proxy: this.#proxy });
2871
2888
  this.#executablePath = executablePath;
2872
2889
  this.#nextBrowserContextIdx = 1;
2873
2890
  this.#closeFreePagesIntervalId = null;
@@ -2875,7 +2892,7 @@ var PuppeteerBrowser = class extends EventEmitter6 {
2875
2892
  const browserContexts = browser.browserContexts();
2876
2893
  const incognito = typeof options?.incognito === "boolean" ? options.incognito : false;
2877
2894
  for (const browserContext of browserContexts) {
2878
- const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), this.#userAgent());
2895
+ const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, incognito, this.#proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), this.#userAgent(), maxViewportOfNewPage);
2879
2896
  this.#lsdBrowserContexts.push(lsdBrowserContext);
2880
2897
  loginfo6(`##browser ${lsdBrowserContext.id()} ${this.#browserCreationMethod}ed`);
2881
2898
  }
@@ -2927,7 +2944,8 @@ var PuppeteerBrowser = class extends EventEmitter6 {
2927
2944
  }
2928
2945
  const browserContext = await this.#browser.createBrowserContext(browserContextOptions);
2929
2946
  const userAgent = options?.userAgent ? options.userAgent : "";
2930
- const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent);
2947
+ const { maxViewportOfNewPage = this.#options.maxViewportOfNewPage } = options ? options : {};
2948
+ const lsdBrowserContext = new PuppeteerBrowserContext(this, browserContext, true, proxy, this.#browserIdx, this.#nextBrowserContextIdx++, this.#maxPagesPerBrowserContext(), this.#maxPageFreeSeconds(), userAgent, maxViewportOfNewPage);
2931
2949
  this.#lsdBrowserContexts.push(lsdBrowserContext);
2932
2950
  loginfo6(`##browser ${lsdBrowserContext.id()} created`);
2933
2951
  return lsdBrowserContext;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letsscrapedata/controller",
3
- "version": "0.0.19",
3
+ "version": "0.0.20",
4
4
  "description": "Unified browser / HTML controller interfaces that support playwright, puppeteer and cheerio",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",