@browserless.io/browserless 2.5.0 → 2.6.1-beta-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -1
- package/README.md +55 -36
- package/build/config.d.ts +2 -2
- package/build/config.js +3 -3
- package/build/data/classes.json +1 -1
- package/build/data/selectors.json +1 -1
- package/build/http.d.ts +1 -0
- package/build/http.js +1 -0
- package/build/routes/chrome/http/content.post.body.json +8 -8
- package/build/routes/chrome/http/pdf.post.body.json +8 -8
- package/build/routes/chrome/http/scrape.post.body.json +8 -8
- package/build/routes/chrome/http/screenshot.post.body.json +9 -9
- 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 +9 -9
- package/build/routes/management/http/active.get.d.ts +16 -0
- package/build/routes/management/http/active.get.js +17 -0
- package/build/routes/management/tests/management.spec.js +7 -0
- package/build/server.js +1 -1
- package/build/shared/utils/function/handler.js +3 -2
- package/build/types.d.ts +6 -4
- package/build/types.js +1 -0
- package/build/utils.d.ts +1 -1
- package/docker/base/Dockerfile +1 -1
- package/extensions/ublock/1p-filters.html +4 -3
- package/extensions/ublock/3p-filters.html +3 -3
- package/extensions/ublock/_locales/ar/messages.json +16 -4
- package/extensions/ublock/_locales/az/messages.json +16 -4
- package/extensions/ublock/_locales/be/messages.json +19 -7
- package/extensions/ublock/_locales/bg/messages.json +16 -4
- package/extensions/ublock/_locales/bn/messages.json +33 -21
- package/extensions/ublock/_locales/br_FR/messages.json +33 -21
- package/extensions/ublock/_locales/bs/messages.json +16 -4
- package/extensions/ublock/_locales/ca/messages.json +16 -4
- package/extensions/ublock/_locales/cs/messages.json +16 -4
- package/extensions/ublock/_locales/cv/messages.json +16 -4
- package/extensions/ublock/_locales/cy/messages.json +16 -4
- package/extensions/ublock/_locales/da/messages.json +21 -9
- package/extensions/ublock/_locales/de/messages.json +17 -5
- package/extensions/ublock/_locales/el/messages.json +16 -4
- package/extensions/ublock/_locales/en/messages.json +16 -4
- package/extensions/ublock/_locales/en_GB/messages.json +16 -4
- package/extensions/ublock/_locales/eo/messages.json +17 -5
- package/extensions/ublock/_locales/es/messages.json +16 -4
- package/extensions/ublock/_locales/et/messages.json +16 -4
- package/extensions/ublock/_locales/eu/messages.json +16 -4
- package/extensions/ublock/_locales/fa/messages.json +24 -12
- package/extensions/ublock/_locales/fi/messages.json +16 -4
- package/extensions/ublock/_locales/fil/messages.json +16 -4
- package/extensions/ublock/_locales/fr/messages.json +16 -4
- package/extensions/ublock/_locales/fy/messages.json +16 -4
- package/extensions/ublock/_locales/gl/messages.json +16 -4
- package/extensions/ublock/_locales/gu/messages.json +16 -4
- package/extensions/ublock/_locales/he/messages.json +25 -13
- package/extensions/ublock/_locales/hi/messages.json +31 -19
- package/extensions/ublock/_locales/hr/messages.json +16 -4
- package/extensions/ublock/_locales/hu/messages.json +16 -4
- package/extensions/ublock/_locales/hy/messages.json +17 -5
- package/extensions/ublock/_locales/id/messages.json +16 -4
- package/extensions/ublock/_locales/it/messages.json +17 -5
- package/extensions/ublock/_locales/ja/messages.json +16 -4
- package/extensions/ublock/_locales/ka/messages.json +16 -4
- package/extensions/ublock/_locales/kk/messages.json +16 -4
- package/extensions/ublock/_locales/kn/messages.json +74 -62
- package/extensions/ublock/_locales/ko/messages.json +16 -4
- package/extensions/ublock/_locales/lt/messages.json +23 -11
- package/extensions/ublock/_locales/lv/messages.json +16 -4
- package/extensions/ublock/_locales/mk/messages.json +16 -4
- package/extensions/ublock/_locales/ml/messages.json +19 -7
- package/extensions/ublock/_locales/mr/messages.json +16 -4
- package/extensions/ublock/_locales/ms/messages.json +16 -4
- package/extensions/ublock/_locales/nb/messages.json +16 -4
- package/extensions/ublock/_locales/nl/messages.json +16 -4
- package/extensions/ublock/_locales/no/messages.json +16 -4
- package/extensions/ublock/_locales/oc/messages.json +16 -4
- package/extensions/ublock/_locales/pa/messages.json +16 -4
- package/extensions/ublock/_locales/pl/messages.json +17 -5
- package/extensions/ublock/_locales/pt_BR/messages.json +16 -4
- package/extensions/ublock/_locales/pt_PT/messages.json +16 -4
- package/extensions/ublock/_locales/ro/messages.json +17 -5
- package/extensions/ublock/_locales/ru/messages.json +16 -4
- package/extensions/ublock/_locales/si/messages.json +16 -4
- package/extensions/ublock/_locales/sk/messages.json +16 -4
- package/extensions/ublock/_locales/sl/messages.json +16 -4
- package/extensions/ublock/_locales/so/messages.json +16 -4
- package/extensions/ublock/_locales/sq/messages.json +16 -4
- package/extensions/ublock/_locales/sr/messages.json +16 -4
- package/extensions/ublock/_locales/sv/messages.json +20 -8
- package/extensions/ublock/_locales/sw/messages.json +16 -4
- package/extensions/ublock/_locales/ta/messages.json +16 -4
- package/extensions/ublock/_locales/te/messages.json +16 -4
- package/extensions/ublock/_locales/th/messages.json +42 -30
- package/extensions/ublock/_locales/tr/messages.json +19 -7
- package/extensions/ublock/_locales/uk/messages.json +16 -4
- package/extensions/ublock/_locales/ur/messages.json +16 -4
- package/extensions/ublock/_locales/vi/messages.json +16 -4
- package/extensions/ublock/_locales/zh_CN/messages.json +16 -4
- package/extensions/ublock/_locales/zh_TW/messages.json +42 -30
- package/extensions/ublock/assets/assets.json +95 -78
- package/extensions/ublock/assets/resources/scriptlets.js +70 -24
- package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +6258 -3453
- package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +277 -40
- package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +8 -32
- package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +107 -12
- package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +1160 -954
- package/extensions/ublock/assets/ublock/badlists.txt +1 -2
- package/extensions/ublock/assets/ublock/badware.min.txt +395 -270
- package/extensions/ublock/assets/ublock/filters.min.txt +1176 -1238
- package/extensions/ublock/assets/ublock/privacy.min.txt +32 -31
- package/extensions/ublock/assets/ublock/quick-fixes.min.txt +120 -110
- package/extensions/ublock/assets/ublock/unbreak.min.txt +75 -36
- package/extensions/ublock/css/1p-filters.css +2 -1
- package/extensions/ublock/css/3p-filters.css +1 -16
- package/extensions/ublock/css/advanced-settings.css +1 -0
- package/extensions/ublock/css/asset-viewer.css +1 -0
- package/extensions/ublock/css/code-viewer.css +1 -0
- package/extensions/ublock/css/codemirror.css +37 -10
- package/extensions/ublock/css/common.css +36 -2
- package/extensions/ublock/css/dashboard.css +9 -3
- package/extensions/ublock/css/devtools.css +1 -0
- package/extensions/ublock/css/document-blocked.css +3 -3
- package/extensions/ublock/css/dom-inspector.css +1 -0
- package/extensions/ublock/css/dyna-rules.css +1 -0
- package/extensions/ublock/css/epicker-ui.css +76 -66
- package/extensions/ublock/css/fa-icons.css +1 -0
- package/extensions/ublock/css/logger-ui.css +2 -0
- package/extensions/ublock/css/popup-fenix.css +1 -0
- package/extensions/ublock/css/whitelist.css +1 -0
- package/extensions/ublock/dashboard.html +20 -13
- package/extensions/ublock/devtools.html +2 -0
- package/extensions/ublock/dyna-rules.html +2 -2
- package/extensions/ublock/img/flags-of-the-world/np.png +0 -0
- package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +1 -0
- package/extensions/ublock/js/1p-filters.js +72 -23
- package/extensions/ublock/js/3p-filters.js +71 -25
- package/extensions/ublock/js/asset-viewer.js +1 -0
- package/extensions/ublock/js/assets.js +83 -89
- package/extensions/ublock/js/background.js +20 -27
- package/extensions/ublock/js/base64-custom.js +1 -102
- package/extensions/ublock/js/benchmarks.js +36 -21
- package/extensions/ublock/js/biditrie.js +8 -23
- package/extensions/ublock/js/broadcast.js +2 -4
- package/extensions/ublock/js/cachestorage.js +594 -396
- package/extensions/ublock/js/codemirror/search.js +49 -37
- package/extensions/ublock/js/codemirror/ubo-static-filtering.js +233 -215
- package/extensions/ublock/js/contentscript-extra.js +31 -1
- package/extensions/ublock/js/cosmetic-filtering.js +35 -33
- package/extensions/ublock/js/dashboard.js +11 -7
- package/extensions/ublock/js/devtools.js +22 -0
- package/extensions/ublock/js/dom.js +2 -2
- package/extensions/ublock/js/dyna-rules.js +17 -16
- package/extensions/ublock/js/epicker-ui.js +41 -16
- package/extensions/ublock/js/fa-icons.js +1 -0
- package/extensions/ublock/js/hntrie.js +10 -25
- package/extensions/ublock/js/i18n.js +15 -15
- package/extensions/ublock/js/logger-ui.js +9 -6
- package/extensions/ublock/js/messaging.js +51 -26
- package/extensions/ublock/js/pagestore.js +21 -23
- package/extensions/ublock/js/popup-fenix.js +35 -22
- package/extensions/ublock/js/redirect-engine.js +15 -30
- package/extensions/ublock/js/reverselookup.js +1 -1
- package/extensions/ublock/js/s14e-serializer.js +1405 -0
- package/extensions/ublock/js/scriptlet-filtering-core.js +1 -1
- package/extensions/ublock/js/scriptlets/epicker.js +27 -18
- package/extensions/ublock/js/settings.js +32 -21
- package/extensions/ublock/js/start.js +121 -62
- package/extensions/ublock/js/static-ext-filtering-db.js +6 -6
- package/extensions/ublock/js/static-ext-filtering.js +17 -28
- package/extensions/ublock/js/static-filtering-parser.js +26 -4
- package/extensions/ublock/js/static-net-filtering.js +69 -168
- package/extensions/ublock/js/storage.js +178 -155
- package/extensions/ublock/js/traffic.js +11 -7
- package/extensions/ublock/js/vapi-background.js +49 -62
- package/extensions/ublock/js/vapi-client.js +13 -16
- package/extensions/ublock/js/webext.js +10 -2
- package/extensions/ublock/js/whitelist.js +27 -25
- package/extensions/ublock/lib/publicsuffixlist/publicsuffixlist.js +3 -7
- package/extensions/ublock/manifest.json +2 -1
- package/extensions/ublock/web_accessible_resources/epicker-ui.html +5 -8
- package/extensions/ublock/whitelist.html +3 -4
- package/package.json +12 -12
- package/scripts/build-function.js +42 -12
- package/src/config.ts +3 -4
- package/src/http.ts +1 -0
- package/src/routes/management/http/active.get.ts +30 -0
- package/src/routes/management/tests/management.spec.ts +13 -0
- package/src/server.ts +3 -1
- package/src/shared/utils/function/handler.ts +5 -2
- package/src/types.ts +2 -1
- package/static/docs/swagger.json +57 -11
- package/static/docs/swagger.min.json +56 -10
- package/static/function/client.js +4155 -3350
- package/static/function/index.html +33094 -1
- package/extensions/ublock/_locales/ku/messages.json +0 -1294
|
@@ -1,18 +1,48 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
/* eslint-disable no-undef */
|
|
3
|
+
|
|
2
4
|
'use strict';
|
|
3
5
|
|
|
4
6
|
import { build } from 'esbuild';
|
|
7
|
+
import fs from 'fs/promises';
|
|
8
|
+
import { join } from 'path';
|
|
5
9
|
import { polyfillNode } from 'esbuild-plugin-polyfill-node';
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
const html = (contents) => `<!DOCTYPE html>
|
|
12
|
+
<html lang="en">
|
|
13
|
+
<head>
|
|
14
|
+
<meta charset="UTF-8">
|
|
15
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
16
|
+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
17
|
+
<title>browserless.io function runner</title>
|
|
18
|
+
<script type="module">
|
|
19
|
+
${contents}
|
|
20
|
+
</script>
|
|
21
|
+
</head>
|
|
22
|
+
<body>
|
|
23
|
+
</body>
|
|
24
|
+
</html>
|
|
25
|
+
`;
|
|
26
|
+
|
|
27
|
+
const entryPoints = ['src/shared/utils/function/client.ts'];
|
|
28
|
+
const outfile = join(process.cwd(), 'static/function/client.js');
|
|
29
|
+
const htmlLocation = join(process.cwd(), 'static/function/index.html');
|
|
30
|
+
|
|
31
|
+
(async () => {
|
|
32
|
+
await build({
|
|
33
|
+
bundle: true,
|
|
34
|
+
entryPoints,
|
|
35
|
+
outfile,
|
|
36
|
+
plugins: [
|
|
37
|
+
polyfillNode({
|
|
38
|
+
globals: {
|
|
39
|
+
process: false,
|
|
40
|
+
},
|
|
41
|
+
}),
|
|
42
|
+
],
|
|
43
|
+
});
|
|
44
|
+
const contents = await fs.readFile(outfile, 'utf-8');
|
|
45
|
+
const final = html(contents);
|
|
46
|
+
|
|
47
|
+
await fs.writeFile(htmlLocation, final);
|
|
48
|
+
})();
|
package/src/config.ts
CHANGED
|
@@ -399,7 +399,7 @@ export class Config extends EventEmitter {
|
|
|
399
399
|
: `http://${this.host}:${this.port}`;
|
|
400
400
|
|
|
401
401
|
/**
|
|
402
|
-
* Returns the
|
|
402
|
+
* Returns the fully-qualified URL for the
|
|
403
403
|
* external address that browserless might be
|
|
404
404
|
* running behind *or* the server address if
|
|
405
405
|
* no external URL is provided.
|
|
@@ -416,11 +416,10 @@ export class Config extends EventEmitter {
|
|
|
416
416
|
* @param address The fully-qualified URL, eg https://www.example.com/
|
|
417
417
|
* @returns {string} The address
|
|
418
418
|
*/
|
|
419
|
-
public setExternalAddress = (address: string) =>
|
|
420
|
-
this.external = address;
|
|
419
|
+
public setExternalAddress = (address: string) => (this.external = address);
|
|
421
420
|
|
|
422
421
|
/**
|
|
423
|
-
* Returns the
|
|
422
|
+
* Returns the fully-qualified WebSocket URL for the
|
|
424
423
|
* external address that browserless might be
|
|
425
424
|
* running behind *or* the server address if
|
|
426
425
|
* no external URL is provided.
|
package/src/http.ts
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
APITags,
|
|
3
|
+
BrowserlessRoutes,
|
|
4
|
+
HTTPManagementRoutes,
|
|
5
|
+
HTTPRoute,
|
|
6
|
+
Methods,
|
|
7
|
+
Request,
|
|
8
|
+
contentTypes,
|
|
9
|
+
dedent,
|
|
10
|
+
writeResponse,
|
|
11
|
+
} from '@browserless.io/browserless';
|
|
12
|
+
import { ServerResponse } from 'http';
|
|
13
|
+
|
|
14
|
+
export default class ActiveGetRoute extends HTTPRoute {
|
|
15
|
+
name = BrowserlessRoutes.ActiveGetRoute;
|
|
16
|
+
accepts = [contentTypes.any];
|
|
17
|
+
auth = true;
|
|
18
|
+
browser = null;
|
|
19
|
+
concurrency = false;
|
|
20
|
+
contentTypes = [contentTypes.text];
|
|
21
|
+
description = dedent(`
|
|
22
|
+
Returns a simple "204" HTTP code, with no response, indicating that the service itself is up and running.
|
|
23
|
+
Useful for liveliness probes or other external checks.
|
|
24
|
+
`);
|
|
25
|
+
method = Methods.get;
|
|
26
|
+
path = HTTPManagementRoutes.active;
|
|
27
|
+
tags = [APITags.management];
|
|
28
|
+
handler = async (_req: Request, res: ServerResponse): Promise<void> =>
|
|
29
|
+
writeResponse(res, 204, '', contentTypes.text);
|
|
30
|
+
}
|
|
@@ -68,4 +68,17 @@ describe('Management APIs', function () {
|
|
|
68
68
|
},
|
|
69
69
|
);
|
|
70
70
|
});
|
|
71
|
+
|
|
72
|
+
it('allows requests to /active', async () => {
|
|
73
|
+
await start();
|
|
74
|
+
|
|
75
|
+
await fetch('http://localhost:3000/active?token=6R0W53R135510').then(
|
|
76
|
+
async (res) => {
|
|
77
|
+
expect(res.headers.get('content-type')).to.equal(
|
|
78
|
+
'text/plain; charset=UTF-8',
|
|
79
|
+
);
|
|
80
|
+
expect(res.status).to.equal(204);
|
|
81
|
+
},
|
|
82
|
+
);
|
|
83
|
+
});
|
|
71
84
|
});
|
package/src/server.ts
CHANGED
|
@@ -143,7 +143,9 @@ export class HTTPServer extends EventEmitter {
|
|
|
143
143
|
const route = await this.router.getRouteForHTTPRequest(req);
|
|
144
144
|
|
|
145
145
|
if (!route) {
|
|
146
|
-
this.log(
|
|
146
|
+
this.log(
|
|
147
|
+
`No matching HTTP route handler for "${req.method}: ${req.parsed.href}"`,
|
|
148
|
+
);
|
|
147
149
|
writeResponse(res, 404, 'Not Found');
|
|
148
150
|
return Promise.resolve();
|
|
149
151
|
}
|
|
@@ -88,7 +88,7 @@ export default (
|
|
|
88
88
|
*/
|
|
89
89
|
page.on('request', async (request) => {
|
|
90
90
|
const requestUrl = request.url();
|
|
91
|
-
debug(
|
|
91
|
+
debug(`Outbound Page Request: "${requestUrl}"`);
|
|
92
92
|
if (requestUrl.startsWith(functionRequestPath)) {
|
|
93
93
|
const filename = path.basename(requestUrl);
|
|
94
94
|
if (filename === functionCodeJS) {
|
|
@@ -116,11 +116,11 @@ export default (
|
|
|
116
116
|
status: 404,
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
|
+
debug(`Request: "${requestUrl}" no responder found, continuing...`);
|
|
119
120
|
return request.continue();
|
|
120
121
|
});
|
|
121
122
|
|
|
122
123
|
page.on('response', (res) => {
|
|
123
|
-
debug(`/function.js: Page Response: "${res.url()}"`);
|
|
124
124
|
if (res.status() !== 200) {
|
|
125
125
|
debug(`Received a non-200 response for request "${res.url()}"`);
|
|
126
126
|
}
|
|
@@ -144,6 +144,9 @@ export default (
|
|
|
144
144
|
import('./' + functionCodeJS),
|
|
145
145
|
]);
|
|
146
146
|
console.log('/function.js: imported successfully.');
|
|
147
|
+
console.log(
|
|
148
|
+
`/function.js: BrowserlessFunctionRunner: ${typeof window.BrowserlessFunctionRunner}`,
|
|
149
|
+
);
|
|
147
150
|
const helper = new window.BrowserlessFunctionRunner();
|
|
148
151
|
const options = JSON.parse(serializedOptions);
|
|
149
152
|
console.log('/function.js: executing puppeteer code.');
|
package/src/types.ts
CHANGED
|
@@ -231,7 +231,7 @@ abstract class BasicHTTPRoute extends Route {
|
|
|
231
231
|
abstract accepts: Array<contentTypes>;
|
|
232
232
|
|
|
233
233
|
/**
|
|
234
|
-
* The Content-Types that this route will
|
|
234
|
+
* The Content-Types that this route will respond with, and must match the Accepts
|
|
235
235
|
* Header from a client if present. If a request comes in with an Accepts of "application/json"
|
|
236
236
|
* then the contentTypes here would need to include ["application/json"] in order to not 404.
|
|
237
237
|
*/
|
|
@@ -650,6 +650,7 @@ export const BrowserlessWebKitRoutes = {
|
|
|
650
650
|
};
|
|
651
651
|
|
|
652
652
|
export const BrowserlessManagementRoutes = {
|
|
653
|
+
ActiveGetRoute: 'ActiveGetRoute',
|
|
653
654
|
ConfigGetRoute: 'ConfigGetRoute',
|
|
654
655
|
MetricsGetRoute: 'MetricsGetRoute',
|
|
655
656
|
MetricsTotalGetRoute: 'MetricsTotalGetRoute',
|