@browserless.io/browserless 2.14.0 → 2.16.0-beta-1

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +5 -2
  2. package/README.md +7 -6
  3. package/build/browserless.d.ts +0 -2
  4. package/build/browsers/browsers.cdp.d.ts +1 -6
  5. package/build/browsers/browsers.cdp.js +12 -10
  6. package/build/browsers/browsers.playwright.d.ts +33 -37
  7. package/build/browsers/index.d.ts +1 -2
  8. package/build/browsers/index.js +1 -1
  9. package/build/config.d.ts +0 -2
  10. package/build/file-system.d.ts +0 -2
  11. package/build/hooks.d.ts +0 -1
  12. package/build/http.d.ts +0 -1
  13. package/build/limiter.d.ts +5 -0
  14. package/build/limiter.js +3 -0
  15. package/build/limiter.spec.js +20 -1
  16. package/build/metrics.d.ts +0 -1
  17. package/build/monitoring.d.ts +0 -1
  18. package/build/router.d.ts +0 -3
  19. package/build/routes/chrome/http/content.post.body.json +16 -9
  20. package/build/routes/chrome/http/pdf.post.body.json +16 -9
  21. package/build/routes/chrome/http/scrape.post.body.json +16 -9
  22. package/build/routes/chrome/http/screenshot.post.body.json +16 -9
  23. package/build/routes/chromium/http/content.post.body.json +16 -9
  24. package/build/routes/chromium/http/pdf.post.body.json +16 -9
  25. package/build/routes/chromium/http/scrape.post.body.json +16 -9
  26. package/build/routes/chromium/http/screenshot.post.body.json +16 -9
  27. package/build/routes/firefox/ws/playwright.d.ts +0 -2
  28. package/build/routes/management/http/active.get.d.ts +0 -1
  29. package/build/routes/management/http/config.get.d.ts +0 -1
  30. package/build/routes/management/http/metrics-total.get.d.ts +0 -1
  31. package/build/routes/management/http/metrics.get.d.ts +0 -1
  32. package/build/routes/management/http/pressure.get.d.ts +0 -1
  33. package/build/routes/management/http/sessions.get.d.ts +0 -1
  34. package/build/routes/management/http/static.get.d.ts +0 -1
  35. package/build/routes/webkit/ws/playwright.d.ts +0 -2
  36. package/build/server.d.ts +0 -4
  37. package/build/shared/browser.ws.d.ts +0 -2
  38. package/build/shared/chromium.playwright.ws.d.ts +0 -2
  39. package/build/shared/chromium.ws.d.ts +0 -2
  40. package/build/shared/content.http.d.ts +0 -1
  41. package/build/shared/download.http.d.ts +0 -1
  42. package/build/shared/function.http.d.ts +0 -1
  43. package/build/shared/page.ws.d.ts +0 -2
  44. package/build/shared/pdf.http.d.ts +0 -1
  45. package/build/shared/performance.http.d.ts +0 -1
  46. package/build/shared/scrape.http.d.ts +0 -1
  47. package/build/shared/screenshot.http.d.ts +0 -1
  48. package/build/token.d.ts +0 -1
  49. package/build/types.d.ts +0 -3
  50. package/build/utils.d.ts +1 -3
  51. package/build/utils.js +5 -1
  52. package/build/webhooks.d.ts +0 -1
  53. package/package.json +17 -17
  54. package/scripts/build-schemas.js +7 -3
  55. package/src/browsers/browsers.cdp.ts +25 -18
  56. package/src/browsers/browsers.playwright.ts +12 -5
  57. package/src/browsers/index.ts +1 -1
  58. package/src/limiter.spec.ts +28 -1
  59. package/src/limiter.ts +8 -0
  60. package/src/utils.ts +8 -2
  61. package/static/docs/swagger.json +74 -18
  62. package/static/docs/swagger.min.json +73 -17
  63. package/static/function/client.js +229 -94
  64. package/static/function/index.html +229 -94
@@ -109,7 +109,14 @@
109
109
  "type": "string"
