@letsscrapedata/controller 0.0.47 → 0.0.49

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
@@ -1318,8 +1318,8 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
1318
1318
  if (this.#browserContext) {
1319
1319
  this.#status = "closed";
1320
1320
  this.#lastStatusUpdateTime = (0, import_utils3.getCurrentUnixTime)();
1321
- await this.#browserContext.close();
1322
1321
  (0, import_utils3.loginfo)(`browserContext ${this.id()} closed at ${this.#lastStatusUpdateTime}`);
1322
+ await this.#browserContext.close();
1323
1323
  }
1324
1324
  return true;
1325
1325
  }
@@ -1423,10 +1423,12 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
1423
1423
  return null;
1424
1424
  }
1425
1425
  }
1426
- free() {
1426
+ free(clearStateData = false) {
1427
1427
  if (this.#status === "busy") {
1428
1428
  this.#status = "free";
1429
1429
  this.#lastStatusUpdateTime = (0, import_utils3.getCurrentUnixTime)();
1430
+ if (clearStateData) {
1431
+ }
1430
1432
  return true;
1431
1433
  } else {
1432
1434
  return false;
@@ -1444,6 +1446,9 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
1444
1446
  id() {
1445
1447
  return `browserContext-${this.#browserIdx}-${this.#browserContextIdx}`;
1446
1448
  }
1449
+ isFree() {
1450
+ return this.#status === "free";
1451
+ }
1447
1452
  isIncognito() {
1448
1453
  return this.#incognito;
1449
1454
  }
@@ -2893,15 +2898,6 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
2893
2898
  return;
2894
2899
  });
2895
2900
  }
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
- }
2905
2901
  apiContext() {
2906
2902
  throw new Error("Not supported in PuppeteerPage.");
2907
2903
  }
@@ -2912,8 +2908,10 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
2912
2908
  if (this.#browserContext) {
2913
2909
  this.#status = "closed";
2914
2910
  this.#lastStatusUpdateTime = (0, import_utils7.getCurrentUnixTime)();
2915
- await this.#browserContext.close();
2916
2911
  (0, import_utils7.loginfo)(`browserContext ${this.id()} closed at ${this.#lastStatusUpdateTime}`);
2912
+ if (this.#browserContextCreationMethod !== "launch") {
2913
+ await this.#browserContext.close();
2914
+ }
2917
2915
  }
2918
2916
  return true;
2919
2917
  }
@@ -3019,6 +3017,17 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
3019
3017
  return null;
3020
3018
  }
3021
3019
  }
