@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,6 +1,7 @@
|
|
|
1
|
-
import { APITags, HTTPRoute, HTTPRoutes, Methods, contentTypes, dedent, jsonResponse, pageID, } from '@browserless.io/browserless';
|
|
1
|
+
import { APITags, BrowserlessRoutes, HTTPRoute, HTTPRoutes, Methods, contentTypes, dedent, jsonResponse, pageID, } from '@browserless.io/browserless';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
export default class
|
|
3
|
+
export default class ChromiumJSONNewPutRoute extends HTTPRoute {
|
|
4
|
+
name = BrowserlessRoutes.ChromiumJSONNewPutRoute;
|
|
4
5
|
accepts = [contentTypes.any];
|
|
5
6
|
auth = true;
|
|
6
7
|
browser = null;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { APITags, HTTPRoute, HTTPRoutes, Methods, Request, Response, contentTypes } from '@browserless.io/browserless';
|
|
2
2
|
export type ResponseSchema = object;
|
|
3
|
-
export default class
|
|
3
|
+
export default class ChromiumJSONProtocolGetRoute extends HTTPRoute {
|
|
4
4
|
private cachedProtocol;
|
|
5
|
+
name: string;
|
|
5
6
|
accepts: contentTypes[];
|
|
6
7
|
auth: boolean;
|
|
7
8
|
browser: null;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { APITags, HTTPRoute, HTTPRoutes, Methods, contentTypes, jsonResponse, } from '@browserless.io/browserless';
|
|
2
|
-
export default class
|
|
1
|
+
import { APITags, BrowserlessRoutes, HTTPRoute, HTTPRoutes, Methods, contentTypes, jsonResponse, } from '@browserless.io/browserless';
|
|
2
|
+
export default class ChromiumJSONProtocolGetRoute extends HTTPRoute {
|
|
3
3
|
cachedProtocol;
|
|
4
|
+
name = BrowserlessRoutes.ChromiumJSONProtocolGetRoute;
|
|
4
5
|
accepts = [contentTypes.any];
|
|
5
6
|
auth = true;
|
|
6
7
|
browser = null;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { APITags, BrowserManager, HTTPRoute, HTTPRoutes, Methods, Request, Response, UnwrapPromise, contentTypes } from '@browserless.io/browserless';
|
|
2
2
|
export type ResponseSchema = UnwrapPromise<ReturnType<BrowserManager['getVersionJSON']>>;
|
|
3
|
-
export default class
|
|
3
|
+
export default class ChromiumJSONVersionGetRoute extends HTTPRoute {
|
|
4
4
|
private cachedJSON;
|
|
5
|
+
name: string;
|
|
5
6
|
accepts: contentTypes[];
|
|
6
7
|
auth: boolean;
|
|
7
8
|
browser: null;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { APITags, HTTPRoute, HTTPRoutes, Methods, contentTypes, jsonResponse, writeResponse, } from '@browserless.io/browserless';
|
|
2
|
-
export default class
|
|
1
|
+
import { APITags, BrowserlessRoutes, HTTPRoute, HTTPRoutes, Methods, contentTypes, jsonResponse, writeResponse, } from '@browserless.io/browserless';
|
|
2
|
+
export default class ChromiumJSONVersionGetRoute extends HTTPRoute {
|
|
3
3
|
cachedJSON;
|
|
4
|
+
name = BrowserlessRoutes.ChromiumJSONVersionGetRoute;
|
|
4
5
|
accepts = [contentTypes.any];
|
|
5
6
|
auth = true;
|
|
6
7
|
browser = null;
|
|
@@ -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
|
|
8
|
+
export default class ChromiumPageWebSocketRoute extends BrowserWebsocketRoute {
|
|
9
|
+
name: string;
|
|
9
10
|
auth: boolean;
|
|
10
11
|
browser: typeof ChromiumCDP;
|
|
11
12
|
concurrency: boolean;
|
package/build/shared/page.ws.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { APITags, BrowserWebsocketRoute, ChromiumCDP, WebsocketRoutes, dedent, } from '@browserless.io/browserless';
|
|
2
|
-
export default class
|
|
1
|
+
import { APITags, BrowserWebsocketRoute, BrowserlessRoutes, ChromiumCDP, WebsocketRoutes, dedent, } from '@browserless.io/browserless';
|
|
2
|
+
export default class ChromiumPageWebSocketRoute extends BrowserWebsocketRoute {
|
|
3
|
+
name = BrowserlessRoutes.ChromiumPageWebSocketRoute;
|
|
3
4
|
auth = true;
|
|
4
5
|
browser = ChromiumCDP;
|
|
5
6
|
concurrency = false;
|
|
@@ -33,7 +33,8 @@ export interface QuerySchema extends SystemQueryParameters {
|
|
|
33
33
|
* Responds with an application/pdf content-type and a binary PDF
|
|
34
34
|
*/
|
|
35
35
|
export type ResponseSchema = string;
|
|
36
|
-
export default class
|
|
36
|
+
export default class ChromiumPDFPostRoute extends BrowserHTTPRoute {
|
|
37
|
+
name: string;
|
|
37
38
|
accepts: contentTypes[];
|
|
38
39
|
auth: boolean;
|
|
39
40
|
browser: typeof ChromiumCDP;
|
package/build/shared/pdf.http.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { APITags, BadRequest, BrowserHTTPRoute, ChromiumCDP, HTTPRoutes, Methods, bestAttemptCatch, contentTypes, dedent, noop, sleep, waitForEvent as waitForEvt, waitForFunction as waitForFn, writeResponse, } from '@browserless.io/browserless';
|
|
1
|
+
import { APITags, BadRequest, BrowserHTTPRoute, BrowserlessRoutes, ChromiumCDP, HTTPRoutes, Methods, bestAttemptCatch, contentTypes, dedent, noop, sleep, waitForEvent as waitForEvt, waitForFunction as waitForFn, writeResponse, } from '@browserless.io/browserless';
|
|
2
2
|
import { Stream } from 'stream';
|
|
3
|
-
export default class
|
|
3
|
+
export default class ChromiumPDFPostRoute extends BrowserHTTPRoute {
|
|
4
|
+
name = BrowserlessRoutes.ChromiumPDFPostRoute;
|
|
4
5
|
accepts = [contentTypes.json];
|
|
5
6
|
auth = true;
|
|
6
7
|
browser = ChromiumCDP;
|
|
@@ -16,6 +16,7 @@ export interface QuerySchema extends SystemQueryParameters {
|
|
|
16
16
|
*/
|
|
17
17
|
export type ResponseSchema = object;
|
|
18
18
|
export default class PerformancePost extends BrowserHTTPRoute {
|
|
19
|
+
name: string;
|
|
19
20
|
accepts: contentTypes[];
|
|
20
21
|
auth: boolean;
|
|
21
22
|
browser: typeof ChromiumCDP;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { APITags, BrowserHTTPRoute, ChromiumCDP, HTTPRoutes, Methods, contentTypes, jsonResponse, } from '@browserless.io/browserless';
|
|
1
|
+
import { APITags, BrowserHTTPRoute, BrowserlessRoutes, ChromiumCDP, HTTPRoutes, Methods, contentTypes, jsonResponse, } from '@browserless.io/browserless';
|
|
2
2
|
import main from './utils/performance/main.js';
|
|
3
3
|
export default class PerformancePost extends BrowserHTTPRoute {
|
|
4
|
+
name = BrowserlessRoutes.ChromiumPerformancePostRoute;
|
|
4
5
|
accepts = [contentTypes.json];
|
|
5
6
|
auth = true;
|
|
6
7
|
browser = ChromiumCDP;
|
|
@@ -104,7 +104,8 @@ export interface ResponseSchema {
|
|
|
104
104
|
screenshot: string | null;
|
|
105
105
|
} | null;
|
|
106
106
|
}
|
|
107
|
-
export default class
|
|
107
|
+
export default class ChromiumScrapePostRoute extends BrowserHTTPRoute {
|
|
108
|
+
name: string;
|
|
108
109
|
accepts: contentTypes[];
|
|
109
110
|
auth: boolean;
|
|
110
111
|
browser: typeof ChromiumCDP;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { APITags, BadRequest, BrowserHTTPRoute, ChromiumCDP, HTTPRoutes, Methods, Timeout, bestAttemptCatch, contentTypes, debugScreenshotOpts, dedent, jsonResponse, noop, sleep, waitForEvent as waitForEvt, waitForFunction as waitForFn, } from '@browserless.io/browserless';
|
|
1
|
+
import { APITags, BadRequest, BrowserHTTPRoute, BrowserlessRoutes, ChromiumCDP, HTTPRoutes, Methods, Timeout, bestAttemptCatch, contentTypes, debugScreenshotOpts, dedent, jsonResponse, noop, sleep, waitForEvent as waitForEvt, waitForFunction as waitForFn, } from '@browserless.io/browserless';
|
|
2
2
|
const scrape = async (elements) => {
|
|
3
3
|
const wait = (selector, timeout = 30000) => {
|
|
4
4
|
return new Promise((resolve, reject) => {
|
|
@@ -39,7 +39,8 @@ const scrape = async (elements) => {
|
|
|
39
39
|
};
|
|
40
40
|
});
|
|
41
41
|
};
|
|
42
|
-
export default class
|
|
42
|
+
export default class ChromiumScrapePostRoute extends BrowserHTTPRoute {
|
|
43
|
+
name = BrowserlessRoutes.ChromiumScrapePostRoute;
|
|
43
44
|
accepts = [contentTypes.json];
|
|
44
45
|
auth = true;
|
|
45
46
|
browser = ChromiumCDP;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { APITags, BadRequest, BrowserHTTPRoute, ChromiumCDP, HTTPRoutes, Methods, bestAttemptCatch, contentTypes, dedent, noop, scrollThroughPage, sleep, waitForEvent as waitForEvt, waitForFunction as waitForFn, } from '@browserless.io/browserless';
|
|
1
|
+
import { APITags, BadRequest, BrowserHTTPRoute, BrowserlessRoutes, ChromiumCDP, HTTPRoutes, Methods, bestAttemptCatch, contentTypes, dedent, noop, scrollThroughPage, sleep, waitForEvent as waitForEvt, waitForFunction as waitForFn, } from '@browserless.io/browserless';
|
|
2
2
|
import Stream from 'stream';
|
|
3
3
|
export default class ScreenshotPost extends BrowserHTTPRoute {
|
|
4
|
+
name = BrowserlessRoutes.ChromiumScreenshotPostRoute;
|
|
4
5
|
accepts = [contentTypes.json];
|
|
5
6
|
auth = true;
|
|
6
7
|
browser = ChromiumCDP;
|
|
@@ -4,9 +4,9 @@ import path from 'path';
|
|
|
4
4
|
const DEFAULT_AUDIT_CONFIG = {
|
|
5
5
|
extends: 'lighthouse:default',
|
|
6
6
|
};
|
|
7
|
-
const debug = createLogger('http:performance:main');
|
|
8
7
|
export default async ({ browser, context, timeout, }) => {
|
|
9
8
|
return new Promise((resolve, reject) => {
|
|
9
|
+
const debug = createLogger('http:performance:main');
|
|
10
10
|
const childPath = path.join('./', 'build', 'shared', 'utils', 'performance', 'child.js');
|
|
11
11
|
debug(`Starting up child at ${childPath}`);
|
|
12
12
|
const child = fork(childPath);
|
package/build/types.d.ts
CHANGED
|
@@ -56,6 +56,11 @@ declare abstract class Route {
|
|
|
56
56
|
protected _metrics: Browserless['metrics'];
|
|
57
57
|
protected _monitoring: Browserless['monitoring'];
|
|
58
58
|
constructor(_browserManager: Browserless['browserManager'], _config: Browserless['config'], _fileSystem: Browserless['fileSystem'], _debug: Browserless['debug'], _metrics: Browserless['metrics'], _monitoring: Browserless['monitoring']);
|
|
59
|
+
/**
|
|
60
|
+
* A unique name to identify this route. Used in downstream
|
|
61
|
+
* SDKs to potentially remove or disable.
|
|
62
|
+
*/
|
|
63
|
+
abstract name: string;
|
|
59
64
|
/**
|
|
60
65
|
* A boolean, or a function that returns a boolean, on
|
|
61
66
|
* whether the route requires an API token to access.
|
|
@@ -472,4 +477,90 @@ export interface CDPJSONPayload {
|
|
|
472
477
|
*/
|
|
473
478
|
webSocketDebuggerUrl: string;
|
|
474
479
|
}
|
|
480
|
+
export declare const BrowserlessChromeRoutes: {
|
|
481
|
+
ChromeBrowserWebSocketRoute: string;
|
|
482
|
+
ChromeCDPWebSocketRoute: string;
|
|
483
|
+
ChromeContentPostRoute: string;
|
|
484
|
+
ChromeDownloadPostRoute: string;
|
|
485
|
+
ChromeFunctionPostRoute: string;
|
|
486
|
+
ChromeJSONListGetRoute: string;
|
|
487
|
+
ChromeJSONNewPutRoute: string;
|
|
488
|
+
ChromeJSONProtocolGetRoute: string;
|
|
489
|
+
ChromeJSONVersionGetRoute: string;
|
|
490
|
+
ChromePDFPostRoute: string;
|
|
491
|
+
ChromePageWebSocketRoute: string;
|
|
492
|
+
ChromePerformancePostRoute: string;
|
|
493
|
+
ChromePlaywrightWebSocketRoute: string;
|
|
494
|
+
ChromeScrapePostRoute: string;
|
|
495
|
+
ChromeScreenshotPostRoute: string;
|
|
496
|
+
};
|
|
497
|
+
export declare const BrowserlessChromiumRoutes: {
|
|
498
|
+
ChromiumBrowserWebSocketRoute: string;
|
|
499
|
+
ChromiumCDPWebSocketRoute: string;
|
|
500
|
+
ChromiumContentPostRoute: string;
|
|
501
|
+
ChromiumDownloadPostRoute: string;
|
|
502
|
+
ChromiumFunctionPostRoute: string;
|
|
503
|
+
ChromiumJSONListGetRoute: string;
|
|
504
|
+
ChromiumJSONNewPutRoute: string;
|
|
505
|
+
ChromiumJSONProtocolGetRoute: string;
|
|
506
|
+
ChromiumJSONVersionGetRoute: string;
|
|
507
|
+
ChromiumPDFPostRoute: string;
|
|
508
|
+
ChromiumPageWebSocketRoute: string;
|
|
509
|
+
ChromiumPerformancePostRoute: string;
|
|
510
|
+
ChromiumPlaywrightWebSocketRoute: string;
|
|
511
|
+
ChromiumScrapePostRoute: string;
|
|
512
|
+
ChromiumScreenshotPostRoute: string;
|
|
513
|
+
};
|
|
514
|
+
export declare const BrowserlessFirefoxRoutes: {
|
|
515
|
+
FirefoxPlaywrightWebSocketRoute: string;
|
|
516
|
+
};
|
|
517
|
+
export declare const BrowserlessWebKitRoutes: {
|
|
518
|
+
WebKitPlaywrightWebSocketRoute: string;
|
|
519
|
+
};
|
|
520
|
+
export declare const BrowserlessManagementRoutes: {
|
|
521
|
+
ConfigGetRoute: string;
|
|
522
|
+
MetricsGetRoute: string;
|
|
523
|
+
MetricsTotalGetRoute: string;
|
|
524
|
+
SessionsGetRoute: string;
|
|
525
|
+
StaticGetRoute: string;
|
|
526
|
+
};
|
|
527
|
+
export declare const BrowserlessRoutes: {
|
|
528
|
+
ConfigGetRoute: string;
|
|
529
|
+
MetricsGetRoute: string;
|
|
530
|
+
MetricsTotalGetRoute: string;
|
|
531
|
+
SessionsGetRoute: string;
|
|
532
|
+
StaticGetRoute: string;
|
|
533
|
+
WebKitPlaywrightWebSocketRoute: string;
|
|
534
|
+
FirefoxPlaywrightWebSocketRoute: string;
|
|
535
|
+
ChromiumBrowserWebSocketRoute: string;
|
|
536
|
+
ChromiumCDPWebSocketRoute: string;
|
|
537
|
+
ChromiumContentPostRoute: string;
|
|
538
|
+
ChromiumDownloadPostRoute: string;
|
|
539
|
+
ChromiumFunctionPostRoute: string;
|
|
540
|
+
ChromiumJSONListGetRoute: string;
|
|
541
|
+
ChromiumJSONNewPutRoute: string;
|
|
542
|
+
ChromiumJSONProtocolGetRoute: string;
|
|
543
|
+
ChromiumJSONVersionGetRoute: string;
|
|
544
|
+
ChromiumPDFPostRoute: string;
|
|
545
|
+
ChromiumPageWebSocketRoute: string;
|
|
546
|
+
ChromiumPerformancePostRoute: string;
|
|
547
|
+
ChromiumPlaywrightWebSocketRoute: string;
|
|
548
|
+
ChromiumScrapePostRoute: string;
|
|
549
|
+
ChromiumScreenshotPostRoute: string;
|
|
550
|
+
ChromeBrowserWebSocketRoute: string;
|
|
551
|
+
ChromeCDPWebSocketRoute: string;
|
|
552
|
+
ChromeContentPostRoute: string;
|
|
553
|
+
ChromeDownloadPostRoute: string;
|
|
554
|
+
ChromeFunctionPostRoute: string;
|
|
555
|
+
ChromeJSONListGetRoute: string;
|
|
556
|
+
ChromeJSONNewPutRoute: string;
|
|
557
|
+
ChromeJSONProtocolGetRoute: string;
|
|
558
|
+
ChromeJSONVersionGetRoute: string;
|
|
559
|
+
ChromePDFPostRoute: string;
|
|
560
|
+
ChromePageWebSocketRoute: string;
|
|
561
|
+
ChromePerformancePostRoute: string;
|
|
562
|
+
ChromePlaywrightWebSocketRoute: string;
|
|
563
|
+
ChromeScrapePostRoute: string;
|
|
564
|
+
ChromeScreenshotPostRoute: string;
|
|
565
|
+
};
|
|
475
566
|
export {};
|
package/build/types.js
CHANGED
|
@@ -139,3 +139,57 @@ export const debugScreenshotOpts = {
|
|
|
139
139
|
quality: 20,
|
|
140
140
|
type: 'jpeg',
|
|
141
141
|
};
|
|
142
|
+
export const BrowserlessChromeRoutes = {
|
|
143
|
+
ChromeBrowserWebSocketRoute: 'ChromeBrowserWebSocketRoute',
|
|
144
|
+
ChromeCDPWebSocketRoute: 'ChromeCDPWebSocketRoute',
|
|
145
|
+
ChromeContentPostRoute: 'ChromeContentPostRoute',
|
|
146
|
+
ChromeDownloadPostRoute: 'ChromeDownloadPostRoute',
|
|
147
|
+
ChromeFunctionPostRoute: 'ChromeFunctionPostRoute',
|
|
148
|
+
ChromeJSONListGetRoute: 'ChromeJSONListGetRoute',
|
|
149
|
+
ChromeJSONNewPutRoute: 'ChromeJSONNewPutRoute',
|
|
150
|
+
ChromeJSONProtocolGetRoute: 'ChromeJSONProtocolGetRoute',
|
|
151
|
+
ChromeJSONVersionGetRoute: 'ChromeJSONVersionGetRoute',
|
|
152
|
+
ChromePDFPostRoute: 'ChromePDFPostRoute',
|
|
153
|
+
ChromePageWebSocketRoute: 'ChromePageWebSocketRoute',
|
|
154
|
+
ChromePerformancePostRoute: 'ChromePerformancePostRoute',
|
|
155
|
+
ChromePlaywrightWebSocketRoute: 'ChromePlaywrightWebSocketRoute',
|
|
156
|
+
ChromeScrapePostRoute: 'ChromeScrapePostRoute',
|
|
157
|
+
ChromeScreenshotPostRoute: 'ChromeScreenshotPostRoute',
|
|
158
|
+
};
|
|
159
|
+
export const BrowserlessChromiumRoutes = {
|
|
160
|
+
ChromiumBrowserWebSocketRoute: 'ChromiumBrowserWebSocketRoute',
|
|
161
|
+
ChromiumCDPWebSocketRoute: 'ChromiumCDPWebSocketRoute',
|
|
162
|
+
ChromiumContentPostRoute: 'ChromiumContentPostRoute',
|
|
163
|
+
ChromiumDownloadPostRoute: 'ChromiumDownloadPostRoute',
|
|
164
|
+
ChromiumFunctionPostRoute: 'ChromiumFunctionPostRoute',
|
|
165
|
+
ChromiumJSONListGetRoute: 'ChromiumJSONListGetRoute',
|
|
166
|
+
ChromiumJSONNewPutRoute: 'ChromiumJSONNewPutRoute',
|
|
167
|
+
ChromiumJSONProtocolGetRoute: 'ChromiumJSONProtocolGetRoute',
|
|
168
|
+
ChromiumJSONVersionGetRoute: 'ChromiumJSONVersionGetRoute',
|
|
169
|
+
ChromiumPDFPostRoute: 'ChromiumPDFPostRoute',
|
|
170
|
+
ChromiumPageWebSocketRoute: 'ChromiumPageWebSocketRoute',
|
|
171
|
+
ChromiumPerformancePostRoute: 'ChromiumPerformancePostRoute',
|
|
172
|
+
ChromiumPlaywrightWebSocketRoute: 'ChromiumPlaywrightWebSocketRoute',
|
|
173
|
+
ChromiumScrapePostRoute: 'ChromiumScrapePostRoute',
|
|
174
|
+
ChromiumScreenshotPostRoute: 'ChromiumScreenshotPostRoute',
|
|
175
|
+
};
|
|
176
|
+
export const BrowserlessFirefoxRoutes = {
|
|
177
|
+
FirefoxPlaywrightWebSocketRoute: 'FirefoxPlaywrightWebSocketRoute',
|
|
178
|
+
};
|
|
179
|
+
export const BrowserlessWebKitRoutes = {
|
|
180
|
+
WebKitPlaywrightWebSocketRoute: 'WebKitPlaywrightWebSocketRoute',
|
|
181
|
+
};
|
|
182
|
+
export const BrowserlessManagementRoutes = {
|
|
183
|
+
ConfigGetRoute: 'ConfigGetRoute',
|
|
184
|
+
MetricsGetRoute: 'MetricsGetRoute',
|
|
185
|
+
MetricsTotalGetRoute: 'MetricsTotalGetRoute',
|
|
186
|
+
SessionsGetRoute: 'SessionsGetRoute',
|
|
187
|
+
StaticGetRoute: 'StaticGetRoute',
|
|
188
|
+
};
|
|
189
|
+
export const BrowserlessRoutes = {
|
|
190
|
+
...BrowserlessChromeRoutes,
|
|
191
|
+
...BrowserlessChromiumRoutes,
|
|
192
|
+
...BrowserlessFirefoxRoutes,
|
|
193
|
+
...BrowserlessWebKitRoutes,
|
|
194
|
+
...BrowserlessManagementRoutes,
|
|
195
|
+
};
|
package/build/utils.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare const readBody: (req: Request) => Promise<ReturnType<typeof safeP
|
|
|
38
38
|
* Lists the path of Chromes (stable) install since
|
|
39
39
|
* no library or utility out there does it including playwright.
|
|
40
40
|
*/
|
|
41
|
-
export declare const chromeExecutablePath: string;
|
|
41
|
+
export declare const chromeExecutablePath: () => string;
|
|
42
42
|
export declare const getRouteFiles: (config: Config) => Promise<string[][]>;
|
|
43
43
|
export declare const make404: (...messages: string[]) => string;
|
|
44
44
|
/**
|
package/build/utils.js
CHANGED
|
@@ -203,11 +203,16 @@ export const readBody = async (req) => {
|
|
|
203
203
|
* Lists the path of Chromes (stable) install since
|
|
204
204
|
* no library or utility out there does it including playwright.
|
|
205
205
|
*/
|
|
206
|
-
export const chromeExecutablePath =
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
206
|
+
export const chromeExecutablePath = () => {
|
|
207
|
+
if (process.platform === 'win32') {
|
|
208
|
+
// Windows always includes the ProgramFiles variable in the environment
|
|
209
|
+
return `${process.env['ProgramFiles']}\\Google\\Chrome\\Application\\chrome.exe`;
|
|
210
|
+
}
|
|
211
|
+
if (process.platform === 'darwin') {
|
|
212
|
+
return '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome';
|
|
213
|
+
}
|
|
214
|
+
return '/usr/bin/google-chrome-stable';
|
|
215
|
+
};
|
|
211
216
|
export const getRouteFiles = async (config) => {
|
|
212
217
|
const routes = config.getRoutes();
|
|
213
218
|
const foundRoutes = await fs
|
|
@@ -300,7 +305,7 @@ export const availableBrowsers = Promise.all([
|
|
|
300
305
|
exists(playwright.chromium.executablePath()),
|
|
301
306
|
exists(playwright.firefox.executablePath()),
|
|
302
307
|
exists(playwright.webkit.executablePath()),
|
|
303
|
-
exists(chromeExecutablePath),
|
|
308
|
+
exists(chromeExecutablePath()),
|
|
304
309
|
]).then(([chromiumExists, firefoxExists, webkitExists, chromeExists]) => {
|
|
305
310
|
const availableBrowsers = [];
|
|
306
311
|
if (chromiumExists) {
|
|
@@ -26,8 +26,7 @@ RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula sele
|
|
|
26
26
|
fonts-ubuntu \
|
|
27
27
|
fonts-wqy-zenhei
|
|
28
28
|
|
|
29
|
-
RUN
|
|
30
|
-
npx --yes playwright install-deps chromium &&\
|
|
29
|
+
RUN ./node_modules/.bin/playwright-core install --with-deps chromium &&\
|
|
31
30
|
npm run build &&\
|
|
32
31
|
npm run build:function &&\
|
|
33
32
|
npm prune production &&\
|
|
@@ -26,8 +26,7 @@ RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula sele
|
|
|
26
26
|
fonts-ubuntu \
|
|
27
27
|
fonts-wqy-zenhei
|
|
28
28
|
|
|
29
|
-
RUN
|
|
30
|
-
npx --yes playwright install-deps firefox &&\
|
|
29
|
+
RUN ./node_modules/.bin/playwright-core install --with-deps firefox &&\
|
|
31
30
|
npm run build &&\
|
|
32
31
|
npm prune production &&\
|
|
33
32
|
chown -R blessuser:blessuser $APP_DIR &&\
|
package/docker/multi/Dockerfile
CHANGED
|
@@ -29,14 +29,12 @@ RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula sele
|
|
|
29
29
|
# Chrome stable is only supported on non-ARM builds
|
|
30
30
|
# so it's installation is conditional on whether or not amd64
|
|
31
31
|
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
|
|
32
|
-
|
|
33
|
-
npx --yes playwright install chrome; \
|
|
32
|
+
./node_modules/.bin/playwright-core install --with-deps chrome; \
|
|
34
33
|
else \
|
|
35
34
|
rm -rf ./src/routes/chrome; \
|
|
36
35
|
fi
|
|
37
36
|
|
|
38
|
-
RUN
|
|
39
|
-
npx --yes playwright install-deps chromium firefox webkit &&\
|
|
37
|
+
RUN ./node_modules/.bin/playwright-core install --with-deps chromium firefox webkit &&\
|
|
40
38
|
npm run build &&\
|
|
41
39
|
npm run build:function &&\
|
|
42
40
|
npm prune production &&\
|
package/docker/webkit/Dockerfile
CHANGED
|
@@ -27,8 +27,7 @@ RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula sele
|
|
|
27
27
|
fonts-ubuntu \
|
|
28
28
|
fonts-wqy-zenhei
|
|
29
29
|
|
|
30
|
-
RUN
|
|
31
|
-
npx --yes playwright install-deps webkit &&\
|
|
30
|
+
RUN ./node_modules/.bin/playwright-core install --with-deps webkit &&\
|
|
32
31
|
npm run build &&\
|
|
33
32
|
npm prune production &&\
|
|
34
33
|
chown -R blessuser:blessuser $APP_DIR &&\
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@browserless.io/browserless",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0-beta-2",
|
|
4
4
|
"license": "SSPL",
|
|
5
5
|
"description": "The browserless platform",
|
|
6
6
|
"author": "browserless.io",
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"lint": "eslint . --ext .ts --fix",
|
|
31
31
|
"prepack": "npm run build:dev",
|
|
32
32
|
"prettier": "prettier '{src,functions,scripts,bin,external,bin}/**/*.{js,ts,json}' --log-level error --write",
|
|
33
|
-
"test": "cross-env DEBUG=quiet mocha"
|
|
33
|
+
"test": "cross-env DEBUG=quiet mocha",
|
|
34
|
+
"start": "env-cmd -f .env node build"
|
|
34
35
|
},
|
|
35
36
|
"files": [
|
|
36
37
|
"assets/*",
|
|
@@ -56,33 +57,32 @@
|
|
|
56
57
|
"http-proxy": "^1.18.1",
|
|
57
58
|
"lighthouse": "^11.1.0",
|
|
58
59
|
"micromatch": "^4.0.4",
|
|
59
|
-
"playwright-core": "^1.
|
|
60
|
-
"puppeteer-core": "^22.
|
|
60
|
+
"playwright-core": "^1.42.0",
|
|
61
|
+
"puppeteer-core": "^22.3.0",
|
|
61
62
|
"puppeteer-extra": "^3.3.6",
|
|
62
63
|
"puppeteer-extra-plugin-stealth": "^2.11.2",
|
|
63
64
|
"queue": "^7.0.0",
|
|
64
65
|
"systeminformation": "^5.22.0"
|
|
65
66
|
},
|
|
66
67
|
"optionalDependencies": {
|
|
67
|
-
"@types/chai": "^4.3.
|
|
68
|
+
"@types/chai": "^4.3.12",
|
|
68
69
|
"@types/debug": "^4.1.12",
|
|
69
70
|
"@types/gradient-string": "^1.1.5",
|
|
70
71
|
"@types/http-proxy": "^1.17.14",
|
|
71
72
|
"@types/micromatch": "^4.0.6",
|
|
72
73
|
"@types/mocha": "^10.0.6",
|
|
73
|
-
"@types/node": "^20.11.
|
|
74
|
+
"@types/node": "^20.11.21",
|
|
74
75
|
"@types/sinon": "^17.0.3",
|
|
75
|
-
"@typescript-eslint/eslint-plugin": "^7.
|
|
76
|
-
"@typescript-eslint/parser": "^
|
|
76
|
+
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
|
77
|
+
"@typescript-eslint/parser": "^7.1.0",
|
|
77
78
|
"assert": "^2.0.0",
|
|
78
79
|
"chai": "^5.1.0",
|
|
79
80
|
"cross-env": "^7.0.3",
|
|
80
81
|
"env-cmd": "^10.1.0",
|
|
81
82
|
"esbuild": "^0.20.1",
|
|
82
83
|
"esbuild-plugin-polyfill-node": "^0.3.0",
|
|
83
|
-
"eslint": "^8.
|
|
84
|
-
"eslint-plugin-
|
|
85
|
-
"eslint-plugin-typescript-sort-keys": "^3.1.0",
|
|
84
|
+
"eslint": "^8.57.0",
|
|
85
|
+
"eslint-plugin-typescript-sort-keys": "^3.2.0",
|
|
86
86
|
"extract-zip": "^2.0.1",
|
|
87
87
|
"marked": "^12.0.0",
|
|
88
88
|
"mocha": "^10.3.0",
|