@browserless.io/browserless 2.33.0 → 2.34.0-beta-0
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 +1 -1
- package/build/config.d.ts +1 -1
- package/build/config.js +1 -1
- package/build/http.d.ts +10 -0
- package/build/http.js +5 -0
- package/build/limiter.spec.js +1 -1
- 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 +8 -8
- package/build/routes/chrome/tests/content.spec.js +12 -12
- package/build/routes/chrome/tests/page-websocket.spec.js +3 -3
- package/build/routes/chrome/tests/pdf.spec.js +13 -13
- package/build/routes/chrome/tests/performance.spec.js +4 -4
- package/build/routes/chrome/tests/scrape.spec.js +13 -13
- package/build/routes/chrome/tests/screenshot.spec.js +14 -14
- package/build/routes/chromium/http/content.post.body.json +8 -8
- package/build/routes/chromium/http/pdf.post.body.json +8 -8
- package/build/routes/chromium/http/scrape.post.body.json +8 -8
- package/build/routes/chromium/http/screenshot.post.body.json +8 -8
- package/build/routes/chromium/tests/content.spec.js +13 -13
- package/build/routes/chromium/tests/page-websocket.spec.js +3 -3
- package/build/routes/chromium/tests/pdf.spec.js +13 -13
- package/build/routes/chromium/tests/performance.spec.js +4 -4
- package/build/routes/chromium/tests/scrape.spec.js +13 -13
- package/build/routes/chromium/tests/screenshot.spec.js +14 -14
- package/build/routes/edge/http/content.post.body.json +8 -8
- package/build/routes/edge/http/pdf.post.body.json +8 -8
- package/build/routes/edge/http/scrape.post.body.json +8 -8
- package/build/routes/edge/http/screenshot.post.body.json +8 -8
- package/build/routes/edge/tests/content.spec.js +12 -12
- package/build/routes/edge/tests/page-websocket.spec.js +3 -3
- package/build/routes/edge/tests/pdf.spec.js +13 -13
- package/build/routes/edge/tests/performance.spec.js +4 -4
- package/build/routes/edge/tests/scrape.spec.js +13 -13
- package/build/routes/edge/tests/screenshot.spec.js +14 -14
- package/build/routes/management/http/kill.get.d.ts +1 -1
- package/build/routes/management/http/kill.get.query.json +0 -3
- package/build/routes/management/http/pressure.get.d.ts +1 -1
- package/build/routes/management/http/pressure.get.js +12 -4
- package/build/routes/management/http/sessions.get.d.ts +1 -1
- package/build/routes/management/http/sessions.get.query.json +0 -3
- package/build/routes/management/tests/management.spec.js +13 -13
- package/build/server.js +12 -4
- package/build/shim.d.ts +5 -0
- package/build/shim.js +13 -0
- package/build/shim.spec.js +28 -1
- package/build/types.d.ts +14 -0
- package/build/types.js +14 -0
- package/build/utils.js +1 -1
- package/extensions/ublocklite/_locales/ar/messages.json +8 -8
- package/extensions/ublocklite/_locales/be/messages.json +8 -8
- package/extensions/ublocklite/_locales/fi/messages.json +18 -18
- package/extensions/ublocklite/_locales/hi/messages.json +21 -21
- package/extensions/ublocklite/_locales/hu/messages.json +8 -8
- package/extensions/ublocklite/_locales/id/messages.json +15 -15
- package/extensions/ublocklite/_locales/ja/messages.json +23 -23
- package/extensions/ublocklite/_locales/nl/messages.json +1 -1
- package/extensions/ublocklite/_locales/pt_BR/messages.json +15 -15
- package/extensions/ublocklite/_locales/pt_PT/messages.json +18 -18
- package/extensions/ublocklite/_locales/th/messages.json +30 -30
- package/extensions/ublocklite/_locales/tr/messages.json +1 -1
- package/extensions/ublocklite/_locales/uk/messages.json +10 -10
- package/extensions/ublocklite/_locales/vi/messages.json +8 -8
- package/extensions/ublocklite/css/picker-ui.css +1 -1
- package/extensions/ublocklite/css/report.css +0 -8
- package/extensions/ublocklite/js/background.js +30 -6
- package/extensions/ublocklite/js/debug.js +8 -4
- package/extensions/ublocklite/js/develop.js +1 -1
- package/extensions/ublocklite/js/ext-compat.js +9 -2
- package/extensions/ublocklite/js/filter-lists.js +1 -2
- package/extensions/ublocklite/js/filter-manager.js +57 -23
- package/extensions/ublocklite/js/picker-ui.js +32 -41
- package/extensions/ublocklite/js/popup.js +10 -10
- package/extensions/ublocklite/js/redirect-resources.js +1 -0
- package/extensions/ublocklite/js/ro-dnr-editor.js +6 -1
- package/extensions/ublocklite/js/scripting/css-procedural-api.js +821 -0
- package/extensions/ublocklite/js/scripting/css-procedural.js +62 -718
- package/extensions/ublocklite/{rulesets/scripting/declarative/isr-0.js → js/scripting/css-user-terminate.js} +16 -13
- package/extensions/ublocklite/js/scripting/css-user.js +12 -1
- package/extensions/ublocklite/js/scripting/picker.js +46 -13
- package/extensions/ublocklite/js/scripting/tool-overlay.js +14 -8
- package/extensions/ublocklite/js/scripting/unpicker.js +5 -9
- package/extensions/ublocklite/js/scripting/zapper.js +1 -1
- package/extensions/ublocklite/js/scripting-manager.js +0 -65
- package/extensions/ublocklite/js/static-filtering-parser.js +2 -2
- package/extensions/ublocklite/js/tool-overlay-ui.js +1 -1
- package/extensions/ublocklite/js/unpicker-ui.js +16 -9
- package/extensions/ublocklite/js/zapper-ui.js +3 -2
- package/extensions/ublocklite/manifest.json +7 -2
- package/extensions/ublocklite/picker-ui.html +1 -1
- package/extensions/ublocklite/report.html +0 -1
- package/extensions/ublocklite/rulesets/generic-details.json +10 -14
- package/extensions/ublocklite/rulesets/main/adguard-mobile.json +3 -2
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +19 -10
- package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -3
- package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +4 -4
- package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
- package/extensions/ublocklite/rulesets/main/block-lan.json +2 -1
- package/extensions/ublocklite/rulesets/main/chn-0.json +22 -21
- package/extensions/ublocklite/rulesets/main/deu-0.json +6 -5
- package/extensions/ublocklite/rulesets/main/dpollock-0.json +5 -41
- package/extensions/ublocklite/rulesets/main/easylist.json +59 -35
- package/extensions/ublocklite/rulesets/main/easyprivacy.json +65 -12
- package/extensions/ublocklite/rulesets/main/fra-0.json +9 -11
- package/extensions/ublocklite/rulesets/main/hrv-0.json +5 -5
- package/extensions/ublocklite/rulesets/main/hun-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/idn-0.json +8 -2
- package/extensions/ublocklite/rulesets/main/ind-0.json +30 -24
- package/extensions/ublocklite/rulesets/main/irn-0.json +44 -635
- package/extensions/ublocklite/rulesets/main/isr-0.json +1 -0
- package/extensions/ublocklite/rulesets/main/jpn-1.json +42 -26
- package/extensions/ublocklite/rulesets/main/kor-1.json +9 -4
- package/extensions/ublocklite/rulesets/main/mkd-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/nld-0.json +2 -1
- package/extensions/ublocklite/rulesets/main/nor-0.json +14 -12
- package/extensions/ublocklite/rulesets/main/pgl.json +29 -12
- package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/rus-0.json +23 -30
- package/extensions/ublocklite/rulesets/main/rus-1.json +4 -2
- package/extensions/ublocklite/rulesets/main/spa-1.json +9 -32
- package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +13773 -14561
- package/extensions/ublocklite/rulesets/main/swe-1.json +39 -29
- package/extensions/ublocklite/rulesets/main/tur-0.json +39 -27
- package/extensions/ublocklite/rulesets/main/ublock-badware.json +63 -65
- package/extensions/ublocklite/rulesets/main/ublock-experimental.json +3 -0
- package/extensions/ublocklite/rulesets/main/ublock-filters.json +99 -41
- package/extensions/ublocklite/rulesets/main/ukr-0.json +5 -7
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +432 -1025
- package/extensions/ublocklite/rulesets/main/vie-1.json +50 -50
- package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +3 -0
- package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +1 -1
- package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +3 -7
- package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +1 -1
- package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +1 -0
- package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +16 -0
- package/extensions/ublocklite/rulesets/redirect/rus-0.json +2 -1
- package/extensions/ublocklite/rulesets/redirect/spa-1.json +1 -2
- package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -2
- package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +17 -10
- package/extensions/ublocklite/rulesets/redirect/vie-1.json +5 -22
- package/extensions/ublocklite/rulesets/regex/chn-0.json +1 -1
- package/extensions/ublocklite/rulesets/regex/ita-0.json +1 -0
- package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
- package/extensions/ublocklite/rulesets/regex/tur-0.json +3 -1
- package/extensions/ublocklite/rulesets/regex/ublock-badware.json +1 -4
- package/extensions/ublocklite/rulesets/regex/ublock-filters.json +12 -9
- package/extensions/ublocklite/rulesets/regex/ukr-0.json +2 -2
- package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +22 -11
- package/extensions/ublocklite/rulesets/removeparam/irn-0.json +27 -15
- package/extensions/ublocklite/rulesets/removeparam/rus-1.json +1 -1
- package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +1 -2
- package/extensions/ublocklite/rulesets/ruleset-details.json +281 -304
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/ind-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/kor-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/rou-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +3 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +26 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +2 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/tur-0.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
- package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/alb-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/cze-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/easyprivacy.js +5 -5
- package/extensions/ublocklite/rulesets/scripting/procedural/est-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/grc-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/hrv-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/hun-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/isl-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/isr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ita-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ltu-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/lva-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/mkd-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/nor-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/pol-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/spa-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/svn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/tha-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-badware.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ubol-tests.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/ukr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.set-attr.js → annoyances-cookies.set-cookie-reload.js} +129 -108
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +5 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +5 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-local-storage-item.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-setTimeout.js → fra-0.prevent-requestAnimationFrame.js} +13 -49
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.remove-node-text.js → fra-0.remove-node-text.js} +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.abort-on-property-read.js → hun-0.set-local-storage-item.js} +92 -62
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-current-script.js +7 -6
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-on-property-read.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.adjust-setTimeout.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.abort-on-stack-trace.js → kor-1.spoof-css.js} +113 -112
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-xhr.js → nld-0.prevent-xhr.js} +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setInterval.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-window-open.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-current-script.js +5 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.adjust-setInterval.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.json-prune-fetch-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-xhr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-local-storage-item.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.abort-current-script.js +5 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setInterval.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.adjust-setTimeout.js → tur-0.adjust-setTimeout.js} +4 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.m3u-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +795 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{tur-0.set-attr.js → ublock-experimental.trusted-replace-node-text.js} +144 -119
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +7 -6
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.close-window.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.close-window.js → ublock-filters.prevent-canvas.js} +14 -21
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-session-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-request.js +884 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +887 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-fetch.js → ublock-filters.trusted-prevent-fetch.js} +7 -7
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-fetch-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/cze-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/{declarative/ubol-tests.js → specific/easyprivacy.js} +7 -7
- package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/hrv-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/pol-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
- package/extensions/ublocklite/rulesets/scriptlet-details.json +265 -553
- package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +6 -1
- package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +0 -1
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +235 -1
- package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +5 -41
- package/extensions/ublocklite/rulesets/strictblock/easylist.json +13 -14
- package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +53 -3
- package/extensions/ublocklite/rulesets/strictblock/fra-0.json +236 -31
- package/extensions/ublocklite/rulesets/strictblock/hun-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/irn-0.json +8 -251
- package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +174 -166
- package/extensions/ublocklite/rulesets/strictblock/kor-1.json +4 -0
- package/extensions/ublocklite/rulesets/strictblock/mkd-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/pgl.json +29 -12
- package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +13773 -14561
- package/extensions/ublocklite/rulesets/strictblock/swe-1.json +3 -55
- package/extensions/ublocklite/rulesets/strictblock/tur-0.json +0 -1
- package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +646 -641
- package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +1 -4
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +432 -1025
- package/extensions/ublocklite/rulesets/strictblock/vie-1.json +2 -2
- package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +60 -2
- package/extensions/ublocklite/ublock.zip +0 -0
- package/extensions/ublocklite/web_accessible_resources/fingerprint2.js +1 -1
- package/package.json +12 -12
- package/src/config.ts +1 -1
- package/src/http.ts +5 -0
- package/src/limiter.spec.ts +1 -1
- package/src/routes/chrome/tests/content.spec.ts +12 -12
- package/src/routes/chrome/tests/page-websocket.spec.ts +3 -3
- package/src/routes/chrome/tests/pdf.spec.ts +13 -13
- package/src/routes/chrome/tests/performance.spec.ts +4 -4
- package/src/routes/chrome/tests/scrape.spec.ts +13 -13
- package/src/routes/chrome/tests/screenshot.spec.ts +14 -14
- package/src/routes/chromium/tests/content.spec.ts +13 -13
- package/src/routes/chromium/tests/page-websocket.spec.ts +3 -3
- package/src/routes/chromium/tests/pdf.spec.ts +13 -13
- package/src/routes/chromium/tests/performance.spec.ts +4 -4
- package/src/routes/chromium/tests/scrape.spec.ts +13 -13
- package/src/routes/chromium/tests/screenshot.spec.ts +14 -14
- package/src/routes/edge/tests/content.spec.ts +12 -12
- package/src/routes/edge/tests/page-websocket.spec.ts +3 -3
- package/src/routes/edge/tests/pdf.spec.ts +13 -13
- package/src/routes/edge/tests/performance.spec.ts +4 -4
- package/src/routes/edge/tests/scrape.spec.ts +13 -13
- package/src/routes/edge/tests/screenshot.spec.ts +14 -14
- package/src/routes/management/http/kill.get.ts +1 -1
- package/src/routes/management/http/pressure.get.ts +15 -3
- package/src/routes/management/http/sessions.get.ts +1 -1
- package/src/routes/management/tests/management.spec.ts +13 -13
- package/src/server.ts +17 -3
- package/src/shim.spec.ts +40 -1
- package/src/shim.ts +17 -0
- package/src/types.ts +25 -0
- package/src/utils.ts +1 -1
- package/static/docs/swagger.json +247 -38
- package/static/docs/swagger.min.json +246 -37
- package/static/function/client.js +46 -8
- package/static/function/index.html +46 -8
- package/extensions/ublocklite/js/scripting/css-declarative.js +0 -116
- package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
- package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
- package/extensions/ublocklite/rulesets/regex/irn-0.json +0 -22
- package/extensions/ublocklite/rulesets/scripting/declarative/adguard-mobile.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/alb-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-cookies.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-others.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-overlays.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-social.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/chn-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/cze-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/easylist.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/est-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/fin-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/fra-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/grc-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/hrv-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/hun-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/idn-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/irn-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/jpn-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/kor-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/ltu-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/nld-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/nor-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/pol-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/rou-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/rus-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/rus-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/spa-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/swe-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/tur-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/ublock-badware.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/ublock-filters.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/ukr-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/vie-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-fetch.js +0 -553
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +0 -451
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-on-property-write.js +0 -347
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +0 -498
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.adjust-setInterval.js +0 -332
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +0 -541
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.json-prune.js +0 -506
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +0 -471
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-attr.js +0 -405
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-cookie.js +0 -376
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +0 -541
|
@@ -14,16 +14,16 @@ describe('Management APIs', function () {
|
|
|
14
14
|
it('allows Single Origin OPTIONS requests', async () => {
|
|
15
15
|
const config = new Config();
|
|
16
16
|
config.enableCORS(true);
|
|
17
|
-
config.setCORSOrigin('https://
|
|
17
|
+
config.setCORSOrigin('https://one.one.one.one');
|
|
18
18
|
await start({ config });
|
|
19
19
|
const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
|
|
20
20
|
method: 'OPTIONS',
|
|
21
21
|
headers: {
|
|
22
|
-
Origin: 'https://
|
|
22
|
+
Origin: 'https://one.one.one.one',
|
|
23
23
|
},
|
|
24
24
|
});
|
|
25
25
|
expect(r.status).to.equal(204);
|
|
26
|
-
expect(r.headers.get('access-control-allow-origin')).to.equal('https://
|
|
26
|
+
expect(r.headers.get('access-control-allow-origin')).to.equal('https://one.one.one.one');
|
|
27
27
|
});
|
|
28
28
|
it('allows wildcard orign OPTIONS requests', async () => {
|
|
29
29
|
const config = new Config();
|
|
@@ -33,44 +33,44 @@ describe('Management APIs', function () {
|
|
|
33
33
|
const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
|
|
34
34
|
method: 'OPTIONS',
|
|
35
35
|
headers: {
|
|
36
|
-
Origin: 'https://
|
|
36
|
+
Origin: 'https://one.one.one.one',
|
|
37
37
|
},
|
|
38
38
|
});
|
|
39
39
|
expect(r.status).to.equal(204);
|
|
40
|
-
expect(r.headers.get('access-control-allow-origin')).to.equal('https://
|
|
40
|
+
expect(r.headers.get('access-control-allow-origin')).to.equal('https://one.one.one.one');
|
|
41
41
|
});
|
|
42
42
|
it('allows glob-matched OPTIONS requests', async () => {
|
|
43
43
|
const config = new Config();
|
|
44
44
|
config.enableCORS(true);
|
|
45
|
-
config.setCORSOrigin('*.
|
|
45
|
+
config.setCORSOrigin('*.one.one.one.one');
|
|
46
46
|
await start({ config });
|
|
47
47
|
const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
|
|
48
48
|
method: 'OPTIONS',
|
|
49
49
|
headers: {
|
|
50
|
-
Origin: 'https://subdomain.
|
|
50
|
+
Origin: 'https://subdomain.one.one.one.one',
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
53
|
expect(r.status).to.equal(204);
|
|
54
|
-
expect(r.headers.get('access-control-allow-origin')).to.equal('https://subdomain.
|
|
54
|
+
expect(r.headers.get('access-control-allow-origin')).to.equal('https://subdomain.one.one.one.one');
|
|
55
55
|
});
|
|
56
56
|
it('allows glob-matched OPTIONS requests with OR patterns', async () => {
|
|
57
57
|
const config = new Config();
|
|
58
58
|
config.enableCORS(true);
|
|
59
|
-
config.setCORSOrigin('https://(abc|xyz).
|
|
59
|
+
config.setCORSOrigin('https://(abc|xyz).one.one.one.one');
|
|
60
60
|
await start({ config });
|
|
61
61
|
const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
|
|
62
62
|
method: 'OPTIONS',
|
|
63
63
|
headers: {
|
|
64
|
-
Origin: 'https://abc.
|
|
64
|
+
Origin: 'https://abc.one.one.one.one',
|
|
65
65
|
},
|
|
66
66
|
});
|
|
67
67
|
expect(r.status).to.equal(204);
|
|
68
|
-
expect(r.headers.get('access-control-allow-origin')).to.equal('https://abc.
|
|
68
|
+
expect(r.headers.get('access-control-allow-origin')).to.equal('https://abc.one.one.one.one');
|
|
69
69
|
});
|
|
70
70
|
it('allows glob-matched OPTIONS requests with OR patterns across two domains', async () => {
|
|
71
71
|
const config = new Config();
|
|
72
72
|
config.enableCORS(true);
|
|
73
|
-
config.setCORSOrigin('(https://(abc|xyz).
|
|
73
|
+
config.setCORSOrigin('(https://(abc|xyz).one.one.one.one|https://deploy-preview-*.netlify.app)');
|
|
74
74
|
await start({ config });
|
|
75
75
|
const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
|
|
76
76
|
method: 'OPTIONS',
|
|
@@ -89,7 +89,7 @@ describe('Management APIs', function () {
|
|
|
89
89
|
const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
|
|
90
90
|
method: 'OPTIONS',
|
|
91
91
|
headers: {
|
|
92
|
-
Origin: 'https://subdomain.
|
|
92
|
+
Origin: 'https://subdomain.one.one.one.one',
|
|
93
93
|
},
|
|
94
94
|
});
|
|
95
95
|
expect(r.status).to.equal(404);
|
package/build/server.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as http from 'http';
|
|
2
|
-
import { BadRequest, Logger as BlessLogger, NotFound, Timeout, TooManyRequests, Unauthorized, contentTypes, convertPathToURL, isMatch, queryParamsToObject, readBody, shimLegacyRequests, writeResponse, } from '@browserless.io/browserless';
|
|
2
|
+
import { BadRequest, Logger as BlessLogger, NotFound, Timeout, TooManyRequests, Unauthorized, contentTypes, convertPathToURL, isMatch, moveTokenToHeader, queryParamsToObject, readBody, shimLegacyRequests, writeResponse, } from '@browserless.io/browserless';
|
|
3
3
|
import { EventEmitter } from 'events';
|
|
4
4
|
import EnjoiResolver from './shared/utils/enjoi-resolver.js';
|
|
5
5
|
export class HTTPServer extends EventEmitter {
|
|
@@ -73,7 +73,8 @@ export class HTTPServer extends EventEmitter {
|
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
75
|
async handleRequest(request, res) {
|
|
76
|
-
|
|
76
|
+
request.url = moveTokenToHeader(request);
|
|
77
|
+
this.logger.trace(`Handling inbound HTTP request on "${request.method}: ${request.url || ''}"`);
|
|
77
78
|
const req = request;
|
|
78
79
|
const proceed = await this.hooks.before({ req, res });
|
|
79
80
|
req.parsed = convertPathToURL(request.url || '', this.config);
|
|
@@ -114,8 +115,11 @@ export class HTTPServer extends EventEmitter {
|
|
|
114
115
|
return Promise.resolve();
|
|
115
116
|
}
|
|
116
117
|
this.logger.trace(`Found matching HTTP route handler "${route.path}"`);
|
|
118
|
+
if (route.before && !(await route.before(req, res))) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
117
121
|
if (route?.auth) {
|
|
118
|
-
this.logger.trace(`Authorizing HTTP request to "${request.url}"`);
|
|
122
|
+
this.logger.trace(`Authorizing HTTP request to "${request.url || ''}"`);
|
|
119
123
|
const isPermitted = await this.token.isAuthorized(req, route);
|
|
120
124
|
if (!isPermitted) {
|
|
121
125
|
return this.onHTTPUnauthorized(req, res);
|
|
@@ -182,7 +186,8 @@ export class HTTPServer extends EventEmitter {
|
|
|
182
186
|
.catch((e) => this.handleErrorRequest(e, res));
|
|
183
187
|
}
|
|
184
188
|
async handleWebSocket(request, socket, head) {
|
|
185
|
-
|
|
189
|
+
request.url = moveTokenToHeader(request);
|
|
190
|
+
this.logger.trace(`Handling inbound WebSocket request on "${request.url || ''}"`);
|
|
186
191
|
const req = request;
|
|
187
192
|
const proceed = await this.hooks.before({ head, req, socket });
|
|
188
193
|
req.parsed = convertPathToURL(request.url || '', this.config);
|
|
@@ -193,6 +198,9 @@ export class HTTPServer extends EventEmitter {
|
|
|
193
198
|
const route = await this.router.getRouteForWebSocketRequest(req);
|
|
194
199
|
if (route) {
|
|
195
200
|
this.logger.trace(`Found matching WebSocket route handler "${route.path}"`);
|
|
201
|
+
if (route.before && !(await route.before(req, socket, head))) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
196
204
|
if (route?.auth) {
|
|
197
205
|
this.logger.trace(`Authorizing WebSocket request to "${req.parsed.href}"`);
|
|
198
206
|
const isPermitted = await this.token.isAuthorized(req, route);
|
package/build/shim.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import * as http from 'http';
|
|
2
|
+
/**
|
|
3
|
+
* Obfuscates the ?token parameter by shifting it to a header instead of a query-parameter.
|
|
4
|
+
*/
|
|
5
|
+
export declare function moveTokenToHeader(req: http.IncomingMessage): string;
|
|
1
6
|
/**
|
|
2
7
|
* Given a legacy connect or API call, this shim will
|
|
3
8
|
* re-order the arguments to make them valid in the 2.0
|
package/build/shim.js
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { convertIfBase64, safeParse, } from '@browserless.io/browserless';
|
|
2
2
|
const shimParam = ['headless', 'stealth', 'ignoreDefaultArgs', 'slowMo'];
|
|
3
|
+
/**
|
|
4
|
+
* Obfuscates the ?token parameter by shifting it to a header instead of a query-parameter.
|
|
5
|
+
*/
|
|
6
|
+
export function moveTokenToHeader(req) {
|
|
7
|
+
const parsed = new URL(req.url || '', 'http://localhost');
|
|
8
|
+
const token = parsed.searchParams.get('token');
|
|
9
|
+
if (token) {
|
|
10
|
+
parsed.searchParams.delete('token');
|
|
11
|
+
req.headers.authorization = req.headers.authorization ?? `Bearer ${token}`;
|
|
12
|
+
req.url = parsed.pathname + parsed.search;
|
|
13
|
+
}
|
|
14
|
+
return req.url;
|
|
15
|
+
}
|
|
3
16
|
/**
|
|
4
17
|
* Given a legacy connect or API call, this shim will
|
|
5
18
|
* re-order the arguments to make them valid in the 2.0
|
package/build/shim.spec.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
-
import { shimLegacyRequests } from '@browserless.io/browserless';
|
|
2
|
+
import { shimLegacyRequests, moveTokenToHeader, } from '@browserless.io/browserless';
|
|
3
3
|
describe('Request Shimming', () => {
|
|
4
4
|
describe('headless', () => {
|
|
5
5
|
it('converts headless true', () => {
|
|
@@ -125,4 +125,31 @@ describe('Request Shimming', () => {
|
|
|
125
125
|
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
126
126
|
});
|
|
127
127
|
});
|
|
128
|
+
describe('token shimming', () => {
|
|
129
|
+
it('converts token query parameters to an authorization header', () => {
|
|
130
|
+
const url = 'wss://localhost?token=12345';
|
|
131
|
+
const shimmed = moveTokenToHeader({
|
|
132
|
+
url,
|
|
133
|
+
headers: {},
|
|
134
|
+
});
|
|
135
|
+
expect(shimmed).not.to.include('?token=');
|
|
136
|
+
});
|
|
137
|
+
it('converts the token to a proper header', () => {
|
|
138
|
+
const url = 'wss://localhost?token=12345';
|
|
139
|
+
const request = { url, headers: {} };
|
|
140
|
+
moveTokenToHeader(request);
|
|
141
|
+
expect(request.headers.authorization).to.eql('Bearer 12345');
|
|
142
|
+
});
|
|
143
|
+
it('does no conversion if an authorization header is already present', () => {
|
|
144
|
+
const oldAuth = 'Bearer foo-bar';
|
|
145
|
+
const url = 'wss://localhost?token=12345';
|
|
146
|
+
const request = {
|
|
147
|
+
url,
|
|
148
|
+
headers: { authorization: oldAuth },
|
|
149
|
+
};
|
|
150
|
+
const shimmed = moveTokenToHeader(request);
|
|
151
|
+
expect(shimmed).not.to.include('?token=');
|
|
152
|
+
expect(request.headers.authorization).to.eql(oldAuth);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
128
155
|
});
|
package/build/types.d.ts
CHANGED
|
@@ -171,6 +171,12 @@ declare abstract class BasicHTTPRoute extends Route {
|
|
|
171
171
|
* The allowed methods ("GET", "POST", etc) this route can utilize and match against.
|
|
172
172
|
*/
|
|
173
173
|
abstract method: Methods;
|
|
174
|
+
/**
|
|
175
|
+
* A function that can run before the requests is parsed and any query or body validation is run.
|
|
176
|
+
* Useful if you need to alter something about the request to conform it or otherwise. This
|
|
177
|
+
* hook is ran after any "global" hooks have run.
|
|
178
|
+
*/
|
|
179
|
+
before?: (req: Request, res: http.ServerResponse) => Promise<boolean>;
|
|
174
180
|
}
|
|
175
181
|
/**
|
|
176
182
|
* A HTTP-based route, with a handler, that can fulfill requests without
|
|
@@ -211,6 +217,10 @@ export declare abstract class WebSocketRoute extends Route {
|
|
|
211
217
|
* Handles an inbound Websocket request, and handles the connection
|
|
212
218
|
*/
|
|
213
219
|
abstract handler(req: Request, socket: stream.Duplex, head: Buffer, logger: Logger): Promise<unknown>;
|
|
220
|
+
/**
|
|
221
|
+
* Handles an inbound HTTP request, and supplies the Request and Response objects from node's HTTP request event
|
|
222
|
+
*/
|
|
223
|
+
before?: (req: Request, socket: stream.Duplex, head: Buffer) => Promise<boolean>;
|
|
214
224
|
}
|
|
215
225
|
/**
|
|
216
226
|
* A WebSocket-based route, with a handler, that can fulfill requests
|
|
@@ -230,6 +240,10 @@ export declare abstract class BrowserWebsocketRoute extends Route {
|
|
|
230
240
|
* creation. Useful for injecting behaviors or other functionality.
|
|
231
241
|
*/
|
|
232
242
|
onNewPage?: (url: URL, page: Page) => Promise<void>;
|
|
243
|
+
/**
|
|
244
|
+
* Handles an inbound HTTP request, and supplies the Request and Response objects from node's HTTP request event
|
|
245
|
+
*/
|
|
246
|
+
before?: (req: Request, socket: stream.Duplex, head: Buffer) => Promise<boolean>;
|
|
233
247
|
}
|
|
234
248
|
interface BrowserlessLaunch {
|
|
235
249
|
stealth?: boolean;
|
package/build/types.js
CHANGED
|
@@ -101,6 +101,12 @@ class Route {
|
|
|
101
101
|
* and WebSocketRoute
|
|
102
102
|
*/
|
|
103
103
|
class BasicHTTPRoute extends Route {
|
|
104
|
+
/**
|
|
105
|
+
* A function that can run before the requests is parsed and any query or body validation is run.
|
|
106
|
+
* Useful if you need to alter something about the request to conform it or otherwise. This
|
|
107
|
+
* hook is ran after any "global" hooks have run.
|
|
108
|
+
*/
|
|
109
|
+
before;
|
|
104
110
|
}
|
|
105
111
|
/**
|
|
106
112
|
* A HTTP-based route, with a handler, that can fulfill requests without
|
|
@@ -127,6 +133,10 @@ export class BrowserHTTPRoute extends BasicHTTPRoute {
|
|
|
127
133
|
*/
|
|
128
134
|
export class WebSocketRoute extends Route {
|
|
129
135
|
browser = null;
|
|
136
|
+
/**
|
|
137
|
+
* Handles an inbound HTTP request, and supplies the Request and Response objects from node's HTTP request event
|
|
138
|
+
*/
|
|
139
|
+
before;
|
|
130
140
|
}
|
|
131
141
|
/**
|
|
132
142
|
* A WebSocket-based route, with a handler, that can fulfill requests
|
|
@@ -140,6 +150,10 @@ export class BrowserWebsocketRoute extends Route {
|
|
|
140
150
|
* creation. Useful for injecting behaviors or other functionality.
|
|
141
151
|
*/
|
|
142
152
|
onNewPage;
|
|
153
|
+
/**
|
|
154
|
+
* Handles an inbound HTTP request, and supplies the Request and Response objects from node's HTTP request event
|
|
155
|
+
*/
|
|
156
|
+
before;
|
|
143
157
|
}
|
|
144
158
|
export const debugScreenshotOpts = {
|
|
145
159
|
encoding: 'base64',
|
package/build/utils.js
CHANGED
|
@@ -156,7 +156,7 @@ export const fetchJson = (url, init) => fetch(url, init).then((res) => {
|
|
|
156
156
|
return res.json();
|
|
157
157
|
});
|
|
158
158
|
export const getTokenFromRequest = (req) => {
|
|
159
|
-
const authHeader = req.headers
|
|
159
|
+
const authHeader = req.headers.authorization;
|
|
160
160
|
const tokenParam = req.parsed.searchParams.get('token');
|
|
161
161
|
return tokenParam ?? getAuthHeaderToken(authHeader || '');
|
|
162
162
|
};
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"description": "Label in the popup panel for the current filtering mode"
|
|
37
37
|
},
|
|
38
38
|
"popupLocalToolsLabel": {
|
|
39
|
-
"message": "
|
|
39
|
+
"message": "على هذا الموقع",
|
|
40
40
|
"description": "Label in the popup panel for the local tools section"
|
|
41
41
|
},
|
|
42
42
|
"popupTipReport": {
|
|
@@ -300,11 +300,11 @@
|
|
|
300
300
|
"description": "Tooltip for the button used to exit zapper mode"
|
|
301
301
|
},
|
|
302
302
|
"pickerTipEnter": {
|
|
303
|
-
"message": "
|
|
303
|
+
"message": "أنشئ تصفية مخصّصة",
|
|
304
304
|
"description": "Label for the menu entry to create cosmetic filters"
|
|
305
305
|
},
|
|
306
306
|
"unpickerTipEnter": {
|
|
307
|
-
"message": "
|
|
307
|
+
"message": "أزِل التصفية المخصّصة",
|
|
308
308
|
"description": "Label for the menu entry to delete cosmetic filters"
|
|
309
309
|
},
|
|
310
310
|
"developDropdownLabel": {
|
|
@@ -356,23 +356,23 @@
|
|
|
356
356
|
"description": "Short sentence to report the number of currently registered DNR rules"
|
|
357
357
|
},
|
|
358
358
|
"pickerSliderLabel": {
|
|
359
|
-
"message": "
|
|
359
|
+
"message": "حرك الشريط لتحديد أفضل تطابق",
|
|
360
360
|
"description": "Label to describe the purpose of the slider"
|
|
361
361
|
},
|
|
362
362
|
"pickerPick": {
|
|
363
|
-
"message": "
|
|
363
|
+
"message": "اختيار",
|
|
364
364
|
"description": "Text for the button to re-enter element-picking mode"
|
|
365
365
|
},
|
|
366
366
|
"pickerPreview": {
|
|
367
|
-
"message": "
|
|
367
|
+
"message": "معاينة",
|
|
368
368
|
"description": "Text for the button to activate preview mode"
|
|
369
369
|
},
|
|
370
370
|
"pickerCreate": {
|
|
371
|
-
"message": "
|
|
371
|
+
"message": "إنشاء",
|
|
372
372
|
"description": "Text for the button to create the filter"
|
|
373
373
|
},
|
|
374
374
|
"unpickerUsage": {
|
|
375
|
-
"message": "
|
|
375
|
+
"message": "اختر تصفية أدناه لتمييز العناصر المطابقة في صفحة الويب. انقر على سلة المهملات لإزالة التصفية.",
|
|
376
376
|
"description": "Summary description on how to use the tool to remove custom filters"
|
|
377
377
|
}
|
|
378
378
|
}
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"description": "Label in the popup panel for the current filtering mode"
|
|
37
37
|
},
|
|
38
38
|
"popupLocalToolsLabel": {
|
|
39
|
-
"message": "
|
|
39
|
+
"message": "На гэтым сайце",
|
|
40
40
|
"description": "Label in the popup panel for the local tools section"
|
|
41
41
|
},
|
|
42
42
|
"popupTipReport": {
|
|
@@ -300,11 +300,11 @@
|
|
|
300
300
|
"description": "Tooltip for the button used to exit zapper mode"
|
|
301
301
|
},
|
|
302
302
|
"pickerTipEnter": {
|
|
303
|
-
"message": "
|
|
303
|
+
"message": "Стварыць уласны фільтр",
|
|
304
304
|
"description": "Label for the menu entry to create cosmetic filters"
|
|
305
305
|
},
|
|
306
306
|
"unpickerTipEnter": {
|
|
307
|
-
"message": "
|
|
307
|
+
"message": "Выдаліць уласны фільтр",
|
|
308
308
|
"description": "Label for the menu entry to delete cosmetic filters"
|
|
309
309
|
},
|
|
310
310
|
"developDropdownLabel": {
|
|
@@ -356,23 +356,23 @@
|
|
|
356
356
|
"description": "Short sentence to report the number of currently registered DNR rules"
|
|
357
357
|
},
|
|
358
358
|
"pickerSliderLabel": {
|
|
359
|
-
"message": "
|
|
359
|
+
"message": "Перасуньце паўзунок, каб выбраць найлепшы варыянт",
|
|
360
360
|
"description": "Label to describe the purpose of the slider"
|
|
361
361
|
},
|
|
362
362
|
"pickerPick": {
|
|
363
|
-
"message": "
|
|
363
|
+
"message": "Выбраць",
|
|
364
364
|
"description": "Text for the button to re-enter element-picking mode"
|
|
365
365
|
},
|
|
366
366
|
"pickerPreview": {
|
|
367
|
-
"message": "
|
|
367
|
+
"message": "Папярэдні прагляд",
|
|
368
368
|
"description": "Text for the button to activate preview mode"
|
|
369
369
|
},
|
|
370
370
|
"pickerCreate": {
|
|
371
|
-
"message": "
|
|
371
|
+
"message": "Стварыць",
|
|
372
372
|
"description": "Text for the button to create the filter"
|
|
373
373
|
},
|
|
374
374
|
"unpickerUsage": {
|
|
375
|
-
"message": "
|
|
375
|
+
"message": "Выберыце фільтр ніжэй, каб вылучыць адпаведныя элементы на старонцы. Націсніце на кошык, каб выдаліць фільтр.",
|
|
376
376
|
"description": "Summary description on how to use the tool to remove custom filters"
|
|
377
377
|
}
|
|
378
378
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "appears as tab name in dashboard"
|
|
21
21
|
},
|
|
22
22
|
"developPageName": {
|
|
23
|
-
"message": "
|
|
23
|
+
"message": "Kehitys",
|
|
24
24
|
"description": "appears as tab name in dashboard. Inspired from 'Develop' menu in Safari, see https://developer.apple.com/documentation/safari-developer-tools/develop-menu"
|
|
25
25
|
},
|
|
26
26
|
"aboutPageName": {
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"description": "Label in the popup panel for the current filtering mode"
|
|
37
37
|
},
|
|
38
38
|
"popupLocalToolsLabel": {
|
|
39
|
-
"message": "
|
|
39
|
+
"message": "Tällä sivustolla",
|
|
40
40
|
"description": "Label in the popup panel for the local tools section"
|
|
41
41
|
},
|
|
42
42
|
"popupTipReport": {
|
|
43
|
-
"message": "Ilmoita ongelmasta
|
|
43
|
+
"message": "Ilmoita ongelmasta",
|
|
44
44
|
"description": "Tooltip used for the 'chat' icon in the panel"
|
|
45
45
|
},
|
|
46
46
|
"popupTipDashboard": {
|
|
@@ -292,7 +292,7 @@
|
|
|
292
292
|
"description": "A button to navigate to the blocked page"
|
|
293
293
|
},
|
|
294
294
|
"zapperTipEnter": {
|
|
295
|
-
"message": "
|
|
295
|
+
"message": "Poista elementti",
|
|
296
296
|
"description": "Tooltip for the button used to enter zapper mode"
|
|
297
297
|
},
|
|
298
298
|
"zapperTipQuit": {
|
|
@@ -300,35 +300,35 @@
|
|
|
300
300
|
"description": "Tooltip for the button used to exit zapper mode"
|
|
301
301
|
},
|
|
302
302
|
"pickerTipEnter": {
|
|
303
|
-
"message": "
|
|
303
|
+
"message": "Luo uusi suodatin",
|
|
304
304
|
"description": "Label for the menu entry to create cosmetic filters"
|
|
305
305
|
},
|
|
306
306
|
"unpickerTipEnter": {
|
|
307
|
-
"message": "
|
|
307
|
+
"message": "Poista oma suodatin",
|
|
308
308
|
"description": "Label for the menu entry to delete cosmetic filters"
|
|
309
309
|
},
|
|
310
310
|
"developDropdownLabel": {
|
|
311
|
-
"message": "
|
|
311
|
+
"message": "Näytä:",
|
|
312
312
|
"description": "A label of a dropdown list"
|
|
313
313
|
},
|
|
314
314
|
"developOptionFilteringModeDetails": {
|
|
315
|
-
"message": "
|
|
315
|
+
"message": "Suodatustilan tiedot",
|
|
316
316
|
"description": "An option in a dropdown list"
|
|
317
317
|
},
|
|
318
318
|
"developOptionCustomDnrRules": {
|
|
319
|
-
"message": "
|
|
319
|
+
"message": "Omat DNR-säännöt",
|
|
320
320
|
"description": "An option in a dropdown list"
|
|
321
321
|
},
|
|
322
322
|
"developOptionDnrRulesOf": {
|
|
323
|
-
"message": "DNR
|
|
323
|
+
"message": "DNR-säännöt lähteestä…",
|
|
324
324
|
"description": "A section header in a dropdown list"
|
|
325
325
|
},
|
|
326
326
|
"developOptionDynamicRuleset": {
|
|
327
|
-
"message": "
|
|
327
|
+
"message": "Dynaaminen sääntöryhmä",
|
|
328
328
|
"description": "An option in a dropdown list"
|
|
329
329
|
},
|
|
330
330
|
"developOptionSessionRuleset": {
|
|
331
|
-
"message": "
|
|
331
|
+
"message": "Istunnon sääntöryhmä",
|
|
332
332
|
"description": "An option in a dropdown list"
|
|
333
333
|
},
|
|
334
334
|
"saveButton": {
|
|
@@ -348,7 +348,7 @@
|
|
|
348
348
|
"description": "Text for buttons used to export content"
|
|
349
349
|
},
|
|
350
350
|
"dnrRulesWarning": {
|
|
351
|
-
"message": "
|
|
351
|
+
"message": "Älä lisää sisältöä lähteistä, joihin et luota.",
|
|
352
352
|
"description": "Short description of the DNR rules editor pane"
|
|
353
353
|
},
|
|
354
354
|
"dnrRulesCountInfo": {
|
|
@@ -356,23 +356,23 @@
|
|
|
356
356
|
"description": "Short sentence to report the number of currently registered DNR rules"
|
|
357
357
|
},
|
|
358
358
|
"pickerSliderLabel": {
|
|
359
|
-
"message": "
|
|
359
|
+
"message": "Valitse sopivin vaihtoehto siirtämällä säädintä",
|
|
360
360
|
"description": "Label to describe the purpose of the slider"
|
|
361
361
|
},
|
|
362
362
|
"pickerPick": {
|
|
363
|
-
"message": "
|
|
363
|
+
"message": "Valitse",
|
|
364
364
|
"description": "Text for the button to re-enter element-picking mode"
|
|
365
365
|
},
|
|
366
366
|
"pickerPreview": {
|
|
367
|
-
"message": "
|
|
367
|
+
"message": "Esikatsele",
|
|
368
368
|
"description": "Text for the button to activate preview mode"
|
|
369
369
|
},
|
|
370
370
|
"pickerCreate": {
|
|
371
|
-
"message": "
|
|
371
|
+
"message": "Luo",
|
|
372
372
|
"description": "Text for the button to create the filter"
|
|
373
373
|
},
|
|
374
374
|
"unpickerUsage": {
|
|
375
|
-
"message": "
|
|
375
|
+
"message": "Valitse alta suodatin korostaaksesi verkkosivulta sitä vastaavat elementit. Poista suodatin klikkamalla roskakoria.",
|
|
376
376
|
"description": "Summary description on how to use the tool to remove custom filters"
|
|
377
377
|
}
|
|
378
378
|
}
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"description": "Label in the popup panel for the current filtering mode"
|
|
37
37
|
},
|
|
38
38
|
"popupLocalToolsLabel": {
|
|
39
|
-
"message": "
|
|
39
|
+
"message": "इस वेबसाइट पर",
|
|
40
40
|
"description": "Label in the popup panel for the local tools section"
|
|
41
41
|
},
|
|
42
42
|
"popupTipReport": {
|
|
@@ -112,15 +112,15 @@
|
|
|
112
112
|
"description": "Shown in the About pane"
|
|
113
113
|
},
|
|
114
114
|
"supportS6H": {
|
|
115
|
-
"message": "
|
|
115
|
+
"message": "फ़िल्टर समस्या को रिपोर्ट करें",
|
|
116
116
|
"description": "Header of 'Report a filter issue' section in Support pane"
|
|
117
117
|
},
|
|
118
118
|
"supportS3P1": {
|
|
119
|
-
"message": "
|
|
119
|
+
"message": "विशिष्ट वेबसाइट पर फ़िल्टर समस्या को <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\"><code>uBlockOrigin/uAssets</code> समस्या ट्रैकर</span> पर रिपोर्ट करें. <u>इसके लिए एक GitHub खाते की आवश्यकता होगी.</u>",
|
|
120
120
|
"description": "First paragraph of 'Filter issues' section in Support pane"
|
|
121
121
|
},
|
|
122
122
|
"supportS5H": {
|
|
123
|
-
"message": "
|
|
123
|
+
"message": "समस्या निवारक जानकारी",
|
|
124
124
|
"description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
|
|
125
125
|
},
|
|
126
126
|
"supportS6P1S1": {
|
|
@@ -128,47 +128,47 @@
|
|
|
128
128
|
"description": "A paragraph in the filter issue reporter section"
|
|
129
129
|
},
|
|
130
130
|
"supportFindSpecificButton": {
|
|
131
|
-
"message": "
|
|
131
|
+
"message": "GitHub पर मिलती-जुलती रिपोर्ट खोजें",
|
|
132
132
|
"description": "A clickable link in the filter issue reporter section"
|
|
133
133
|
},
|
|
134
134
|
"supportS6URL": {
|
|
135
|
-
"message": "
|
|
135
|
+
"message": "वेब पेज का पता:",
|
|
136
136
|
"description": "Label for the URL of the page"
|
|
137
137
|
},
|
|
138
138
|
"supportS6Select1": {
|
|
139
|
-
"message": "
|
|
139
|
+
"message": "वेब पेज…",
|
|
140
140
|
"description": "Label for widget to select type of issue"
|
|
141
141
|
},
|
|
142
142
|
"supportS6Select1Option0": {
|
|
143
|
-
"message": "--
|
|
143
|
+
"message": "-- एक प्रविष्टि चुनें --",
|
|
144
144
|
"description": "An entry in the widget used to select the type of issue"
|
|
145
145
|
},
|
|
146
146
|
"supportS6Select1Option1": {
|
|
147
|
-
"message": "
|
|
147
|
+
"message": "विज्ञापनों को या शेष बचे विज्ञापन को दिखाता है",
|
|
148
148
|
"description": "An entry in the widget used to select the type of issue"
|
|
149
149
|
},
|
|
150
150
|
"supportS6Select1Option2": {
|
|
151
|
-
"message": "
|
|
151
|
+
"message": "ओवरले या कोई अन्य दिक्कतें हैं",
|
|
152
152
|
"description": "An entry in the widget used to select the type of issue"
|
|
153
153
|
},
|
|
154
154
|
"supportS6Select1Option3": {
|
|
155
|
-
"message": "
|
|
155
|
+
"message": "यह uBO Lite की पहचान करता है",
|
|
156
156
|
"description": "An entry in the widget used to select the type of issue"
|
|
157
157
|
},
|
|
158
158
|
"supportS6Select1Option4": {
|
|
159
|
-
"message": "
|
|
159
|
+
"message": "गोपनीयता से संबंधित समस्याएं हैं",
|
|
160
160
|
"description": "An entry in the widget used to select the type of issue"
|
|
161
161
|
},
|
|
162
162
|
"supportS6Select1Option5": {
|
|
163
|
-
"message": "
|
|
163
|
+
"message": "यह uBO Lite सक्षम होने पर ठीक से काम नहीं करता",
|
|
164
164
|
"description": "An entry in the widget used to select the type of issue"
|
|
165
165
|
},
|
|
166
166
|
"supportS6Select1Option6": {
|
|
167
|
-
"message": "
|
|
167
|
+
"message": "अवांछित टैब या विंडो खोलता है",
|
|
168
168
|
"description": "An entry in the widget used to select the type of issue"
|
|
169
169
|
},
|
|
170
170
|
"supportS6Select1Option7": {
|
|
171
|
-
"message": "
|
|
171
|
+
"message": "बैडवेयर, फ़िशिंग की ओर ले जाता है",
|
|
172
172
|
"description": "An entry in the widget used to select the type of issue"
|
|
173
173
|
},
|
|
174
174
|
"supportS6Checkbox1": {
|
|
@@ -308,7 +308,7 @@
|
|
|
308
308
|
"description": "Label for the menu entry to delete cosmetic filters"
|
|
309
309
|
},
|
|
310
310
|
"developDropdownLabel": {
|
|
311
|
-
"message": "
|
|
311
|
+
"message": "देखें:",
|
|
312
312
|
"description": "A label of a dropdown list"
|
|
313
313
|
},
|
|
314
314
|
"developOptionFilteringModeDetails": {
|
|
@@ -332,23 +332,23 @@
|
|
|
332
332
|
"description": "An option in a dropdown list"
|
|
333
333
|
},
|
|
334
334
|
"saveButton": {
|
|
335
|
-
"message": "
|
|
335
|
+
"message": "सहेजें",
|
|
336
336
|
"description": "Text for buttons used to save changes"
|
|
337
337
|
},
|
|
338
338
|
"revertButton": {
|
|
339
|
-
"message": "
|
|
339
|
+
"message": "पूर्ववत",
|
|
340
340
|
"description": "Text for buttons used to revert changes"
|
|
341
341
|
},
|
|
342
342
|
"importAndAppendButton": {
|
|
343
|
-
"message": "
|
|
343
|
+
"message": "इम्पोर्ट करें और जोड़ें…",
|
|
344
344
|
"description": "Text for buttons used to import and append content"
|
|
345
345
|
},
|
|
346
346
|
"exportButton": {
|
|
347
|
-
"message": "
|
|
347
|
+
"message": "निर्यात…",
|
|
348
348
|
"description": "Text for buttons used to export content"
|
|
349
349
|
},
|
|
350
350
|
"dnrRulesWarning": {
|
|
351
|
-
"message": "
|
|
351
|
+
"message": "अविश्वसनीय स्रोतों से सामग्री न जोड़ें",
|
|
352
352
|
"description": "Short description of the DNR rules editor pane"
|
|
353
353
|
},
|
|
354
354
|
"dnrRulesCountInfo": {
|