@letsscrapedata/controller 0.0.16 → 0.0.18

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
@@ -160,7 +160,7 @@ var PlaywrightElement = class _PlaywrightElement {
160
160
  if (selector !== ".") {
161
161
  locators = await parent2.locator(selector).all();
162
162
  } else {
163
- throw new Error("Cannot use selector '.' on page");
163
+ locators = [this.#locator];
164
164
  }
165
165
  }
166
166
  retObj.locators = locators;
@@ -1394,7 +1394,7 @@ var PlaywrightBrowser = class extends import_node_events3.default {
1394
1394
  return this.#options.maxPagesPerBrowserContext ? this.#options.maxPagesPerBrowserContext : 20;
1395
1395
  }
1396
1396
  #maxPageFreeSeconds() {
1397
- return this.#options.maxPageFreeSeconds ? this.#options.maxPageFreeSeconds : 600;
1397
+ return this.#options.maxPageFreeSeconds ? this.#options.maxPageFreeSeconds : 900;
1398
1398
  }
1399
1399
  // 构造函数:缺省只能由LsdBrowserController.launch/connect调用创建实例!!!
1400
1400
  constructor(browser, browerType, browserCreateMethod, options, browserIdx = 0) {
@@ -1402,7 +1402,7 @@ var PlaywrightBrowser = class extends import_node_events3.default {
1402
1402
  throw new Error(`Invalid playwright browser parameter`);
1403
1403
  }
1404
1404
  super();
1405
- const { closeFreePagesIntervalSeconds = 0, maxPageFreeSeconds = 0, headless = false, executablePath = "" } = options;
1405
+ const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, headless = false, executablePath = "" } = options;
1406
1406
  this.#browser = browser;
1407
1407
  this.#browserIdx = browserIdx;
1408
1408
  this.#lsdBrowserContexts = [];
@@ -2862,7 +2862,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
2862
2862
  return this.#options.maxPagesPerBrowserContext ? this.#options.maxPagesPerBrowserContext : 20;
2863
2863
  }
2864
2864
  #maxPageFreeSeconds() {
2865
- return this.#options.maxPageFreeSeconds ? this.#options.maxPageFreeSeconds : 600;
2865
+ return this.#options.maxPageFreeSeconds ? this.#options.maxPageFreeSeconds : 900;
2866
2866
  }
2867
2867
  #userAgent() {
2868
2868
  return this.#options.userAgent ? this.#options.userAgent : "";
@@ -2873,7 +2873,7 @@ var PuppeteerBrowser = class extends import_node_events6.default {
2873
2873
  throw new Error(`Invalid puppeteer browser parameter`);
2874
2874
  }
2875
2875
  super();
2876
- const { closeFreePagesIntervalSeconds = 0, maxPageFreeSeconds = 0, headless = false, executablePath = "" } = options;
2876
+ const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, headless = false, executablePath = "" } = options;
2877
2877
  this.#browser = browser;
2878
2878
  this.#browserIdx = browserIdx;
2879
2879
  this.#lsdBrowserContexts = [];
@@ -17190,19 +17190,19 @@ var LsdBrowserController = class _LsdBrowserController {
17190
17190
  maxBrowserContextsPerBrowser = 10,
17191
17191
  maxPagesPerBrowserContext = 20,
17192
17192
  maxPageFreeSeconds = 900,
17193
+ proxy = null,
17193
17194
  timeout = 3e4,
17194
17195
  args = [],
17195
17196
  executablePath = "",
17196
- headless = false,
17197
+ headless = true,
17197
17198
  minBrowserContexts = 1,
17198
17199
  // incognito
17199
- proxy = null,
17200
17200
  proxyPerBrowserContext = false,
17201
17201
  userDataDir = "",
17202
17202
  userAgent = ""
17203
17203
  } = options ? options : {};
17204
17204
  const incognito = typeof options?.incognito === "boolean" ? options.incognito : browserControllerType === "puppeteer" ? false : true;
17205
- const actOptions = { closeFreePagesIntervalSeconds, maxBrowserContextsPerBrowser, maxPagesPerBrowserContext, maxPageFreeSeconds, timeout, args, executablePath, headless, incognito, proxy, proxyPerBrowserContext, userDataDir, userAgent };
17205
+ const actOptions = { closeFreePagesIntervalSeconds, maxBrowserContextsPerBrowser, maxPagesPerBrowserContext, maxPageFreeSeconds, proxy, timeout, args, executablePath, headless, minBrowserContexts, incognito, proxyPerBrowserContext, userDataDir, userAgent };
17206
17206
  let idx = args.findIndex((arg) => arg.toLowerCase().startsWith("--incoginto"));