110
110
  },
111
111
  "viewport": {
112
- "$ref": "#/definitions/Viewport"
112
+ "anyOf": [
113
+ {
114
+ "$ref": "#/definitions/Viewport"
115
+ },
116
+ {
117
+ "type": "null"
118
+ }
119
+ ]
113
120
  },
114
121
  "waitForEvent": {
115
122
  "type": "object",
@@ -401,14 +408,14 @@
401
408
  "length": {
402
409
  "type": "number"
403
410
  },
404
- "__@toStringTag@143233": {
411
+ "__@toStringTag@132742": {
405
412
  "type": "string",
406
413
  "const": "Uint8Array"
407
414
  }
408
415
  },
409
416
  "required": [
410
417
  "BYTES_PER_ELEMENT",
411
- "__@toStringTag@143233",
418
+ "__@toStringTag@132742",
412
419
  "buffer",
413
420
  "byteLength",
414
421
  "byteOffset",
@@ -443,13 +450,13 @@
443
450
  "byteLength": {
444
451
  "type": "number"
445
452
  },
446
- "__@toStringTag@143233": {
453
+ "__@toStringTag@132742": {
447
454
  "type": "string"
448
455
  }
449
456
  },
450
457
  "additionalProperties": false,
451
458
  "required": [
452
- "__@toStringTag@143233",
459
+ "__@toStringTag@132742",
453
460
  "byteLength"
454
461
  ]
455
462
  },
@@ -459,18 +466,18 @@
459
466
  "byteLength": {
460
467
  "type": "number"
461
468
  },
462
- "__@species@143334": {
469
+ "__@species@132843": {
463
470
  "$ref": "#/definitions/SharedArrayBuffer"
464
471
  },
465
- "__@toStringTag@143233": {
472
+ "__@toStringTag@132742": {
466
473
  "type": "string",
467
474
  "const": "SharedArrayBuffer"
468
475
  }
469
476
  },
470
477
  "additionalProperties": false,
471
478
  "required": [
472
- "__@species@143334",
473
- "__@toStringTag@143233",
479
+ "__@species@132843",
480
+ "__@toStringTag@132742",
474
481
  "byteLength"
475
482
  ]
476
483
  },
@@ -111,7 +111,14 @@
111
111
  "type": "string"
112
112
  },
113
113
  "viewport": {
114
- "$ref": "#/definitions/Viewport"
114
+ "anyOf": [
115
+ {
116
+ "$ref": "#/definitions/Viewport"
117
+ },
118
+ {
119
+ "type": "null"
120
+ }
121
+ ]
115
122
  },
116
123
  "waitForEvent": {
117
124
  "type": "object",
@@ -542,14 +549,14 @@
542
549
  "length": {
543
550
  "type": "number"
544
551
  },
545
- "__@toStringTag@231179": {
552
+ "__@toStringTag@187784": {
546
553
  "type": "string",
547
554
  "const": "Uint8Array"
548
555
  }
549
556
  },
550
557
  "required": [
551
558
  "BYTES_PER_ELEMENT",
552
- "__@toStringTag@231179",
559
+ "__@toStringTag@187784",
553
560
  "buffer",
554
561
  "byteLength",
555
562
  "byteOffset",
@@ -584,13 +591,13 @@
584
591
  "byteLength": {
585
592
  "type": "number"
586
593
  },
587
- "__@toStringTag@231179": {
594
+ "__@toStringTag@187784": {
588
595
  "type": "string"
589
596
  }
590
597
  },
591
598
  "additionalProperties": false,
592
599
  "required": [
593
- "__@toStringTag@231179",
600
+ "__@toStringTag@187784",
594
601
  "byteLength"
595
602
  ]
596
603
  },
@@ -600,18 +607,18 @@
600
607
  "byteLength": {
601
608
  "type": "number"
602
609
  },
603
- "__@species@231280": {
610
+ "__@species@187885": {
604
611
  "$ref": "#/definitions/SharedArrayBuffer"
605
612
  },
606
- "__@toStringTag@231179": {
613
+ "__@toStringTag@187784": {
607
614
  "type": "string",
608
615
  "const": "SharedArrayBuffer"
609
616
  }
610
617
  },
611
618
  "additionalProperties": false,
612
619
  "required": [
613
- "__@species@231280",
614
- "__@toStringTag@231179",
620
+ "__@species@187885",
621
+ "__@toStringTag@187784",
615
622
  "byteLength"
616
623
  ]
617
624
  },
@@ -117,7 +117,14 @@
117
117
  "type": "string"
118
118
  },
