@browserless.io/browserless 2.2.0 → 2.3.0-beta-2

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 (159) hide show
  1. package/README.md +2 -2
  2. package/bin/browserless.js +67 -27
  3. package/bin/scaffold/README.md +50 -0
  4. package/bin/scaffold/src/hello-world.http.ts +2 -1
  5. package/build/browserless.d.ts +3 -0
  6. package/build/browserless.js +43 -19
  7. package/build/browsers/chrome.cdp.js +1 -1
  8. package/build/browsers/chrome.playwright.js +1 -1
  9. package/build/browsers/index.d.ts +1 -0
  10. package/build/browsers/index.js +4 -1
  11. package/build/data/classes.json +1 -1
  12. package/build/data/selectors.json +1 -1
  13. package/build/exports.js +1 -2
  14. package/build/limiter.d.ts +2 -1
  15. package/build/limiter.js +6 -3
  16. package/build/routes/chrome/http/content.post.body.json +8 -8
  17. package/build/routes/chrome/http/content.post.d.ts +2 -1
  18. package/build/routes/chrome/http/content.post.js +3 -2
  19. package/build/routes/chrome/http/download.post.d.ts +2 -1
  20. package/build/routes/chrome/http/download.post.js +3 -2
  21. package/build/routes/chrome/http/function.post.d.ts +2 -1
  22. package/build/routes/chrome/http/function.post.js +3 -2
  23. package/build/routes/chrome/http/json-list.get.d.ts +5 -1
  24. package/build/routes/chrome/http/json-list.get.js +5 -1
  25. package/build/routes/chrome/http/json-new.put.d.ts +5 -1
  26. package/build/routes/chrome/http/json-new.put.js +5 -1
  27. package/build/routes/chrome/http/json-protocol.get.d.ts +5 -1
  28. package/build/routes/chrome/http/json-protocol.get.js +5 -1
  29. package/build/routes/chrome/http/json-version.get.d.ts +5 -1
  30. package/build/routes/chrome/http/json-version.get.js +5 -1
  31. package/build/routes/chrome/http/pdf.post.body.json +8 -8
  32. package/build/routes/chrome/http/pdf.post.d.ts +2 -1
  33. package/build/routes/chrome/http/pdf.post.js +3 -2
  34. package/build/routes/chrome/http/performance.post.d.ts +2 -1
  35. package/build/routes/chrome/http/performance.post.js +3 -2
  36. package/build/routes/chrome/http/scrape.post.body.json +8 -8
  37. package/build/routes/chrome/http/scrape.post.d.ts +2 -1
  38. package/build/routes/chrome/http/scrape.post.js +3 -2
  39. package/build/routes/chrome/http/screenshot.post.body.json +8 -8
  40. package/build/routes/chrome/http/screenshot.post.d.ts +2 -1
  41. package/build/routes/chrome/http/screenshot.post.js +3 -2
  42. package/build/routes/chrome/ws/browser.d.ts +2 -1
  43. package/build/routes/chrome/ws/browser.js +3 -2
  44. package/build/routes/chrome/ws/cdp.d.ts +2 -1
  45. package/build/routes/chrome/ws/cdp.js +3 -2
  46. package/build/routes/chrome/ws/page.d.ts +3 -2
  47. package/build/routes/chrome/ws/page.js +3 -2
  48. package/build/routes/chrome/ws/playwright.d.ts +1 -0
  49. package/build/routes/chrome/ws/playwright.js +2 -1
  50. package/build/routes/chromium/http/content.post.body.json +8 -8
  51. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  52. package/build/routes/chromium/http/scrape.post.body.json +8 -8
  53. package/build/routes/chromium/http/screenshot.post.body.json +8 -8
  54. package/build/routes/firefox/ws/playwright.d.ts +7 -2
  55. package/build/routes/firefox/ws/playwright.js +3 -2
  56. package/build/routes/firefox/ws/playwright.query.json +29 -31
  57. package/build/routes/management/http/config.get.d.ts +1 -0
  58. package/build/routes/management/http/config.get.js +2 -1
  59. package/build/routes/management/http/metrics-total.get.d.ts +1 -0
  60. package/build/routes/management/http/metrics-total.get.js +2 -1
  61. package/build/routes/management/http/metrics.get.d.ts +1 -0
  62. package/build/routes/management/http/metrics.get.js +2 -1
  63. package/build/routes/management/http/sessions.get.d.ts +1 -0
  64. package/build/routes/management/http/sessions.get.js +2 -1
  65. package/build/routes/management/http/static.get.d.ts +1 -0
  66. package/build/routes/management/http/static.get.js +8 -7
  67. package/build/routes/webkit/ws/playwright.d.ts +2 -1
  68. package/build/routes/webkit/ws/playwright.js +3 -2
  69. package/build/shared/browser.ws.d.ts +2 -1
  70. package/build/shared/browser.ws.js +3 -2
  71. package/build/shared/chromium.playwright.ws.d.ts +2 -1
  72. package/build/shared/chromium.playwright.ws.js +3 -2
  73. package/build/shared/chromium.ws.d.ts +2 -1
  74. package/build/shared/chromium.ws.js +3 -2
  75. package/build/shared/content.http.d.ts +2 -1
  76. package/build/shared/content.http.js +3 -2
  77. package/build/shared/download.http.d.ts +2 -1
  78. package/build/shared/download.http.js +3 -2
  79. package/build/shared/function.http.d.ts +2 -1
  80. package/build/shared/function.http.js +3 -2
  81. package/build/shared/json-list.http.d.ts +2 -1
  82. package/build/shared/json-list.http.js +3 -2
  83. package/build/shared/json-new.http.d.ts +2 -1
  84. package/build/shared/json-new.http.js +3 -2
  85. package/build/shared/json-protocol.http.d.ts +2 -1
  86. package/build/shared/json-protocol.http.js +3 -2
  87. package/build/shared/json-version.http.d.ts +2 -1
  88. package/build/shared/json-version.http.js +3 -2
  89. package/build/shared/page.ws.d.ts +2 -1
  90. package/build/shared/page.ws.js +3 -2
  91. package/build/shared/pdf.http.d.ts +2 -1
  92. package/build/shared/pdf.http.js +3 -2
  93. package/build/shared/performance.http.d.ts +1 -0
  94. package/build/shared/performance.http.js +2 -1
  95. package/build/shared/scrape.http.d.ts +2 -1
  96. package/build/shared/scrape.http.js +3 -2
  97. package/build/shared/screenshot.http.d.ts +1 -0
  98. package/build/shared/screenshot.http.js +2 -1
  99. package/build/shared/utils/performance/main.js +1 -1
  100. package/build/types.d.ts +91 -0
  101. package/build/types.js +54 -0
  102. package/build/utils.d.ts +1 -1
  103. package/build/utils.js +11 -6
  104. package/docker/chromium/Dockerfile +1 -2
  105. package/docker/firefox/Dockerfile +1 -2
  106. package/docker/multi/Dockerfile +2 -4
  107. package/docker/webkit/Dockerfile +1 -2
  108. package/package.json +11 -11
  109. package/scripts/build-open-api.js +142 -124
  110. package/src/browserless.ts +60 -22
  111. package/src/browsers/chrome.cdp.ts +1 -1
  112. package/src/browsers/chrome.playwright.ts +1 -1
  113. package/src/browsers/index.ts +5 -1
  114. package/src/exports.ts +1 -3
  115. package/src/limiter.ts +7 -3
  116. package/src/router.ts +6 -2
  117. package/src/routes/chrome/http/content.post.ts +7 -2
  118. package/src/routes/chrome/http/download.post.ts +7 -2
  119. package/src/routes/chrome/http/function.post.ts +7 -2
  120. package/src/routes/chrome/http/json-list.get.ts +7 -1
  121. package/src/routes/chrome/http/json-new.put.ts +7 -1
  122. package/src/routes/chrome/http/json-protocol.get.ts +7 -1
  123. package/src/routes/chrome/http/json-version.get.ts +7 -1
  124. package/src/routes/chrome/http/pdf.post.ts +7 -2
  125. package/src/routes/chrome/http/performance.post.ts +7 -2
  126. package/src/routes/chrome/http/scrape.post.ts +7 -2
  127. package/src/routes/chrome/http/screenshot.post.ts +7 -2
  128. package/src/routes/chrome/ws/browser.ts +3 -2
  129. package/src/routes/chrome/ws/cdp.ts +7 -2
  130. package/src/routes/chrome/ws/page.ts +3 -2
  131. package/src/routes/chrome/ws/playwright.ts +6 -1
  132. package/src/routes/firefox/ws/playwright.ts +6 -2
  133. package/src/routes/management/http/config.get.ts +2 -0
  134. package/src/routes/management/http/metrics-total.get.ts +2 -0
  135. package/src/routes/management/http/metrics.get.ts +2 -0
  136. package/src/routes/management/http/sessions.get.ts +2 -0
  137. package/src/routes/management/http/static.get.ts +16 -9
  138. package/src/routes/webkit/ws/playwright.ts +3 -1
  139. package/src/shared/browser.ws.ts +3 -1
  140. package/src/shared/chromium.playwright.ws.ts +3 -1
  141. package/src/shared/chromium.ws.ts +3 -1
  142. package/src/shared/content.http.ts +3 -1
  143. package/src/shared/download.http.ts +3 -1
  144. package/src/shared/function.http.ts +3 -1
  145. package/src/shared/json-list.http.ts +3 -1
  146. package/src/shared/json-new.http.ts +3 -1
  147. package/src/shared/json-protocol.http.ts +3 -1
  148. package/src/shared/json-version.http.ts +3 -1
  149. package/src/shared/page.ws.ts +3 -1
  150. package/src/shared/pdf.http.ts +3 -1
  151. package/src/shared/performance.http.ts +2 -0
  152. package/src/shared/scrape.http.ts +3 -1
  153. package/src/shared/screenshot.http.ts +2 -0
  154. package/src/shared/utils/performance/main.ts +1 -2
  155. package/src/types.ts +66 -0
  156. package/src/utils.ts +13 -7
  157. package/static/docs/swagger.json +91 -49
  158. package/static/docs/swagger.min.json +6697 -0
  159. package/static/function/client.js +323 -323
