@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
@@ -1 +1,7 @@
1
- export { default, ResponseSchema } from '../../../shared/json-protocol.http.js';
1
+ import { BrowserlessRoutes } from '@browserless.io/browserless';
2
+ export { ResponseSchema } from '../../../shared/json-protocol.http.js';
3
+ import { default as ChromiumJSONProtocolGetRoute } from '../../../shared/json-protocol.http.js';
4
+
5
+ export default class ChromeJSONProtocolGetRoute extends ChromiumJSONProtocolGetRoute {
6
+ name = BrowserlessRoutes.ChromeJSONProtocolGetRoute;
7
+ }
@@ -1 +1,7 @@
1
- export { default, ResponseSchema } from '../../../shared/json-version.http.js';
1
+ import { BrowserlessRoutes } from '@browserless.io/browserless';
2
+ export { ResponseSchema } from '../../../shared/json-version.http.js';
3
+ import { default as ChromiumJSONVersionGetRoute } from '../../../shared/json-version.http.js';
4
+
5
+ export default class ChromeJSONVersionGetRoute extends ChromiumJSONVersionGetRoute {
6
+ name = BrowserlessRoutes.ChromeJSONVersionGetRoute;
7
+ }
@@ -4,9 +4,14 @@ import {
4
4
  QuerySchema,
5
5
  ResponseSchema,
6
6
  } from '../../../shared/pdf.http.js';
7
- import { ChromeCDP, HTTPRoutes } from '@browserless.io/browserless';
7
+ import {
8
+ BrowserlessRoutes,
9
+ ChromeCDP,
10
+ HTTPRoutes,
11
+ } from '@browserless.io/browserless';
8
12
 