119
119
  "viewport": {
120
- "$ref": "#/definitions/Viewport"
120
+ "anyOf": [
121
+ {
122
+ "$ref": "#/definitions/Viewport"
123
+ },
124
+ {
125
+ "type": "null"
126
+ }
127
+ ]
121
128
  },
122
129
  "waitForEvent": {
123
130
  "type": "object",
@@ -448,14 +455,14 @@
448
455
  "length": {
449
456
  "type": "number"
450
457
  },
451
- "__@toStringTag@198042": {
458
+ "__@toStringTag@231869": {
452
459
  "type": "string",
453
460
  "const": "Uint8Array"
454
461
  }
455
462
  },
456
463
  "required": [
457
464
  "BYTES_PER_ELEMENT",
458
- "__@toStringTag@198042",
465
+ "__@toStringTag@231869",
459
466
  "buffer",
460
467
  "byteLength",
461
468
  "byteOffset",
@@ -490,13 +497,13 @@
490
497
  "byteLength": {
491
498
  "type": "number"
492
499
  },
493
- "__@toStringTag@198042": {
500
+ "__@toStringTag@231869": {
494
501
  "type": "string"
495
502
  }
496
503
  },
497
504
  "additionalProperties": false,
498
505
  "required": [
499
- "__@toStringTag@198042",
506
+ "__@toStringTag@231869",
500
507
  "byteLength"
501
508
  ]
502
509
  },
@@ -506,18 +513,18 @@
506
513
  "byteLength": {
507
514
  "type": "number"
508
515
  },
509
- "__@species@198143": {
516
+ "__@species@231970": {
510
517
  "$ref": "#/definitions/SharedArrayBuffer"
511
518
  },
512
- "__@toStringTag@198042": {
519
+ "__@toStringTag@231869": {
513
520
  "type": "string",
514
521
  "const": "SharedArrayBuffer"
515
522
  }
516
523
  },
517
524
  "additionalProperties": false,
518
525
  "required": [
519
- "__@species@198143",
520
- "__@toStringTag@198042",
526
+ "__@species@231970",
527
+ "__@toStringTag@231869",
521
528
  "byteLength"
522
529
  ]
523
530
  },
@@ -117,7 +117,14 @@
117
117
  "type": "string"
118
118
  },
119
119
  "viewport": {
120
- "$ref": "#/definitions/Viewport"
120
+ "anyOf": [
121
+ {
122
+ "$ref": "#/definitions/Viewport"
123
+ },
124
+ {
125
+ "type": "null"
126
+ }
127
+ ]
121
128
  },