3020
+ free(clearStateData = false) {
3021
+ if (this.#status === "busy") {
3022
+ this.#status = "free";
3023
+ this.#lastStatusUpdateTime = (0, import_utils7.getCurrentUnixTime)();
3024
+ if (clearStateData) {
3025
+ }
3026
+ return true;
3027
+ } else {
3028
+ return false;
3029
+ }
3030
+ }
3022
3031
  hasFreePage(pageNum = 1) {
3023
3032
  if (this.#maxPagesPerBrowserContext - this.#lsdPages.length > pageNum) {
3024
3033
  return true;
@@ -3034,6 +3043,9 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
3034
3043
  isIncognito() {
3035
3044
  return this.#incognito;
3036
3045
  }
3046
+ isFree() {
3047
+ return this.#status === "free";
3048
+ }
3037
3049
  page(pageIdx) {
3038
3050
  const lsdPage = this.#lsdPages.find((p) => p.pageInfo().pageIdx === pageIdx);
3039
3051
  return lsdPage ? lsdPage : null;
@@ -3223,9 +3235,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
3223
3235
  clearInterval(this.#closeFreePagesIntervalId);
3224
3236
  }
3225
3237
  for (const lsdBrowserContext of this.#lsdBrowserContexts) {
3226
- if (lsdBrowserContext.isIncognito()) {
3227
- await lsdBrowserContext.close();
3228
- }
3238
+ await lsdBrowserContext.close();
3229
3239
  }
3230
3240
  await this.#browser.close();
3231
3241
  return true;
package/dist/index.d.cts CHANGED
@@ -996,8 +996,9 @@ interface LsdBrowserContext extends EventEmitter {
996
996
  doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
997
997
  /**
998
998
  * Free a busy LsdBrowserContext.
999
+ * @param clearStateData default false
999
1000
  */
1000
- free(): boolean;
1001
+ free(clearStateData?: boolean): boolean;
1001
1002
  /**
1002
1003
  * get a free page from current pages or by creating a new page
1003
1004
  */
@@ -1009,6 +1010,7 @@ interface LsdBrowserContext extends EventEmitter {
1009
1010
  */
1010
1011
  hasFreePage(pageNum?: number): boolean;
1011
1012
  id(): string;
1013
+ isFree(): boolean;
1012
1014
  isIncognito(): boolean;
1013
1015
  creationMethod(): BrowserContextCreationMethod;
1014
1016
  page(pageIdx: number): LsdPage | null;
@@ -1137,9 +1139,10 @@ declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowse
1137
1139
  creationMethod(): BrowserContextCreationMethod;
1138
1140
  doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1139
1141
  getPage(always?: boolean): Promise<LsdPage | null>;
1140
- free(): boolean;
1142
+ free(clearStateData?: boolean): boolean;
1141
1143
  hasFreePage(pageNum?: number): boolean;
1142
1144
  id(): string;
1145
+ isFree(): boolean;
1143
1146
  isIncognito(): boolean;
1144
1147
  page(pageIdx: number): LsdPage | null;
1145
1148
  pages(): LsdPage[];
@@ -1257,7 +1260,6 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
1257
1260
  declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowserContext {
1258
1261
  #private;
1259
1262
  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;
1261
1263
  apiContext(): LsdApiContext;
1262
1264
  browser(): LsdBrowser;
1263
1265
  close(): Promise<boolean>;
@@ -1265,9 +1267,11 @@ declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowser
1265
1267
  creationMethod(): BrowserContextCreationMethod;
1266
1268
  doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1267
1269
  getPage(always?: boolean): Promise<LsdPage | null>;
1270
+ free(clearStateData?: boolean): boolean;
1268
1271
  hasFreePage(pageNum?: number): boolean;
1269
1272
  id(): string;
1270
1273
  isIncognito(): boolean;
1274
+ isFree(): boolean;
1271
1275
  page(pageIdx: number): LsdPage | null;
1272
1276
  pages(): LsdPage[];
1273
1277
  proxy(): ProxyInController | null;
package/dist/index.d.ts CHANGED
@@ -996,8 +996,9 @@ interface LsdBrowserContext extends EventEmitter {
996
996
  doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
997
997
  /**
998
998
  * Free a busy LsdBrowserContext.
999
+ * @param clearStateData default false
999
1000
  */
1000
- free(): boolean;
1001
+ free(clearStateData?: boolean): boolean;
1001
1002
  /**
1002
1003
  * get a free page from current pages or by creating a new page
1003
1004
  */
@@ -1009,6 +1010,7 @@ interface LsdBrowserContext extends EventEmitter {
1009
1010
  */
1010
1011
  hasFreePage(pageNum?: number): boolean;
1011
1012
  id(): string;
1013
+ isFree(): boolean;
1012
1014
  isIncognito(): boolean;
1013
1015
  creationMethod(): BrowserContextCreationMethod;
1014
1016
  page(pageIdx: number): LsdPage | null;
@@ -1137,9 +1139,10 @@ declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowse
1137
1139
  creationMethod(): BrowserContextCreationMethod;
1138
1140
  doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1139
1141
  getPage(always?: boolean): Promise<LsdPage | null>;
1140
- free(): boolean;
1142
+ free(clearStateData?: boolean): boolean;
1141
1143
  hasFreePage(pageNum?: number): boolean;
1142
1144
  id(): string;
1145
+ isFree(): boolean;
1143
1146
  isIncognito(): boolean;
1144
1147
  page(pageIdx: number): LsdPage | null;
1145
1148
  pages(): LsdPage[];
@@ -1257,7 +1260,6 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
1257
1260
  declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowserContext {
1258
1261
  #private;
1259
1262
  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;
1261
1263
  apiContext(): LsdApiContext;
1262
1264
  browser(): LsdBrowser;
1263
1265
  close(): Promise<boolean>;
@@ -1265,9 +1267,11 @@ declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowser
1265
1267
  creationMethod(): BrowserContextCreationMethod;
1266
1268
  doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1267
1269
  getPage(always?: boolean): Promise<LsdPage | null>;
1270
+ free(clearStateData?: boolean): boolean;
1268
1271
  hasFreePage(pageNum?: number): boolean;
1269
1272
  id(): string;
1270
1273
  isIncognito(): boolean;
1274
+ isFree(): boolean;
1271
1275
  page(pageIdx: number): LsdPage | null;
1272
1276
  pages(): LsdPage[];
1273
1277
  proxy(): ProxyInController | null;
package/dist/index.js CHANGED
@@ -1272,8 +1272,8 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
1272
1272
  if (this.#browserContext) {
1273
1273
  this.#status = "closed";
1274
1274
  this.#lastStatusUpdateTime = getCurrentUnixTime2();
1275
- await this.#browserContext.close();
1276
1275
  loginfo3(`browserContext ${this.id()} closed at ${this.#lastStatusUpdateTime}`);
1276
+ await this.#browserContext.close();
1277
1277
  }
1278
1278
  return true;
1279
1279
  }
@@ -1377,10 +1377,12 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
1377
1377
  return null;
1378
1378
  }
1379
1379
  }
1380
- free() {
1380
+ free(clearStateData = false) {
1381
1381
  if (this.#status === "busy") {
1382
1382
  this.#status = "free";
1383
1383
  this.#lastStatusUpdateTime = getCurrentUnixTime2();
1384
+ if (clearStateData) {
1385
+ }
1384
1386
  return true;
1385
1387
  } else {
1386
1388
  return false;
@@ -1398,6 +1400,9 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
1398
1400
  id() {
1399
1401
  return `browserContext-${this.#browserIdx}-${this.#browserContextIdx}`;
1400
1402
  }
1403
+ isFree() {
1404
+ return this.#status === "free";
1405
+ }
1401
1406
  isIncognito() {
1402
1407
  return this.#incognito;
1403
1408
  }
@@ -2847,15 +2852,6 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2847
2852
  return;
2848
2853
  });
2849
2854
  }
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
- }
2859
2855
  apiContext() {
2860
2856
  throw new Error("Not supported in PuppeteerPage.");
2861
2857
  }
@@ -2866,8 +2862,10 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2866
2862
  if (this.#browserContext) {
2867
2863
  this.#status = "closed";
2868
2864
  this.#lastStatusUpdateTime = getCurrentUnixTime5();
2869
- await this.#browserContext.close();
2870
2865
  loginfo6(`browserContext ${this.id()} closed at ${this.#lastStatusUpdateTime}`);
2866
+ if (this.#browserContextCreationMethod !== "launch") {
2867
+ await this.#browserContext.close();
2868
+ }
2871
2869
  }
2872
2870
  return true;
2873
2871
  }
@@ -2973,6 +2971,17 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2973
2971
  return null;
2974
2972
  }
2975
2973
  }
2974
+ free(clearStateData = false) {
2975
+ if (this.#status === "busy") {
2976
+ this.#status = "free";
2977
+ this.#lastStatusUpdateTime = getCurrentUnixTime5();
2978
+ if (clearStateData) {
2979
+ }
2980
+ return true;
2981
+ } else {
2982
+ return false;
2983
+ }
2984
+ }
2976
2985
  hasFreePage(pageNum = 1) {
2977
2986
  if (this.#maxPagesPerBrowserContext - this.#lsdPages.length > pageNum) {
2978
2987
  return true;
@@ -2988,6 +2997,9 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2988
2997
  isIncognito() {
2989
2998
  return this.#incognito;
2990
2999
  }
3000
+ isFree() {
3001
+ return this.#status === "free";
3002
+ }
2991
3003
  page(pageIdx) {
2992
3004
  const lsdPage = this.#lsdPages.find((p) => p.pageInfo().pageIdx === pageIdx);
2993
3005
  return lsdPage ? lsdPage : null;
@@ -3177,9 +3189,7 @@ var PuppeteerBrowser = class extends EventEmitter6 {
3177
3189
  clearInterval(this.#closeFreePagesIntervalId);
3178
3190
  }
3179
3191
  for (const lsdBrowserContext of this.#lsdBrowserContexts) {
3180
- if (lsdBrowserContext.isIncognito()) {
3181
- await lsdBrowserContext.close();
3182
- }
3192
+ await lsdBrowserContext.close();
3183
3193
  }
3184
3194
  await this.#browser.close();
3185
3195
  return true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letsscrapedata/controller",
3
- "version": "0.0.47",
3
+ "version": "0.0.49",
4
4
  "description": "Unified browser / HTML controller interfaces that support playwright, puppeteer and cheerio",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -46,7 +46,7 @@
46
46
  "apify"
47
47
  ],
48
48
  "dependencies": {
49
- "@letsscrapedata/utils": "^0.0.23",
49
+ "@letsscrapedata/utils": "^0.0.24",
50
50
  "cheerio": "^1.0.0",
51
51
  "playwright": "^1.43.0",
52
52
  "playwright-extra": "^4.3.6",