@@ -394,14 +394,14 @@
394
394
  "length": {
395
395
  "type": "number"
396
396
  },
397
- "__@toStringTag@151033": {
397
+ "__@toStringTag@129966": {
398
398
  "type": "string",
399
399
  "const": "Uint8Array"
400
400
  }
401
401
  },
402
402
  "required": [
403
403
  "BYTES_PER_ELEMENT",
404
- "__@toStringTag@151033",
404
+ "__@toStringTag@129966",
405
405
  "buffer",
406
406
  "byteLength",
407
407
  "byteOffset",
@@ -436,13 +436,13 @@
436
436
  "byteLength": {
437
437
  "type": "number"
438
438
  },
439
- "__@toStringTag@151033": {
439
+ "__@toStringTag@129966": {
440
440
  "type": "string"
441
441
  }
442
442
  },
443
443
  "additionalProperties": false,
444
444
  "required": [
445
- "__@toStringTag@151033",
445
+ "__@toStringTag@129966",
446
446
  "byteLength"
447
447
  ]
448
448
  },
@@ -452,18 +452,18 @@
452
452
  "byteLength": {
453
453
  "type": "number"
454
454
  },
455
- "__@species@151134": {
455
+ "__@species@130067": {
456
456
  "$ref": "#/definitions/SharedArrayBuffer"
457
457
  },
458
- "__@toStringTag@151033": {
458
+ "__@toStringTag@129966": {
459
459
  "type": "string",
460
460
  "const": "SharedArrayBuffer"
461
461
  }
462
462
  },
463
463
  "additionalProperties": false,
464
464
  "required": [
465
- "__@species@151134",
466
- "__@toStringTag@151033",
465
+ "__@species@130067",
466
+ "__@toStringTag@129966",
467
467
  "byteLength"
468
468
  ]
469
469
  },