122
129
  "waitForEvent": {
123
130
  "type": "object",
@@ -491,14 +498,14 @@
491
498
  "length": {
492
499
  "type": "number"
493
500
  },
494
- "__@toStringTag@242378": {
501
+ "__@toStringTag@243170": {
495
502
  "type": "string",
496
503
  "const": "Uint8Array"
497
504
  }
498
505
  },
499
506
  "required": [
500
507
  "BYTES_PER_ELEMENT",
501
- "__@toStringTag@242378",
508
+ "__@toStringTag@243170",
502
509
  "buffer",
503
510
  "byteLength",
504
511
  "byteOffset",
@@ -533,13 +540,13 @@
533
540
  "byteLength": {
534
541
  "type": "number"
535
542
  },
536
- "__@toStringTag@242378": {
543
+ "__@toStringTag@243170": {
537
544
  "type": "string"
538
545
  }
539
546
  },
540
547
  "additionalProperties": false,
541
548
  "required": [
542
- "__@toStringTag@242378",
549
+ "__@toStringTag@243170",
543
550
  "byteLength"
544
551
  ]
545
552
  },
@@ -549,18 +556,18 @@
549
556
  "byteLength": {
550
557
  "type": "number"
551
558
  },
552
- "__@species@242479": {
559
+ "__@species@243271": {
553
560
  "$ref": "#/definitions/SharedArrayBuffer"
554
561
  },
555
- "__@toStringTag@242378": {
562
+ "__@toStringTag@243170": {
556
563
  "type": "string",
557
564
  "const": "SharedArrayBuffer"
558
565
  }
559
566
  },
560
567
  "additionalProperties": false,
561
568
  "required": [
562
- "__@species@242479",
563
- "__@toStringTag@242378",
569
+ "__@species@243271",
570
+ "__@toStringTag@243170",
564
571
  "byteLength"
565
572
  ]
566
573
  },
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { APITags, BrowserServerOptions, BrowserWebsocketRoute, FirefoxPlaywright, Logger, Request, SystemQueryParameters, WebsocketRoutes } from '@browserless.io/browserless';
4
2
  import { Duplex } from 'stream';
5
3
  export interface QuerySchema extends SystemQueryParameters {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, HTTPManagementRoutes, HTTPRoute, Methods, Request, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  export default class ActiveGetRoute extends HTTPRoute {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, HTTPManagementRoutes, HTTPRoute, Methods, Request, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  export interface ResponseSchema {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, HTTPManagementRoutes, HTTPRoute, IBrowserlessMetricTotals, Methods, Request, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  export type ResponseSchema = IBrowserlessMetricTotals;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, HTTPManagementRoutes, HTTPRoute, IBrowserlessStats, Methods, Request, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  export type ResponseSchema = Array<IBrowserlessStats>;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, HTTPManagementRoutes, HTTPRoute, Methods, Request, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  export type ResponseSchema = {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, BrowserlessSessionJSON, HTTPManagementRoutes, HTTPRoute, Methods, Request, SystemQueryParameters, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  export interface QuerySchema extends SystemQueryParameters {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, HTTPManagementRoutes, HTTPRoute, Logger, Methods, Request, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  export default class StaticGetRoute extends HTTPRoute {
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { APITags, BrowserServerOptions, BrowserWebsocketRoute, Logger, Request, SystemQueryParameters, WebKitPlaywright, WebsocketRoutes } from '@browserless.io/browserless';
4
2
  import { Duplex } from 'stream';
5
3
  export interface QuerySchema extends SystemQueryParameters {
package/build/server.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
- /// <reference types="node" />
5
1
  import * as http from 'http';
6
2
  import * as stream from 'stream';
7
3
  import { Logger as BlessLogger, Config, Hooks, Metrics, Request, Response, Router, Token } from '@browserless.io/browserless';
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { APITags, BrowserWebsocketRoute, CDPLaunchOptions, ChromiumCDP, Logger, Request, SystemQueryParameters, WebsocketRoutes } from '@browserless.io/browserless';
4
2
  import { Duplex } from 'stream';
5
3
  export interface QuerySchema extends SystemQueryParameters {
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { APITags, BrowserServerOptions, BrowserWebsocketRoute, ChromiumPlaywright, Logger, Request, SystemQueryParameters, WebsocketRoutes } from '@browserless.io/browserless';
4
2
  import { Duplex } from 'stream';
5
3
  export interface QuerySchema extends SystemQueryParameters {
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { APITags, BrowserWebsocketRoute, CDPLaunchOptions, ChromiumCDP, Logger, Request, SystemQueryParameters, WebsocketRoutes } from '@browserless.io/browserless';
4
2
  import { Duplex } from 'stream';
5
3
  export interface QuerySchema extends SystemQueryParameters {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, BrowserHTTPRoute, BrowserInstance, CDPLaunchOptions, ChromiumCDP, HTTPRoutes, Logger, Methods, Request, SystemQueryParameters, WaitForEventOptions, WaitForFunctionOptions, WaitForSelectorOptions, bestAttempt, contentTypes, rejectRequestPattern, rejectResourceTypes, requestInterceptors, setJavaScriptEnabled } from '@browserless.io/browserless';
3
2
  import { Page } from 'puppeteer-core';
4
3
  import { ServerResponse } from 'http';
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, BrowserHTTPRoute, BrowserInstance, CDPLaunchOptions, ChromiumCDP, HTTPRoutes, Logger, Methods, Request, SystemQueryParameters, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  interface JSONSchema {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, BrowserHTTPRoute, BrowserInstance, CDPLaunchOptions, ChromiumCDP, HTTPRoutes, Logger, Methods, Request, SystemQueryParameters, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  interface JSONSchema {
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { APITags, BrowserWebsocketRoute, CDPLaunchOptions, ChromiumCDP, Logger, Request, SystemQueryParameters, WebsocketRoutes } from '@browserless.io/browserless';
4
2
  import { Duplex } from 'stream';
5
3
  export interface QuerySchema extends SystemQueryParameters {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, BrowserHTTPRoute, BrowserInstance, CDPLaunchOptions, ChromiumCDP, HTTPRoutes, Logger, Methods, Request, SystemQueryParameters, WaitForEventOptions, WaitForFunctionOptions, WaitForSelectorOptions, bestAttempt, contentTypes, rejectRequestPattern, rejectResourceTypes, requestInterceptors } from '@browserless.io/browserless';
3
2
  import { Page } from 'puppeteer-core';
4
3
  import { ServerResponse } from 'http';
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, BrowserHTTPRoute, BrowserInstance, CDPLaunchOptions, ChromiumCDP, HTTPRoutes, Logger, Methods, Request, SystemQueryParameters, contentTypes } from '@browserless.io/browserless';
3
2
  import { ServerResponse } from 'http';
4
3
  export interface BodySchema {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, BrowserHTTPRoute, BrowserInstance, CDPLaunchOptions, ChromiumCDP, HTTPRoutes, InBoundRequest, Logger, Methods, OutBoundRequest, Request, ScrapeDebugOptions, ScrapeElementSelector, SystemQueryParameters, WaitForEventOptions, WaitForFunctionOptions, WaitForSelectorOptions, bestAttempt, contentTypes, rejectRequestPattern, rejectResourceTypes, requestInterceptors } from '@browserless.io/browserless';
3
2
  import { Cookie, Page } from 'puppeteer-core';
4
3
  import { ServerResponse } from 'http';
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { APITags, BrowserHTTPRoute, BrowserInstance, CDPLaunchOptions, ChromiumCDP, HTTPRoutes, Logger, Methods, Request, SystemQueryParameters, WaitForEventOptions, WaitForFunctionOptions, WaitForSelectorOptions, bestAttempt, contentTypes, rejectRequestPattern, rejectResourceTypes, requestInterceptors } from '@browserless.io/browserless';
3
2
  import { Page } from 'puppeteer-core';
4
3
  import { ServerResponse } from 'http';
package/build/token.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { BrowserHTTPRoute, BrowserWebsocketRoute, Config, HTTPRoute, Request, WebSocketRoute } from '@browserless.io/browserless';
3
2
  import { EventEmitter } from 'events';
4
3
  export declare class Token extends EventEmitter {
package/build/types.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
1
  import * as http from 'http';
5
2
  import * as stream from 'stream';
6
3
  import { APITags, Browserless, ChromiumCDP, ChromiumPlaywright, Config, FirefoxPlaywright, HTTPManagementRoutes, HTTPRoutes, Logger, Methods, Metrics, Request, WebKitPlaywright, WebsocketRoutes, contentTypes } from '@browserless.io/browserless';
package/build/utils.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
1
  import { ChromiumCDP, ChromiumPlaywright, Config, FirefoxPlaywright, Request, WaitForEventOptions, WaitForFunctionOptions, WebKitPlaywright, codes, contentTypes } from '@browserless.io/browserless';
5
2
  import { CDPSession } from 'playwright-core';
6
3
  import { Duplex } from 'stream';
@@ -131,4 +128,5 @@ export declare const fetchTimeout: (input: RequestInfo | URL, initWithTimeout?:
131
128
  export declare const untildify: (path: string) => string;
132
129
  export declare const printLogo: (docsLink: string, debugURL?: string | boolean) => string;
133
130
  export declare const getCDPClient: (page: Page) => CDPSession;
131
+ export declare const ublockPath: string;
134
132
  export {};
package/build/utils.js CHANGED
@@ -3,12 +3,14 @@ import { BLESS_PAGE_IDENTIFIER, ChromeCDP, ChromePlaywright, ChromiumCDP, Chromi
3
3
  import playwright from 'playwright-core';
4
4
  import crypto from 'crypto';
5
5
  import debug from 'debug';
6
+ import { fileURLToPath } from 'url';
6
7
  import gradient from 'gradient-string';
7
8
  import { homedir } from 'os';
8
9
  import path from 'path';
9
10
  const isHTTP = (writeable) => {
10
11
  return writeable.writeHead !== undefined;
11
12
  };
13
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
12
14
  const getAuthHeaderToken = (header) => {
13
15
  if (header.startsWith('Basic')) {
14
16
  const username = header.split(/\s+/).pop() || '';
@@ -332,7 +334,8 @@ export const availableBrowsers = Promise.all([
332
334
  return availableBrowsers;
333
335
  });
334
336
  export const queryParamsToObject = (params) => [...params.entries()].reduce((accum, [key, value]) => {
335
- accum[key] = value;
337
+ accum[key] =
338
+ value === '' || value === undefined || value === null ? true : value;
336
339
  return accum;
337
340
  }, {});
338
341
  // eslint-disable-next-line @typescript-eslint/no-empty-function
@@ -609,3 +612,4 @@ export const getCDPClient = (page) => {
609
612
  const c = page._client;
610
613
  return typeof c === 'function' ? c.call(page) : c;
611
614
  };
615
+ export const ublockPath = path.join(__dirname, '..', 'extensions', 'ublock');
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Config } from '@browserless.io/browserless';
3
2
  import { EventEmitter } from 'events';
4
3
  export declare class WebHooks extends EventEmitter {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@browserless.io/browserless",
3
- "version": "2.14.0",
3
+ "version": "2.16.0-beta-1",
4
4
  "license": "SSPL",
5
5
  "description": "The browserless platform",
6
6
  "author": "browserless.io",
@@ -51,18 +51,18 @@
51
51
  "debug": "^4.3.5",
52
52
  "del": "^7.0.0",
53
53
  "enjoi": "^9.0.1",
54
- "file-type": "^19.0.0",
54
+ "file-type": "^19.1.0",
55
55
  "get-port": "^7.1.0",
56
56
  "gradient-string": "^2.0.0",
57
57
  "http-proxy": "^1.18.1",
58
58
  "lighthouse": "^12.1.0",
59
59
  "micromatch": "^4.0.7",
60
- "playwright-1.40": "npm:playwright-core@1.40.1",
61
60
  "playwright-1.41": "npm:playwright-core@1.41.2",
62
61
  "playwright-1.42": "npm:playwright-core@1.42.1",
63
62
  "playwright-1.43": "npm:playwright-core@1.43.1",
64
- "playwright-core": "^1.44.1",
65
- "puppeteer-core": "^22.11.2",
63
+ "playwright-1.44": "npm:playwright-core@1.44.1",
64
+ "playwright-core": "^1.45.1",
65
+ "puppeteer-core": "^22.12.1",
66
66
  "puppeteer-extra": "^3.3.6",
67
67
  "puppeteer-extra-plugin-stealth": "^2.11.2",
68
68
  "queue": "^7.0.0",
@@ -74,38 +74,38 @@
74
74
  "@types/debug": "^4.1.12",
75
75
  "@types/gradient-string": "^1.1.6",
76
76
  "@types/http-proxy": "^1.17.14",
77
- "@types/micromatch": "^4.0.7",
78
- "@types/mocha": "^10.0.6",
79
- "@types/node": "^20.14.5",
77
+ "@types/micromatch": "^4.0.9",
78
+ "@types/mocha": "^10.0.7",
79
+ "@types/node": "^20.14.10",
80
80
  "@types/sinon": "^17.0.3",
81
- "@typescript-eslint/eslint-plugin": "^7.13.1",
82
- "@typescript-eslint/parser": "^7.13.1",
81
+ "@typescript-eslint/eslint-plugin": "^7.15.0",
82
+ "@typescript-eslint/parser": "^7.16.0",
83
83
  "assert": "^2.0.0",
84
84
  "chai": "^5.1.1",
85
85
  "cross-env": "^7.0.3",
86
86
  "env-cmd": "^10.1.0",
87
- "esbuild": "^0.21.5",
87
+ "esbuild": "^0.23.0",
88
88
  "esbuild-plugin-polyfill-node": "^0.3.0",
89
89
  "eslint": "^8.57.0",
90
90
  "eslint-plugin-typescript-sort-keys": "^3.2.0",
91
91
  "extract-zip": "^2.0.1",
92
92
  "gunzip-maybe": "^1.4.2",
93
- "marked": "^13.0.0",
94
- "mocha": "^10.4.0",
93
+ "marked": "^13.0.2",
94
+ "mocha": "^10.6.0",
95
95
  "move-file": "^3.1.0",
96
96
  "prettier": "^3.3.2",
97
97
  "sinon": "^18.0.0",
98
98
  "ts-node": "^10.9.2",
99
- "typescript": "^5.4.5",
99
+ "typescript": "^5.5.3",
100
100
  "typescript-json-schema": "^0.64.0"
101
101
  },
102
102
  "playwrightVersions": {
103
103
  "default": "playwright-core",
104
- "1.44": "playwright-core",
104
+ "1.45": "playwright-core",
105
+ "1.44": "playwright-1.44",
105
106
  "1.43": "playwright-1.43",
106
107
  "1.42": "playwright-1.42",
107
- "1.41": "playwright-1.41",
108
- "1.40": "playwright-1.40"
108
+ "1.41": "playwright-1.41"
109
109
  },
110
110
  "eslintConfig": {
111
111
  "root": true,
@@ -12,7 +12,7 @@ const moduleMain = path.normalize(import.meta.url).endsWith(process.argv[1]);
12
12
 
13
13
  /**
14
14
  * Find an exported interface in a TypeScript AST
15
- *
15
+ *
16
16
  * @param {ts.Node} node The node to search for the exported interface
17
17
  * @param {string} interfaceName The name of the interface to search for
18
18
  * @returns {ts.InterfaceDeclaration | ts.Identifier | null}
@@ -29,7 +29,11 @@ const findExportedInterface = (node, interfaceName) => {
29
29
  }
30
30
 
31
31
  // Check for re-exported interfaces
32
- if (ts.isExportDeclaration(node) && node.exportClause && ts.isNamedExports(node.exportClause)) {
32
+ if (
33
+ ts.isExportDeclaration(node) &&
34
+ node.exportClause &&
35
+ ts.isNamedExports(node.exportClause)
36
+ ) {
33
37
  const elements = node.exportClause.elements;
34
38
  for (const element of elements) {
35
39
  if (element.name.text === interfaceName) {
@@ -50,7 +54,7 @@ const findExportedInterface = (node, interfaceName) => {
50
54
 
51
55
  /**
52
56
  * Creates an standard JSON schema file for each route (see https://json-schema.org/specification)
53
- *
57
+ *
54
58
  * @param {string[]} externalHTTPRoutes Additional HTTP routes to parse
55
59
  * @param {string[]} externalWebSocketRoutes Additional WS routes to parse
56
60
  */