browserless 10.11.1 → 10.11.3
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 +0 -1
- package/package.json +8 -9
- package/src/driver.js +2 -18
- package/src/index.js +4 -8
package/README.md
CHANGED
|
@@ -46,7 +46,6 @@ This package integrates and re-exports functionality from other `@browserless/*`
|
|
|
46
46
|
| `@browserless/goto` | Page navigation with smart waiting strategies, ad blocking, and evasion techniques |
|
|
47
47
|
| `@browserless/screenshot` | Screenshot capture with overlays, device emulation, and code highlighting |
|
|
48
48
|
| `@browserless/pdf` | PDF generation with customizable margins and scaling |
|
|
49
|
-
| `@browserless/capture` | Tab recording via extension + `tabCapture` (uses default browser context) |
|
|
50
49
|
| `@browserless/errors` | Standardized error handling and timeout errors |
|
|
51
50
|
|
|
52
51
|
## License
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "browserless",
|
|
3
3
|
"description": "The headless Chrome/Chromium driver on top of Puppeteer. Take screenshots, generate PDFs, extract text and HTML with a production-ready API.",
|
|
4
4
|
"homepage": "https://browserless.js.org",
|
|
5
|
-
"version": "10.11.
|
|
5
|
+
"version": "10.11.3",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"author": {
|
|
8
8
|
"email": "hello@microlink.io",
|
|
@@ -34,11 +34,10 @@
|
|
|
34
34
|
"web-scraping"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@browserless/
|
|
38
|
-
"@browserless/
|
|
39
|
-
"@browserless/
|
|
40
|
-
"@browserless/
|
|
41
|
-
"@browserless/screenshot": "^10.11.1",
|
|
37
|
+
"@browserless/errors": "^10.11.3",
|
|
38
|
+
"@browserless/goto": "^10.11.3",
|
|
39
|
+
"@browserless/pdf": "^10.11.3",
|
|
40
|
+
"@browserless/screenshot": "^10.11.3",
|
|
42
41
|
"debug-logfmt": "~1.4.8",
|
|
43
42
|
"kill-process-group": "~1.0.13",
|
|
44
43
|
"p-reflect": "~2.1.0",
|
|
@@ -48,13 +47,13 @@
|
|
|
48
47
|
"superlock": "~1.2.6"
|
|
49
48
|
},
|
|
50
49
|
"devDependencies": {
|
|
51
|
-
"@browserless/test": "^10.11.
|
|
50
|
+
"@browserless/test": "^10.11.3",
|
|
52
51
|
"ava": "5",
|
|
53
52
|
"ps-list": "7",
|
|
54
53
|
"tinyspawn": "latest"
|
|
55
54
|
},
|
|
56
55
|
"engines": {
|
|
57
|
-
"node": ">=
|
|
56
|
+
"node": ">= 24"
|
|
58
57
|
},
|
|
59
58
|
"files": [
|
|
60
59
|
"src"
|
|
@@ -68,5 +67,5 @@
|
|
|
68
67
|
"timeout": "2m",
|
|
69
68
|
"workerThreads": false
|
|
70
69
|
},
|
|
71
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "2f86ba8d35c9b92c3c19e310282a3d24d0e0c7e0"
|
|
72
71
|
}
|
package/src/driver.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
const killProcessGroup = require('kill-process-group')
|
|
4
|
-
const createCapture = require('@browserless/capture')
|
|
5
4
|
const debug = require('debug-logfmt')('browserless')
|
|
6
5
|
const requireOneOf = require('require-one-of')
|
|
7
6
|
const pReflect = require('p-reflect')
|
|
@@ -43,24 +42,9 @@ const defaultArgs = [
|
|
|
43
42
|
'PushMessaging',
|
|
44
43
|
'site-per-process', // Disables OOPIF. https://www.chromium.org/Home/chromium-security/site-isolation
|
|
45
44
|
'WebPayments'
|
|
46
|
-
].join(',')}
|
|
47
|
-
`--allowlisted-extension-id=${createCapture.extensionId}`,
|
|
48
|
-
`--disable-extensions-except=${createCapture.extensionPath}`,
|
|
49
|
-
`--load-extension=${createCapture.extensionPath}`
|
|
45
|
+
].join(',')}`
|
|
50
46
|
]
|
|
51
47
|
|
|
52
|
-
const normalizeIgnoreDefaultArgs = ignoreDefaultArgs => {
|
|
53
|
-
if (ignoreDefaultArgs === true) return true
|
|
54
|
-
|
|
55
|
-
const required = ['--disable-extensions']
|
|
56
|
-
|
|
57
|
-
if (Array.isArray(ignoreDefaultArgs)) {
|
|
58
|
-
return [...new Set([...ignoreDefaultArgs, ...required])]
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return required
|
|
62
|
-
}
|
|
63
|
-
|
|
64
48
|
const spawn = ({
|
|
65
49
|
args = defaultArgs,
|
|
66
50
|
headless = true,
|
|
@@ -74,7 +58,7 @@ const spawn = ({
|
|
|
74
58
|
puppeteer[mode]({
|
|
75
59
|
args,
|
|
76
60
|
headless,
|
|
77
|
-
ignoreDefaultArgs
|
|
61
|
+
ignoreDefaultArgs,
|
|
78
62
|
ignoreHTTPSErrors,
|
|
79
63
|
waitForInitialPage,
|
|
80
64
|
...launchOpts
|
package/src/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
const { ensureError, browserTimeout } = require('@browserless/errors')
|
|
4
|
-
const createCapture = require('@browserless/capture')
|
|
5
4
|
const createScreenshot = require('@browserless/screenshot')
|
|
6
5
|
const debug = require('debug-logfmt')('browserless')
|
|
7
6
|
const createGoto = require('@browserless/goto')
|
|
@@ -79,11 +78,9 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
|
|
|
79
78
|
|
|
80
79
|
const getBrowserContext = () => _contextPromise
|
|
81
80
|
|
|
82
|
-
const createPage = async
|
|
81
|
+
const createPage = async name => {
|
|
83
82
|
const duration = debug.duration('createPage')
|
|
84
|
-
const browserContext =
|
|
85
|
-
? (await getBrowser()).defaultBrowserContext()
|
|
86
|
-
: await getBrowserContext()
|
|
83
|
+
const browserContext = await getBrowserContext()
|
|
87
84
|
const page = await browserContext.newPage()
|
|
88
85
|
const browser = typeof page.browser === 'function' ? page.browser() : undefined
|
|
89
86
|
const metadata = {
|
|
@@ -106,7 +103,7 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
|
|
|
106
103
|
}
|
|
107
104
|
}
|
|
108
105
|
|
|
109
|
-
const withPage = (fn, { timeout: evaluateTimeout
|
|
106
|
+
const withPage = (fn, { timeout: evaluateTimeout } = {}) => {
|
|
110
107
|
const name = fn.name || 'anonymous'
|
|
111
108
|
|
|
112
109
|
return async (...args) => {
|
|
@@ -117,7 +114,7 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
|
|
|
117
114
|
let closePageTimeout
|
|
118
115
|
|
|
119
116
|
try {
|
|
120
|
-
page = await createPage(name
|
|
117
|
+
page = await createPage(name)
|
|
121
118
|
closePageTimeout = setTimeout(() => {
|
|
122
119
|
closePage(page, name).catch(error => {
|
|
123
120
|
const { message, code, name } = ensureError(error)
|
|
@@ -195,7 +192,6 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
|
|
|
195
192
|
goto,
|
|
196
193
|
html: evaluate(page => page.content()),
|
|
197
194
|
page: createPage,
|
|
198
|
-
capture: withPage(createCapture({ goto }), { useDefaultContext: true }),
|
|
199
195
|
pdf: withPage(createPdf({ goto })),
|
|
200
196
|
screenshot: withPage(createScreenshot({ goto })),
|
|
201
197
|
text: evaluate(page => page.evaluate(() => document.body.innerText)),
|