@@ -538,14 +538,14 @@
538
538
  "length": {
539
539
  "type": "number"
540
540
  },
541
- "__@toStringTag@194045": {
541
+ "__@toStringTag@194544": {
542
542
  "type": "string",
543
543
  "const": "Uint8Array"
544
544
  }
545
545
  },
546
546
  "required": [
547
547
  "BYTES_PER_ELEMENT",
548
- "__@toStringTag@194045",
548
+ "__@toStringTag@194544",
549
549
  "buffer",
550
550
  "byteLength",
551
551
  "byteOffset",
@@ -580,13 +580,13 @@
580
580
  "byteLength": {
581
581
  "type": "number"
582
582
  },
583
- "__@toStringTag@194045": {
583
+ "__@toStringTag@194544": {
584
584
  "type": "string"
585
585
  }
586
586
  },
587
587
  "additionalProperties": false,
588
588
  "required": [
589
- "__@toStringTag@194045",
589
+ "__@toStringTag@194544",
590
590
  "byteLength"
591
591
  ]
592
592
  },
@@ -596,18 +596,18 @@
596
596
  "byteLength": {
597
597
  "type": "number"
598
598
  },
599
- "__@species@194146": {
599
+ "__@species@194645": {
600
600
  "$ref": "#/definitions/SharedArrayBuffer"
601
601
  },
602
- "__@toStringTag@194045": {
602
+ "__@toStringTag@194544": {
603
603
  "type": "string",
604
604
  "const": "SharedArrayBuffer"
605
605
  }
606
606
  },
607
607
  "additionalProperties": false,
608
608
  "required": [
609
- "__@species@194146",
610
- "__@toStringTag@194045",
609
+ "__@species@194645",
610
+ "__@toStringTag@194544",
611
611
  "byteLength"
612
612
  ]
613
613
  },
@@ -441,14 +441,14 @@
441
441
  "length": {
442
442
  "type": "number"
443
443
  },
444
- "__@toStringTag@226427": {
444
+ "__@toStringTag@227008": {
445
445
  "type": "string",
446
446
  "const": "Uint8Array"
447
447
  }
448
448
  },
449
449
  "required": [
450
450
  "BYTES_PER_ELEMENT",
451
- "__@toStringTag@226427",
451
+ "__@toStringTag@227008",
452
452
  "buffer",
453
453
  "byteLength",
454
454
  "byteOffset",
@@ -483,13 +483,13 @@
483
483
  "byteLength": {
484
484
  "type": "number"
485
485
  },
486
- "__@toStringTag@226427": {
486
+ "__@toStringTag@227008": {
487
487
  "type": "string"
488
488
  }
489
489
  },
490
490
  "additionalProperties": false,
491
491
  "required": [
492
- "__@toStringTag@226427",
492
+ "__@toStringTag@227008",
493
493
  "byteLength"
494
494
  ]
495
495
  },
@@ -499,18 +499,18 @@
499
499
  "byteLength": {
500
500
  "type": "number"
501
501
  },
