@letsscrapedata/controller 0.0.38 → 0.0.39

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
@@ -1354,6 +1354,13 @@ var PlaywrightBrowserContext = class extends import_node_events2.default {
1354
1354
  return false;
1355
1355
  }
1356
1356
  }
1357
+ doesMeetBrowserContextRequirements(browserContextRequirements) {
1358
+ if (!this.#lsdBrowser.doesMeetBrowserContextRequirements(browserContextRequirements)) {
1359
+ return false;
1360
+ }
1361
+ const { incognitos } = browserContextRequirements;
1362
+ return incognitos.length === 0 || incognitos.includes(this.#incognito);
1363
+ }
1357
1364
  async getPage(always = false) {
1358
1365
  if (!this.#browserContext) {
1359
1366
  throw new Error("Invalid browserContext");
@@ -1605,6 +1612,10 @@ var PlaywrightBrowser = class extends import_node_events3.default {
1605
1612
  browserType() {
1606
1613
  return this.#browserType;
1607
1614
  }
1615
+ doesMeetBrowserContextRequirements(browserContextRequirements) {
1616
+ const { browserControllerTypes, browserTypes, headlesses } = browserContextRequirements;
1617
+ return (browserControllerTypes.length === 0 || browserControllerTypes.includes(this.#browserControllerType)) && (browserTypes.length === 0 && browserTypes.includes(this.#browserType)) && (headlesses.length === 0 && headlesses.includes(this.#headless));
1618
+ }
1608
1619
  executablePath() {
1609
1620
  return this.#executablePath;
1610
1621
  }
@@ -2875,6 +2886,13 @@ var PuppeteerBrowserContext = class extends import_node_events5.default {
2875
2886
  return false;
2876
2887
  }
2877
2888
  }
2889
+ doesMeetBrowserContextRequirements(browserContextRequirements) {
2890
+ if (!this.#lsdBrowser.doesMeetBrowserContextRequirements(browserContextRequirements)) {
2891
+ return false;
2892
+ }
2893
+ const { incognitos } = browserContextRequirements;
2894
+ return incognitos.length === 0 || incognitos.includes(this.#incognito);
2895
+ }
2878
2896
  async getPage(always = false) {
2879
2897
  if (!this.#browserContext) {
2880
2898
  throw new Error("Invalid browserContext");
@@ -3124,6 +3142,10 @@ var PuppeteerBrowser = class extends import_node_events6.default {
3124
3142
  browserType() {
3125
3143
  return this.#browserType;
3126
3144
  }
3145
+ doesMeetBrowserContextRequirements(browserContextRequirements) {
3146
+ const { browserControllerTypes, browserTypes, headlesses } = browserContextRequirements;
3147
+ return (browserControllerTypes.length === 0 || browserControllerTypes.includes(this.#browserControllerType)) && (browserTypes.length === 0 && browserTypes.includes(this.#browserType)) && (headlesses.length === 0 && headlesses.includes(this.#headless));
3148
+ }
3127
3149
  executablePath() {
3128
3150
  return this.#executablePath;
3129
3151
  }
package/dist/index.d.cts CHANGED
@@ -18,6 +18,12 @@ type CheerioNode = cheerio.Cheerio;
18
18
  type BrowserControllerType = "puppeteer" | "playwright";
19
19
  type BrowserCreationMethod = "launch" | "connect";
20
20
  type LsdBrowserType = "chromium" | "firefox" | "webkit";
21
+ interface BrowserContextRequirements {
22
+ browserControllerTypes: BrowserControllerType[];
23
+ browserTypes: LsdBrowserType[];
24
+ headlesses: boolean[];
25
+ incognitos: boolean[];
26
+ }
21
27
  interface ProxyInController {
22
28
  proxyUrl: string;
23
29
  username?: string;
@@ -985,6 +991,11 @@ interface LsdBrowserContext extends EventEmitter {
985
991
  * @default 0 the default maxPageFreeSeconds of the browserContext will be used
986
992
  */
987
993
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
994
+ /**
995
+ * doest this browser meet browserContextRequirements (incognitos ignored in browser)?
996
+ * @param browserContextRequirements
997
+ */
998
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
988
999
  /**
989
1000
  * get a free page from current pages or by creating a new page
990
1001
  */
@@ -1016,6 +1027,11 @@ interface LsdBrowser extends EventEmitter {
1016
1027
  browserControllerType(): BrowserControllerType;
1017
1028
  browserCreationMethod(): BrowserCreationMethod;
1018
1029
  browserType(): LsdBrowserType;
1030
+ /**
1031
+ * doest this browser meet browserContextRequirements (incognitos ignored in browser)?
1032
+ * @param browserContextRequirements
1033
+ */
1034
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1019
1035
  /**
1020
1036
  * @returns
1021
1037
  * 1. launched: actual executable path
@@ -1111,6 +1127,7 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
1111
1127
  browserControllerType(): BrowserControllerType;
1112
1128
  browserCreationMethod(): BrowserCreationMethod;
1113
1129
  browserType(): LsdBrowserType;
1130
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1114
1131
  executablePath(): string;
1115
1132
  id(): string;
1116
1133
  isConnected(): boolean;
@@ -1132,6 +1149,7 @@ declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowse
1132
1149
  browser(): LsdBrowser;
1133
1150
  close(): Promise<boolean>;
1134
1151
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
1152
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1135
1153
  getPage(always?: boolean): Promise<LsdPage | null>;
1136
1154
  hasFreePage(pageNum?: number): boolean;
1137
1155
  id(): string;
@@ -1228,6 +1246,7 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
1228
1246
  browserControllerType(): BrowserControllerType;
1229
1247
  browserCreationMethod(): BrowserCreationMethod;
1230
1248
  browserType(): LsdBrowserType;
1249
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1231
1250
  executablePath(): string;
1232
1251
  id(): string;
1233
1252
  isConnected(): boolean;
@@ -1249,6 +1268,7 @@ declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowser
1249
1268
  browser(): LsdBrowser;
1250
1269
  close(): Promise<boolean>;
1251
1270
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
1271
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1252
1272
  getPage(always?: boolean): Promise<LsdPage | null>;
1253
1273
  hasFreePage(pageNum?: number): boolean;
1254
1274
  id(): string;
@@ -1427,4 +1447,4 @@ declare class LsdBrowserController implements LsdBrowserController$1 {
1427
1447
  }
1428
1448
  declare const controller: LsdBrowserController;
1429
1449
 
1430
- export { type AllApiRequestContext, type AllBrowser, type AllBrowserContext, type AllFrame, type AllPage, type AllResponse, type BrowserControllerType, type BrowserCreationMethod, type BrowserLaunchMethod, type BrowserManager, 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 };
1450
+ export { type AllApiRequestContext, type AllBrowser, type AllBrowserContext, type AllFrame, type AllPage, type AllResponse, type BrowserContextRequirements, type BrowserControllerType, type BrowserCreationMethod, type BrowserLaunchMethod, type BrowserManager, 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
@@ -18,6 +18,12 @@ type CheerioNode = cheerio.Cheerio;
18
18
  type BrowserControllerType = "puppeteer" | "playwright";
19
19
  type BrowserCreationMethod = "launch" | "connect";
20
20
  type LsdBrowserType = "chromium" | "firefox" | "webkit";
21
+ interface BrowserContextRequirements {
22
+ browserControllerTypes: BrowserControllerType[];
23
+ browserTypes: LsdBrowserType[];
24
+ headlesses: boolean[];
25
+ incognitos: boolean[];
26
+ }
21
27
  interface ProxyInController {
22
28
  proxyUrl: string;
23
29
  username?: string;
@@ -985,6 +991,11 @@ interface LsdBrowserContext extends EventEmitter {
985
991
  * @default 0 the default maxPageFreeSeconds of the browserContext will be used
986
992
  */
987
993
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
994
+ /**
995
+ * doest this browser meet browserContextRequirements (incognitos ignored in browser)?
996
+ * @param browserContextRequirements
997
+ */
998
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
988
999
  /**
989
1000
  * get a free page from current pages or by creating a new page
990
1001
  */
@@ -1016,6 +1027,11 @@ interface LsdBrowser extends EventEmitter {
1016
1027
  browserControllerType(): BrowserControllerType;
1017
1028
  browserCreationMethod(): BrowserCreationMethod;
1018
1029
  browserType(): LsdBrowserType;
1030
+ /**
1031
+ * doest this browser meet browserContextRequirements (incognitos ignored in browser)?
1032
+ * @param browserContextRequirements
1033
+ */
1034
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1019
1035
  /**
1020
1036
  * @returns
1021
1037
  * 1. launched: actual executable path
@@ -1111,6 +1127,7 @@ declare class PlaywrightBrowser extends EventEmitter implements LsdBrowser {
1111
1127
  browserControllerType(): BrowserControllerType;
1112
1128
  browserCreationMethod(): BrowserCreationMethod;
1113
1129
  browserType(): LsdBrowserType;
1130
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1114
1131
  executablePath(): string;
1115
1132
  id(): string;
1116
1133
  isConnected(): boolean;
@@ -1132,6 +1149,7 @@ declare class PlaywrightBrowserContext extends EventEmitter implements LsdBrowse
1132
1149
  browser(): LsdBrowser;
1133
1150
  close(): Promise<boolean>;
1134
1151
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
1152
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1135
1153
  getPage(always?: boolean): Promise<LsdPage | null>;
1136
1154
  hasFreePage(pageNum?: number): boolean;
1137
1155
  id(): string;
@@ -1228,6 +1246,7 @@ declare class PuppeteerBrowser extends EventEmitter implements LsdBrowser {
1228
1246
  browserControllerType(): BrowserControllerType;
1229
1247
  browserCreationMethod(): BrowserCreationMethod;
1230
1248
  browserType(): LsdBrowserType;
1249
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1231
1250
  executablePath(): string;
1232
1251
  id(): string;
1233
1252
  isConnected(): boolean;
@@ -1249,6 +1268,7 @@ declare class PuppeteerBrowserContext extends EventEmitter implements LsdBrowser
1249
1268
  browser(): LsdBrowser;
1250
1269
  close(): Promise<boolean>;
1251
1270
  closeFreePages(maxPageFreeSeconds?: number): Promise<boolean>;
1271
+ doesMeetBrowserContextRequirements(browserContextRequirements: BrowserContextRequirements): boolean;
1252
1272
  getPage(always?: boolean): Promise<LsdPage | null>;
1253
1273
  hasFreePage(pageNum?: number): boolean;
1254
1274
  id(): string;
@@ -1427,4 +1447,4 @@ declare class LsdBrowserController implements LsdBrowserController$1 {
1427
1447
  }
1428
1448
  declare const controller: LsdBrowserController;
1429
1449
 
1430
- export { type AllApiRequestContext, type AllBrowser, type AllBrowserContext, type AllFrame, type AllPage, type AllResponse, type BrowserControllerType, type BrowserCreationMethod, type BrowserLaunchMethod, type BrowserManager, 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 };
1450
+ export { type AllApiRequestContext, type AllBrowser, type AllBrowserContext, type AllFrame, type AllPage, type AllResponse, type BrowserContextRequirements, type BrowserControllerType, type BrowserCreationMethod, type BrowserLaunchMethod, type BrowserManager, 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
@@ -1308,6 +1308,13 @@ var PlaywrightBrowserContext = class extends EventEmitter2 {
1308
1308
  return false;
1309
1309
  }
1310
1310
  }
1311
+ doesMeetBrowserContextRequirements(browserContextRequirements) {
1312
+ if (!this.#lsdBrowser.doesMeetBrowserContextRequirements(browserContextRequirements)) {
1313
+ return false;
1314
+ }
1315
+ const { incognitos } = browserContextRequirements;
1316
+ return incognitos.length === 0 || incognitos.includes(this.#incognito);
1317
+ }
1311
1318
  async getPage(always = false) {
1312
1319
  if (!this.#browserContext) {
1313
1320
  throw new Error("Invalid browserContext");
@@ -1559,6 +1566,10 @@ var PlaywrightBrowser = class extends EventEmitter3 {
1559
1566
  browserType() {
1560
1567
  return this.#browserType;
1561
1568
  }
1569
+ doesMeetBrowserContextRequirements(browserContextRequirements) {
1570
+ const { browserControllerTypes, browserTypes, headlesses } = browserContextRequirements;
1571
+ return (browserControllerTypes.length === 0 || browserControllerTypes.includes(this.#browserControllerType)) && (browserTypes.length === 0 && browserTypes.includes(this.#browserType)) && (headlesses.length === 0 && headlesses.includes(this.#headless));
1572
+ }
1562
1573
  executablePath() {
1563
1574
  return this.#executablePath;
1564
1575
  }
@@ -2829,6 +2840,13 @@ var PuppeteerBrowserContext = class extends EventEmitter5 {
2829
2840
  return false;
2830
2841
  }
2831
2842
  }
2843
+ doesMeetBrowserContextRequirements(browserContextRequirements) {
2844
+ if (!this.#lsdBrowser.doesMeetBrowserContextRequirements(browserContextRequirements)) {
2845
+ return false;
2846
+ }
2847
+ const { incognitos } = browserContextRequirements;
2848
+ return incognitos.length === 0 || incognitos.includes(this.#incognito);
2849
+ }
2832
2850
  async getPage(always = false) {
2833
2851
  if (!this.#browserContext) {
2834
2852
  throw new Error("Invalid browserContext");
@@ -3078,6 +3096,10 @@ var PuppeteerBrowser = class extends EventEmitter6 {
3078
3096
  browserType() {
3079
3097
  return this.#browserType;
3080
3098
  }
3099
+ doesMeetBrowserContextRequirements(browserContextRequirements) {
3100
+ const { browserControllerTypes, browserTypes, headlesses } = browserContextRequirements;
3101
+ return (browserControllerTypes.length === 0 || browserControllerTypes.includes(this.#browserControllerType)) && (browserTypes.length === 0 && browserTypes.includes(this.#browserType)) && (headlesses.length === 0 && headlesses.includes(this.#headless));
3102
+ }
3081
3103
  executablePath() {
3082
3104
  return this.#executablePath;
3083
3105
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letsscrapedata/controller",
3
- "version": "0.0.38",
3
+ "version": "0.0.39",
4
4
  "description": "Unified browser / HTML controller interfaces that support playwright, puppeteer and cheerio",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",