9
- export default class ChromePDF extends PDF {
13
+ export default class ChromePDFPostRoute extends PDF {
14
+ name = BrowserlessRoutes.ChromePDFPostRoute;
10
15
  browser = ChromeCDP;
11
16
  path = [HTTPRoutes.chromePdf];
12
17
  }
@@ -4,9 +4,14 @@ import {
4
4
  QuerySchema,
5
5
  ResponseSchema,
6
6
  } from '../../../shared/performance.http.js';
7
- import { ChromeCDP, HTTPRoutes } from '@browserless.io/browserless';
7
+ import {
8
+ BrowserlessRoutes,
9
+ ChromeCDP,
10
+ HTTPRoutes,
11
+ } from '@browserless.io/browserless';
8
12
 
9
- export default class ChromePerformance extends Performance {
13
+ export default class ChromePerformancePostRoute extends Performance {
14
+ name = BrowserlessRoutes.ChromePerformancePostRoute;
10
15
  browser = ChromeCDP;
11
16
  path = [HTTPRoutes.chromePerformance];
12
17
  }
@@ -4,9 +4,14 @@ import {
4
4
  ResponseSchema,
5
5
  default as Scrape,
6
6
  } from '../../../shared/scrape.http.js';
7
- import { ChromeCDP, HTTPRoutes } from '@browserless.io/browserless';
7
+ import {
8
+ BrowserlessRoutes,
9
+ ChromeCDP,
10
+ HTTPRoutes,
11
+ } from '@browserless.io/browserless';
8
12
 
9
- export default class ChromeScrape extends Scrape {
13
+ export default class ChromeScrapePostRoute extends Scrape {
14
+ name = BrowserlessRoutes.ChromeScrapePostRoute;
10
15
  browser = ChromeCDP;
11
16
  path = [HTTPRoutes.chromeScrape];
12
17
  }
@@ -4,9 +4,14 @@ import {
4
4
  ResponseSchema,
5
5
  default as Screenshot,
6
6
  } from '../../../shared/screenshot.http.js';
7
- import { ChromeCDP, HTTPRoutes } from '@browserless.io/browserless';
7
+ import {
8
+ BrowserlessRoutes,
9
+ ChromeCDP,
10
+ HTTPRoutes,
11
+ } from '@browserless.io/browserless';
8
12
 
9
- export default class ChromeScreenshot extends Screenshot {
13
+ export default class ChromeScreenshotPostRoute extends Screenshot {
14
+ name = BrowserlessRoutes.ChromeScreenshotPostRoute;
10
15
  browser = ChromeCDP;
11
16
  path = [HTTPRoutes.chromeScreenshot];
12
17
  }
@@ -1,7 +1,8 @@
1
1
  import { default as Browser, QuerySchema } from '../../../shared/browser.ws.js';
2
- import { ChromeCDP } from '@browserless.io/browserless';
2
+ import { BrowserlessRoutes, ChromeCDP } from '@browserless.io/browserless';
3
3
 
4
- export default class ChromeBrowser extends Browser {
4
+ export default class ChromeBrowserWebSocketRoute extends Browser {
5
+ name = BrowserlessRoutes.ChromeBrowserWebSocketRoute;
5
6
  browser = ChromeCDP;
6
7
  }
7
8
 
@@ -1,10 +1,15 @@
1
- import { ChromeCDP, WebsocketRoutes } from '@browserless.io/browserless';
1
+ import {
2
+ BrowserlessRoutes,
3
+ ChromeCDP,
4
+ WebsocketRoutes,
5
+ } from '@browserless.io/browserless';
2
6
  import {
3
7
  default as ChromiumWebSocketRoute,
4
8
  QuerySchema,
5
9
  } from '../../../shared/chromium.ws.js';
6
10
 
7
- export default class Chrome extends ChromiumWebSocketRoute {
11
+ export default class ChromeCDPWebSocketRoute extends ChromiumWebSocketRoute {
12
+ name = BrowserlessRoutes.ChromeCDPWebSocketRoute;
8
13
  browser = ChromeCDP;
9
14
  path = [WebsocketRoutes.chrome];
10
15
  }
@@ -1,7 +1,8 @@
1
+ import { BrowserlessRoutes, ChromeCDP } from '@browserless.io/browserless';
1
2
  import { default as Page, QuerySchema } from '../../../shared/page.ws.js';
2
- import { ChromeCDP } from '@browserless.io/browserless';
3
3
 
4
- export default class ChromePage extends Page {
4
+ export default class ChromePageWebSocketRoute extends Page {
5
+ name = BrowserlessRoutes.ChromePageWebSocketRoute;
5
6
  browser = ChromeCDP;
6
7
  }
7
8
 
@@ -1,10 +1,15 @@
1
- import { ChromePlaywright, WebsocketRoutes } from '@browserless.io/browserless';
1
+ import {
2
+ BrowserlessRoutes,
3
+ ChromePlaywright,
4
+ WebsocketRoutes,
5
+ } from '@browserless.io/browserless';
2
6
  import {
3
7
  default as ChromiumPlaywrightWebSocketRoute,
4
8
  QuerySchema,
5
9
  } from '../../../shared/chromium.playwright.ws.js';
6
10
 
7
11
  export default class ChromePlaywrightWebSocketRoute extends ChromiumPlaywrightWebSocketRoute {
12
+ name = BrowserlessRoutes.ChromePlaywrightWebSocketRoute;
8
13
  browser = ChromePlaywright;
9
14
  path = [WebsocketRoutes.chromePlaywright];
10
15
  }
@@ -3,6 +3,7 @@ import {
3
3
  BadRequest,
4
4
  BrowserServerOptions,
5
5
  BrowserWebsocketRoute,
6
+ BrowserlessRoutes,
6
7
  FirefoxPlaywright,
7
8
  Request,
8
9
  SystemQueryParameters,
@@ -11,10 +12,13 @@ import {
11
12
  import { Duplex } from 'stream';
12
13
 
13
14
  export interface QuerySchema extends SystemQueryParameters {
14
- launch?: BrowserServerOptions | string;
15
+ launch?: BrowserServerOptions & {
16
+ firefoxUserPrefs?: { [key: string]: string | number | boolean };
17
+ };
15
18
  }
16
19
 
17
- export default class FirefoxPlayWrightRoute extends BrowserWebsocketRoute {
20
+ export default class FirefoxPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
21
+ name = BrowserlessRoutes.FirefoxPlaywrightWebSocketRoute;
18
22
  auth = true;
19
23
  browser = FirefoxPlaywright;
20
24
  concurrency = true;
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  APITags,
3
+ BrowserlessRoutes,
3
4
  HTTPManagementRoutes,
4
5
  HTTPRoute,
5
6
  Methods,
@@ -33,6 +34,7 @@ export interface ResponseSchema {
33
34
  }
34
35
 
35
36
  export default class ConfigGetRoute extends HTTPRoute {
37
+ name = BrowserlessRoutes.ConfigGetRoute;
36
38
  accepts = [contentTypes.any];
37
39
  auth = true;
38
40
  browser = null;
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  APITags,
3
+ BrowserlessRoutes,
3
4
  HTTPManagementRoutes,
4
5
  HTTPRoute,
5
6
  IBrowserlessMetricTotals,
@@ -15,6 +16,7 @@ export type ResponseSchema = IBrowserlessMetricTotals;
15
16
  const fiveMinuteIntervalsInAMonth = 8640;
16
17
 
17
18
  export default class MetricsTotalGetRoute extends HTTPRoute {
19
+ name = BrowserlessRoutes.MetricsTotalGetRoute;
18
20
  accepts = [contentTypes.any];
19
21
  auth = true;
20
22
  browser = null;
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  APITags,
3
+ BrowserlessRoutes,
3
4
  HTTPManagementRoutes,
4
5
  HTTPRoute,
5
6
  IBrowserlessStats,
@@ -13,6 +14,7 @@ import { ServerResponse } from 'http';
13
14
  export type ResponseSchema = Array<IBrowserlessStats>;
14
15
 
15
16
  export default class MetricsGetRoute extends HTTPRoute {
17
+ name = BrowserlessRoutes.MetricsGetRoute;
16
18
  accepts = [contentTypes.any];
17
19
  auth = true;
18
20
  browser = null;
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  APITags,
3
+ BrowserlessRoutes,
3
4
  BrowserlessSessionJSON,
4
5
  HTTPManagementRoutes,
5
6
  HTTPRoute,
@@ -13,6 +14,7 @@ import { ServerResponse } from 'http';
13
14
  export type ResponseSchema = BrowserlessSessionJSON[];
14
15
 
15
16
  export default class SessionsGetRoute extends HTTPRoute {
17
+ name = BrowserlessRoutes.SessionsGetRoute;
16
18
  accepts = [contentTypes.any];
17
19
  auth = true;
18
20
  browser = null;
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  APITags,
3
+ BrowserlessRoutes,
3
4
  HTTPManagementRoutes,
4
5
  HTTPRoute,
5
6
  Methods,
6
7
  NotFound,
7
8
  Request,
8
9
  contentTypes,
9
- createLogger,
10
10
  fileExists,
11
11
  mimeTypes,
12
12
  } from '@browserless.io/browserless';
@@ -14,9 +14,6 @@ import { ServerResponse } from 'http';
14
14
  import { createReadStream } from 'fs';
15
15
  import path from 'path';
16
16
 
17
- const debug = createLogger('http:static');
18
- const verbose = createLogger('http:static:verbose');
19
-
20
17
  const pathMap: Map<
21
18
  string,
22
19
  {
@@ -25,10 +22,15 @@ const pathMap: Map<
25
22
  }
26
23
  > = new Map();
27
24
 
28
- const streamFile = (res: ServerResponse, file: string, contentType?: string) =>
25
+ const streamFile = (
26
+ debug: debug.Debugger,
27
+ res: ServerResponse,
28
+ file: string,
29
+ contentType?: string,
30
+ ) =>
29
31
  new Promise((resolve, reject) => {
30
32
  if (contentType) {
31
- verbose(`Setting content-type ${contentType}`);
33
+ debug(`Setting content-type ${contentType}`);
32
34
  res.setHeader('Content-Type', contentType);
33
35
  }
34
36
 
@@ -47,6 +49,7 @@ const streamFile = (res: ServerResponse, file: string, contentType?: string) =>
47
49
  });
48
50
 
49
51
  export default class StaticGetRoute extends HTTPRoute {
52
+ name = BrowserlessRoutes.StaticGetRoute;
50
53
  accepts = [contentTypes.any];
51
54
  auth = false;
52
55
  browser = null;
@@ -59,9 +62,11 @@ export default class StaticGetRoute extends HTTPRoute {
59
62
  handler = async (req: Request, res: ServerResponse): Promise<unknown> => {
60
63
  const { pathname } = req.parsed;
61
64
  const fileCache = pathMap.get(pathname);
65
+ const debug = this.debug();
66
+ const verbose = debug.extend('verbose');
62
67
 
63
68
  if (fileCache) {
64
- return streamFile(res, fileCache.path, fileCache.contentType);
69
+ return streamFile(verbose, res, fileCache.path, fileCache.contentType);
65
70
  }
66
71
 
67
72
  const config = this.config();
@@ -78,7 +83,9 @@ export default class StaticGetRoute extends HTTPRoute {
78
83
  ).find((_) => !!_);
79
84
 
80
85
  if (!filePath) {
81
- throw new NotFound(`No route or file found for resource ${req.method}: ${pathname}`);
86
+ throw new NotFound(
87
+ `No route or file found for resource ${req.method}: ${pathname}`,
88
+ );
82
89
  }
83
90
 
84
91
  verbose(`Found new file "${filePath}", caching path and serving`);
@@ -96,6 +103,6 @@ export default class StaticGetRoute extends HTTPRoute {
96
103
  path: filePath,
97
104
  });
98
105
 
99
- return streamFile(res, filePath, contentType);
106
+ return streamFile(verbose, res, filePath, contentType);
100
107
  };
101
108
  }
@@ -3,6 +3,7 @@ import {
3
3
  BadRequest,
4
4
  BrowserServerOptions,
5
5
  BrowserWebsocketRoute,
6
+ BrowserlessRoutes,
6
7
  Request,
7
8
  SystemQueryParameters,
8
9
  WebkitPlaywright,
@@ -14,7 +15,8 @@ export interface QuerySchema extends SystemQueryParameters {
14
15
  launch?: BrowserServerOptions | string;
15
16
  }
16
17
 
17
- export default class WebkitPlaywrightRoute extends BrowserWebsocketRoute {
18
+ export default class WebKitPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
19
+ name = BrowserlessRoutes.WebKitPlaywrightWebSocketRoute;
18
20
  auth = true;
19
21
  browser = WebkitPlaywright;
20
22
  concurrency = true;
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  APITags,
3
3
  BrowserWebsocketRoute,
4
+ BrowserlessRoutes,
4
5
  CDPLaunchOptions,
5
6
  ChromiumCDP,
6
7
  Request,
@@ -14,7 +15,8 @@ export interface QuerySchema extends SystemQueryParameters {
14
15
  launch?: CDPLaunchOptions | string;
15
16
  }
16
17
 
17
- export default class CDPExistingBrowser extends BrowserWebsocketRoute {
18
+ export default class ChromiumBrowserWebSocketRoute extends BrowserWebsocketRoute {
19
+ name = BrowserlessRoutes.ChromiumBrowserWebSocketRoute;
18
20
  auth = true;
19
21
  browser = ChromiumCDP;
20
22
  concurrency = true;
@@ -3,6 +3,7 @@ import {
3
3
  BadRequest,
4
4
  BrowserServerOptions,
5
5
  BrowserWebsocketRoute,
6
+ BrowserlessRoutes,
6
7
  ChromiumPlaywright,
7
8
  Request,
8
9
  SystemQueryParameters,
@@ -14,7 +15,8 @@ export interface QuerySchema extends SystemQueryParameters {
14
15
  launch?: BrowserServerOptions | string;
15
16
  }
16
17
 
17
- export default class PlaywrightChromiumRoute extends BrowserWebsocketRoute {
18
+ export default class ChromiumPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
19
+ name = BrowserlessRoutes.ChromiumPlaywrightWebSocketRoute;
18
20
  auth = true;
19
21
  browser = ChromiumPlaywright;
20
22
  concurrency = true;
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  APITags,
3
3
  BrowserWebsocketRoute,
4
+ BrowserlessRoutes,
4
5
  CDPLaunchOptions,
5
6
  ChromiumCDP,
6
7
  Request,
@@ -13,7 +14,8 @@ export interface QuerySchema extends SystemQueryParameters {
13
14
  launch?: CDPLaunchOptions | string;
14
15
  }
15
16
 
16
- export default class ChromiumCDPRoute extends BrowserWebsocketRoute {
17
+ export default class ChromiumCDPWebSocketRoute extends BrowserWebsocketRoute {
18
+ name = BrowserlessRoutes.ChromiumCDPWebSocketRoute;
17
19
  auth = true;
18
20
  browser = ChromiumCDP;
19
21
  concurrency = true;
@@ -3,6 +3,7 @@ import {
3
3
  BadRequest,
4
4
  BrowserHTTPRoute,
5
5
  BrowserInstance,
6
+ BrowserlessRoutes,
6
7
  CDPLaunchOptions,
7
8
  ChromiumCDP,
8
9
  HTTPRoutes,
@@ -62,7 +63,8 @@ export type QuerySchema = SystemQueryParameters & {
62
63
  launch?: CDPLaunchOptions | string;
63
64
  };
64
65
 
65
- export default class ContentPostRoute extends BrowserHTTPRoute {
66
+ export default class ChromiumContentPostRoute extends BrowserHTTPRoute {
67
+ name = BrowserlessRoutes.ChromiumContentPostRoute;
66
68
  accepts = [contentTypes.json];
67
69
  auth = true;
68
70
  browser = ChromiumCDP;
@@ -2,6 +2,7 @@ import {
2
2
  APITags,
3
3
  BrowserHTTPRoute,
4
4
  BrowserInstance,
5
+ BrowserlessRoutes,
5
6
  CDPLaunchOptions,
6
7
  ChromiumCDP,
7
8
  HTTPRoutes,
@@ -40,7 +41,8 @@ export interface QuerySchema extends SystemQueryParameters {
40
41
  */
41
42
  export type ResponseSchema = unknown;
42
43
 
43
- export default class DownloadPost extends BrowserHTTPRoute {
44
+ export default class ChromiumDownloadPostRoute extends BrowserHTTPRoute {
45
+ name = BrowserlessRoutes.ChromiumDownloadPostRoute;
44
46
  accepts = [contentTypes.json, contentTypes.javascript];
45
47
  auth = true;
46
48
  browser = ChromiumCDP;
@@ -3,6 +3,7 @@ import {
3
3
  BadRequest,
4
4
  BrowserHTTPRoute,
5
5
  BrowserInstance,
6
+ BrowserlessRoutes,
6
7
  CDPLaunchOptions,
7
8
  ChromiumCDP,
8
9
  HTTPRoutes,
@@ -37,7 +38,8 @@ export interface QuerySchema extends SystemQueryParameters {
37
38
  */
38
39
  export type ResponseSchema = unknown;
39
40
 
40
- export default class FunctionPost extends BrowserHTTPRoute {
41
+ export default class ChromiumFunctionPostRoute extends BrowserHTTPRoute {
42
+ name = BrowserlessRoutes.ChromiumFunctionPostRoute;
41
43
  accepts = [contentTypes.json, contentTypes.javascript];
42
44
  auth = true;
43
45
  browser = ChromiumCDP;
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  APITags,
3
+ BrowserlessRoutes,
3
4
  CDPJSONPayload,
4
5
  HTTPRoute,
5
6
  HTTPRoutes,
@@ -13,7 +14,8 @@ import {
13
14
 
14
15
  export type ResponseSchema = Array<CDPJSONPayload>;
15
16
 
16
- export default class GetJSONList extends HTTPRoute {
17
+ export default class ChromiumJSONListGetRoute extends HTTPRoute {
18
+ name = BrowserlessRoutes.ChromiumJSONListGetRoute;
17
19
  accepts = [contentTypes.any];
18
20
  auth = true;
19
21
  browser = null;
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  APITags,
3
+ BrowserlessRoutes,
3
4
  CDPJSONPayload,
4
5
  HTTPRoute,
5
6
  HTTPRoutes,
@@ -27,7 +28,8 @@ Example Payload from Chromium:
27
28
  */
28
29
  export type ResponseSchema = CDPJSONPayload;
29
30
 
30
- export default class GetJSONList extends HTTPRoute {
31
+ export default class ChromiumJSONNewPutRoute extends HTTPRoute {
32
+ name = BrowserlessRoutes.ChromiumJSONNewPutRoute;
31
33
  accepts = [contentTypes.any];
32
34
  auth = true;
33
35
  browser = null;
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  APITags,
3
+ BrowserlessRoutes,
3
4
  HTTPRoute,
4
5
  HTTPRoutes,
5
6
  Methods,
@@ -11,9 +12,10 @@ import {
11
12
 
12
13
  export type ResponseSchema = object;
13
14
 
14
- export default class GetJSONVersion extends HTTPRoute {
15
+ export default class ChromiumJSONProtocolGetRoute extends HTTPRoute {
15
16
  private cachedProtocol: object | undefined;
16
17
 
18
+ name = BrowserlessRoutes.ChromiumJSONProtocolGetRoute;
17
19
  accepts = [contentTypes.any];
18
20
  auth = true;
19
21
  browser = null;
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  APITags,
3
3
  BrowserManager,
4
+ BrowserlessRoutes,
4
5
  HTTPRoute,
5
6
  HTTPRoutes,
6
7
  Methods,
@@ -16,9 +17,10 @@ export type ResponseSchema = UnwrapPromise<
16
17
  ReturnType<BrowserManager['getVersionJSON']>
17
18
  >;
18
19
 
19
- export default class GetJSONVersion extends HTTPRoute {
20
+ export default class ChromiumJSONVersionGetRoute extends HTTPRoute {
20
21
  private cachedJSON: ResponseSchema | undefined;
21
22
 
23
+ name = BrowserlessRoutes.ChromiumJSONVersionGetRoute;
22
24
  accepts = [contentTypes.any];
23
25
  auth = true;
24
26
  browser = null;
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  APITags,
3
3
  BrowserWebsocketRoute,
4
+ BrowserlessRoutes,
4
5
  CDPLaunchOptions,
5
6
  ChromiumCDP,
6
7
  Request,
@@ -14,7 +15,8 @@ export interface QuerySchema extends SystemQueryParameters {
14
15
  launch?: CDPLaunchOptions | string;
15
16
  }
16
17
 
17
- export default class PageWebSocketRoute extends BrowserWebsocketRoute {
18
+ export default class ChromiumPageWebSocketRoute extends BrowserWebsocketRoute {
19
+ name = BrowserlessRoutes.ChromiumPageWebSocketRoute;
18
20
  auth = true;
19
21
  browser = ChromiumCDP;
20
22
  concurrency = false;
@@ -3,6 +3,7 @@ import {
3
3
  BadRequest,
4
4
  BrowserHTTPRoute,
5
5
  BrowserInstance,
6
+ BrowserlessRoutes,
6
7
  CDPLaunchOptions,
7
8
  ChromiumCDP,
8
9
  HTTPRoutes,
@@ -64,7 +65,8 @@ export interface QuerySchema extends SystemQueryParameters {
64
65
  */
65
66
  export type ResponseSchema = string;
66
67
 
67
- export default class PDFPost extends BrowserHTTPRoute {
68
+ export default class ChromiumPDFPostRoute extends BrowserHTTPRoute {
69
+ name = BrowserlessRoutes.ChromiumPDFPostRoute;
68
70
  accepts = [contentTypes.json];
69
71
  auth = true;
70
72
  browser = ChromiumCDP;
@@ -2,6 +2,7 @@ import {
2
2
  APITags,
3
3
  BrowserHTTPRoute,
4
4
  BrowserInstance,
5
+ BrowserlessRoutes,
5
6
  CDPLaunchOptions,
6
7
  ChromiumCDP,
7
8
  HTTPRoutes,
@@ -33,6 +34,7 @@ export interface QuerySchema extends SystemQueryParameters {
33
34
  export type ResponseSchema = object;
34
35
 
35
36
  export default class PerformancePost extends BrowserHTTPRoute {
37
+ name = BrowserlessRoutes.ChromiumPerformancePostRoute;
36
38
  accepts = [contentTypes.json];
37
39
  auth = true;
38
40
  browser = ChromiumCDP;
@@ -3,6 +3,7 @@ import {
3
3
  BadRequest,
4
4
  BrowserHTTPRoute,
5
5
  BrowserInstance,
6
+ BrowserlessRoutes,
6
7
  CDPLaunchOptions,
7
8
  ChromiumCDP,
8
9
  HTTPRoutes,
@@ -199,7 +200,8 @@ const scrape = async (elements: ScrapeElementSelector[]) => {
199
200
  });
200
201
  };
201
202
 
202
- export default class ScrapePost extends BrowserHTTPRoute {
203
+ export default class ChromiumScrapePostRoute extends BrowserHTTPRoute {
204
+ name = BrowserlessRoutes.ChromiumScrapePostRoute;
203
205
  accepts = [contentTypes.json];
204
206
  auth = true;
205
207
  browser = ChromiumCDP;
@@ -3,6 +3,7 @@ import {
3
3
  BadRequest,
4
4
  BrowserHTTPRoute,
5
5
  BrowserInstance,
6
+ BrowserlessRoutes,
6
7
  CDPLaunchOptions,
7
8
  ChromiumCDP,
8
9
  HTTPRoutes,
@@ -67,6 +68,7 @@ export interface BodySchema {
67
68
  }
68
69
 
69
70
  export default class ScreenshotPost extends BrowserHTTPRoute {
71
+ name = BrowserlessRoutes.ChromiumScreenshotPostRoute;
70
72
  accepts = [contentTypes.json];
71
73
  auth = true;
72
74
  browser = ChromiumCDP;
@@ -7,14 +7,13 @@ const DEFAULT_AUDIT_CONFIG = {
7
7
  extends: 'lighthouse:default',
8
8
  };
9
9
 
10
- const debug = createLogger('http:performance:main');
11
-
12
10
  export default async ({
13
11
  browser,
14
12
  context,
15
13
  timeout,
16
14
  }: mainOptions): Promise<unknown> => {
17
15
  return new Promise((resolve, reject) => {
16
+ const debug = createLogger('http:performance:main');
18
17
  const childPath = path.join(
19
18
  './',
20
19
  'build',