502
- "__@species@226528": {
502
+ "__@species@227109": {
503
503
  "$ref": "#/definitions/SharedArrayBuffer"
504
504
  },
505
- "__@toStringTag@226427": {
505
+ "__@toStringTag@227008": {
506
506
  "type": "string",
507
507
  "const": "SharedArrayBuffer"
508
508
  }
509
509
  },
510
510
  "additionalProperties": false,
511
511
  "required": [
512
- "__@species@226528",
513
- "__@toStringTag@226427",
512
+ "__@species@227109",
513
+ "__@toStringTag@227008",
514
514
  "byteLength"
515
515
  ]
516
516
  },
@@ -484,14 +484,14 @@
484
484
  "length": {
485
485
  "type": "number"
486
486
  },
487
- "__@toStringTag@258837": {
487
+ "__@toStringTag@238079": {
488
488
  "type": "string",
489
489
  "const": "Uint8Array"
490
490
  }
491
491
  },
492
492
  "required": [
493
493
  "BYTES_PER_ELEMENT",
494
- "__@toStringTag@258837",
494
+ "__@toStringTag@238079",
495
495
  "buffer",
496
496
  "byteLength",
497
497
  "byteOffset",
@@ -526,13 +526,13 @@
526
526
  "byteLength": {
527
527
  "type": "number"
528
528
  },
529
- "__@toStringTag@258837": {
529
+ "__@toStringTag@238079": {
530
530
  "type": "string"
531
531
  }
532
532
  },
533
533
  "additionalProperties": false,
534
534
  "required": [
535
- "__@toStringTag@258837",
535
+ "__@toStringTag@238079",
536
536
  "byteLength"
537
537
  ]
538
538
  },
@@ -542,18 +542,18 @@
542
542
  "byteLength": {
543
543
  "type": "number"
544
544
  },
545
- "__@species@258938": {
545
+ "__@species@238180": {
546
546
  "$ref": "#/definitions/SharedArrayBuffer"
547
547
  },
548
- "__@toStringTag@258837": {
548
+ "__@toStringTag@238079": {
549
549
  "type": "string",
550
550
  "const": "SharedArrayBuffer"
551
551
  }
552
552
  },
553
553
  "additionalProperties": false,
554
554
  "required": [
555
- "__@species@258938",
556
- "__@toStringTag@258837",
555
+ "__@species@238180",
556
+ "__@toStringTag@238079",
557
557
  "byteLength"
558
558
  ]
559
559
  },
@@ -3,9 +3,14 @@
3
3
  import { APITags, BrowserServerOptions, BrowserWebsocketRoute, FirefoxPlaywright, Request, SystemQueryParameters, WebsocketRoutes } from '@browserless.io/browserless';
4
4
  import { Duplex } from 'stream';
5
5
  export interface QuerySchema extends SystemQueryParameters {
6
- launch?: BrowserServerOptions | string;
6
+ launch?: BrowserServerOptions & {
7
+ firefoxUserPrefs?: {
8
+ [key: string]: string | number | boolean;
9
+ };
10
+ };
7
11
  }
