@browserless.io/browserless 2.34.0-beta-0 → 2.34.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 +18 -1
- package/build/routes/chrome/http/content.post.body.json +18 -109
- package/build/routes/chrome/http/pdf.post.body.json +18 -109
- package/build/routes/chrome/http/scrape.post.body.json +18 -109
- package/build/routes/chrome/http/screenshot.post.body.json +18 -109
- package/build/routes/chromium/http/content.post.body.json +18 -109
- package/build/routes/chromium/http/pdf.post.body.json +18 -109
- package/build/routes/chromium/http/scrape.post.body.json +18 -109
- package/build/routes/chromium/http/screenshot.post.body.json +18 -109
- package/build/routes/edge/http/content.post.body.json +18 -109
- package/build/routes/edge/http/pdf.post.body.json +18 -109
- package/build/routes/edge/http/scrape.post.body.json +18 -109
- package/build/routes/edge/http/screenshot.post.body.json +18 -109
- package/build/shared/content.http.js +9 -2
- package/build/shared/pdf.http.js +9 -2
- package/build/shared/scrape.http.js +9 -2
- package/build/shared/screenshot.http.js +9 -2
- package/build/types.d.ts +7 -1
- package/build/utils.d.ts +1 -0
- package/build/utils.js +3 -2
- package/extensions/ublocklite/README.md +1 -1
- package/extensions/ublocklite/_locales/bs/messages.json +58 -58
- package/extensions/ublocklite/_locales/ro/messages.json +1 -1
- package/extensions/ublocklite/_locales/ru/messages.json +1 -1
- package/extensions/ublocklite/_locales/sr/messages.json +28 -28
- package/extensions/ublocklite/css/dashboard.css +9 -4
- package/extensions/ublocklite/css/settings.css +17 -13
- package/extensions/ublocklite/css/unpicker-ui.css +1 -0
- package/extensions/ublocklite/dashboard.html +16 -12
- package/extensions/ublocklite/js/background.js +48 -14
- package/extensions/ublocklite/js/config.js +2 -1
- package/extensions/ublocklite/js/dashboard.js +9 -5
- package/extensions/ublocklite/js/debug.js +62 -3
- package/extensions/ublocklite/js/ext.js +6 -0
- package/extensions/ublocklite/js/fetch.js +3 -1
- package/extensions/ublocklite/js/filter-lists.js +16 -7
- package/extensions/ublocklite/js/filter-manager.js +63 -9
- package/extensions/ublocklite/js/jsonpath.js +65 -26
- package/extensions/ublocklite/js/mode-manager.js +5 -1
- package/extensions/ublocklite/js/popup.js +1 -1
- package/extensions/ublocklite/js/report.js +4 -2
- package/extensions/ublocklite/js/ruleset-manager.js +38 -13
- package/extensions/ublocklite/js/scripting/css-generic.js +0 -1
- package/extensions/ublocklite/js/scripting/css-procedural.js +2 -0
- package/extensions/ublocklite/js/scripting/css-specific.js +2 -0
- package/extensions/ublocklite/js/scripting-manager.js +4 -10
- package/extensions/ublocklite/js/settings.js +3 -5
- package/extensions/ublocklite/js/static-filtering-parser.js +18 -11
- package/extensions/ublocklite/js/tool-overlay-ui.js +19 -23
- package/extensions/ublocklite/js/troubleshooting.js +11 -19
- package/extensions/ublocklite/js/ubo-parser.js +1 -1
- package/extensions/ublocklite/manifest.json +7 -2
- package/extensions/ublocklite/rulesets/generic-details.json +19 -3
- package/extensions/ublocklite/rulesets/main/adguard-mobile.json +3 -1
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +15 -11
- package/extensions/ublocklite/rulesets/main/annoyances-notifications.json +276 -0
- package/extensions/ublocklite/rulesets/main/annoyances-others.json +2 -1
- package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +2 -1
- package/extensions/ublocklite/rulesets/main/bgr-0.json +54 -68
- package/extensions/ublocklite/rulesets/main/block-lan.json +1 -1
- package/extensions/ublocklite/rulesets/main/chn-0.json +22 -12
- package/extensions/ublocklite/rulesets/main/deu-0.json +5 -7
- package/extensions/ublocklite/rulesets/main/dpollock-0.json +5 -0
- package/extensions/ublocklite/rulesets/main/easylist.json +29 -85
- package/extensions/ublocklite/rulesets/main/easyprivacy.json +44 -8
- package/extensions/ublocklite/rulesets/main/fra-0.json +15 -11
- package/extensions/ublocklite/rulesets/main/hun-0.json +5 -3
- package/extensions/ublocklite/rulesets/main/idn-0.json +6 -1
- package/extensions/ublocklite/rulesets/main/ind-0.json +14 -9
- package/extensions/ublocklite/rulesets/main/irn-0.json +632 -3
- package/extensions/ublocklite/rulesets/main/jpn-1.json +26 -18
- package/extensions/ublocklite/rulesets/main/kor-1.json +4 -2
- package/extensions/ublocklite/rulesets/main/nld-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/nor-0.json +24 -4
- package/extensions/ublocklite/rulesets/main/pgl.json +8 -6
- package/extensions/ublocklite/rulesets/main/pol-0.json +3 -3
- package/extensions/ublocklite/rulesets/main/rus-0.json +18 -11
- package/extensions/ublocklite/rulesets/main/rus-1.json +6 -2
- package/extensions/ublocklite/rulesets/main/spa-1.json +11 -2
- package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +5438 -4232
- package/extensions/ublocklite/rulesets/main/swe-1.json +29 -24
- package/extensions/ublocklite/rulesets/main/tur-0.json +30 -10
- package/extensions/ublocklite/rulesets/main/ublock-badware.json +29 -30
- package/extensions/ublocklite/rulesets/main/ublock-filters.json +73 -49
- package/extensions/ublocklite/rulesets/main/ubol-tests.json +17 -0
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +326 -356
- package/extensions/ublocklite/rulesets/main/vie-1.json +30 -26
- package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +1 -2
- package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +1 -0
- package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +45 -0
- package/extensions/ublocklite/rulesets/modify-headers/rus-0.json +0 -1
- package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +4 -3
- package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +1 -2
- package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +19 -0
- package/extensions/ublocklite/rulesets/redirect/irn-0.json +73 -0
- package/extensions/ublocklite/rulesets/redirect/jpn-1.json +0 -1
- package/extensions/ublocklite/rulesets/redirect/kor-1.json +1 -1
- package/extensions/ublocklite/rulesets/redirect/tur-0.json +2 -1
- package/extensions/ublocklite/rulesets/redirect/ublock-badware.json +18 -0
- package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +18 -28
- package/extensions/ublocklite/rulesets/redirect/vie-1.json +34 -2
- package/extensions/ublocklite/rulesets/regex/chn-0.json +3 -1
- package/extensions/ublocklite/rulesets/regex/easylist.json +0 -2
- package/extensions/ublocklite/rulesets/regex/irn-0.json +22 -0
- package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
- package/extensions/ublocklite/rulesets/regex/tur-0.json +2 -1
- package/extensions/ublocklite/rulesets/regex/ublock-badware.json +2 -4
- package/extensions/ublocklite/rulesets/regex/ublock-filters.json +10 -9
- package/extensions/ublocklite/rulesets/regex/ukr-0.json +1 -3
- package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +9 -5
- package/extensions/ublocklite/rulesets/removeparam/irn-0.json +16 -27
- package/extensions/ublocklite/rulesets/removeparam/rus-1.json +3 -1
- package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +6 -3
- package/extensions/ublocklite/rulesets/ruleset-details.json +264 -233
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +87 -0
- package/extensions/ublocklite/rulesets/scripting/generic/bgr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/est-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/pol-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/rus-0.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 +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generichigh/annoyances-notifications.css +36 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +12 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +1 -12
- package/extensions/ublocklite/rulesets/scripting/generichigh/est-0.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +11 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/irn-0.css +27 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/nor-0.css +17 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/pol-0.css +8 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/rou-1.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +106 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/rus-1.css +3 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/swe-1.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +8 -2
- package/extensions/ublocklite/rulesets/scripting/generichigh/vie-1.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-notifications.js +42 -0
- 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/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ita-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +1 -1
- 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 +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie-reload.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-constant.js +2 -2
- 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.set-session-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-notifications.abort-current-script.js +452 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.abort-on-property-write.js +347 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.addEventListener-defuser.js +498 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.remove-attr.js +405 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.remove-class.js +396 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-constant.js +541 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-cookie.js +442 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-local-storage-item.js +399 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-session-storage-item.js +399 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-property-read.js +1 -1
- 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.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-click-element.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-outbound-text.js +427 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune-fetch-response.js +588 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +1 -1
- 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/easyprivacy.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +452 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-on-property-read.js +369 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-on-property-write.js +347 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-on-stack-trace.js +421 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +498 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.adjust-setInterval.js +332 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.adjust-setTimeout.js +332 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +541 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.json-prune.js +506 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +553 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-setTimeout.js +443 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +471 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-xhr.js +584 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-attr.js +405 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-cookie.js +376 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{ublock-experimental.trusted-replace-node-text.js → irn-0.remove-node-text.js} +8 -9
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-attr.js +425 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +541 -0
- 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/jpn-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.spoof-css.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.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 +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-xhr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setTimeout.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-local-storage-item.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
- 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 +2 -2
- 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.trusted-json-edit-fetch-request.js → ublock-filters.json-edit-fetch-response.js} +109 -66
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit.js +69 -29
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
- 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 +68 -28
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +3 -3
- 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 +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
- 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 +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +68 -28
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.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 +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-fetch-response.js +68 -28
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-xhr-response.js +68 -28
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
- 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-notifications.js +42 -0
- 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/bgr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
- 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/specific/fin-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/fra-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 +1 -1
- 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/rus-1.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 +521 -135
- package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +16 -0
- package/extensions/ublocklite/rulesets/strictblock/annoyances-notifications.json +41 -0
- package/extensions/ublocklite/rulesets/strictblock/bgr-0.json +1 -2
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +112 -0
- package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +5 -0
- package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +36 -71
- package/extensions/ublocklite/rulesets/strictblock/fra-0.json +270 -16
- package/extensions/ublocklite/rulesets/strictblock/hun-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/irn-0.json +249 -2
- package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +182 -177
- package/extensions/ublocklite/rulesets/strictblock/kor-1.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/nor-0.json +6 -4
- package/extensions/ublocklite/rulesets/strictblock/pgl.json +8 -6
- package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/rus-1.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/spa-1.json +2 -0
- package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +5438 -4232
- package/extensions/ublocklite/rulesets/strictblock/swe-1.json +3 -0
- package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +679 -675
- package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +326 -356
- package/extensions/ublocklite/rulesets/strictblock/vie-1.json +1 -1
- package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +37 -12
- package/extensions/ublocklite/ublock.zip +0 -0
- package/package.json +8 -8
- package/scripts/build-open-api.js +15 -1
- package/src/shared/content.http.ts +9 -1
- package/src/shared/pdf.http.ts +9 -1
- package/src/shared/scrape.http.ts +9 -1
- package/src/shared/screenshot.http.ts +9 -1
- package/src/types.ts +7 -1
- package/src/utils.ts +4 -2
- package/static/docs/swagger.json +218 -122
- package/static/docs/swagger.min.json +217 -121
- package/static/function/client.js +71 -68
- package/static/function/index.html +71 -68
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +0 -795
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.overlay-buster.js +0 -165
- package/extensions/ublocklite/rulesets/scripting/specific/easyprivacy.js +0 -42
package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js
CHANGED
|
@@ -460,8 +460,8 @@ function validateConstantFn(trusted, raw, extraArgs = {}) {
|
|
|
460
460
|
/******************************************************************************/
|
|
461
461
|
|
|
462
462
|
const scriptletGlobals = {}; // eslint-disable-line
|
|
463
|
-
const argsList = [["aclib","json:{\"isShowingPop\": false}"],["_omapp.scripts.geolocation","{\"value\": {\"status\":\"loaded\",\"object\":null,\"data\":{\"country\":{\"shortName\":\"\",\"longName\":\"\"},\"administrative_area_level_1\":{\"shortName\":\"\",\"longName\":\"\"},\"administrative_area_level_2\":{\"shortName\":\"\",\"longName\":\"\"},\"locality\":{\"shortName\":\"\",\"longName\":\"\"},\"original\":{\"ip\":\"\",\"ip_decimal\":null,\"country\":\"\",\"country_eu\":false,\"country_iso\":\"\",\"city\":\"\",\"latitude\":null,\"longitude\":null,\"user_agent\":{\"product\":\"\",\"version\":\"\",\"comment\":\"\",\"raw_value\":\"\"},\"zip_code\":\"\",\"time_zone\":\"\"}},\"error\":\"\"}}"],["document.activeElement","json:{\"tagName\": \"IFRAME\"}"],["navigator.userAgent","{\"value\": \"Mozilla/5.0 (iPhone14,3; U; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/19A346 Safari/602.1\"}"],["google_srt","json:0.61234"],["premium","'1'"],["clickAds.banner.urls","json:[{\"url\":{\"limit\":0,\"url\":\"\"}}]"],["asc","json:{\"cmd\": [null], \"que\": [null], \"wrapperVersion\": \"6.19.0\", \"refreshQue\": {\"waitDelay\": 3000, \"que\": []}, \"isLoaded\": true, \"bidderSettings\": {}, \"libLoaded\": true, \"version\": \"v9.20.0\", \"installedModules\": [], \"adUnits\": [], \"aliasRegistry\": {}, \"medianetGlobals\": {}}"],["google_tag_manager","json:{ \"G-Z8CH48V654\": { \"_spx\": false, \"bootstrap\": 1704067200000, \"dataLayer\": { \"name\": \"dataLayer\" } }, \"SANDBOXED_JS_SEMAPHORE\": 0, \"dataLayer\": { \"gtmDom\": true, \"gtmLoad\": true, \"subscribers\": 1 }, \"sequence\": 1 }"],["navigator.userAgent","{\"value\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1\"}"],["navigator.platform","{\"value\": \"iPhone\"}"],["dtGonza.playeradstime","\"-1\""],["ADS.STATUS_ERROR","json:\"COMPLETE\""],["__NEXT_DATA__.props.pageProps.broadcastData.remainingWatchDuration","json:9999999999"],["document.referrer","json:\"1\""],["premium","json:1"],["dtGonza.playeradstime","json:\"0\""],["libAnalytics","json: {\"status\":{\"dataAvailable\":false},\"data\":{}}"]];
|
|
464
|
-
const hostnamesMap = new Map([["japscan.*",0],["seclore.com",1],["
|
|
463
|
+
const argsList = [["aclib","json:{\"isShowingPop\": false}"],["_omapp.scripts.geolocation","{\"value\": {\"status\":\"loaded\",\"object\":null,\"data\":{\"country\":{\"shortName\":\"\",\"longName\":\"\"},\"administrative_area_level_1\":{\"shortName\":\"\",\"longName\":\"\"},\"administrative_area_level_2\":{\"shortName\":\"\",\"longName\":\"\"},\"locality\":{\"shortName\":\"\",\"longName\":\"\"},\"original\":{\"ip\":\"\",\"ip_decimal\":null,\"country\":\"\",\"country_eu\":false,\"country_iso\":\"\",\"city\":\"\",\"latitude\":null,\"longitude\":null,\"user_agent\":{\"product\":\"\",\"version\":\"\",\"comment\":\"\",\"raw_value\":\"\"},\"zip_code\":\"\",\"time_zone\":\"\"}},\"error\":\"\"}}"],["document.activeElement","json:{\"tagName\": \"IFRAME\"}"],["navigator.userAgent","{\"value\": \"Mozilla/5.0 (iPhone14,3; U; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/19A346 Safari/602.1\"}"],["google_srt","json:0.61234"],["premium","'1'"],["reklamlar","json:[{\"sure\":\"0\"}]"],["clickAds.banner.urls","json:[{\"url\":{\"limit\":0,\"url\":\"\"}}]"],["asc","json:{\"cmd\": [null], \"que\": [null], \"wrapperVersion\": \"6.19.0\", \"refreshQue\": {\"waitDelay\": 3000, \"que\": []}, \"isLoaded\": true, \"bidderSettings\": {}, \"libLoaded\": true, \"version\": \"v9.20.0\", \"installedModules\": [], \"adUnits\": [], \"aliasRegistry\": {}, \"medianetGlobals\": {}}"],["google_tag_manager","json:{ \"G-Z8CH48V654\": { \"_spx\": false, \"bootstrap\": 1704067200000, \"dataLayer\": { \"name\": \"dataLayer\" } }, \"SANDBOXED_JS_SEMAPHORE\": 0, \"dataLayer\": { \"gtmDom\": true, \"gtmLoad\": true, \"subscribers\": 1 }, \"sequence\": 1 }"],["navigator.userAgent","{\"value\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1\"}"],["navigator.platform","{\"value\": \"iPhone\"}"],["dtGonza.playeradstime","\"-1\""],["ADS.STATUS_ERROR","json:\"COMPLETE\""],["__NEXT_DATA__.props.pageProps.broadcastData.remainingWatchDuration","json:9999999999"],["document.referrer","json:\"1\""],["premium","json:1"],["dtGonza.playeradstime","json:\"0\""],["libAnalytics","json: {\"status\":{\"dataAvailable\":false},\"data\":{}}"]];
|
|
464
|
+
const hostnamesMap = new Map([["japscan.*",0],["seclore.com",1],["procinehub.com",2],["bookmystrip.com",2],["upshrink.com",3],["streamelements.com",4],["emturbovid.com",5],["findjav.com",5],["javggvideo.xyz",5],["mmtv01.xyz",5],["stbturbo.xyz",5],["trailerhg.xyz",5],["turboplayers.xyz",5],["canlikolik.my",6],["savefrom.net",7],["jetpunk.com",[8,9]],["app.blubank.com",10],["mobileweb.bankmellat.ir",[10,11]],["cinemitas.org",12],["cinelatino.net",12],["cineplus123.org",12],["paraveronline.org",12],["pobreflix.vc",12],["verpelis.gratis",12],["littlebigsnake.com",13],["rooter.gg",14],["comdotgame.com",15],["sextb.*>>",16],["idlixku.com",17],["globo.com",18]]);
|
|
465
465
|
const exceptionsMap = new Map([]);
|
|
466
466
|
const hasEntities = true;
|
|
467
467
|
const hasAncestors = true;
|
|
@@ -318,7 +318,7 @@ function safeSelf() {
|
|
|
318
318
|
/******************************************************************************/
|
|
319
319
|
|
|
320
320
|
const scriptletGlobals = {}; // eslint-disable-line
|
|
321
|
-
const argsList = [["google_tg_rep","[\"t\",
|
|
321
|
+
const argsList = [["google_tg_rep","[\"t\",16002]"],["google_tg_rep_date","2025-08-29T00:00:00"],["google_tg_rep_attr7","[\"a432dca07ed31c98702eb7c134ba7a8bf51430735e2581dc66b0f0f6efe1ca0c\",\"user404957\",\"2025-07-29T20:00:00Z\",9151913]"],["superberb_disable_date","$now$"]];
|
|
322
322
|
const hostnamesMap = new Map([["pvpoke-re.com",[0,1,2]],["fapeza.com",3]]);
|
|
323
323
|
const exceptionsMap = new Map([]);
|
|
324
324
|
const hasEntities = false;
|
package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-fetch-response.js
CHANGED
|
@@ -127,12 +127,19 @@ class JSONPath {
|
|
|
127
127
|
const r = this.#compile(query, 0);
|
|
128
128
|
if ( r === undefined ) { return; }
|
|
129
129
|
if ( r.i !== query.length ) {
|
|
130
|
-
|
|
130
|
+
let val;
|
|
131
|
+
if ( query.startsWith('=', r.i) ) {
|
|
132
|
+
if ( /^=repl\(.+\)$/.test(query.slice(r.i)) ) {
|
|
133
|
+
r.modify = 'repl';
|
|
134
|
+
val = query.slice(r.i+6, -1);
|
|
135
|
+
} else {
|
|
136
|
+
val = query.slice(r.i+1);
|
|
137
|
+
}
|
|
138
|
+
} else if ( query.startsWith('+=', r.i) ) {
|
|
131
139
|
r.modify = '+';
|
|
132
|
-
r.i
|
|
140
|
+
val = query.slice(r.i+2);
|
|
133
141
|
}
|
|
134
|
-
|
|
135
|
-
try { r.rval = JSON.parse(query.slice(r.i+1)); }
|
|
142
|
+
try { r.rval = JSON.parse(val); }
|
|
136
143
|
catch { return; }
|
|
137
144
|
}
|
|
138
145
|
this.#compiled = r;
|
|
@@ -145,28 +152,25 @@ class JSONPath {
|
|
|
145
152
|
return paths;
|
|
146
153
|
}
|
|
147
154
|
apply(root) {
|
|
148
|
-
if ( this.valid === false ) { return
|
|
149
|
-
const {
|
|
150
|
-
this.#root = root;
|
|
155
|
+
if ( this.valid === false ) { return; }
|
|
156
|
+
const { rval } = this.#compiled;
|
|
157
|
+
this.#root = { '$': root };
|
|
151
158
|
const paths = this.#evaluate(this.#compiled.steps, []);
|
|
152
|
-
|
|
153
|
-
|
|
159
|
+
let i = paths.length
|
|
160
|
+
if ( i === 0 ) { this.#root = null; return; }
|
|
154
161
|
while ( i-- ) {
|
|
155
162
|
const { obj, key } = this.#resolvePath(paths[i]);
|
|
156
163
|
if ( rval !== undefined ) {
|
|
157
|
-
|
|
158
|
-
this.#modifyVal(obj, key, rval);
|
|
159
|
-
} else {
|
|
160
|
-
obj[key] = rval;
|
|
161
|
-
}
|
|
164
|
+
this.#modifyVal(obj, key);
|
|
162
165
|
} else if ( Array.isArray(obj) && typeof key === 'number' ) {
|
|
163
166
|
obj.splice(key, 1);
|
|
164
167
|
} else {
|
|
165
168
|
delete obj[key];
|
|
166
169
|
}
|
|
167
170
|
}
|
|
171
|
+
const result = this.#root['$'] ?? null;
|
|
168
172
|
this.#root = null;
|
|
169
|
-
return
|
|
173
|
+
return result;
|
|
170
174
|
}
|
|
171
175
|
dump() {
|
|
172
176
|
return JSON.stringify(this.#compiled);
|
|
@@ -191,8 +195,15 @@ class JSONPath {
|
|
|
191
195
|
if ( query.length === 0 ) { return; }
|
|
192
196
|
const steps = [];
|
|
193
197
|
let c = query.charCodeAt(i);
|
|
194
|
-
|
|
195
|
-
|
|
198
|
+
if ( c === 0x24 /* $ */ ) {
|
|
199
|
+
steps.push({ mv: this.#ROOT });
|
|
200
|
+
i += 1;
|
|
201
|
+
} else if ( c === 0x40 /* @ */ ) {
|
|
202
|
+
steps.push({ mv: this.#CURRENT });
|
|
203
|
+
i += 1;
|
|
204
|
+
} else {
|
|
205
|
+
steps.push({ mv: i === 0 ? this.#ROOT : this.#CURRENT });
|
|
206
|
+
}
|
|
196
207
|
let mv = this.#UNDEFINED;
|
|
197
208
|
for (;;) {
|
|
198
209
|
if ( i === query.length ) { break; }
|
|
@@ -254,7 +265,8 @@ class JSONPath {
|
|
|
254
265
|
i = r.i + 1;
|
|
255
266
|
mv = this.#UNDEFINED;
|
|
256
267
|
}
|
|
257
|
-
if ( steps.length
|
|
268
|
+
if ( steps.length === 0 ) { return; }
|
|
269
|
+
if ( mv !== this.#UNDEFINED ) { return; }
|
|
258
270
|
return { steps, i };
|
|
259
271
|
}
|
|
260
272
|
#evaluate(steps, pathin) {
|
|
@@ -263,7 +275,7 @@ class JSONPath {
|
|
|
263
275
|
for ( const step of steps ) {
|
|
264
276
|
switch ( step.mv ) {
|
|
265
277
|
case this.#ROOT:
|
|
266
|
-
resultset = [ [] ];
|
|
278
|
+
resultset = [ [ '$' ] ];
|
|
267
279
|
break;
|
|
268
280
|
case this.#CURRENT:
|
|
269
281
|
resultset = [ pathin ];
|
|
@@ -486,13 +498,40 @@ class JSONPath {
|
|
|
486
498
|
}
|
|
487
499
|
if ( outcome ) { return k; }
|
|
488
500
|
}
|
|
489
|
-
#modifyVal(obj, key
|
|
490
|
-
const
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
501
|
+
#modifyVal(obj, key) {
|
|
502
|
+
const { modify, rval } = this.#compiled;
|
|
503
|
+
switch ( modify ) {
|
|
504
|
+
case undefined:
|
|
505
|
+
obj[key] = rval;
|
|
506
|
+
break;
|
|
507
|
+
case '+': {
|
|
508
|
+
if ( rval instanceof Object === false ) { return; }
|
|
509
|
+
const lval = obj[key];
|
|
510
|
+
if ( lval instanceof Object === false ) { return; }
|
|
511
|
+
if ( Array.isArray(lval) ) { return; }
|
|
512
|
+
for ( const [ k, v ] of Object.entries(rval) ) {
|
|
513
|
+
lval[k] = v;
|
|
514
|
+
}
|
|
515
|
+
break;
|
|
516
|
+
}
|
|
517
|
+
case 'repl': {
|
|
518
|
+
const lval = obj[key];
|
|
519
|
+
if ( typeof lval !== 'string' ) { return; }
|
|
520
|
+
if ( this.#compiled.re === undefined ) {
|
|
521
|
+
this.#compiled.re = null;
|
|
522
|
+
try {
|
|
523
|
+
this.#compiled.re = rval.regex !== undefined
|
|
524
|
+
? new RegExp(rval.regex, rval.flags)
|
|
525
|
+
: new RegExp(rval.pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
|
|
526
|
+
} catch {
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
if ( this.#compiled.re === null ) { return; }
|
|
530
|
+
obj[key] = lval.replace(this.#compiled.re, rval.replacement);
|
|
531
|
+
break;
|
|
532
|
+
}
|
|
533
|
+
default:
|
|
534
|
+
break;
|
|
496
535
|
}
|
|
497
536
|
}
|
|
498
537
|
}
|
|
@@ -509,11 +548,12 @@ function jsonlEditFn(jsonp, text = '') {
|
|
|
509
548
|
linesAfter.push(lineBefore);
|
|
510
549
|
continue;
|
|
511
550
|
}
|
|
512
|
-
|
|
551
|
+
const objAfter = jsonp.apply(obj);
|
|
552
|
+
if ( objAfter === undefined ) {
|
|
513
553
|
linesAfter.push(lineBefore);
|
|
514
554
|
continue;
|
|
515
555
|
}
|
|
516
|
-
const lineAfter = safe.JSON_stringify(
|
|
556
|
+
const lineAfter = safe.JSON_stringify(objAfter);
|
|
517
557
|
linesAfter.push(lineAfter);
|
|
518
558
|
}
|
|
519
559
|
return linesAfter.join(lineSeparator);
|
package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-xhr-response.js
CHANGED
|
@@ -119,12 +119,19 @@ class JSONPath {
|
|
|
119
119
|
const r = this.#compile(query, 0);
|
|
120
120
|
if ( r === undefined ) { return; }
|
|
121
121
|
if ( r.i !== query.length ) {
|
|
122
|
-
|
|
122
|
+
let val;
|
|
123
|
+
if ( query.startsWith('=', r.i) ) {
|
|
124
|
+
if ( /^=repl\(.+\)$/.test(query.slice(r.i)) ) {
|
|
125
|
+
r.modify = 'repl';
|
|
126
|
+
val = query.slice(r.i+6, -1);
|
|
127
|
+
} else {
|
|
128
|
+
val = query.slice(r.i+1);
|
|
129
|
+
}
|
|
130
|
+
} else if ( query.startsWith('+=', r.i) ) {
|
|
123
131
|
r.modify = '+';
|
|
124
|
-
r.i
|
|
132
|
+
val = query.slice(r.i+2);
|
|
125
133
|
}
|
|
126
|
-
|
|
127
|
-
try { r.rval = JSON.parse(query.slice(r.i+1)); }
|
|
134
|
+
try { r.rval = JSON.parse(val); }
|
|
128
135
|
catch { return; }
|
|
129
136
|
}
|
|
130
137
|
this.#compiled = r;
|
|
@@ -137,28 +144,25 @@ class JSONPath {
|
|
|
137
144
|
return paths;
|
|
138
145
|
}
|
|
139
146
|
apply(root) {
|
|
140
|
-
if ( this.valid === false ) { return
|
|
141
|
-
const {
|
|
142
|
-
this.#root = root;
|
|
147
|
+
if ( this.valid === false ) { return; }
|
|
148
|
+
const { rval } = this.#compiled;
|
|
149
|
+
this.#root = { '$': root };
|
|
143
150
|
const paths = this.#evaluate(this.#compiled.steps, []);
|
|
144
|
-
|
|
145
|
-
|
|
151
|
+
let i = paths.length
|
|
152
|
+
if ( i === 0 ) { this.#root = null; return; }
|
|
146
153
|
while ( i-- ) {
|
|
147
154
|
const { obj, key } = this.#resolvePath(paths[i]);
|
|
148
155
|
if ( rval !== undefined ) {
|
|
149
|
-
|
|
150
|
-
this.#modifyVal(obj, key, rval);
|
|
151
|
-
} else {
|
|
152
|
-
obj[key] = rval;
|
|
153
|
-
}
|
|
156
|
+
this.#modifyVal(obj, key);
|
|
154
157
|
} else if ( Array.isArray(obj) && typeof key === 'number' ) {
|
|
155
158
|
obj.splice(key, 1);
|
|
156
159
|
} else {
|
|
157
160
|
delete obj[key];
|
|
158
161
|
}
|
|
159
162
|
}
|
|
163
|
+
const result = this.#root['$'] ?? null;
|
|
160
164
|
this.#root = null;
|
|
161
|
-
return
|
|
165
|
+
return result;
|
|
162
166
|
}
|
|
163
167
|
dump() {
|
|
164
168
|
return JSON.stringify(this.#compiled);
|
|
@@ -183,8 +187,15 @@ class JSONPath {
|
|
|
183
187
|
if ( query.length === 0 ) { return; }
|
|
184
188
|
const steps = [];
|
|
185
189
|
let c = query.charCodeAt(i);
|
|
186
|
-
|
|
187
|
-
|
|
190
|
+
if ( c === 0x24 /* $ */ ) {
|
|
191
|
+
steps.push({ mv: this.#ROOT });
|
|
192
|
+
i += 1;
|
|
193
|
+
} else if ( c === 0x40 /* @ */ ) {
|
|
194
|
+
steps.push({ mv: this.#CURRENT });
|
|
195
|
+
i += 1;
|
|
196
|
+
} else {
|
|
197
|
+
steps.push({ mv: i === 0 ? this.#ROOT : this.#CURRENT });
|
|
198
|
+
}
|
|
188
199
|
let mv = this.#UNDEFINED;
|
|
189
200
|
for (;;) {
|
|
190
201
|
if ( i === query.length ) { break; }
|
|
@@ -246,7 +257,8 @@ class JSONPath {
|
|
|
246
257
|
i = r.i + 1;
|
|
247
258
|
mv = this.#UNDEFINED;
|
|
248
259
|
}
|
|
249
|
-
if ( steps.length
|
|
260
|
+
if ( steps.length === 0 ) { return; }
|
|
261
|
+
if ( mv !== this.#UNDEFINED ) { return; }
|
|
250
262
|
return { steps, i };
|
|
251
263
|
}
|
|
252
264
|
#evaluate(steps, pathin) {
|
|
@@ -255,7 +267,7 @@ class JSONPath {
|
|
|
255
267
|
for ( const step of steps ) {
|
|
256
268
|
switch ( step.mv ) {
|
|
257
269
|
case this.#ROOT:
|
|
258
|
-
resultset = [ [] ];
|
|
270
|
+
resultset = [ [ '$' ] ];
|
|
259
271
|
break;
|
|
260
272
|
case this.#CURRENT:
|
|
261
273
|
resultset = [ pathin ];
|
|
@@ -478,13 +490,40 @@ class JSONPath {
|
|
|
478
490
|
}
|
|
479
491
|
if ( outcome ) { return k; }
|
|
480
492
|
}
|
|
481
|
-
#modifyVal(obj, key
|
|
482
|
-
const
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
493
|
+
#modifyVal(obj, key) {
|
|
494
|
+
const { modify, rval } = this.#compiled;
|
|
495
|
+
switch ( modify ) {
|
|
496
|
+
case undefined:
|
|
497
|
+
obj[key] = rval;
|
|
498
|
+
break;
|
|
499
|
+
case '+': {
|
|
500
|
+
if ( rval instanceof Object === false ) { return; }
|
|
501
|
+
const lval = obj[key];
|
|
502
|
+
if ( lval instanceof Object === false ) { return; }
|
|
503
|
+
if ( Array.isArray(lval) ) { return; }
|
|
504
|
+
for ( const [ k, v ] of Object.entries(rval) ) {
|
|
505
|
+
lval[k] = v;
|
|
506
|
+
}
|
|
507
|
+
break;
|
|
508
|
+
}
|
|
509
|
+
case 'repl': {
|
|
510
|
+
const lval = obj[key];
|
|
511
|
+
if ( typeof lval !== 'string' ) { return; }
|
|
512
|
+
if ( this.#compiled.re === undefined ) {
|
|
513
|
+
this.#compiled.re = null;
|
|
514
|
+
try {
|
|
515
|
+
this.#compiled.re = rval.regex !== undefined
|
|
516
|
+
? new RegExp(rval.regex, rval.flags)
|
|
517
|
+
: new RegExp(rval.pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
|
|
518
|
+
} catch {
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
if ( this.#compiled.re === null ) { return; }
|
|
522
|
+
obj[key] = lval.replace(this.#compiled.re, rval.replacement);
|
|
523
|
+
break;
|
|
524
|
+
}
|
|
525
|
+
default:
|
|
526
|
+
break;
|
|
488
527
|
}
|
|
489
528
|
}
|
|
490
529
|
}
|
|
@@ -501,11 +540,12 @@ function jsonlEditFn(jsonp, text = '') {
|
|
|
501
540
|
linesAfter.push(lineBefore);
|
|
502
541
|
continue;
|
|
503
542
|
}
|
|
504
|
-
|
|
543
|
+
const objAfter = jsonp.apply(obj);
|
|
544
|
+
if ( objAfter === undefined ) {
|
|
505
545
|
linesAfter.push(lineBefore);
|
|
506
546
|
continue;
|
|
507
547
|
}
|
|
508
|
-
const lineAfter = safe.JSON_stringify(
|
|
548
|
+
const lineAfter = safe.JSON_stringify(objAfter);
|
|
509
549
|
linesAfter.push(lineAfter);
|
|
510
550
|
}
|
|
511
551
|
return linesAfter.join(lineSeparator);
|
|
@@ -371,8 +371,8 @@ function getRandomTokenFn() {
|
|
|
371
371
|
/******************************************************************************/
|
|
372
372
|
|
|
373
373
|
const scriptletGlobals = {}; // eslint-disable-line
|
|
374
|
-
const argsList = [["Promise","detectedAdblock"],["Object.defineProperty","ADMStorageFileCDN"],["$","aff"],["document.addEventListener","popunder"],["$","arrDirectLink"],["document.getElementById","openPop"],["document.addEventListener","open"],["jQuery","popup"],["WebAssembly","globalThis"],["navigator","devtoolsDetector"],["Symbol","break;case $"],["document.createElement",";break;case"],["eval","$._Eu"],["setTimeout","ad_block"],["setTimeout","Aff"],["jQuery","Popup"],["setInterval","offsetHeight"],["document.addEventListener","Click"],["document.getElementsByClassName","reading-content"],["document.createElement","optad"],["JSON.parse","break;case $."],["$","PopUnder"],["jQuery","click_time"],["JSON","fromCharCode"],["document.createElement","script"],["addEvent","popu"],["$","p0pUpRandom"],["document.querySelectorAll","popMagic"],["document.getElementById","myModal"],["eval"],["Promise","break;case"],["document.addEventListener","popup"],["
|
|
375
|
-
const hostnamesMap = new Map([["10gb.vn",0],["cafef.vn",1],["gamek.vn",1],["genk.vn",1],["kenh14.vn",1],["soha.vn",1],["tuoitre.vn",1],["afamily.vn",1],["thanhnien.vn",1],["childish2x2.fun",2],["dualeotruyenpm.com",[3,
|
|
374
|
+
const argsList = [["Promise","detectedAdblock"],["Object.defineProperty","ADMStorageFileCDN"],["$","aff"],["document.addEventListener","popunder"],["$","arrDirectLink"],["document.getElementById","openPop"],["document.addEventListener","open"],["jQuery","popup"],["WebAssembly","globalThis"],["navigator","devtoolsDetector"],["$","adblock"],["Symbol","break;case $"],["document.createElement",";break;case"],["eval","$._Eu"],["setTimeout","ad_block"],["setTimeout","Aff"],["jQuery","Popup"],["setInterval","offsetHeight"],["document.addEventListener","Click"],["document.getElementsByClassName","reading-content"],["document.createElement","optad"],["JSON.parse","break;case $."],["$","PopUnder"],["jQuery","click_time"],["JSON","fromCharCode"],["document.createElement","script"],["addEvent","popu"],["$","p0pUpRandom"],["document.querySelectorAll","popMagic"],["document.getElementById","myModal"],["$","window.open"],["eval"],["Promise","break;case"],["document.addEventListener","popup"],["jQuery","window.open"],["document.addEventListener","runAllDetections"],["jQuery","open"],["WebAssembly","instantiate"],["document.write","snow"],["setTimeout","open"],["jQuery","click_ads"],["setTimeout","window.location"]];
|
|
375
|
+
const hostnamesMap = new Map([["10gb.vn",0],["cafef.vn",1],["gamek.vn",1],["genk.vn",1],["kenh14.vn",1],["soha.vn",1],["tuoitre.vn",1],["afamily.vn",1],["thanhnien.vn",1],["childish2x2.fun",2],["dualeotruyenpm.com",[3,37]],["m.blogtruyenmoi.com",3],["economic45882.shop",4],["cdn4.tiptoe34x1.fun",4],["freeplayervideo.com",5],["abysscdn.com",5],["player-cdn.com",5],["playhydrax.com",5],["game8.vn",6],["cunghocvui.com",6],["sexhd88.online",6],["gocmod.com",7],["goctruyentranhvui17.com",8],["nettruyenar.com",8],["sextop1.show",8],["hhvsub1.com",8],["vn5.sexviet88.xyz",[8,37]],["gotphim.com",9],["hh2d.tv",10],["hh3dhay.life",[11,12,13]],["tram3d.com",12],["tram3d.me",13],["animevietsub.cam",13],["imail.edu.vn",[14,15]],["www.motchill20.com",15],["motchill20.com",15],["trumtruyen.live",15],["teamlanhlungday.store",[15,30]],["ios.codevn.net",[16,17]],["javhd.shop",18],["laophatgia.net",19],["linkneverdie.net",20],["linkneverdie.top",20],["linkneverdie2.com",20],["lrepacks.net",21],["lxmanga.my",22],["motchilltvphim.com",23],["nettruyenvia.com",24],["p.thoctv.com",25],["phimmoi.sale",26],["phimtho.net",27],["rphang.online",28],["misskon.com",28],["saigon24.net",29],["tusachmanga.com",30],["truyen247.pro",31],["truyenqqtto.com",32],["haysex.site",32],["truyensextv.com",33],["vailonxx.vip",34],["vanphatelectric.com",35],["viet69.free",36],["vlxx.bz",37],["yurineko.my",37],["heohay.net",37],["cliphot69.shop",37],["doctruyen3qui12.pro",37],["ihentai.cloud",37],["hentaivc.net",37],["buomtv.live",37],["truyenvn.shop",37],["javtiful.com",37],["quatvn.love",37],["vn68phimsexhay.com",37],["phim18hdxx.com",37],["vlsexdam.net",37],["demo.14412882.com",37],["cliphot69.pics",37],["hhtq5.vip",37],["sexdiary.club",37],["vn2.xvideos69.xxx",37],["umetruyenhay.com",37],["damconuong.run",37],["truyenqqgo.com",37],["clipsexsub3x.net",37],["sayhentaii.art",37],["vungoctuan.vn",38],["www.toptruyentv8.com",39],["www.truyen35zz.com",40],["xnxx-sex-videos.com",41]]);
|
|
376
376
|
const exceptionsMap = new Map([]);
|
|
377
377
|
const hasEntities = false;
|
|
378
378
|
const hasAncestors = false;
|
|
@@ -288,8 +288,8 @@ function getRandomTokenFn() {
|
|
|
288
288
|
/******************************************************************************/
|
|
289
289
|
|
|
290
290
|
const scriptletGlobals = {}; // eslint-disable-line
|
|
291
|
-
const argsList = [["_0x3f9b"],["parseInt"],["adpiaListUrl"],["Math.round"],["pushOnPage"],["sessionStorage"],["ads"],["adsPlayer"],["adsPopupPlayer"],["adsTvc"],["keyPlayer"],["
|
|
292
|
-
const hostnamesMap = new Map([["animevietsubs.net",0],["aoe.vn",1],["audiotruyenfull.com",2],["javnong.cc",3],["linkneverdie.net",4],["linkneverdie.top",4],["linkneverdie2.com",4],["
|
|
291
|
+
const argsList = [["_0x3f9b"],["parseInt"],["adpiaListUrl"],["Math.round"],["pushOnPage"],["sessionStorage"],["ads"],["adsPlayer"],["adsPopupPlayer"],["adsTvc"],["keyPlayer"],["affUrls"],["document.cookie"],["nFNcksmwU"],["open"],["oneClick"],["Cookies"],["localStorage"],["sp"],["_$_97df"],["adsRedirectPopups"],["adtimaConfig"]];
|
|
292
|
+
const hostnamesMap = new Map([["animevietsubs.net",0],["aoe.vn",1],["audiotruyenfull.com",2],["javnong.cc",3],["linkneverdie.net",4],["linkneverdie.top",4],["linkneverdie2.com",4],["motchillk.to",5],["plcdn.xyz",[6,7,8,9,10]],["thichxemphim1.site",11],["truyensieuhay.com",12],["hayhaytv.site",12],["quangcaoyenbai.com",12],["phimchill.life",12],["thuvienhd.biz",12],["tv.tvhayhd.org",12],["thefaplive.com",12],["mv.dailyphimz.com",12],["mv.phimbathu.one",12],["sexhihi.bar",12],["anime47.live",12],["teamlanhlung8.shop",[12,17]],["phimhdctv.net",12],["forum.timfshare.com",12],["veryfiles.com",13],["viettoons.tv",14],["mv.phimmoiaz.cc",14],["anime11.site",14],["anh.moe",14],["maclife.io",14],["xemphimjav.us",[14,17]],["hoctot.hocmai.vn",14],["bluphim.uk.com",14],["samtruyentranh.com",14],["truyenfull.vision",14],["player.phimapi.com",14],["noitu.site",14],["vinaurl.net",15],["vlsexdam.net",16],["www.motchill20.com",17],["motchill20.com",17],["xnhau.sh",17],["www.nettruyenupp.com",18],["www.sieutamphim.org",19],["xoilaciii.cc",20],["znews.vn",21]]);
|
|
293
293
|
const exceptionsMap = new Map([]);
|
|
294
294
|
const hasEntities = false;
|
|
295
295
|
const hasAncestors = false;
|