@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.
- package/README.md +2 -2
- package/bin/browserless.js +67 -27
- package/bin/scaffold/README.md +50 -0
- package/bin/scaffold/src/hello-world.http.ts +2 -1
- package/build/browserless.d.ts +3 -0
- package/build/browserless.js +43 -19
- package/build/browsers/chrome.cdp.js +1 -1
- package/build/browsers/chrome.playwright.js +1 -1
- package/build/browsers/index.d.ts +1 -0
- package/build/browsers/index.js +4 -1
- package/build/data/classes.json +1 -1
- package/build/data/selectors.json +1 -1
- package/build/exports.js +1 -2
- package/build/limiter.d.ts +2 -1
- package/build/limiter.js +6 -3
- package/build/routes/chrome/http/content.post.body.json +8 -8
- package/build/routes/chrome/http/content.post.d.ts +2 -1
- package/build/routes/chrome/http/content.post.js +3 -2
- package/build/routes/chrome/http/download.post.d.ts +2 -1
- package/build/routes/chrome/http/download.post.js +3 -2
- package/build/routes/chrome/http/function.post.d.ts +2 -1
- package/build/routes/chrome/http/function.post.js +3 -2
- package/build/routes/chrome/http/json-list.get.d.ts +5 -1
- package/build/routes/chrome/http/json-list.get.js +5 -1
- package/build/routes/chrome/http/json-new.put.d.ts +5 -1
- package/build/routes/chrome/http/json-new.put.js +5 -1
- package/build/routes/chrome/http/json-protocol.get.d.ts +5 -1
- package/build/routes/chrome/http/json-protocol.get.js +5 -1
- package/build/routes/chrome/http/json-version.get.d.ts +5 -1
- package/build/routes/chrome/http/json-version.get.js +5 -1
- package/build/routes/chrome/http/pdf.post.body.json +8 -8
- package/build/routes/chrome/http/pdf.post.d.ts +2 -1
- package/build/routes/chrome/http/pdf.post.js +3 -2
- package/build/routes/chrome/http/performance.post.d.ts +2 -1
- package/build/routes/chrome/http/performance.post.js +3 -2
- package/build/routes/chrome/http/scrape.post.body.json +8 -8
- package/build/routes/chrome/http/scrape.post.d.ts +2 -1
- package/build/routes/chrome/http/scrape.post.js +3 -2
- package/build/routes/chrome/http/screenshot.post.body.json +8 -8
- package/build/routes/chrome/http/screenshot.post.d.ts +2 -1
- package/build/routes/chrome/http/screenshot.post.js +3 -2
- package/build/routes/chrome/ws/browser.d.ts +2 -1
- package/build/routes/chrome/ws/browser.js +3 -2
- package/build/routes/chrome/ws/cdp.d.ts +2 -1
- package/build/routes/chrome/ws/cdp.js +3 -2
- package/build/routes/chrome/ws/page.d.ts +3 -2
- package/build/routes/chrome/ws/page.js +3 -2
- package/build/routes/chrome/ws/playwright.d.ts +1 -0
- package/build/routes/chrome/ws/playwright.js +2 -1
- package/build/routes/chromium/http/content.post.body.json +8 -8
- package/build/routes/chromium/http/pdf.post.body.json +8 -8
- package/build/routes/chromium/http/scrape.post.body.json +8 -8
- package/build/routes/chromium/http/screenshot.post.body.json +8 -8
- package/build/routes/firefox/ws/playwright.d.ts +7 -2
- package/build/routes/firefox/ws/playwright.js +3 -2
- package/build/routes/firefox/ws/playwright.query.json +29 -31
- package/build/routes/management/http/config.get.d.ts +1 -0
- package/build/routes/management/http/config.get.js +2 -1
- package/build/routes/management/http/metrics-total.get.d.ts +1 -0
- package/build/routes/management/http/metrics-total.get.js +2 -1
- package/build/routes/management/http/metrics.get.d.ts +1 -0
- package/build/routes/management/http/metrics.get.js +2 -1
- package/build/routes/management/http/sessions.get.d.ts +1 -0
- package/build/routes/management/http/sessions.get.js +2 -1
- package/build/routes/management/http/static.get.d.ts +1 -0
- package/build/routes/management/http/static.get.js +8 -7
- package/build/routes/webkit/ws/playwright.d.ts +2 -1
- package/build/routes/webkit/ws/playwright.js +3 -2
- package/build/shared/browser.ws.d.ts +2 -1
- package/build/shared/browser.ws.js +3 -2
- package/build/shared/chromium.playwright.ws.d.ts +2 -1
- package/build/shared/chromium.playwright.ws.js +3 -2
- package/build/shared/chromium.ws.d.ts +2 -1
- package/build/shared/chromium.ws.js +3 -2
- package/build/shared/content.http.d.ts +2 -1
- package/build/shared/content.http.js +3 -2
- package/build/shared/download.http.d.ts +2 -1
- package/build/shared/download.http.js +3 -2
- package/build/shared/function.http.d.ts +2 -1
- package/build/shared/function.http.js +3 -2
- package/build/shared/json-list.http.d.ts +2 -1
- package/build/shared/json-list.http.js +3 -2
- package/build/shared/json-new.http.d.ts +2 -1
- package/build/shared/json-new.http.js +3 -2
- package/build/shared/json-protocol.http.d.ts +2 -1
- package/build/shared/json-protocol.http.js +3 -2
- package/build/shared/json-version.http.d.ts +2 -1
- package/build/shared/json-version.http.js +3 -2
- package/build/shared/page.ws.d.ts +2 -1
- package/build/shared/page.ws.js +3 -2
- package/build/shared/pdf.http.d.ts +2 -1
- package/build/shared/pdf.http.js +3 -2
- package/build/shared/performance.http.d.ts +1 -0
- package/build/shared/performance.http.js +2 -1
- package/build/shared/scrape.http.d.ts +2 -1
- package/build/shared/scrape.http.js +3 -2
- package/build/shared/screenshot.http.d.ts +1 -0
- package/build/shared/screenshot.http.js +2 -1
- package/build/shared/utils/performance/main.js +1 -1
- package/build/types.d.ts +91 -0
- package/build/types.js +54 -0
- package/build/utils.d.ts +1 -1
- package/build/utils.js +11 -6
- package/docker/chromium/Dockerfile +1 -2
- package/docker/firefox/Dockerfile +1 -2
- package/docker/multi/Dockerfile +2 -4
- package/docker/webkit/Dockerfile +1 -2
- package/package.json +11 -11
- package/scripts/build-open-api.js +142 -124
- package/src/browserless.ts +60 -22
- package/src/browsers/chrome.cdp.ts +1 -1
- package/src/browsers/chrome.playwright.ts +1 -1
- package/src/browsers/index.ts +5 -1
- package/src/exports.ts +1 -3
- package/src/limiter.ts +7 -3
- package/src/router.ts +6 -2
- package/src/routes/chrome/http/content.post.ts +7 -2
- package/src/routes/chrome/http/download.post.ts +7 -2
- package/src/routes/chrome/http/function.post.ts +7 -2
- package/src/routes/chrome/http/json-list.get.ts +7 -1
- package/src/routes/chrome/http/json-new.put.ts +7 -1
- package/src/routes/chrome/http/json-protocol.get.ts +7 -1
- package/src/routes/chrome/http/json-version.get.ts +7 -1
- package/src/routes/chrome/http/pdf.post.ts +7 -2
- package/src/routes/chrome/http/performance.post.ts +7 -2
- package/src/routes/chrome/http/scrape.post.ts +7 -2
- package/src/routes/chrome/http/screenshot.post.ts +7 -2
- package/src/routes/chrome/ws/browser.ts +3 -2
- package/src/routes/chrome/ws/cdp.ts +7 -2
- package/src/routes/chrome/ws/page.ts +3 -2
- package/src/routes/chrome/ws/playwright.ts +6 -1
- package/src/routes/firefox/ws/playwright.ts +6 -2
- package/src/routes/management/http/config.get.ts +2 -0
- package/src/routes/management/http/metrics-total.get.ts +2 -0
- package/src/routes/management/http/metrics.get.ts +2 -0
- package/src/routes/management/http/sessions.get.ts +2 -0
- package/src/routes/management/http/static.get.ts +16 -9
- package/src/routes/webkit/ws/playwright.ts +3 -1
- package/src/shared/browser.ws.ts +3 -1
- package/src/shared/chromium.playwright.ws.ts +3 -1
- package/src/shared/chromium.ws.ts +3 -1
- package/src/shared/content.http.ts +3 -1
- package/src/shared/download.http.ts +3 -1
- package/src/shared/function.http.ts +3 -1
- package/src/shared/json-list.http.ts +3 -1
- package/src/shared/json-new.http.ts +3 -1
- package/src/shared/json-protocol.http.ts +3 -1
- package/src/shared/json-version.http.ts +3 -1
- package/src/shared/page.ws.ts +3 -1
- package/src/shared/pdf.http.ts +3 -1
- package/src/shared/performance.http.ts +2 -0
- package/src/shared/scrape.http.ts +3 -1
- package/src/shared/screenshot.http.ts +2 -0
- package/src/shared/utils/performance/main.ts +1 -2
- package/src/types.ts +66 -0
- package/src/utils.ts +13 -7
- package/static/docs/swagger.json +91 -49
- package/static/docs/swagger.min.json +6697 -0
- package/static/function/client.js +323 -323
|
@@ -1 +1,7 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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 {
|
|
7
|
+
import {
|
|
8
|
+
BrowserlessRoutes,
|
|
9
|
+
ChromeCDP,
|
|
10
|
+
HTTPRoutes,
|
|
11
|
+
} from '@browserless.io/browserless';
|
|
8
12
|
|
|
9
|
-
export default class
|
|
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 {
|
|
7
|
+
import {
|
|
8
|
+
BrowserlessRoutes,
|
|
9
|
+
ChromeCDP,
|
|
10
|
+
HTTPRoutes,
|
|
11
|
+
} from '@browserless.io/browserless';
|
|
8
12
|
|
|
9
|
-
export default class
|
|
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 {
|
|
7
|
+
import {
|
|
8
|
+
BrowserlessRoutes,
|
|
9
|
+
ChromeCDP,
|
|
10
|
+
HTTPRoutes,
|
|
11
|
+
} from '@browserless.io/browserless';
|
|
8
12
|
|
|
9
|
-
export default class
|
|
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 {
|
|
7
|
+
import {
|
|
8
|
+
BrowserlessRoutes,
|
|
9
|
+
ChromeCDP,
|
|
10
|
+
HTTPRoutes,
|
|
11
|
+
} from '@browserless.io/browserless';
|
|
8
12
|
|
|
9
|
-
export default class
|
|
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
|
|
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 {
|
|
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
|
|
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
|
|
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 {
|
|
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
|
|
15
|
+
launch?: BrowserServerOptions & {
|
|
16
|
+
firefoxUserPrefs?: { [key: string]: string | number | boolean };
|
|
17
|
+
};
|
|
15
18
|
}
|
|
16
19
|
|
|
17
|
-
export default class
|
|
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 = (
|
|
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
|
-
|
|
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(
|
|
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
|
|
18
|
+
export default class WebKitPlaywrightWebSocketRoute extends BrowserWebsocketRoute {
|
|
19
|
+
name = BrowserlessRoutes.WebKitPlaywrightWebSocketRoute;
|
|
18
20
|
auth = true;
|
|
19
21
|
browser = WebkitPlaywright;
|
|
20
22
|
concurrency = true;
|
package/src/shared/browser.ws.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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;
|
package/src/shared/page.ws.ts
CHANGED
|
@@ -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
|
|
18
|
+
export default class ChromiumPageWebSocketRoute extends BrowserWebsocketRoute {
|
|
19
|
+
name = BrowserlessRoutes.ChromiumPageWebSocketRoute;
|
|
18
20
|
auth = true;
|
|
19
21
|
browser = ChromiumCDP;
|
|
20
22
|
concurrency = false;
|
package/src/shared/pdf.http.ts
CHANGED
|
@@ -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
|
|
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
|
|
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',
|