8
- export default class FirefoxPlayWrightRoute extends BrowserWebsocketRoute {
12
+ export default class FirefoxPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
13
+ name: string;
9
14
  auth: boolean;
10
15
  browser: typeof FirefoxPlaywright;
11
16
  concurrency: boolean;
@@ -1,5 +1,6 @@
1
- import { APITags, BadRequest, BrowserWebsocketRoute, FirefoxPlaywright, WebsocketRoutes, } from '@browserless.io/browserless';
2
- export default class FirefoxPlayWrightRoute extends BrowserWebsocketRoute {
1
+ import { APITags, BadRequest, BrowserWebsocketRoute, BrowserlessRoutes, FirefoxPlaywright, WebsocketRoutes, } from '@browserless.io/browserless';
2
+ export default class FirefoxPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
3
+ name = BrowserlessRoutes.FirefoxPlaywrightWebSocketRoute;
3
4
  auth = true;
4
5
  browser = FirefoxPlaywright;
5
6
  concurrency = true;
@@ -3,35 +3,7 @@
3
3
  "properties": {
4
4
  "launch": {
5
5
  "description": "Launch options, which can be either an object\nof puppeteer.launch options or playwright.launchServer\noptions, depending on the API. Must be either JSON\nobject, or a base64-encoded JSON object.",
6
- "anyOf": [
7
- {
8
- "$ref": "#/definitions/BrowserServerOptions"
9
- },
10
- {
11
- "type": "string"
12
- }
13
- ]
14
- },
15
- "blockAds": {
16
- "description": "Whether or nor to load ad-blocking extensions for the session.\nThis currently uses uBlock Origin and may cause certain sites\nto not load properly.",
17
- "type": "boolean"
18
- },
19
- "record": {
20
- "description": "Whether or nor to record the session. The browser will run\nin \"head-full\" mode, and recording is started and closed\nvia the embedded browserless API. Please refer to the \"Recording\"\nsection in the live documentation site for more details.",
21
- "type": "boolean"
22
- },
23
- "timeout": {
24
- "description": "Override the system-level timeout for this request.\nAccepts a value in milliseconds.",
25
- "type": "number"
26
- },
27
- "token": {
28
- "description": "The authorization token",
29
- "type": "string"
30
- }
31
- },
32
- "additionalProperties": false,
33
- "definitions": {
34
- "BrowserServerOptions": {
6
+ "additionalProperties": false,
35
7
  "type": "object",
36
8
  "properties": {
37
9
  "args": {
@@ -91,10 +63,36 @@
91
63
  },
92
64
  "tracesDir": {
93
65
  "type": "string"
66
+ },
67
+ "firefoxUserPrefs": {
68
+ "type": "object",
69
+ "additionalProperties": {
70
+ "type": [
71
+ "string",
72
+ "number",
73
+ "boolean"
74
+ ]
75
+ }
94
76
  }
95
- },
96
- "additionalProperties": false
77
+ }
78
+ },
79
+ "blockAds": {
80
+ "description": "Whether or nor to load ad-blocking extensions for the session.\nThis currently uses uBlock Origin and may cause certain sites\nto not load properly.",
81
+ "type": "boolean"
82
+ },
83
+ "record": {
84
+ "description": "Whether or nor to record the session. The browser will run\nin \"head-full\" mode, and recording is started and closed\nvia the embedded browserless API. Please refer to the \"Recording\"\nsection in the live documentation site for more details.",
85
+ "type": "boolean"
86
+ },
87
+ "timeout": {
88
+ "description": "Override the system-level timeout for this request.\nAccepts a value in milliseconds.",
89
+ "type": "number"
90
+ },
91
+ "token": {
92
+ "description": "The authorization token",
93
+ "type": "string"
97
94
  }
98
95
  },
96
+ "additionalProperties": false,
99
97
  "$schema": "http://json-schema.org/draft-07/schema#"
100
98
  }
@@ -24,6 +24,7 @@ export interface ResponseSchema {
24
24
  token: string | null;
25
25
  }
