@browserless.io/browserless 2.0.0-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 +674 -0
- package/LICENSE +6 -0
- package/README.md +132 -0
- package/assets/logo.png +0 -0
- package/bin/browserless.js +227 -0
- package/browser.json +7 -0
- package/build/browserless.d.ts +33 -0
- package/build/browserless.js +146 -0
- package/build/browsers/cdp-chromium.d.ts +41 -0
- package/build/browsers/cdp-chromium.js +287 -0
- package/build/browsers/index.d.ts +26 -0
- package/build/browsers/index.js +183 -0
- package/build/browsers/playwright-chromium.d.ts +34 -0
- package/build/browsers/playwright-chromium.js +106 -0
- package/build/browsers/playwright-firefox.d.ts +34 -0
- package/build/browsers/playwright-firefox.js +101 -0
- package/build/browsers/playwright-webkit.d.ts +34 -0
- package/build/browsers/playwright-webkit.js +101 -0
- package/build/config.d.ts +138 -0
- package/build/config.js +349 -0
- package/build/constants.d.ts +4 -0
- package/build/constants.js +4 -0
- package/build/data/classes.json +1 -0
- package/build/data/selectors.json +1 -0
- package/build/exports.d.ts +20 -0
- package/build/exports.js +22 -0
- package/build/file-system.d.ts +24 -0
- package/build/file-system.js +46 -0
- package/build/hooks.d.ts +5 -0
- package/build/hooks.js +20 -0
- package/build/http.d.ts +175 -0
- package/build/http.js +104 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +39 -0
- package/build/limiter.d.ts +24 -0
- package/build/limiter.js +147 -0
- package/build/limiter.spec.d.ts +1 -0
- package/build/limiter.spec.js +241 -0
- package/build/metrics.d.ts +24 -0
- package/build/metrics.js +86 -0
- package/build/metrics.spec.d.ts +1 -0
- package/build/metrics.spec.js +35 -0
- package/build/mime-types.d.ts +1 -0
- package/build/mime-types.js +328 -0
- package/build/monitoring.d.ts +13 -0
- package/build/monitoring.js +38 -0
- package/build/routes/chromium/http/content-post.body.json +514 -0
- package/build/routes/chromium/http/content-post.d.ts +34 -0
- package/build/routes/chromium/http/content-post.js +109 -0
- package/build/routes/chromium/http/content-post.query.json +183 -0
- package/build/routes/chromium/http/content-post.response.json +5 -0
- package/build/routes/chromium/http/download-post.body.json +32 -0
- package/build/routes/chromium/http/download-post.d.ts +16 -0
- package/build/routes/chromium/http/download-post.js +92 -0
- package/build/routes/chromium/http/download-post.query.json +120 -0
- package/build/routes/chromium/http/download-post.response.json +4 -0
- package/build/routes/chromium/http/function-post.body.json +32 -0
- package/build/routes/chromium/http/function-post.d.ts +18 -0
- package/build/routes/chromium/http/function-post.js +53 -0
- package/build/routes/chromium/http/function-post.query.json +120 -0
- package/build/routes/chromium/http/function-post.response.json +4 -0
- package/build/routes/chromium/http/pdf-post.body.json +654 -0
- package/build/routes/chromium/http/pdf-post.d.ts +35 -0
- package/build/routes/chromium/http/pdf-post.js +107 -0
- package/build/routes/chromium/http/pdf-post.query.json +120 -0
- package/build/routes/chromium/http/pdf-post.response.json +5 -0
- package/build/routes/chromium/http/performance.body.json +26 -0
- package/build/routes/chromium/http/performance.d.ts +17 -0
- package/build/routes/chromium/http/performance.js +30 -0
- package/build/routes/chromium/http/performance.query.json +120 -0
- package/build/routes/chromium/http/performance.response.json +7 -0
- package/build/routes/chromium/http/scrape-post.body.json +561 -0
- package/build/routes/chromium/http/scrape-post.d.ts +106 -0
- package/build/routes/chromium/http/scrape-post.js +205 -0
- package/build/routes/chromium/http/scrape-post.query.json +183 -0
- package/build/routes/chromium/http/scrape-post.response.json +325 -0
- package/build/routes/chromium/http/screenshot-post.body.json +604 -0
- package/build/routes/chromium/http/screenshot-post.d.ts +37 -0
- package/build/routes/chromium/http/screenshot-post.js +124 -0
- package/build/routes/chromium/http/screenshot-post.query.json +120 -0
- package/build/routes/chromium/http/screenshot-post.response.json +5 -0
- package/build/routes/chromium/tests/content.spec.d.ts +1 -0
- package/build/routes/chromium/tests/content.spec.js +285 -0
- package/build/routes/chromium/tests/download.spec.d.ts +1 -0
- package/build/routes/chromium/tests/download.spec.js +67 -0
- package/build/routes/chromium/tests/function.spec.d.ts +1 -0
- package/build/routes/chromium/tests/function.spec.js +245 -0
- package/build/routes/chromium/tests/pdf.spec.d.ts +1 -0
- package/build/routes/chromium/tests/pdf.spec.js +333 -0
- package/build/routes/chromium/tests/performance.spec.d.ts +1 -0
- package/build/routes/chromium/tests/performance.spec.js +124 -0
- package/build/routes/chromium/tests/scrape.spec.d.ts +1 -0
- package/build/routes/chromium/tests/scrape.spec.js +354 -0
- package/build/routes/chromium/tests/screenshot.spec.d.ts +1 -0
- package/build/routes/chromium/tests/screenshot.spec.js +339 -0
- package/build/routes/chromium/tests/websocket.spec.d.ts +1 -0
- package/build/routes/chromium/tests/websocket.spec.js +309 -0
- package/build/routes/chromium/utils/function/client.d.ts +26 -0
- package/build/routes/chromium/utils/function/client.js +66 -0
- package/build/routes/chromium/utils/function/handler.d.ts +18 -0
- package/build/routes/chromium/utils/function/handler.js +95 -0
- package/build/routes/chromium/utils/performance/child.d.ts +1 -0
- package/build/routes/chromium/utils/performance/child.js +29 -0
- package/build/routes/chromium/utils/performance/main.d.ts +3 -0
- package/build/routes/chromium/utils/performance/main.js +65 -0
- package/build/routes/chromium/utils/performance/types.d.ts +21 -0
- package/build/routes/chromium/utils/performance/types.js +1 -0
- package/build/routes/chromium/ws/browser.d.ts +6 -0
- package/build/routes/chromium/ws/browser.js +11 -0
- package/build/routes/chromium/ws/browser.query.json +120 -0
- package/build/routes/chromium/ws/cdp-chromium.d.ts +6 -0
- package/build/routes/chromium/ws/cdp-chromium.js +11 -0
- package/build/routes/chromium/ws/cdp-chromium.query.json +120 -0
- package/build/routes/chromium/ws/page.d.ts +6 -0
- package/build/routes/chromium/ws/page.js +11 -0
- package/build/routes/chromium/ws/page.query.json +120 -0
- package/build/routes/chromium/ws/playwright-chromium.d.ts +6 -0
- package/build/routes/chromium/ws/playwright-chromium.js +19 -0
- package/build/routes/chromium/ws/playwright-chromium.query.json +100 -0
- package/build/routes/firefox/tests/websocket.spec.d.ts +1 -0
- package/build/routes/firefox/tests/websocket.spec.js +104 -0
- package/build/routes/firefox/ws/playwright-firefox.d.ts +6 -0
- package/build/routes/firefox/ws/playwright-firefox.js +19 -0
- package/build/routes/firefox/ws/playwright-firefox.query.json +100 -0
- package/build/routes/management/http/config-get.d.ts +25 -0
- package/build/routes/management/http/config-get.js +43 -0
- package/build/routes/management/http/config-get.response.json +107 -0
- package/build/routes/management/http/metrics-get.d.ts +4 -0
- package/build/routes/management/http/metrics-get.js +24 -0
- package/build/routes/management/http/metrics-get.response.json +94 -0
- package/build/routes/management/http/metrics-total-get.d.ts +4 -0
- package/build/routes/management/http/metrics-total-get.js +60 -0
- package/build/routes/management/http/metrics-total-get.response.json +72 -0
- package/build/routes/management/http/sessions-get.d.ts +4 -0
- package/build/routes/management/http/sessions-get.js +21 -0
- package/build/routes/management/http/sessions-get.response.json +221 -0
- package/build/routes/management/http/static-get.d.ts +3 -0
- package/build/routes/management/http/static-get.js +67 -0
- package/build/routes/management/tests/management.spec.d.ts +1 -0
- package/build/routes/management/tests/management.spec.js +41 -0
- package/build/routes/webkit/tests/websocket.spec.d.ts +1 -0
- package/build/routes/webkit/tests/websocket.spec.js +104 -0
- package/build/routes/webkit/ws/playwright-webkit.d.ts +6 -0
- package/build/routes/webkit/ws/playwright-webkit.js +19 -0
- package/build/routes/webkit/ws/playwright-webkit.query.json +100 -0
- package/build/server.d.ts +38 -0
- package/build/server.js +365 -0
- package/build/shim.d.ts +9 -0
- package/build/shim.js +54 -0
- package/build/shim.spec.d.ts +1 -0
- package/build/shim.spec.js +114 -0
- package/build/types.d.ts +360 -0
- package/build/types.js +6 -0
- package/build/utils.d.ts +111 -0
- package/build/utils.js +570 -0
- package/build/webhooks.d.ts +11 -0
- package/build/webhooks.js +43 -0
- package/docker/base/.dockerignore +16 -0
- package/docker/base/Dockerfile +70 -0
- package/docker/chrome/.dockerignore +16 -0
- package/docker/chrome/Dockerfile +40 -0
- package/docker/firefox/.dockerignore +16 -0
- package/docker/firefox/Dockerfile +39 -0
- package/docker/multi/.dockerignore +16 -0
- package/docker/multi/Dockerfile +37 -0
- package/docker/sdk/.dockerignore +16 -0
- package/docker/sdk/Dockerfile +34 -0
- package/docker/webkit/.dockerignore +16 -0
- package/docker/webkit/Dockerfile +40 -0
- package/extensions/screencast/background.js +143 -0
- package/extensions/screencast/content_script.js +18 -0
- package/extensions/screencast/manifest.json +19 -0
- package/extensions/ublock/1p-filters.html +69 -0
- package/extensions/ublock/3p-filters.html +119 -0
- package/extensions/ublock/LICENSE.txt +674 -0
- package/extensions/ublock/_locales/ar/messages.json +1290 -0
- package/extensions/ublock/_locales/az/messages.json +1290 -0
- package/extensions/ublock/_locales/be/messages.json +1290 -0
- package/extensions/ublock/_locales/bg/messages.json +1290 -0
- package/extensions/ublock/_locales/bn/messages.json +1290 -0
- package/extensions/ublock/_locales/br_FR/messages.json +1290 -0
- package/extensions/ublock/_locales/bs/messages.json +1290 -0
- package/extensions/ublock/_locales/ca/messages.json +1290 -0
- package/extensions/ublock/_locales/cs/messages.json +1290 -0
- package/extensions/ublock/_locales/cv/messages.json +1290 -0
- package/extensions/ublock/_locales/da/messages.json +1290 -0
- package/extensions/ublock/_locales/de/messages.json +1290 -0
- package/extensions/ublock/_locales/el/messages.json +1290 -0
- package/extensions/ublock/_locales/en/messages.json +1292 -0
- package/extensions/ublock/_locales/en_GB/messages.json +1290 -0
- package/extensions/ublock/_locales/eo/messages.json +1290 -0
- package/extensions/ublock/_locales/es/messages.json +1290 -0
- package/extensions/ublock/_locales/et/messages.json +1290 -0
- package/extensions/ublock/_locales/eu/messages.json +1290 -0
- package/extensions/ublock/_locales/fa/messages.json +1290 -0
- package/extensions/ublock/_locales/fi/messages.json +1290 -0
- package/extensions/ublock/_locales/fil/messages.json +1290 -0
- package/extensions/ublock/_locales/fr/messages.json +1290 -0
- package/extensions/ublock/_locales/fy/messages.json +1290 -0
- package/extensions/ublock/_locales/gl/messages.json +1290 -0
- package/extensions/ublock/_locales/gu/messages.json +1290 -0
- package/extensions/ublock/_locales/he/messages.json +1290 -0
- package/extensions/ublock/_locales/hi/messages.json +1290 -0
- package/extensions/ublock/_locales/hr/messages.json +1290 -0
- package/extensions/ublock/_locales/hu/messages.json +1290 -0
- package/extensions/ublock/_locales/hy/messages.json +1290 -0
- package/extensions/ublock/_locales/id/messages.json +1290 -0
- package/extensions/ublock/_locales/it/messages.json +1290 -0
- package/extensions/ublock/_locales/ja/messages.json +1290 -0
- package/extensions/ublock/_locales/ka/messages.json +1290 -0
- package/extensions/ublock/_locales/kk/messages.json +1290 -0
- package/extensions/ublock/_locales/kn/messages.json +1290 -0
- package/extensions/ublock/_locales/ko/messages.json +1290 -0
- package/extensions/ublock/_locales/ku/messages.json +1290 -0
- package/extensions/ublock/_locales/lt/messages.json +1290 -0
- package/extensions/ublock/_locales/lv/messages.json +1290 -0
- package/extensions/ublock/_locales/mk/messages.json +1290 -0
- package/extensions/ublock/_locales/ml/messages.json +1290 -0
- package/extensions/ublock/_locales/mr/messages.json +1290 -0
- package/extensions/ublock/_locales/ms/messages.json +1290 -0
- package/extensions/ublock/_locales/nb/messages.json +1290 -0
- package/extensions/ublock/_locales/nl/messages.json +1290 -0
- package/extensions/ublock/_locales/no/messages.json +1290 -0
- package/extensions/ublock/_locales/oc/messages.json +1290 -0
- package/extensions/ublock/_locales/pa/messages.json +1290 -0
- package/extensions/ublock/_locales/pl/messages.json +1290 -0
- package/extensions/ublock/_locales/pt_BR/messages.json +1290 -0
- package/extensions/ublock/_locales/pt_PT/messages.json +1290 -0
- package/extensions/ublock/_locales/ro/messages.json +1290 -0
- package/extensions/ublock/_locales/ru/messages.json +1290 -0
- package/extensions/ublock/_locales/si/messages.json +1290 -0
- package/extensions/ublock/_locales/sk/messages.json +1290 -0
- package/extensions/ublock/_locales/sl/messages.json +1290 -0
- package/extensions/ublock/_locales/so/messages.json +1290 -0
- package/extensions/ublock/_locales/sq/messages.json +1290 -0
- package/extensions/ublock/_locales/sr/messages.json +1290 -0
- package/extensions/ublock/_locales/sv/messages.json +1290 -0
- package/extensions/ublock/_locales/sw/messages.json +1290 -0
- package/extensions/ublock/_locales/ta/messages.json +1290 -0
- package/extensions/ublock/_locales/te/messages.json +1290 -0
- package/extensions/ublock/_locales/th/messages.json +1290 -0
- package/extensions/ublock/_locales/tr/messages.json +1290 -0
- package/extensions/ublock/_locales/uk/messages.json +1290 -0
- package/extensions/ublock/_locales/ur/messages.json +1290 -0
- package/extensions/ublock/_locales/vi/messages.json +1290 -0
- package/extensions/ublock/_locales/zh_CN/messages.json +1290 -0
- package/extensions/ublock/_locales/zh_TW/messages.json +1290 -0
- package/extensions/ublock/about.html +63 -0
- package/extensions/ublock/advanced-settings.html +42 -0
- package/extensions/ublock/asset-viewer.html +50 -0
- package/extensions/ublock/assets/assets.json +903 -0
- package/extensions/ublock/assets/resources/scriptlets.js +4255 -0
- package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +65576 -0
- package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +33219 -0
- package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/README.md +29 -0
- package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +3732 -0
- package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +15431 -0
- package/extensions/ublock/assets/thirdparties/urlhaus-filter/LICENSE.md +42 -0
- package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +1970 -0
- package/extensions/ublock/assets/ublock/badlists.txt +77 -0
- package/extensions/ublock/assets/ublock/badware.min.txt +3033 -0
- package/extensions/ublock/assets/ublock/filters.min.txt +23419 -0
- package/extensions/ublock/assets/ublock/privacy.min.txt +575 -0
- package/extensions/ublock/assets/ublock/quick-fixes.min.txt +99 -0
- package/extensions/ublock/assets/ublock/unbreak.min.txt +2448 -0
- package/extensions/ublock/background.html +12 -0
- package/extensions/ublock/cloud-ui.html +23 -0
- package/extensions/ublock/code-viewer.html +53 -0
- package/extensions/ublock/css/1p-filters.css +26 -0
- package/extensions/ublock/css/3p-filters.css +250 -0
- package/extensions/ublock/css/about.css +3 -0
- package/extensions/ublock/css/advanced-settings.css +26 -0
- package/extensions/ublock/css/asset-viewer.css +79 -0
- package/extensions/ublock/css/click2load.css +53 -0
- package/extensions/ublock/css/cloud-ui.css +104 -0
- package/extensions/ublock/css/code-viewer.css +67 -0
- package/extensions/ublock/css/codemirror.css +326 -0
- package/extensions/ublock/css/common.css +347 -0
- package/extensions/ublock/css/dashboard-common.css +55 -0
- package/extensions/ublock/css/dashboard.css +115 -0
- package/extensions/ublock/css/devtools.css +22 -0
- package/extensions/ublock/css/document-blocked.css +146 -0
- package/extensions/ublock/css/dyna-rules.css +79 -0
- package/extensions/ublock/css/epicker-ui.css +270 -0
- package/extensions/ublock/css/fa-icons.css +149 -0
- package/extensions/ublock/css/fonts/Inter/Inter-Regular.woff2 +0 -0
- package/extensions/ublock/css/fonts/Inter/Inter-SemiBold.woff2 +0 -0
- package/extensions/ublock/css/fonts/Inter/LICENSE.txt +93 -0
- package/extensions/ublock/css/fonts/Metropolis/Metropolis-Regular.woff2 +0 -0
- package/extensions/ublock/css/fonts/Metropolis/Metropolis-SemiBold.woff2 +0 -0
- package/extensions/ublock/css/fonts/Metropolis/README.md +25 -0
- package/extensions/ublock/css/fonts/Metropolis/UNLICENSE +24 -0
- package/extensions/ublock/css/logger-ui-inspector.css +116 -0
- package/extensions/ublock/css/logger-ui.css +978 -0
- package/extensions/ublock/css/popup-fenix.css +778 -0
- package/extensions/ublock/css/settings.css +74 -0
- package/extensions/ublock/css/support.css +110 -0
- package/extensions/ublock/css/themes/default.css +526 -0
- package/extensions/ublock/css/whitelist.css +22 -0
- package/extensions/ublock/dashboard.html +47 -0
- package/extensions/ublock/devtools.html +58 -0
- package/extensions/ublock/document-blocked.html +64 -0
- package/extensions/ublock/dyna-rules.html +67 -0
- package/extensions/ublock/img/cloud.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/README +9 -0
- package/extensions/ublock/img/flags-of-the-world/ad.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ae.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/af.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ag.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ai.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/al.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/am.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ao.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/aq.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ar.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/as.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/at.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/au.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/aw.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ax.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/az.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ba.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bb.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bd.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/be.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bf.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bh.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bi.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bj.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bl.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bo.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bq.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/br.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bs.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bt.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bv.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bw.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/by.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/bz.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ca.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cc.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cd.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cf.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ch.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ci.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ck.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cl.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/co.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cu.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cv.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cw.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cx.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cy.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/cz.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/de.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/dj.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/dk.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/dm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/do.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/dz.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ec.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ee.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/eg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/eh.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/er.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/es.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/et.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/fi.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/fj.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/fk.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/fm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/fo.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/fr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ga.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gb-eng.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gb-nir.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gb-sct.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gb-wls.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gb.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gd.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ge.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gf.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gh.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gi.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gl.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gp.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gq.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gs.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gt.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gu.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gw.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/gy.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/hk.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/hm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/hn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/hr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ht.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/hu.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/id.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ie.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/il.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/im.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/in.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/io.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/iq.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ir.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/is.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/it.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/je.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/jm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/jo.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/jp.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ke.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/kg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/kh.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ki.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/km.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/kn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/kp.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/kr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/kw.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ky.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/kz.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/la.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/lb.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/lc.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/li.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/lk.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/lr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ls.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/lt.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/lu.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/lv.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ly.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ma.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mc.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/md.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/me.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mf.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mh.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mk.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ml.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mo.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mp.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mq.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ms.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mt.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mu.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mv.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mw.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mx.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/my.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/mz.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/na.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/nc.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ne.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/nf.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ng.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ni.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/nl.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/no.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/np.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/nr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/nu.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/nz.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/om.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pa.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pe.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pf.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ph.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pk.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pl.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ps.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pt.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/pw.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/py.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/qa.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/re.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ro.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/rs.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ru.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/rw.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sa.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sb.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sc.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sd.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/se.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sh.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/si.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sj.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sk.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sl.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/so.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ss.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/st.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sv.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sx.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sy.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/sz.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tc.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/td.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tf.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/th.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tj.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tk.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tl.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/to.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tr.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tt.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tv.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tw.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/tz.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ua.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ug.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/um.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/us.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/uy.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/uz.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/va.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/vc.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ve.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/vg.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/vi.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/vn.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/vu.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/wf.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ws.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/xk.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/ye.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/yt.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/za.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/zm.png +0 -0
- package/extensions/ublock/img/flags-of-the-world/zw.png +0 -0
- package/extensions/ublock/img/fontawesome/LICENSE.txt +25 -0
- package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +79 -0
- package/extensions/ublock/img/help16.png +0 -0
- package/extensions/ublock/img/icon_128.png +0 -0
- package/extensions/ublock/img/icon_16-loading.png +0 -0
- package/extensions/ublock/img/icon_16-off.png +0 -0
- package/extensions/ublock/img/icon_16.png +0 -0
- package/extensions/ublock/img/icon_32-loading.png +0 -0
- package/extensions/ublock/img/icon_32-off.png +0 -0
- package/extensions/ublock/img/icon_32.png +0 -0
- package/extensions/ublock/img/icon_64-loading.png +0 -0
- package/extensions/ublock/img/icon_64-off.png +0 -0
- package/extensions/ublock/img/icon_64.png +0 -0
- package/extensions/ublock/img/material-design.svg +16 -0
- package/extensions/ublock/img/photon.svg +16 -0
- package/extensions/ublock/img/ublock-defs.svg +27 -0
- package/extensions/ublock/img/ublock.svg +44 -0
- package/extensions/ublock/is-webrtc-supported.html +9 -0
- package/extensions/ublock/js/1p-filters.js +336 -0
- package/extensions/ublock/js/3p-filters.js +867 -0
- package/extensions/ublock/js/about.js +34 -0
- package/extensions/ublock/js/advanced-settings.js +194 -0
- package/extensions/ublock/js/asset-viewer.js +112 -0
- package/extensions/ublock/js/assets.js +1448 -0
- package/extensions/ublock/js/background.js +404 -0
- package/extensions/ublock/js/base64-custom.js +246 -0
- package/extensions/ublock/js/benchmarks.js +421 -0
- package/extensions/ublock/js/biditrie.js +947 -0
- package/extensions/ublock/js/cachestorage.js +510 -0
- package/extensions/ublock/js/click2load.js +60 -0
- package/extensions/ublock/js/cloud-ui.js +238 -0
- package/extensions/ublock/js/code-viewer.js +311 -0
- package/extensions/ublock/js/codemirror/search-thread.js +199 -0
- package/extensions/ublock/js/codemirror/search.js +504 -0
- package/extensions/ublock/js/codemirror/ubo-dynamic-filtering.js +239 -0
- package/extensions/ublock/js/codemirror/ubo-static-filtering.js +1126 -0
- package/extensions/ublock/js/commands.js +181 -0
- package/extensions/ublock/js/console.js +59 -0
- package/extensions/ublock/js/contentscript-extra.js +662 -0
- package/extensions/ublock/js/contentscript.js +1366 -0
- package/extensions/ublock/js/contextmenu.js +270 -0
- package/extensions/ublock/js/cosmetic-filtering.js +983 -0
- package/extensions/ublock/js/dashboard-common.js +215 -0
- package/extensions/ublock/js/dashboard.js +166 -0
- package/extensions/ublock/js/devtools.js +184 -0
- package/extensions/ublock/js/diff-updater.js +288 -0
- package/extensions/ublock/js/document-blocked.js +230 -0
- package/extensions/ublock/js/dom.js +213 -0
- package/extensions/ublock/js/dyna-rules.js +678 -0
- package/extensions/ublock/js/dynamic-net-filtering.js +488 -0
- package/extensions/ublock/js/epicker-ui.js +924 -0
- package/extensions/ublock/js/fa-icons.js +129 -0
- package/extensions/ublock/js/filtering-context.js +461 -0
- package/extensions/ublock/js/filtering-engines.js +50 -0
- package/extensions/ublock/js/hnswitches.js +289 -0
- package/extensions/ublock/js/hntrie.js +780 -0
- package/extensions/ublock/js/html-filtering.js +465 -0
- package/extensions/ublock/js/httpheader-filtering.js +213 -0
- package/extensions/ublock/js/i18n.js +346 -0
- package/extensions/ublock/js/is-webrtc-supported.js +52 -0
- package/extensions/ublock/js/logger-ui-inspector.js +652 -0
- package/extensions/ublock/js/logger-ui.js +3028 -0
- package/extensions/ublock/js/logger.js +84 -0
- package/extensions/ublock/js/lz4.js +190 -0
- package/extensions/ublock/js/messaging.js +2095 -0
- package/extensions/ublock/js/pagestore.js +1140 -0
- package/extensions/ublock/js/popup-fenix.js +1529 -0
- package/extensions/ublock/js/redirect-engine.js +494 -0
- package/extensions/ublock/js/redirect-resources.js +193 -0
- package/extensions/ublock/js/reverselookup-worker.js +287 -0
- package/extensions/ublock/js/reverselookup.js +223 -0
- package/extensions/ublock/js/scriptlet-filtering.js +556 -0
- package/extensions/ublock/js/scriptlets/cosmetic-logger.js +376 -0
- package/extensions/ublock/js/scriptlets/cosmetic-off.js +48 -0
- package/extensions/ublock/js/scriptlets/cosmetic-on.js +48 -0
- package/extensions/ublock/js/scriptlets/cosmetic-report.js +142 -0
- package/extensions/ublock/js/scriptlets/dom-inspector.js +906 -0
- package/extensions/ublock/js/scriptlets/dom-survey-elements.js +72 -0
- package/extensions/ublock/js/scriptlets/dom-survey-scripts.js +126 -0
- package/extensions/ublock/js/scriptlets/epicker.js +1365 -0
- package/extensions/ublock/js/scriptlets/load-3p-css.js +67 -0
- package/extensions/ublock/js/scriptlets/load-large-media-all.js +62 -0
- package/extensions/ublock/js/scriptlets/load-large-media-interactive.js +299 -0
- package/extensions/ublock/js/scriptlets/noscript-spoof.js +89 -0
- package/extensions/ublock/js/scriptlets/should-inject-contentscript.js +40 -0
- package/extensions/ublock/js/scriptlets/subscriber.js +113 -0
- package/extensions/ublock/js/scriptlets/updater.js +101 -0
- package/extensions/ublock/js/settings.js +317 -0
- package/extensions/ublock/js/start.js +509 -0
- package/extensions/ublock/js/static-dnr-filtering.js +497 -0
- package/extensions/ublock/js/static-ext-filtering-db.js +171 -0
- package/extensions/ublock/js/static-ext-filtering.js +184 -0
- package/extensions/ublock/js/static-filtering-io.js +144 -0
- package/extensions/ublock/js/static-filtering-parser.js +4459 -0
- package/extensions/ublock/js/static-net-filtering.js +5631 -0
- package/extensions/ublock/js/storage.js +1683 -0
- package/extensions/ublock/js/support.js +335 -0
- package/extensions/ublock/js/tab.js +1178 -0
- package/extensions/ublock/js/tasks.js +42 -0
- package/extensions/ublock/js/text-encode.js +275 -0
- package/extensions/ublock/js/text-utils.js +107 -0
- package/extensions/ublock/js/theme.js +151 -0
- package/extensions/ublock/js/traffic.js +1260 -0
- package/extensions/ublock/js/ublock.js +696 -0
- package/extensions/ublock/js/uri-utils.js +175 -0
- package/extensions/ublock/js/url-net-filtering.js +336 -0
- package/extensions/ublock/js/utils.js +208 -0
- package/extensions/ublock/js/vapi-background-ext.js +254 -0
- package/extensions/ublock/js/vapi-background.js +1802 -0
- package/extensions/ublock/js/vapi-client-extra.js +312 -0
- package/extensions/ublock/js/vapi-client.js +280 -0
- package/extensions/ublock/js/vapi-common.js +308 -0
- package/extensions/ublock/js/vapi.js +89 -0
- package/extensions/ublock/js/wasm/README.md +24 -0
- package/extensions/ublock/js/wasm/biditrie.wasm +0 -0
- package/extensions/ublock/js/wasm/biditrie.wat +728 -0
- package/extensions/ublock/js/wasm/hntrie.wasm +0 -0
- package/extensions/ublock/js/wasm/hntrie.wat +724 -0
- package/extensions/ublock/js/webext.js +164 -0
- package/extensions/ublock/js/whitelist.js +258 -0
- package/extensions/ublock/lib/codemirror/LICENSE +21 -0
- package/extensions/ublock/lib/codemirror/README.md +47 -0
- package/extensions/ublock/lib/codemirror/addon/comment/comment.js +211 -0
- package/extensions/ublock/lib/codemirror/addon/display/panel.js +133 -0
- package/extensions/ublock/lib/codemirror/addon/edit/closebrackets.js +201 -0
- package/extensions/ublock/lib/codemirror/addon/edit/matchbrackets.js +160 -0
- package/extensions/ublock/lib/codemirror/addon/fold/foldcode.js +157 -0
- package/extensions/ublock/lib/codemirror/addon/fold/foldgutter.css +20 -0
- package/extensions/ublock/lib/codemirror/addon/fold/foldgutter.js +163 -0
- package/extensions/ublock/lib/codemirror/addon/hint/show-hint.css +36 -0
- package/extensions/ublock/lib/codemirror/addon/hint/show-hint.js +509 -0
- package/extensions/ublock/lib/codemirror/addon/merge/merge.css +119 -0
- package/extensions/ublock/lib/codemirror/addon/merge/merge.js +1006 -0
- package/extensions/ublock/lib/codemirror/addon/scroll/annotatescrollbar.js +128 -0
- package/extensions/ublock/lib/codemirror/addon/search/matchesonscrollbar.css +8 -0
- package/extensions/ublock/lib/codemirror/addon/search/searchcursor.js +296 -0
- package/extensions/ublock/lib/codemirror/addon/selection/active-line.js +72 -0
- package/extensions/ublock/lib/codemirror/lib/codemirror.css +350 -0
- package/extensions/ublock/lib/codemirror/lib/codemirror.js +9800 -0
- package/extensions/ublock/lib/codemirror/mode/css/css.js +864 -0
- package/extensions/ublock/lib/codemirror/mode/htmlmixed/htmlmixed.js +153 -0
- package/extensions/ublock/lib/codemirror/mode/javascript/javascript.js +942 -0
- package/extensions/ublock/lib/codemirror/mode/xml/xml.js +413 -0
- package/extensions/ublock/lib/codemirror/theme/night.css +27 -0
- package/extensions/ublock/lib/csstree/LICENSE +19 -0
- package/extensions/ublock/lib/csstree/css-tree.js +17 -0
- package/extensions/ublock/lib/diff/README.md +34 -0
- package/extensions/ublock/lib/diff/swatinem_diff.js +272 -0
- package/extensions/ublock/lib/hsluv/LICENSE +20 -0
- package/extensions/ublock/lib/hsluv/README +3 -0
- package/extensions/ublock/lib/hsluv/hsluv-0.1.0.min.js +8 -0
- package/extensions/ublock/lib/js-beautify/LICENSE +9 -0
- package/extensions/ublock/lib/js-beautify/README +5 -0
- package/extensions/ublock/lib/js-beautify/beautifier.min.js +2 -0
- package/extensions/ublock/lib/lz4/README.md +52 -0
- package/extensions/ublock/lib/lz4/lz4-block-codec-any.js +151 -0
- package/extensions/ublock/lib/lz4/lz4-block-codec-js.js +297 -0
- package/extensions/ublock/lib/lz4/lz4-block-codec-wasm.js +195 -0
- package/extensions/ublock/lib/lz4/lz4-block-codec.wasm +0 -0
- package/extensions/ublock/lib/lz4/lz4-block-codec.wat +745 -0
- package/extensions/ublock/lib/publicsuffixlist/publicsuffixlist.js +641 -0
- package/extensions/ublock/lib/publicsuffixlist/wasm/README.md +29 -0
- package/extensions/ublock/lib/publicsuffixlist/wasm/publicsuffixlist.wasm +0 -0
- package/extensions/ublock/lib/publicsuffixlist/wasm/publicsuffixlist.wat +322 -0
- package/extensions/ublock/lib/punycode.js +493 -0
- package/extensions/ublock/lib/regexanalyzer/CHANGES.md +15 -0
- package/extensions/ublock/lib/regexanalyzer/README.md +14 -0
- package/extensions/ublock/lib/regexanalyzer/regex.js +2276 -0
- package/extensions/ublock/logger-ui.html +232 -0
- package/extensions/ublock/managed_storage.json +73 -0
- package/extensions/ublock/manifest.json +115 -0
- package/extensions/ublock/no-dashboard.html +27 -0
- package/extensions/ublock/popup-fenix.html +114 -0
- package/extensions/ublock/settings.html +98 -0
- package/extensions/ublock/support.html +131 -0
- package/extensions/ublock/web_accessible_resources/1x1.gif +0 -0
- package/extensions/ublock/web_accessible_resources/2x2.png +0 -0
- package/extensions/ublock/web_accessible_resources/32x32.png +0 -0
- package/extensions/ublock/web_accessible_resources/3x2.png +0 -0
- package/extensions/ublock/web_accessible_resources/README.txt +11 -0
- package/extensions/ublock/web_accessible_resources/addthis_widget.js +39 -0
- package/extensions/ublock/web_accessible_resources/amazon_ads.js +70 -0
- package/extensions/ublock/web_accessible_resources/amazon_apstag.js +62 -0
- package/extensions/ublock/web_accessible_resources/ampproject_v0.js +34 -0
- package/extensions/ublock/web_accessible_resources/chartbeat.js +30 -0
- package/extensions/ublock/web_accessible_resources/click2load.html +28 -0
- package/extensions/ublock/web_accessible_resources/doubleclick_instream_ad_status.js +1 -0
- package/extensions/ublock/web_accessible_resources/empty +0 -0
- package/extensions/ublock/web_accessible_resources/epicker-ui.html +76 -0
- package/extensions/ublock/web_accessible_resources/fingerprint2.js +55 -0
- package/extensions/ublock/web_accessible_resources/fingerprint3.js +45 -0
- package/extensions/ublock/web_accessible_resources/google-analytics_analytics.js +110 -0
- package/extensions/ublock/web_accessible_resources/google-analytics_cx_api.js +36 -0
- package/extensions/ublock/web_accessible_resources/google-analytics_ga.js +130 -0
- package/extensions/ublock/web_accessible_resources/google-analytics_inpage_linkid.js +28 -0
- package/extensions/ublock/web_accessible_resources/google-ima.js +855 -0
- package/extensions/ublock/web_accessible_resources/googlesyndication_adsbygoogle.js +56 -0
- package/extensions/ublock/web_accessible_resources/googletagmanager_gtm.js +43 -0
- package/extensions/ublock/web_accessible_resources/googletagservices_gpt.js +153 -0
- package/extensions/ublock/web_accessible_resources/hd-main.js +46 -0
- package/extensions/ublock/web_accessible_resources/ligatus_angular-tag.js +29 -0
- package/extensions/ublock/web_accessible_resources/monkeybroker.js +43 -0
- package/extensions/ublock/web_accessible_resources/mxpnl_mixpanel.js +51 -0
- package/extensions/ublock/web_accessible_resources/nobab.js +87 -0
- package/extensions/ublock/web_accessible_resources/nobab2.js +42 -0
- package/extensions/ublock/web_accessible_resources/noeval-silent.js +28 -0
- package/extensions/ublock/web_accessible_resources/noeval.js +30 -0
- package/extensions/ublock/web_accessible_resources/nofab.js +67 -0
- package/extensions/ublock/web_accessible_resources/noop-0.1s.mp3 +0 -0
- package/extensions/ublock/web_accessible_resources/noop-0.5s.mp3 +0 -0
- package/extensions/ublock/web_accessible_resources/noop-1s.mp4 +0 -0
- package/extensions/ublock/web_accessible_resources/noop-vmap1.0.xml +1 -0
- package/extensions/ublock/web_accessible_resources/noop.css +1 -0
- package/extensions/ublock/web_accessible_resources/noop.html +5 -0
- package/extensions/ublock/web_accessible_resources/noop.js +3 -0
- package/extensions/ublock/web_accessible_resources/noop.json +1 -0
- package/extensions/ublock/web_accessible_resources/noop.txt +1 -0
- package/extensions/ublock/web_accessible_resources/outbrain-widget.js +72 -0
- package/extensions/ublock/web_accessible_resources/popads-dummy.js +30 -0
- package/extensions/ublock/web_accessible_resources/popads.js +40 -0
- package/extensions/ublock/web_accessible_resources/prebid-ads.js +26 -0
- package/extensions/ublock/web_accessible_resources/scorecardresearch_beacon.js +31 -0
- package/extensions/ublock/whitelist.html +63 -0
- package/external/.gitkeep +0 -0
- package/fonts/Calibri Bold Italic.ttf +0 -0
- package/fonts/Calibri Bold.TTF +0 -0
- package/fonts/Calibri Italic.ttf +0 -0
- package/fonts/Calibri Light Italic.ttf +0 -0
- package/fonts/Calibri Light.ttf +0 -0
- package/fonts/Calibri Regular.ttf +0 -0
- package/fonts/Emoji.ttf +0 -0
- package/fonts/SegoeUI-Bold.ttf +0 -0
- package/fonts/SegoeUI-Light.ttf +0 -0
- package/fonts/SegoeUI-Regular.ttf +0 -0
- package/fonts/SegoeUI-Semibold.ttf +0 -0
- package/fonts/SegoeUI-Semilight.ttf +0 -0
- package/fonts/Tahoma Bold.ttf +0 -0
- package/fonts/Tahoma.ttf +0 -0
- package/fonts/fonts.conf +21 -0
- package/package.json +177 -0
- package/scripts/build-function.js +18 -0
- package/scripts/build-open-api.js +274 -0
- package/scripts/build-schemas.js +86 -0
- package/scripts/build-selectors.js +36 -0
- package/scripts/clean.js +7 -0
- package/scripts/install-adblock.js +45 -0
- package/scripts/install-cdp-json.js +37 -0
- package/scripts/start.sh +30 -0
- package/scripts/test.sh +17 -0
- package/src/browserless.ts +253 -0
- package/src/browsers/cdp-chromium.ts +422 -0
- package/src/browsers/index.ts +296 -0
- package/src/browsers/playwright-chromium.ts +168 -0
- package/src/browsers/playwright-firefox.ts +161 -0
- package/src/browsers/playwright-webkit.ts +161 -0
- package/src/config.ts +426 -0
- package/src/constants.ts +4 -0
- package/src/exports.ts +23 -0
- package/src/file-system.ts +54 -0
- package/src/hooks.ts +37 -0
- package/src/http.ts +157 -0
- package/src/index.ts +41 -0
- package/src/limiter.spec.ts +365 -0
- package/src/limiter.ts +225 -0
- package/src/metrics.spec.ts +49 -0
- package/src/metrics.ts +108 -0
- package/src/mime-types.ts +332 -0
- package/src/monitoring.ts +53 -0
- package/src/routes/chromium/http/content-post.ts +238 -0
- package/src/routes/chromium/http/download-post.ts +162 -0
- package/src/routes/chromium/http/function-post.ts +98 -0
- package/src/routes/chromium/http/pdf-post.ts +234 -0
- package/src/routes/chromium/http/performance.ts +71 -0
- package/src/routes/chromium/http/scrape-post.ts +439 -0
- package/src/routes/chromium/http/screenshot-post.ts +262 -0
- package/src/routes/chromium/tests/content.spec.ts +340 -0
- package/src/routes/chromium/tests/download.spec.ts +77 -0
- package/src/routes/chromium/tests/function.spec.ts +279 -0
- package/src/routes/chromium/tests/pdf.spec.ts +375 -0
- package/src/routes/chromium/tests/performance.spec.ts +155 -0
- package/src/routes/chromium/tests/scrape.spec.ts +414 -0
- package/src/routes/chromium/tests/screenshot.spec.ts +387 -0
- package/src/routes/chromium/tests/websocket.spec.ts +407 -0
- package/src/routes/chromium/utils/function/client.ts +99 -0
- package/src/routes/chromium/utils/function/handler.ts +172 -0
- package/src/routes/chromium/utils/performance/child.ts +38 -0
- package/src/routes/chromium/utils/performance/main.ts +90 -0
- package/src/routes/chromium/utils/performance/types.ts +24 -0
- package/src/routes/chromium/ws/browser.ts +31 -0
- package/src/routes/chromium/ws/cdp-chromium.ts +31 -0
- package/src/routes/chromium/ws/page.ts +31 -0
- package/src/routes/chromium/ws/playwright-chromium.ts +44 -0
- package/src/routes/firefox/tests/websocket.spec.ts +146 -0
- package/src/routes/firefox/ws/playwright-firefox.ts +44 -0
- package/src/routes/management/http/config-get.ts +82 -0
- package/src/routes/management/http/metrics-get.ts +43 -0
- package/src/routes/management/http/metrics-total-get.ts +89 -0
- package/src/routes/management/http/sessions-get.ts +39 -0
- package/src/routes/management/http/static-get.ts +109 -0
- package/src/routes/management/tests/management.spec.ts +71 -0
- package/src/routes/webkit/tests/websocket.spec.ts +146 -0
- package/src/routes/webkit/ws/playwright-webkit.ts +44 -0
- package/src/server.ts +609 -0
- package/src/shim.spec.ts +154 -0
- package/src/shim.ts +78 -0
- package/src/types.ts +470 -0
- package/src/utils.ts +787 -0
- package/src/webhooks.ts +50 -0
- package/static/docs/browserless-logo.png +0 -0
- package/static/docs/docs.js +2 -0
- package/static/docs/index.html +71 -0
- package/static/docs/swagger.json +4232 -0
- package/static/favicon-32x32.png +0 -0
- package/static/function/client.js +31623 -0
- package/static/function/index.html +12 -0
- package/tsconfig.json +31 -0
package/build/shim.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { convertIfBase64, safeParse, } from '@browserless.io/browserless';
|
|
2
|
+
const shimParam = ['headless', 'stealth', 'ignoreDefaultArgs', 'slowMo'];
|
|
3
|
+
/**
|
|
4
|
+
* Given a legacy connect or API call, this shim will
|
|
5
|
+
* re-order the arguments to make them valid in the 2.0
|
|
6
|
+
* world as much as possible. It does not handle request
|
|
7
|
+
* validation as that happens later downstream.
|
|
8
|
+
*
|
|
9
|
+
* @param req A parsed user requests
|
|
10
|
+
*/
|
|
11
|
+
export const shimLegacyRequests = (url) => {
|
|
12
|
+
const { searchParams } = url;
|
|
13
|
+
const params = [...searchParams];
|
|
14
|
+
const names = params.map(([k]) => k);
|
|
15
|
+
const cliSwitches = params.filter(([name]) => name.startsWith('--'));
|
|
16
|
+
const hasLegacyParams = cliSwitches || shimParam.some((name) => names.includes(name));
|
|
17
|
+
if (hasLegacyParams) {
|
|
18
|
+
const launchParams = safeParse(convertIfBase64(searchParams.get('launch') || '{}')) || {};
|
|
19
|
+
const ignoreDefaultArgs = searchParams.get('ignoreDefaultArgs') ?? launchParams.ignoreDefaultArgs;
|
|
20
|
+
const stealth = searchParams.get('stealth') ?? launchParams.stealth;
|
|
21
|
+
const slowMo = searchParams.get('slowMo') ?? launchParams.slowMo;
|
|
22
|
+
const headless = searchParams.get('headless') ?? launchParams.headless;
|
|
23
|
+
if (typeof headless !== 'undefined' &&
|
|
24
|
+
launchParams.headless === undefined) {
|
|
25
|
+
launchParams.headless = headless === 'new' ? 'new' : headless !== 'false';
|
|
26
|
+
}
|
|
27
|
+
if (typeof slowMo !== 'undefined' && launchParams.slowMo === undefined) {
|
|
28
|
+
launchParams.slowMo = +slowMo;
|
|
29
|
+
}
|
|
30
|
+
if (typeof stealth !== 'undefined' && launchParams.stealth === undefined) {
|
|
31
|
+
launchParams.stealth = stealth !== 'false';
|
|
32
|
+
}
|
|
33
|
+
if (typeof stealth !== 'undefined' && launchParams.stealth === undefined) {
|
|
34
|
+
launchParams.stealth = stealth !== 'false';
|
|
35
|
+
}
|
|
36
|
+
if (typeof ignoreDefaultArgs !== 'undefined' &&
|
|
37
|
+
launchParams.ignoreDefaultArgs === undefined) {
|
|
38
|
+
const parsed = typeof ignoreDefaultArgs === 'string' && ignoreDefaultArgs.includes(',')
|
|
39
|
+
? ignoreDefaultArgs.split(',')
|
|
40
|
+
: ignoreDefaultArgs;
|
|
41
|
+
launchParams.ignoreDefaultArgs = Array.isArray(parsed)
|
|
42
|
+
? parsed
|
|
43
|
+
: parsed !== 'false';
|
|
44
|
+
}
|
|
45
|
+
// Handle CLI switches
|
|
46
|
+
if (cliSwitches.length) {
|
|
47
|
+
launchParams.args = cliSwitches.map(([n, v]) => `${n}=${v}`);
|
|
48
|
+
}
|
|
49
|
+
shimParam.forEach((n) => searchParams.delete(n));
|
|
50
|
+
cliSwitches.forEach(([n]) => searchParams.delete(n));
|
|
51
|
+
searchParams.set('launch', JSON.stringify(launchParams));
|
|
52
|
+
}
|
|
53
|
+
return url;
|
|
54
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { shimLegacyRequests } from '@browserless.io/browserless';
|
|
3
|
+
describe('Request Shimming', () => {
|
|
4
|
+
describe('headless', () => {
|
|
5
|
+
it('converts headless true', () => {
|
|
6
|
+
const url = 'wss://localhost?headless=true';
|
|
7
|
+
const final = 'wss://localhost/?launch={"headless":true}';
|
|
8
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
9
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
10
|
+
});
|
|
11
|
+
it('converts headless false', () => {
|
|
12
|
+
const url = 'wss://localhost?headless=false';
|
|
13
|
+
const final = 'wss://localhost/?launch={"headless":false}';
|
|
14
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
15
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
16
|
+
});
|
|
17
|
+
it('converts headless new', () => {
|
|
18
|
+
const url = 'wss://localhost?headless=new';
|
|
19
|
+
const final = 'wss://localhost/?launch={"headless":"new"}';
|
|
20
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
21
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
22
|
+
});
|
|
23
|
+
it('does not convert headless options when already set in launch params', () => {
|
|
24
|
+
const url = 'wss://localhost?headless=false&launch={"headless":"new"}';
|
|
25
|
+
const final = 'wss://localhost/?launch={"headless":"new"}';
|
|
26
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
27
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
28
|
+
});
|
|
29
|
+
it('converts legacy headless into prior specified launch options', () => {
|
|
30
|
+
const url = 'wss://localhost?headless=true&launch={"args":["--cool"]}';
|
|
31
|
+
const final = 'wss://localhost/?launch={"args":["--cool"],"headless":true}';
|
|
32
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
33
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe('stealth', () => {
|
|
37
|
+
it('converts stealth true', () => {
|
|
38
|
+
const url = 'wss://localhost?stealth=true';
|
|
39
|
+
const final = 'wss://localhost/?launch={"stealth":true}';
|
|
40
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
41
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
42
|
+
});
|
|
43
|
+
it('converts stealth false', () => {
|
|
44
|
+
const url = 'wss://localhost?stealth=false';
|
|
45
|
+
const final = 'wss://localhost/?launch={"stealth":false}';
|
|
46
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
47
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
48
|
+
});
|
|
49
|
+
it('does not convert stealth options when already set in launch params', () => {
|
|
50
|
+
const url = 'wss://localhost?stealth=false&launch={"stealth":true}';
|
|
51
|
+
const final = 'wss://localhost/?launch={"stealth":true}';
|
|
52
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
53
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
54
|
+
});
|
|
55
|
+
it('converts legacy stealth into prior specified launch options', () => {
|
|
56
|
+
const url = 'wss://localhost?stealth=true&launch={"args":["--cool"]}';
|
|
57
|
+
const final = 'wss://localhost/?launch={"args":["--cool"],"stealth":true}';
|
|
58
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
59
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe('slowMo', () => {
|
|
63
|
+
it('converts slowMo', () => {
|
|
64
|
+
const url = 'wss://localhost?slowMo=100';
|
|
65
|
+
const final = 'wss://localhost/?launch={"slowMo":100}';
|
|
66
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
67
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
68
|
+
});
|
|
69
|
+
it('does not convert slowMo options when already set in launch params', () => {
|
|
70
|
+
const url = 'wss://localhost?slowMo=100&launch={"slowMo":500}';
|
|
71
|
+
const final = 'wss://localhost/?launch={"slowMo":500}';
|
|
72
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
73
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
74
|
+
});
|
|
75
|
+
it('converts legacy slowMo into prior specified launch options', () => {
|
|
76
|
+
const url = 'wss://localhost?slowMo=500&launch={"args":["--cool"]}';
|
|
77
|
+
const final = 'wss://localhost/?launch={"args":["--cool"],"slowMo":500}';
|
|
78
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
79
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
describe('ignoreDefaultArgs', () => {
|
|
83
|
+
it('converts ignoreDefaultArgs true', () => {
|
|
84
|
+
const url = 'wss://localhost?ignoreDefaultArgs=true';
|
|
85
|
+
const final = 'wss://localhost/?launch={"ignoreDefaultArgs":true}';
|
|
86
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
87
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
88
|
+
});
|
|
89
|
+
it('converts ignoreDefaultArgs false', () => {
|
|
90
|
+
const url = 'wss://localhost?ignoreDefaultArgs=false';
|
|
91
|
+
const final = 'wss://localhost/?launch={"ignoreDefaultArgs":false}';
|
|
92
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
93
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
94
|
+
});
|
|
95
|
+
it('does not convert ignoreDefaultArgs options when already set in launch params', () => {
|
|
96
|
+
const url = 'wss://localhost?ignoreDefaultArgs=false&launch={"ignoreDefaultArgs":true}';
|
|
97
|
+
const final = 'wss://localhost/?launch={"ignoreDefaultArgs":true}';
|
|
98
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
99
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
100
|
+
});
|
|
101
|
+
it('converts legacy ignoreDefaultArgs into prior specified launch options', () => {
|
|
102
|
+
const url = 'wss://localhost?ignoreDefaultArgs&launch={"args":["--cool"]}';
|
|
103
|
+
const final = 'wss://localhost/?launch={"args":["--cool"],"ignoreDefaultArgs":true}';
|
|
104
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
105
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
106
|
+
});
|
|
107
|
+
it('handles array options', () => {
|
|
108
|
+
const url = 'wss://localhost?ignoreDefaultArgs=one,two,three';
|
|
109
|
+
const final = 'wss://localhost/?launch={"ignoreDefaultArgs":["one","two","three"]}';
|
|
110
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
111
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
});
|
package/build/types.d.ts
ADDED
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
/// <reference types="debug" />
|
|
5
|
+
import * as http from 'http';
|
|
6
|
+
import * as stream from 'stream';
|
|
7
|
+
import { APITags, BrowserManager, CDPChromium, Config, FileSystem, HTTPManagementRoutes, HTTPRoutes, Methods, Metrics, Monitoring, PlaywrightChromium, PlaywrightFirefox, PlaywrightWebkit, Request, WebsocketRoutes, contentTypes } from '@browserless.io/browserless';
|
|
8
|
+
import { HTTPRequest, Page, ResponseForRequest, ScreenshotOptions } from 'puppeteer-core';
|
|
9
|
+
export interface BeforeRequest {
|
|
10
|
+
head?: Buffer;
|
|
11
|
+
req: Request;
|
|
12
|
+
res?: http.ServerResponse;
|
|
13
|
+
socket?: stream.Duplex;
|
|
14
|
+
}
|
|
15
|
+
export interface AfterResponse {
|
|
16
|
+
req: http.IncomingMessage;
|
|
17
|
+
start: number;
|
|
18
|
+
status: 'successful' | 'error' | 'timedout';
|
|
19
|
+
}
|
|
20
|
+
export interface BrowserHook {
|
|
21
|
+
browser: CDPChromium | PlaywrightChromium | PlaywrightFirefox | PlaywrightWebkit;
|
|
22
|
+
meta: URL;
|
|
23
|
+
}
|
|
24
|
+
export interface PageHook {
|
|
25
|
+
meta: URL;
|
|
26
|
+
page: Page;
|
|
27
|
+
}
|
|
28
|
+
export interface RouteParams {
|
|
29
|
+
config: Config;
|
|
30
|
+
metrics: Metrics;
|
|
31
|
+
schema?: unknown;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The type of browser required to run this route or handler.
|
|
35
|
+
*/
|
|
36
|
+
export type BrowserClasses = typeof CDPChromium | typeof PlaywrightChromium | typeof PlaywrightFirefox | typeof PlaywrightWebkit;
|
|
37
|
+
export type BrowserInstance = CDPChromium | PlaywrightChromium | PlaywrightFirefox | PlaywrightWebkit;
|
|
38
|
+
export interface BrowserJSON {
|
|
39
|
+
Browser: string;
|
|
40
|
+
'Protocol-Version': string;
|
|
41
|
+
'User-Agent': string;
|
|
42
|
+
'V8-Version': string;
|
|
43
|
+
'WebKit-Version': string;
|
|
44
|
+
}
|
|
45
|
+
type defaultLaunchOptions = CDPLaunchOptions | BrowserlessLaunch | ((req: Request) => CDPLaunchOptions | BrowserlessLaunch);
|
|
46
|
+
interface Route {
|
|
47
|
+
_browserManager?: () => BrowserManager;
|
|
48
|
+
_config?: () => Config;
|
|
49
|
+
_debug?: () => debug.Debugger;
|
|
50
|
+
_fileSystem?: () => FileSystem;
|
|
51
|
+
_metrics?: () => Metrics;
|
|
52
|
+
_monitor?: () => Monitoring;
|
|
53
|
+
/**
|
|
54
|
+
* Whether the route requires a token to access.
|
|
55
|
+
*/
|
|
56
|
+
auth: boolean | ((req: Request) => Promise<boolean>);
|
|
57
|
+
/**
|
|
58
|
+
* The schematic of the submitted BODY (typically)
|
|
59
|
+
* an object when the route is json-based.
|
|
60
|
+
*/
|
|
61
|
+
bodySchema?: unknown;
|
|
62
|
+
/**
|
|
63
|
+
* Whether the route should be bound by the global
|
|
64
|
+
* concurrency limit
|
|
65
|
+
*/
|
|
66
|
+
concurrency: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Description of the route and what it does
|
|
69
|
+
*/
|
|
70
|
+
description: string;
|
|
71
|
+
/**
|
|
72
|
+
* The HTTP path that this route handles
|
|
73
|
+
*/
|
|
74
|
+
path: HTTPRoutes | WebsocketRoutes | HTTPManagementRoutes | string;
|
|
75
|
+
/**
|
|
76
|
+
* The query parameters accepted by the route, defined in
|
|
77
|
+
* an object format.
|
|
78
|
+
*/
|
|
79
|
+
querySchema?: unknown;
|
|
80
|
+
/**
|
|
81
|
+
* The structure of the routes response when successful
|
|
82
|
+
*/
|
|
83
|
+
responseSchema?: unknown;
|
|
84
|
+
/**
|
|
85
|
+
* The tag(s) for the route to categorize it in the
|
|
86
|
+
* documentation portal
|
|
87
|
+
*/
|
|
88
|
+
tags: APITags[];
|
|
89
|
+
}
|
|
90
|
+
interface BasicHTTPRoute extends Route {
|
|
91
|
+
/**
|
|
92
|
+
* The allowed Content-Types that this route can read and handle.
|
|
93
|
+
* If a request comes in with a Content-Type of 'application/json', then
|
|
94
|
+
* this accepts would need to include ["application/json"] in order to not 404
|
|
95
|
+
*/
|
|
96
|
+
accepts: Array<contentTypes>;
|
|
97
|
+
/**
|
|
98
|
+
* The Content-Types that this route will will respond with, and must match the Accepts
|
|
99
|
+
* Header from a client if present. If a request comes in with an Accepts of "application/json"
|
|
100
|
+
* then the contentTypes here would need to include ["application/json"] in order to not 404.
|
|
101
|
+
*/
|
|
102
|
+
contentTypes: Array<contentTypes>;
|
|
103
|
+
/**
|
|
104
|
+
* The allowed methods ("GET", "POST", etc) this route can utilize and match against.
|
|
105
|
+
*/
|
|
106
|
+
method: Methods;
|
|
107
|
+
}
|
|
108
|
+
export interface HTTPRoute extends BasicHTTPRoute {
|
|
109
|
+
browser: null;
|
|
110
|
+
/**
|
|
111
|
+
* Handles an inbound HTTP request, and supplies the Request and Response objects from node's HTTP request event
|
|
112
|
+
*/
|
|
113
|
+
handler: (req: Request, res: http.ServerResponse) => Promise<unknown>;
|
|
114
|
+
}
|
|
115
|
+
export interface BrowserHTTPRoute extends BasicHTTPRoute {
|
|
116
|
+
browser: BrowserClasses;
|
|
117
|
+
defaultLaunchOptions?: defaultLaunchOptions;
|
|
118
|
+
/**
|
|
119
|
+
* Handles an inbound HTTP request with a 3rd param of the predefined
|
|
120
|
+
* browser used for the route -- only Chrome CDP is support currently.
|
|
121
|
+
*/
|
|
122
|
+
handler: (req: Request, res: http.ServerResponse, browser: BrowserInstance) => Promise<unknown>;
|
|
123
|
+
onNewPage?: undefined;
|
|
124
|
+
}
|
|
125
|
+
export interface WebSocketRoute extends Route {
|
|
126
|
+
browser: null;
|
|
127
|
+
/**
|
|
128
|
+
* Handles an inbound Websocket request, and handles the connection
|
|
129
|
+
*/
|
|
130
|
+
handler: (req: Request, socket: stream.Duplex, head: Buffer) => Promise<unknown>;
|
|
131
|
+
}
|
|
132
|
+
export interface BrowserWebsocketRoute extends Route {
|
|
133
|
+
browser: BrowserClasses;
|
|
134
|
+
defaultLaunchOptions?: defaultLaunchOptions;
|
|
135
|
+
/**
|
|
136
|
+
* Handles an inbound Websocket request, and handles the connection
|
|
137
|
+
* with the prior set browser being injected.
|
|
138
|
+
*/
|
|
139
|
+
handler(req: Request, socket: stream.Duplex, head: Buffer, browser: BrowserInstance): Promise<unknown>;
|
|
140
|
+
onNewPage?: (url: URL, page: Page) => Promise<void>;
|
|
141
|
+
}
|
|
142
|
+
interface BrowserlessLaunch {
|
|
143
|
+
stealth?: boolean;
|
|
144
|
+
}
|
|
145
|
+
export interface CDPLaunchOptions extends BrowserlessLaunch {
|
|
146
|
+
args?: string[];
|
|
147
|
+
defaultViewport?: {
|
|
148
|
+
deviceScaleFactor?: number;
|
|
149
|
+
hasTouch?: boolean;
|
|
150
|
+
height: number;
|
|
151
|
+
isLandscape?: boolean;
|
|
152
|
+
isMobile?: boolean;
|
|
153
|
+
width: number;
|
|
154
|
+
};
|
|
155
|
+
devtools?: boolean;
|
|
156
|
+
dumpio?: boolean;
|
|
157
|
+
headless?: boolean | 'new';
|
|
158
|
+
ignoreDefaultArgs?: boolean | string[];
|
|
159
|
+
ignoreHTTPSErrors?: boolean;
|
|
160
|
+
slowMo?: number;
|
|
161
|
+
stealth?: boolean;
|
|
162
|
+
timeout?: number;
|
|
163
|
+
userDataDir?: string;
|
|
164
|
+
waitForInitialPage?: boolean;
|
|
165
|
+
}
|
|
166
|
+
export interface BrowserServerOptions {
|
|
167
|
+
args?: string[];
|
|
168
|
+
chromiumSandbox?: boolean;
|
|
169
|
+
devtools?: boolean;
|
|
170
|
+
downloadsPath?: string;
|
|
171
|
+
headless?: boolean;
|
|
172
|
+
ignoreDefaultArgs?: boolean | string[];
|
|
173
|
+
proxy?: {
|
|
174
|
+
bypass?: string;
|
|
175
|
+
password?: string;
|
|
176
|
+
server: string;
|
|
177
|
+
username?: string;
|
|
178
|
+
};
|
|
179
|
+
timeout?: number;
|
|
180
|
+
tracesDir?: string;
|
|
181
|
+
}
|
|
182
|
+
export interface BrowserlessSession {
|
|
183
|
+
id: string | null;
|
|
184
|
+
initialConnectURL: string;
|
|
185
|
+
isTempDataDir: boolean;
|
|
186
|
+
launchOptions: CDPLaunchOptions | BrowserServerOptions;
|
|
187
|
+
numbConnected: number;
|
|
188
|
+
resolver: (val: unknown) => void;
|
|
189
|
+
routePath: string;
|
|
190
|
+
startedOn: number;
|
|
191
|
+
ttl: number;
|
|
192
|
+
userDataDir: string | null;
|
|
193
|
+
}
|
|
194
|
+
export interface BrowserlessSessionJSON {
|
|
195
|
+
browser: string;
|
|
196
|
+
id: string | null;
|
|
197
|
+
initialConnectURL: string;
|
|
198
|
+
killURL: string | null;
|
|
199
|
+
launchOptions: CDPLaunchOptions | BrowserServerOptions;
|
|
200
|
+
numbConnected: number;
|
|
201
|
+
routePath: string;
|
|
202
|
+
startedOn: number;
|
|
203
|
+
timeAliveMs: number;
|
|
204
|
+
userDataDir: string | null;
|
|
205
|
+
}
|
|
206
|
+
export interface BrowserlessSessionFullJSON extends BrowserlessSessionJSON {
|
|
207
|
+
pages: {
|
|
208
|
+
title: string;
|
|
209
|
+
url: string;
|
|
210
|
+
}[];
|
|
211
|
+
}
|
|
212
|
+
export type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
|
|
213
|
+
export type WaitForFunctionOptions = {
|
|
214
|
+
/**
|
|
215
|
+
* The function, or statement, to be evaluated in browser context
|
|
216
|
+
*/
|
|
217
|
+
fn: string;
|
|
218
|
+
/**
|
|
219
|
+
* An interval at which the pageFunction is executed, defaults to raf.
|
|
220
|
+
* If polling is a number, then it is treated as an interval in milliseconds
|
|
221
|
+
* at which the function would be executed. If polling is a string,
|
|
222
|
+
* then it can be one of the following values: "raf" or "mutation"
|
|
223
|
+
*/
|
|
224
|
+
polling?: string | number;
|
|
225
|
+
/**
|
|
226
|
+
* Maximum time to wait for in milliseconds. Defaults to 30000 (30 seconds).
|
|
227
|
+
* Pass 0 to disable timeout.
|
|
228
|
+
*/
|
|
229
|
+
timeout?: number;
|
|
230
|
+
};
|
|
231
|
+
export type WaitForSelectorOptions = {
|
|
232
|
+
hidden?: boolean;
|
|
233
|
+
selector: string;
|
|
234
|
+
timeout?: number;
|
|
235
|
+
visible?: boolean;
|
|
236
|
+
};
|
|
237
|
+
export type WaitForEventOptions = {
|
|
238
|
+
event: string;
|
|
239
|
+
timeout?: number;
|
|
240
|
+
};
|
|
241
|
+
export interface ScreenshotSizeOptions {
|
|
242
|
+
height?: number;
|
|
243
|
+
scale?: number;
|
|
244
|
+
width?: number;
|
|
245
|
+
}
|
|
246
|
+
export interface ScrapeElementSelector {
|
|
247
|
+
selector: string;
|
|
248
|
+
timeout?: number;
|
|
249
|
+
}
|
|
250
|
+
export interface ScrapeDebugOptions {
|
|
251
|
+
console?: boolean;
|
|
252
|
+
cookies?: boolean;
|
|
253
|
+
html?: boolean;
|
|
254
|
+
network?: boolean;
|
|
255
|
+
screenshot?: boolean;
|
|
256
|
+
}
|
|
257
|
+
export interface OutBoundRequest {
|
|
258
|
+
headers: unknown;
|
|
259
|
+
method: string;
|
|
260
|
+
url: string;
|
|
261
|
+
}
|
|
262
|
+
export interface InBoundRequest {
|
|
263
|
+
headers: unknown;
|
|
264
|
+
status: number;
|
|
265
|
+
url: string;
|
|
266
|
+
}
|
|
267
|
+
export declare const debugScreenshotOpts: ScreenshotOptions;
|
|
268
|
+
declare global {
|
|
269
|
+
interface Window {
|
|
270
|
+
browserless: BrowserlessEmbeddedAPI;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
export interface BrowserlessEmbeddedAPI {
|
|
274
|
+
getRecording: () => Promise<string>;
|
|
275
|
+
liveUrl: () => string;
|
|
276
|
+
saveRecording: () => Promise<boolean>;
|
|
277
|
+
startRecording: () => void;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* When bestAttempt is set to true, browserless attempt to proceed
|
|
281
|
+
* when "awaited" events fail or timeout. This includes things like
|
|
282
|
+
* goto, waitForSelector, and more.
|
|
283
|
+
*/
|
|
284
|
+
export type bestAttempt = boolean;
|
|
285
|
+
/**
|
|
286
|
+
* Whether or not to allow JavaScript to run on the page.
|
|
287
|
+
*/
|
|
288
|
+
export type setJavaScriptEnabled = boolean;
|
|
289
|
+
/**
|
|
290
|
+
* A pattern to match requests with automatic rejections.
|
|
291
|
+
* Internally we do this with the following: `req.url().match(pattern)`.
|
|
292
|
+
*/
|
|
293
|
+
export type rejectRequestPattern = string;
|
|
294
|
+
export type rejectResourceTypes = ReturnType<HTTPRequest['resourceType']>;
|
|
295
|
+
/**
|
|
296
|
+
* An array of patterns (using `req.url().match(r.pattern)` to match) and their
|
|
297
|
+
* corresponding responses to use in order to fulfill those requests.
|
|
298
|
+
*/
|
|
299
|
+
export type requestInterceptors = {
|
|
300
|
+
/**
|
|
301
|
+
* An array of patterns (using `req.url().match(r.pattern)` to match) and their
|
|
302
|
+
* corresponding responses to use in order to fulfill those requests.
|
|
303
|
+
*/
|
|
304
|
+
pattern: string;
|
|
305
|
+
response: Partial<ResponseForRequest>;
|
|
306
|
+
};
|
|
307
|
+
export interface IResourceLoad {
|
|
308
|
+
cpu: number | null;
|
|
309
|
+
memory: number | null;
|
|
310
|
+
}
|
|
311
|
+
export interface IBrowserlessPressure {
|
|
312
|
+
cpu: number | null;
|
|
313
|
+
date: number;
|
|
314
|
+
isAvailable: boolean;
|
|
315
|
+
maxConcurrent: number;
|
|
316
|
+
maxQueued: number;
|
|
317
|
+
memory: number | null;
|
|
318
|
+
message: string;
|
|
319
|
+
queued: number;
|
|
320
|
+
reason: string;
|
|
321
|
+
recentlyRejected: number;
|
|
322
|
+
running: number;
|
|
323
|
+
}
|
|
324
|
+
export interface IBrowserlessMetricTotals {
|
|
325
|
+
error: number;
|
|
326
|
+
estimatedMonthlyUnits: number;
|
|
327
|
+
maxConcurrent: number;
|
|
328
|
+
maxTime: number;
|
|
329
|
+
meanTime: number;
|
|
330
|
+
minTime: number;
|
|
331
|
+
minutesOfMetricsAvailable: number;
|
|
332
|
+
queued: number;
|
|
333
|
+
rejected: number;
|
|
334
|
+
sessionTimes: number[];
|
|
335
|
+
successful: number;
|
|
336
|
+
timedout: number;
|
|
337
|
+
totalTime: number;
|
|
338
|
+
unhealthy: number;
|
|
339
|
+
units: number;
|
|
340
|
+
}
|
|
341
|
+
export interface IBrowserlessStats {
|
|
342
|
+
cpu: number | null;
|
|
343
|
+
date: number;
|
|
344
|
+
error: number;
|
|
345
|
+
maxConcurrent: number;
|
|
346
|
+
maxTime: number;
|
|
347
|
+
meanTime: number;
|
|
348
|
+
memory: number | null;
|
|
349
|
+
minTime: number;
|
|
350
|
+
queued: number;
|
|
351
|
+
rejected: number;
|
|
352
|
+
sessionTimes: number[];
|
|
353
|
+
successful: number;
|
|
354
|
+
timedout: number;
|
|
355
|
+
totalTime: number;
|
|
356
|
+
unauthorized: number;
|
|
357
|
+
unhealthy: number;
|
|
358
|
+
units: number;
|
|
359
|
+
}
|
|
360
|
+
export {};
|
package/build/types.js
ADDED
package/build/utils.d.ts
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import { BrowserHTTPRoute, BrowserWebsocketRoute, CDPChromium, Config, HTTPRoute, PlaywrightChromium, PlaywrightFirefox, PlaywrightWebkit, Request, WaitForEventOptions, WaitForFunctionOptions, WebSocketRoute, codes, contentTypes } from '@browserless.io/browserless';
|
|
5
|
+
import { CDPSession } from 'playwright-core';
|
|
6
|
+
import { Duplex } from 'stream';
|
|
7
|
+
import { Page } from 'puppeteer-core';
|
|
8
|
+
import { ServerResponse } from 'http';
|
|
9
|
+
import debug from 'debug';
|
|
10
|
+
export declare const buildDir: string;
|
|
11
|
+
export declare const tsExtension = ".d.ts";
|
|
12
|
+
export declare const jsonExtension = ".json";
|
|
13
|
+
export declare const jsExtension = ".js";
|
|
14
|
+
export declare const id: () => string;
|
|
15
|
+
export declare const createLogger: (domain: string) => debug.Debugger;
|
|
16
|
+
export declare const dedent: (strings: string | string[], ...values: string[]) => string;
|
|
17
|
+
export declare const isConnected: (connection: Duplex | ServerResponse) => boolean;
|
|
18
|
+
export declare const writeResponse: (writeable: Duplex | ServerResponse, httpCode: keyof typeof codes, message: string, contentType?: contentTypes) => void;
|
|
19
|
+
export declare const jsonResponse: (response: ServerResponse, httpCode?: keyof typeof codes, json?: unknown, allowNull?: boolean) => void;
|
|
20
|
+
export declare const fetchJson: (url: string, init?: RequestInit | undefined) => Promise<unknown>;
|
|
21
|
+
export declare const getTokenFromRequest: (req: Request) => string | null;
|
|
22
|
+
export declare const isAuthorized: (req: Request, route: BrowserHTTPRoute | BrowserWebsocketRoute | HTTPRoute | WebSocketRoute, token: string | string[] | null) => boolean;
|
|
23
|
+
export declare const readRequestBody: (req: Request) => Promise<string>;
|
|
24
|
+
export declare const safeParse: (maybeJson: string) => unknown | null;
|
|
25
|
+
export declare const removeNullStringify: (json: unknown, allowNull?: boolean) => string;
|
|
26
|
+
export declare const jsonOrString: (maybeJson: string) => unknown | string;
|
|
27
|
+
export declare const readBody: (req: Request) => Promise<ReturnType<typeof safeParse>>;
|
|
28
|
+
export declare const getRouteFiles: (config: Config) => Promise<string[][]>;
|
|
29
|
+
export declare const make404: (...messages: string[]) => string;
|
|
30
|
+
/**
|
|
31
|
+
* Returns a Promise that will automatically resolve
|
|
32
|
+
* after the provided number of milliseconds.
|
|
33
|
+
*
|
|
34
|
+
* @param {number} time
|
|
35
|
+
* @returns {Promise}
|
|
36
|
+
*/
|
|
37
|
+
export declare const sleep: (time: number) => Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Returns a boolean if a given filepath (directory or file)
|
|
40
|
+
* exists in the file system. Uses stat internally.
|
|
41
|
+
*
|
|
42
|
+
* @param {string} path The file or folder path
|
|
43
|
+
* @returns {boolean}
|
|
44
|
+
*/
|
|
45
|
+
export declare const exists: (path: string) => Promise<boolean>;
|
|
46
|
+
/**
|
|
47
|
+
* Returns a boolean if a given file, not directory,
|
|
48
|
+
* exists in the file system. Uses stat internally.
|
|
49
|
+
*
|
|
50
|
+
* @param {string} path The file or folder path
|
|
51
|
+
* @returns {boolean}
|
|
52
|
+
*/
|
|
53
|
+
export declare const fileExists: (path: string) => Promise<boolean>;
|
|
54
|
+
export declare const convertIfBase64: (item: string) => string;
|
|
55
|
+
export declare const availableBrowsers: Promise<(typeof CDPChromium | typeof PlaywrightChromium | typeof PlaywrightFirefox | typeof PlaywrightWebkit)[]>;
|
|
56
|
+
export declare const queryParamsToObject: (params: URLSearchParams) => Record<string, unknown>;
|
|
57
|
+
export declare const waitForFunction: (page: Page, opts: WaitForFunctionOptions) => Promise<void>;
|
|
58
|
+
export declare const waitForEvent: (page: Page, opts: WaitForEventOptions) => Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Scrolls through the web-page to trigger any lazy-loaded
|
|
61
|
+
* assets to load up. Currently doesn't support infinite-loading
|
|
62
|
+
* pages as they'll increase the length of the page.
|
|
63
|
+
*
|
|
64
|
+
* @param page Page
|
|
65
|
+
*/
|
|
66
|
+
export declare const scrollThroughPage: (page: Page) => Promise<void>;
|
|
67
|
+
export declare const noop: () => void;
|
|
68
|
+
export declare const once: <A extends unknown[], R, T>(fn: (this: T, ...arg: A) => R) => (this: T, ...arg: A) => R | undefined;
|
|
69
|
+
export declare const getRandomNegativeInt: () => number;
|
|
70
|
+
/**
|
|
71
|
+
* Converts an inbound req.url string to a valid URL object.
|
|
72
|
+
* Handles cases where browserless might be behind a path or reverse proxy.
|
|
73
|
+
*
|
|
74
|
+
* @param url The inbound url, generally req.url
|
|
75
|
+
* @param config The config object
|
|
76
|
+
* @returns The full URL object
|
|
77
|
+
*/
|
|
78
|
+
export declare const convertPathToURL: (url: string, config: Config) => URL;
|
|
79
|
+
export declare const makeExternalURL: (externalAddress: string, ...parts: string[]) => string;
|
|
80
|
+
export declare class BadRequest extends Error {
|
|
81
|
+
constructor(message: string);
|
|
82
|
+
}
|
|
83
|
+
export declare class TooManyRequests extends Error {
|
|
84
|
+
constructor(message: string);
|
|
85
|
+
}
|
|
86
|
+
export declare class ServerError extends Error {
|
|
87
|
+
constructor(message: string);
|
|
88
|
+
}
|
|
89
|
+
export declare class Unauthorized extends Error {
|
|
90
|
+
constructor(message: string);
|
|
91
|
+
}
|
|
92
|
+
export declare class NotFound extends Error {
|
|
93
|
+
constructor(message: string);
|
|
94
|
+
}
|
|
95
|
+
export declare class Timeout extends Error {
|
|
96
|
+
constructor(message: string);
|
|
97
|
+
}
|
|
98
|
+
export declare const bestAttemptCatch: (bestAttempt: boolean) => (err: Error) => void;
|
|
99
|
+
export declare const parseBooleanParam: (params: URLSearchParams, name: string, defaultValue: boolean) => boolean;
|
|
100
|
+
export declare const parseNumberParam: (params: URLSearchParams, name: string, defaultValue: number) => number;
|
|
101
|
+
export declare const parseStringParam: (params: URLSearchParams, name: string, defaultValue: string) => any;
|
|
102
|
+
export declare const encrypt: (text: string, secret: Buffer) => string;
|
|
103
|
+
export declare const decrypt: (encryptedText: string, secret: Buffer) => string;
|
|
104
|
+
interface RequestInitTimeout extends RequestInit {
|
|
105
|
+
timeout?: number;
|
|
106
|
+
}
|
|
107
|
+
export declare const fetchTimeout: (input: RequestInfo | URL, initWithTimeout?: RequestInitTimeout) => Promise<Response>;
|
|
108
|
+
export declare const untildify: (path: string) => string;
|
|
109
|
+
export declare const printLogo: (docsLink: string) => string;
|
|
110
|
+
export declare const getCDPClient: (page: Page) => CDPSession;
|
|
111
|
+
export {};
|