17207
17207
  if (idx >= 0) {
17208
17208
  (0, import_utils15.logwarn)(`Please use options.incognito instead when launching new browser.`);
@@ -17280,14 +17280,27 @@ var LsdBrowserController = class _LsdBrowserController {
17280
17280
  return lsdBrowser;
17281
17281
  }
17282
17282
  async connect(browserControllerType, browserType, options) {
17283
- const { browserUrl } = options;
17283
+ let {
17284
+ closeFreePagesIntervalSeconds = 300,
17285
+ maxBrowserContextsPerBrowser = 10,
17286
+ maxPagesPerBrowserContext = 20,
17287
+ maxPageFreeSeconds = 900,
17288
+ proxy = null,
17289
+ timeout = 3e4,
17290
+ browserUrl,
17291
+ executablePath = "",
17292
+ headless = false,
17293
+ incognito = false,
17294
+ userAgent = ""
17295
+ } = options;
17284
17296
  if (typeof browserUrl !== "string" || !browserUrl.toLowerCase().startsWith("http://")) {
17285
17297
  throw new Error(`Invalid browserUrl ${browserUrl} in connect`);
17286
17298
  }
17299
+ const actOptions = { closeFreePagesIntervalSeconds, maxBrowserContextsPerBrowser, maxPagesPerBrowserContext, maxPageFreeSeconds, proxy, timeout, browserUrl, executablePath, headless, incognito, userAgent };
17287
17300
  if (browserControllerType === "playwright") {
17288
17301
  const playwrightBrowserType = this.#playwrightBrowserType(browserType, true);
17289
17302
  const browser = await playwrightBrowserType.connectOverCDP(browserUrl);
17290
- const lsdBrowser = new PlaywrightBrowser(browser, browserType, "connect", options, this.#nextBrowserIdx++);
17303
+ const lsdBrowser = new PlaywrightBrowser(browser, browserType, "connect", actOptions, this.#nextBrowserIdx++);
17291
17304
  return lsdBrowser;
17292
17305
  } else if (browserControllerType === "puppeteer") {
17293
17306
  this.#puppeteerProduct(browserType);
package/dist/index.d.cts CHANGED
@@ -42,7 +42,7 @@ type BrowserControllerOptions = {
42
42
  declare const defaultProxy: Proxy;
43
43
  interface BrowserOptions {
44
44
  /**
45
- * Interval between closing free pages (seconds) if more than 0
45
+ * Interval between closing free pages (seconds) if greater than 0
46
46
  * @default 300
47
47
  */
48
48
  closeFreePagesIntervalSeconds?: number;
package/dist/index.d.ts CHANGED
@@ -42,7 +42,7 @@ type BrowserControllerOptions = {
42
42
  declare const defaultProxy: Proxy;
43
43
  interface BrowserOptions {
44
44
  /**
45
- * Interval between closing free pages (seconds) if more than 0
45
+ * Interval between closing free pages (seconds) if greater than 0
46
46
  * @default 300
47
47
  */
48
48
  closeFreePagesIntervalSeconds?: number;
package/dist/index.js CHANGED
@@ -140,7 +140,7 @@ var PlaywrightElement = class _PlaywrightElement {
140
140
  if (selector !== ".") {
141
141
  locators = await parent2.locator(selector).all();
142
142
  } else {
143
- throw new Error("Cannot use selector '.' on page");
143
+ locators = [this.#locator];
144
144
  }
145
145
  }
146
146
  retObj.locators = locators;
@@ -1374,7 +1374,7 @@ var PlaywrightBrowser = class extends EventEmitter3 {
1374
1374
  return this.#options.maxPagesPerBrowserContext ? this.#options.maxPagesPerBrowserContext : 20;
1375
1375
  }
1376
1376
  #maxPageFreeSeconds() {
1377
- return this.#options.maxPageFreeSeconds ? this.#options.maxPageFreeSeconds : 600;
1377
+ return this.#options.maxPageFreeSeconds ? this.#options.maxPageFreeSeconds : 900;
1378
1378
  }
1379
1379
  // 构造函数:缺省只能由LsdBrowserController.launch/connect调用创建实例!!!
1380
1380
  constructor(browser, browerType, browserCreateMethod, options, browserIdx = 0) {
@@ -1382,7 +1382,7 @@ var PlaywrightBrowser = class extends EventEmitter3 {
1382
1382
  throw new Error(`Invalid playwright browser parameter`);
1383
1383
  }
1384
1384
  super();
1385
- const { closeFreePagesIntervalSeconds = 0, maxPageFreeSeconds = 0, headless = false, executablePath = "" } = options;
1385
+ const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, headless = false, executablePath = "" } = options;
1386
1386
  this.#browser = browser;
1387
1387
  this.#browserIdx = browserIdx;
1388
1388
  this.#lsdBrowserContexts = [];
@@ -2842,7 +2842,7 @@ var PuppeteerBrowser = class extends EventEmitter6 {
2842
2842
  return this.#options.maxPagesPerBrowserContext ? this.#options.maxPagesPerBrowserContext : 20;
2843
2843
  }
2844
2844
  #maxPageFreeSeconds() {
2845
- return this.#options.maxPageFreeSeconds ? this.#options.maxPageFreeSeconds : 600;
2845
+ return this.#options.maxPageFreeSeconds ? this.#options.maxPageFreeSeconds : 900;
2846
2846
  }
2847
2847
  #userAgent() {
2848
2848
  return this.#options.userAgent ? this.#options.userAgent : "";
@@ -2853,7 +2853,7 @@ var PuppeteerBrowser = class extends EventEmitter6 {
2853
2853
  throw new Error(`Invalid puppeteer browser parameter`);
2854
2854
  }
2855
2855
  super();
2856
- const { closeFreePagesIntervalSeconds = 0, maxPageFreeSeconds = 0, headless = false, executablePath = "" } = options;
2856
+ const { closeFreePagesIntervalSeconds = 300, maxPageFreeSeconds = 900, headless = false, executablePath = "" } = options;
2857
2857
  this.#browser = browser;
2858
2858
  this.#browserIdx = browserIdx;
2859
2859
  this.#lsdBrowserContexts = [];
@@ -17170,19 +17170,19 @@ var LsdBrowserController = class _LsdBrowserController {
17170
17170
  maxBrowserContextsPerBrowser = 10,
17171
17171
  maxPagesPerBrowserContext = 20,
17172
17172
  maxPageFreeSeconds = 900,
17173
+ proxy = null,
17173
17174
  timeout = 3e4,
17174
17175
  args = [],
17175
17176
  executablePath = "",
17176
- headless = false,
17177
+ headless = true,
17177
17178
  minBrowserContexts = 1,
17178
17179
  // incognito
17179
- proxy = null,
17180
17180
  proxyPerBrowserContext = false,
17181
17181
  userDataDir = "",
17182
17182
  userAgent = ""
17183
17183
  } = options ? options : {};
17184
17184
  const incognito = typeof options?.incognito === "boolean" ? options.incognito : browserControllerType === "puppeteer" ? false : true;
17185
- const actOptions = { closeFreePagesIntervalSeconds, maxBrowserContextsPerBrowser, maxPagesPerBrowserContext, maxPageFreeSeconds, timeout, args, executablePath, headless, incognito, proxy, proxyPerBrowserContext, userDataDir, userAgent };
17185
+ const actOptions = { closeFreePagesIntervalSeconds, maxBrowserContextsPerBrowser, maxPagesPerBrowserContext, maxPageFreeSeconds, proxy, timeout, args, executablePath, headless, minBrowserContexts, incognito, proxyPerBrowserContext, userDataDir, userAgent };
17186
17186
  let idx = args.findIndex((arg) => arg.toLowerCase().startsWith("--incoginto"));
17187
17187
  if (idx >= 0) {
17188
17188
  logwarn6(`Please use options.incognito instead when launching new browser.`);
@@ -17260,14 +17260,27 @@ var LsdBrowserController = class _LsdBrowserController {
17260
17260
  return lsdBrowser;
17261
17261
  }
17262
17262
  async connect(browserControllerType, browserType, options) {
17263
- const { browserUrl } = options;
17263
+ let {
17264
+ closeFreePagesIntervalSeconds = 300,
17265
+ maxBrowserContextsPerBrowser = 10,
17266
+ maxPagesPerBrowserContext = 20,
17267
+ maxPageFreeSeconds = 900,
17268
+ proxy = null,
17269
+ timeout = 3e4,
17270
+ browserUrl,
17271
+ executablePath = "",
17272
+ headless = false,
17273
+ incognito = false,
17274
+ userAgent = ""
17275
+ } = options;
17264
17276
  if (typeof browserUrl !== "string" || !browserUrl.toLowerCase().startsWith("http://")) {
17265
17277
  throw new Error(`Invalid browserUrl ${browserUrl} in connect`);
17266
17278
  }
17279
+ const actOptions = { closeFreePagesIntervalSeconds, maxBrowserContextsPerBrowser, maxPagesPerBrowserContext, maxPageFreeSeconds, proxy, timeout, browserUrl, executablePath, headless, incognito, userAgent };
17267
17280
  if (browserControllerType === "playwright") {
17268
17281
  const playwrightBrowserType = this.#playwrightBrowserType(browserType, true);
17269
17282
  const browser = await playwrightBrowserType.connectOverCDP(browserUrl);
17270
- const lsdBrowser = new PlaywrightBrowser(browser, browserType, "connect", options, this.#nextBrowserIdx++);
17283
+ const lsdBrowser = new PlaywrightBrowser(browser, browserType, "connect", actOptions, this.#nextBrowserIdx++);
17271
17284
  return lsdBrowser;
17272
17285
  } else if (browserControllerType === "puppeteer") {
17273
17286
  this.#puppeteerProduct(browserType);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letsscrapedata/controller",
3
- "version": "0.0.16",
3
+ "version": "0.0.18",
4
4
  "description": "Unified browser / HTML controller interfaces that support playwright, puppeteer and cheerio",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",