26
26
  export default class ConfigGetRoute extends HTTPRoute {
27
+ name: string;
27
28
  accepts: contentTypes[];
28
29
  auth: boolean;
29
30
  browser: null;
@@ -1,5 +1,6 @@
1
- import { APITags, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, jsonResponse, } from '@browserless.io/browserless';
1
+ import { APITags, BrowserlessRoutes, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, jsonResponse, } from '@browserless.io/browserless';
2
2
  export default class ConfigGetRoute extends HTTPRoute {
3
+ name = BrowserlessRoutes.ConfigGetRoute;
3
4
  accepts = [contentTypes.any];
4
5
  auth = true;
5
6
  browser = null;
@@ -3,6 +3,7 @@ import { APITags, HTTPManagementRoutes, HTTPRoute, IBrowserlessMetricTotals, Met
3
3
  import { ServerResponse } from 'http';
4
4
  export type ResponseSchema = IBrowserlessMetricTotals;
5
5
  export default class MetricsTotalGetRoute extends HTTPRoute {
6
+ name: string;
6
7
  accepts: contentTypes[];
7
8
  auth: boolean;
8
9
  browser: null;
@@ -1,6 +1,7 @@
1
- import { APITags, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, writeResponse, } from '@browserless.io/browserless';
1
+ import { APITags, BrowserlessRoutes, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, writeResponse, } from '@browserless.io/browserless';
2
2
  const fiveMinuteIntervalsInAMonth = 8640;
3
3
  export default class MetricsTotalGetRoute extends HTTPRoute {
4
+ name = BrowserlessRoutes.MetricsTotalGetRoute;
4
5
  accepts = [contentTypes.any];
5
6
  auth = true;
6
7
  browser = null;
@@ -3,6 +3,7 @@ import { APITags, HTTPManagementRoutes, HTTPRoute, IBrowserlessStats, Methods, R
3
3
  import { ServerResponse } from 'http';
4
4
  export type ResponseSchema = Array<IBrowserlessStats>;
5
5
  export default class MetricsGetRoute extends HTTPRoute {
6
+ name: string;
6
7
  accepts: contentTypes[];
7
8
  auth: boolean;
8
9
  browser: null;
@@ -1,5 +1,6 @@
1
- import { APITags, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, writeResponse, } from '@browserless.io/browserless';
1
+ import { APITags, BrowserlessRoutes, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, writeResponse, } from '@browserless.io/browserless';
2
2
  export default class MetricsGetRoute extends HTTPRoute {
3
+ name = BrowserlessRoutes.MetricsGetRoute;
3
4
  accepts = [contentTypes.any];
4
5
  auth = true;
5
6
  browser = null;
@@ -3,6 +3,7 @@ import { APITags, BrowserlessSessionJSON, HTTPManagementRoutes, HTTPRoute, Metho
3
3
  import { ServerResponse } from 'http';
4
4
  export type ResponseSchema = BrowserlessSessionJSON[];
5
5
  export default class SessionsGetRoute extends HTTPRoute {
6
+ name: string;
6
7
  accepts: contentTypes[];
7
8
  auth: boolean;
8
9
  browser: null;
@@ -1,5 +1,6 @@
1
- import { APITags, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, jsonResponse, } from '@browserless.io/browserless';
1
+ import { APITags, BrowserlessRoutes, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, jsonResponse, } from '@browserless.io/browserless';
2
2
  export default class SessionsGetRoute extends HTTPRoute {
3
+ name = BrowserlessRoutes.SessionsGetRoute;
3
4
  accepts = [contentTypes.any];
4
5
  auth = true;
5
6
  browser = null;
@@ -2,6 +2,7 @@
2
2
  import { APITags, HTTPManagementRoutes, HTTPRoute, Methods, Request, contentTypes } from '@browserless.io/browserless';
3
3
  import { ServerResponse } from 'http';
4
4
  export default class StaticGetRoute extends HTTPRoute {
5
+ name: string;
5
6
  accepts: contentTypes[];
6
7
  auth: boolean;
7
8
  browser: null;
@@ -1,12 +1,10 @@
1
- import { APITags, HTTPManagementRoutes, HTTPRoute, Methods, NotFound, contentTypes, createLogger, fileExists, mimeTypes, } from '@browserless.io/browserless';
1
+ import { APITags, BrowserlessRoutes, HTTPManagementRoutes, HTTPRoute, Methods, NotFound, contentTypes, fileExists, mimeTypes, } from '@browserless.io/browserless';
2
2
  import { createReadStream } from 'fs';
3
3
  import path from 'path';
4
- const debug = createLogger('http:static');
5
- const verbose = createLogger('http:static:verbose');
6
4
  const pathMap = new Map();
7
- const streamFile = (res, file, contentType) => new Promise((resolve, reject) => {
5
+ const streamFile = (debug, res, file, contentType) => new Promise((resolve, reject) => {
8
6
  if (contentType) {
9
- verbose(`Setting content-type ${contentType}`);
7
+ debug(`Setting content-type ${contentType}`);
10
8
  res.setHeader('Content-Type', contentType);
11
9
  }
12
10
  return createReadStream(file)
@@ -21,6 +19,7 @@ const streamFile = (res, file, contentType) => new Promise((resolve, reject) =>
21
19
  .pipe(res);
22
20
  });
23
21
  export default class StaticGetRoute extends HTTPRoute {
22
+ name = BrowserlessRoutes.StaticGetRoute;
24
23
  accepts = [contentTypes.any];
25
24
  auth = false;
26
25
  browser = null;
@@ -33,8 +32,10 @@ export default class StaticGetRoute extends HTTPRoute {
33
32
  handler = async (req, res) => {
34
33
  const { pathname } = req.parsed;
35
34
  const fileCache = pathMap.get(pathname);
35
+ const debug = this.debug();
36
+ const verbose = debug.extend('verbose');
36
37
  if (fileCache) {
37
- return streamFile(res, fileCache.path, fileCache.contentType);
38
+ return streamFile(verbose, res, fileCache.path, fileCache.contentType);
38
39
  }
39
40
  const config = this.config();
40
41
  const file = path.join(config.getStatic(), pathname);
@@ -57,6 +58,6 @@ export default class StaticGetRoute extends HTTPRoute {
57
58
  contentType,
58
59
  path: filePath,
59
60
  });
60
- return streamFile(res, filePath, contentType);
61
+ return streamFile(verbose, res, filePath, contentType);
61
62
  };
62
63
  }
@@ -5,7 +5,8 @@ import { Duplex } from 'stream';
5
5
  export interface QuerySchema extends SystemQueryParameters {
6
6
  launch?: BrowserServerOptions | string;
7
7
  }
8
- export default class WebkitPlaywrightRoute extends BrowserWebsocketRoute {
8
+ export default class WebKitPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
9
+ name: string;
9
10
  auth: boolean;
10
11
  browser: typeof WebkitPlaywright;
11
12
  concurrency: boolean;
@@ -1,5 +1,6 @@
1
- import { APITags, BadRequest, BrowserWebsocketRoute, WebkitPlaywright, WebsocketRoutes, } from '@browserless.io/browserless';
2
- export default class WebkitPlaywrightRoute extends BrowserWebsocketRoute {
1
+ import { APITags, BadRequest, BrowserWebsocketRoute, BrowserlessRoutes, WebkitPlaywright, WebsocketRoutes, } from '@browserless.io/browserless';
2
+ export default class WebKitPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
3
+ name = BrowserlessRoutes.WebKitPlaywrightWebSocketRoute;
3
4
  auth = true;
4
5
  browser = WebkitPlaywright;
5
6
  concurrency = true;
@@ -5,7 +5,8 @@ import { Duplex } from 'stream';
5
5
  export interface QuerySchema extends SystemQueryParameters {
6
6
  launch?: CDPLaunchOptions | string;
7
7
  }
8
- export default class CDPExistingBrowser extends BrowserWebsocketRoute {
8
+ export default class ChromiumBrowserWebSocketRoute extends BrowserWebsocketRoute {
9
+ name: string;
9
10
  auth: boolean;
10
11
  browser: typeof ChromiumCDP;
11
12
  concurrency: boolean;
@@ -1,5 +1,6 @@
1
- import { APITags, BrowserWebsocketRoute, ChromiumCDP, WebsocketRoutes, dedent, } from '@browserless.io/browserless';
2
- export default class CDPExistingBrowser extends BrowserWebsocketRoute {
1
+ import { APITags, BrowserWebsocketRoute, BrowserlessRoutes, ChromiumCDP, WebsocketRoutes, dedent, } from '@browserless.io/browserless';
2
+ export default class ChromiumBrowserWebSocketRoute extends BrowserWebsocketRoute {
3
+ name = BrowserlessRoutes.ChromiumBrowserWebSocketRoute;
3
4
  auth = true;
4
5
  browser = ChromiumCDP;
5
6
  concurrency = true;
@@ -5,7 +5,8 @@ import { Duplex } from 'stream';
5
5
  export interface QuerySchema extends SystemQueryParameters {
6
6
  launch?: BrowserServerOptions | string;
7
7
  }
8
- export default class PlaywrightChromiumRoute extends BrowserWebsocketRoute {
8
+ export default class ChromiumPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
9
+ name: string;
9
10
  auth: boolean;
10
11
  browser: typeof ChromiumPlaywright;
11
12
  concurrency: boolean;
@@ -1,5 +1,6 @@
1
- import { APITags, BadRequest, BrowserWebsocketRoute, ChromiumPlaywright, WebsocketRoutes, } from '@browserless.io/browserless';
2
- export default class PlaywrightChromiumRoute extends BrowserWebsocketRoute {
1
+ import { APITags, BadRequest, BrowserWebsocketRoute, BrowserlessRoutes, ChromiumPlaywright, WebsocketRoutes, } from '@browserless.io/browserless';
2
+ export default class ChromiumPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
3
+ name = BrowserlessRoutes.ChromiumPlaywrightWebSocketRoute;
3
4
  auth = true;
4
5
  browser = ChromiumPlaywright;
5
6
  concurrency = true;
@@ -5,7 +5,8 @@ import { Duplex } from 'stream';
5
5
  export interface QuerySchema extends SystemQueryParameters {
6
6
  launch?: CDPLaunchOptions | string;
7
7
  }
8
- export default class ChromiumCDPRoute extends BrowserWebsocketRoute {
8
+ export default class ChromiumCDPWebSocketRoute extends BrowserWebsocketRoute {
9
+ name: string;
9
10
  auth: boolean;
10
11
  browser: typeof ChromiumCDP;
11
12
  concurrency: boolean;
@@ -1,5 +1,6 @@
1
- import { APITags, BrowserWebsocketRoute, ChromiumCDP, WebsocketRoutes, } from '@browserless.io/browserless';
2
- export default class ChromiumCDPRoute extends BrowserWebsocketRoute {
1
+ import { APITags, BrowserWebsocketRoute, BrowserlessRoutes, ChromiumCDP, WebsocketRoutes, } from '@browserless.io/browserless';
2
+ export default class ChromiumCDPWebSocketRoute extends BrowserWebsocketRoute {
3
+ name = BrowserlessRoutes.ChromiumCDPWebSocketRoute;
3
4
  auth = true;
4
5
  browser = ChromiumCDP;
5
6
  concurrency = true;
@@ -32,7 +32,8 @@ export type ResponseSchema = string;
32
32
  export type QuerySchema = SystemQueryParameters & {
33
33
  launch?: CDPLaunchOptions | string;
34
34
  };
35
- export default class ContentPostRoute extends BrowserHTTPRoute {
35
+ export default class ChromiumContentPostRoute extends BrowserHTTPRoute {
36
+ name: string;
36
37
  accepts: contentTypes[];
37
38
  auth: boolean;
38
39
  browser: typeof ChromiumCDP;
@@ -1,5 +1,6 @@
1
- import { APITags, BadRequest, BrowserHTTPRoute, ChromiumCDP, HTTPRoutes, Methods, bestAttemptCatch, contentTypes, noop, sleep, waitForEvent as waitForEvt, waitForFunction as waitForFn, writeResponse, } from '@browserless.io/browserless';
2
- export default class ContentPostRoute extends BrowserHTTPRoute {
1
+ import { APITags, BadRequest, BrowserHTTPRoute, BrowserlessRoutes, ChromiumCDP, HTTPRoutes, Methods, bestAttemptCatch, contentTypes, noop, sleep, waitForEvent as waitForEvt, waitForFunction as waitForFn, writeResponse, } from '@browserless.io/browserless';
2
+ export default class ChromiumContentPostRoute extends BrowserHTTPRoute {
3
+ name = BrowserlessRoutes.ChromiumContentPostRoute;
3
4
  accepts = [contentTypes.json];
4
5
  auth = true;
5
6
  browser = ChromiumCDP;
@@ -14,7 +14,8 @@ export interface QuerySchema extends SystemQueryParameters {
14
14
  * themselves, so there isn't a static response type for this API.
15
15
  */
16
16
  export type ResponseSchema = unknown;
17
- export default class DownloadPost extends BrowserHTTPRoute {
17
+ export default class ChromiumDownloadPostRoute extends BrowserHTTPRoute {
18
+ name: string;
18
19
  accepts: contentTypes[];
19
20
  auth: boolean;
20
21
  browser: typeof ChromiumCDP;
@@ -1,10 +1,11 @@
1
- import { APITags, BrowserHTTPRoute, ChromiumCDP, HTTPRoutes, Methods, NotFound, contentTypes, dedent, id, mimeTypes, once, sleep, } from '@browserless.io/browserless';
1
+ import { APITags, BrowserHTTPRoute, BrowserlessRoutes, ChromiumCDP, HTTPRoutes, Methods, NotFound, contentTypes, dedent, id, mimeTypes, once, sleep, } from '@browserless.io/browserless';
2
2
  import { mkdir, readdir } from 'fs/promises';
3
3
  import { createReadStream } from 'fs';
4
4
  import { deleteAsync } from 'del';
5
5
  import functionHandler from './utils/function/handler.js';
6
6
  import path from 'path';
7
- export default class DownloadPost extends BrowserHTTPRoute {
7
+ export default class ChromiumDownloadPostRoute extends BrowserHTTPRoute {
8
+ name = BrowserlessRoutes.ChromiumDownloadPostRoute;
8
9
  accepts = [contentTypes.json, contentTypes.javascript];
9
10
  auth = true;
10
11
  browser = ChromiumCDP;
@@ -16,7 +16,8 @@ export interface QuerySchema extends SystemQueryParameters {
16
16
  * by type (HTML data is "text/html", Objects are "application/json")
17
17
  */
18
18
  export type ResponseSchema = unknown;
19
- export default class FunctionPost extends BrowserHTTPRoute {
19
+ export default class ChromiumFunctionPostRoute extends BrowserHTTPRoute {
20
+ name: string;
20
21
  accepts: contentTypes[];
21
22
  auth: boolean;
22
23
  browser: typeof ChromiumCDP;
@@ -1,8 +1,9 @@
1
- import { APITags, BadRequest, BrowserHTTPRoute, ChromiumCDP, HTTPRoutes, Methods, contentTypes, dedent, writeResponse, } from '@browserless.io/browserless';
1
+ import { APITags, BadRequest, BrowserHTTPRoute, BrowserlessRoutes, ChromiumCDP, HTTPRoutes, Methods, contentTypes, dedent, writeResponse, } from '@browserless.io/browserless';
2
2
  import Stream from 'stream';
3
3
  import { fileTypeFromBuffer } from 'file-type';
4
4
  import functionHandler from './utils/function/handler.js';
5
- export default class FunctionPost extends BrowserHTTPRoute {
5
+ export default class ChromiumFunctionPostRoute extends BrowserHTTPRoute {
6
+ name = BrowserlessRoutes.ChromiumFunctionPostRoute;
6
7
  accepts = [contentTypes.json, contentTypes.javascript];
7
8
  auth = true;
8
9
  browser = ChromiumCDP;
@@ -1,6 +1,7 @@
1
1
  import { APITags, CDPJSONPayload, HTTPRoute, HTTPRoutes, Methods, Request, Response, contentTypes } from '@browserless.io/browserless';
2
2
  export type ResponseSchema = Array<CDPJSONPayload>;
3
- export default class GetJSONList extends HTTPRoute {
3
+ export default class ChromiumJSONListGetRoute extends HTTPRoute {
4
+ name: string;
4
5
  accepts: contentTypes[];
5
6
  auth: boolean;
6
7
  browser: null;
@@ -1,5 +1,6 @@
1
- import { APITags, HTTPRoute, HTTPRoutes, Methods, contentTypes, dedent, jsonResponse, } from '@browserless.io/browserless';
2
- export default class GetJSONList extends HTTPRoute {
1
+ import { APITags, BrowserlessRoutes, HTTPRoute, HTTPRoutes, Methods, contentTypes, dedent, jsonResponse, } from '@browserless.io/browserless';
2
+ export default class ChromiumJSONListGetRoute extends HTTPRoute {
3
+ name = BrowserlessRoutes.ChromiumJSONListGetRoute;
3
4
  accepts = [contentTypes.any];
4
5
  auth = true;
5
6
  browser = null;
@@ -1,6 +1,7 @@
1
1
  import { APITags, CDPJSONPayload, HTTPRoute, HTTPRoutes, Methods, Request, Response, contentTypes } from '@browserless.io/browserless';
2
2
  export type ResponseSchema = CDPJSONPayload;
3
- export default class GetJSONList extends HTTPRoute {
3
+ export default class ChromiumJSONNewPutRoute extends HTTPRoute {
4
+ name: string;
4
5
  accepts: contentTypes[];
5
6
  auth: boolean;
6
7
  browser: null;