@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
|
@@ -26,18 +26,18 @@
|
|
|
26
26
|
// Isolate from global scope
|
|
27
27
|
|
|
28
28
|
// Start of local scope
|
|
29
|
-
(function
|
|
29
|
+
(function uBOL_jsonEditFetchResponse() {
|
|
30
30
|
|
|
31
31
|
/******************************************************************************/
|
|
32
32
|
|
|
33
|
-
function
|
|
34
|
-
|
|
33
|
+
function jsonEditFetchResponse(jsonq = '', ...args) {
|
|
34
|
+
jsonEditFetchResponseFn(false, jsonq, ...args);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
function
|
|
37
|
+
function jsonEditFetchResponseFn(trusted, jsonq = '') {
|
|
38
38
|
const safe = safeSelf();
|
|
39
39
|
const logPrefix = safe.makeLogPrefix(
|
|
40
|
-
`${trusted ? 'trusted-' : ''}json-edit-fetch-
|
|
40
|
+
`${trusted ? 'trusted-' : ''}json-edit-fetch-response`,
|
|
41
41
|
jsonq
|
|
42
42
|
);
|
|
43
43
|
const jsonp = JSONPath.create(jsonq);
|
|
@@ -46,29 +46,11 @@ function jsonEditFetchRequestFn(trusted, jsonq = '') {
|
|
|
46
46
|
}
|
|
47
47
|
const extraArgs = safe.getExtraArgs(Array.from(arguments), 2);
|
|
48
48
|
const propNeedles = parsePropertiesToMatchFn(extraArgs.propsToMatch, 'url');
|
|
49
|
-
|
|
50
|
-
if ( typeof body !== 'string' ) { return; }
|
|
51
|
-
let data;
|
|
52
|
-
try { data = safe.JSON_parse(body); }
|
|
53
|
-
catch { }
|
|
54
|
-
if ( data instanceof Object === false ) { return; }
|
|
55
|
-
const n = jsonp.apply(data);
|
|
56
|
-
if ( n === 0 ) { return; }
|
|
57
|
-
return safe.JSON_stringify(data);
|
|
58
|
-
}
|
|
59
|
-
const proxyHandler = context => {
|
|
49
|
+
proxyApplyFn('fetch', function(context) {
|
|
60
50
|
const args = context.callArgs;
|
|
61
|
-
const
|
|
62
|
-
const bodyBefore = options?.body;
|
|
63
|
-
if ( Boolean(bodyBefore) === false ) { return context.reflect(); }
|
|
64
|
-
const bodyAfter = filterBody(bodyBefore);
|
|
65
|
-
if ( bodyAfter === undefined || bodyAfter === bodyBefore ) {
|
|
66
|
-
return context.reflect();
|
|
67
|
-
}
|
|
51
|
+
const fetchPromise = context.reflect();
|
|
68
52
|
if ( propNeedles.size !== 0 ) {
|
|
69
|
-
const objs = [
|
|
70
|
-
resource instanceof Object ? resource : { url: `${resource}` }
|
|
71
|
-
];
|
|
53
|
+
const objs = [ args[0] instanceof Object ? args[0] : { url: args[0] } ];
|
|
72
54
|
if ( objs[0] instanceof Request ) {
|
|
73
55
|
try {
|
|
74
56
|
objs[0] = safe.Request_clone.call(objs[0]);
|
|
@@ -76,21 +58,43 @@ function jsonEditFetchRequestFn(trusted, jsonq = '') {
|
|
|
76
58
|
safe.uboErr(logPrefix, 'Error:', ex);
|
|
77
59
|
}
|
|
78
60
|
}
|
|
61
|
+
if ( args[1] instanceof Object ) {
|
|
62
|
+
objs.push(args[1]);
|
|
63
|
+
}
|
|
79
64
|
const matched = matchObjectPropertiesFn(propNeedles, ...objs);
|
|
80
|
-
if ( matched === undefined ) { return
|
|
65
|
+
if ( matched === undefined ) { return fetchPromise; }
|
|
81
66
|
if ( safe.logLevel > 1 ) {
|
|
82
67
|
safe.uboLog(logPrefix, `Matched "propsToMatch":\n\t${matched.join('\n\t')}`);
|
|
83
68
|
}
|
|
84
69
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
70
|
+
return fetchPromise.then(responseBefore => {
|
|
71
|
+
const response = responseBefore.clone();
|
|
72
|
+
return response.json().then(obj => {
|
|
73
|
+
if ( typeof obj !== 'object' ) { return responseBefore; }
|
|
74
|
+
const objAfter = jsonp.apply(obj);
|
|
75
|
+
if ( objAfter === undefined ) { return responseBefore; }
|
|
76
|
+
safe.uboLog(logPrefix, 'Edited');
|
|
77
|
+
const responseAfter = Response.json(objAfter, {
|
|
78
|
+
status: responseBefore.status,
|
|
79
|
+
statusText: responseBefore.statusText,
|
|
80
|
+
headers: responseBefore.headers,
|
|
81
|
+
});
|
|
82
|
+
Object.defineProperties(responseAfter, {
|
|
83
|
+
ok: { value: responseBefore.ok },
|
|
84
|
+
redirected: { value: responseBefore.redirected },
|
|
85
|
+
type: { value: responseBefore.type },
|
|
86
|
+
url: { value: responseBefore.url },
|
|
87
|
+
});
|
|
88
|
+
return responseAfter;
|
|
89
|
+
}).catch(reason => {
|
|
90
|
+
safe.uboErr(logPrefix, 'Error:', reason);
|
|
91
|
+
return responseBefore;
|
|
92
|
+
});
|
|
93
|
+
}).catch(reason => {
|
|
94
|
+
safe.uboErr(logPrefix, 'Error:', reason);
|
|
95
|
+
return fetchPromise;
|
|
96
|
+
});
|
|
97
|
+
});
|
|
94
98
|
}
|
|
95
99
|
|
|
96
100
|
class JSONPath {
|
|
@@ -118,12 +122,19 @@ class JSONPath {
|
|
|
118
122
|
const r = this.#compile(query, 0);
|
|
119
123
|
if ( r === undefined ) { return; }
|
|
120
124
|
if ( r.i !== query.length ) {
|
|
121
|
-
|
|
125
|
+
let val;
|
|
126
|
+
if ( query.startsWith('=', r.i) ) {
|
|
127
|
+
if ( /^=repl\(.+\)$/.test(query.slice(r.i)) ) {
|
|
128
|
+
r.modify = 'repl';
|
|
129
|
+
val = query.slice(r.i+6, -1);
|
|
130
|
+
} else {
|
|
131
|
+
val = query.slice(r.i+1);
|
|
132
|
+
}
|
|
133
|
+
} else if ( query.startsWith('+=', r.i) ) {
|
|
122
134
|
r.modify = '+';
|
|
123
|
-
r.i
|
|
135
|
+
val = query.slice(r.i+2);
|
|
124
136
|
}
|
|
125
|
-
|
|
126
|
-
try { r.rval = JSON.parse(query.slice(r.i+1)); }
|
|
137
|
+
try { r.rval = JSON.parse(val); }
|
|
127
138
|
catch { return; }
|
|
128
139
|
}
|
|
129
140
|
this.#compiled = r;
|
|
@@ -136,28 +147,25 @@ class JSONPath {
|
|
|
136
147
|
return paths;
|
|
137
148
|
}
|
|
138
149
|
apply(root) {
|
|
139
|
-
if ( this.valid === false ) { return
|
|
140
|
-
const {
|
|
141
|
-
this.#root = root;
|
|
150
|
+
if ( this.valid === false ) { return; }
|
|
151
|
+
const { rval } = this.#compiled;
|
|
152
|
+
this.#root = { '$': root };
|
|
142
153
|
const paths = this.#evaluate(this.#compiled.steps, []);
|
|
143
|
-
|
|
144
|
-
|
|
154
|
+
let i = paths.length
|
|
155
|
+
if ( i === 0 ) { this.#root = null; return; }
|
|
145
156
|
while ( i-- ) {
|
|
146
157
|
const { obj, key } = this.#resolvePath(paths[i]);
|
|
147
158
|
if ( rval !== undefined ) {
|
|
148
|
-
|
|
149
|
-
this.#modifyVal(obj, key, rval);
|
|
150
|
-
} else {
|
|
151
|
-
obj[key] = rval;
|
|
152
|
-
}
|
|
159
|
+
this.#modifyVal(obj, key);
|
|
153
160
|
} else if ( Array.isArray(obj) && typeof key === 'number' ) {
|
|
154
161
|
obj.splice(key, 1);
|
|
155
162
|
} else {
|
|
156
163
|
delete obj[key];
|
|
157
164
|
}
|
|
158
165
|
}
|
|
166
|
+
const result = this.#root['$'] ?? null;
|
|
159
167
|
this.#root = null;
|
|
160
|
-
return
|
|
168
|
+
return result;
|
|
161
169
|
}
|
|
162
170
|
dump() {
|
|
163
171
|
return JSON.stringify(this.#compiled);
|
|
@@ -182,8 +190,15 @@ class JSONPath {
|
|
|
182
190
|
if ( query.length === 0 ) { return; }
|
|
183
191
|
const steps = [];
|
|
184
192
|
let c = query.charCodeAt(i);
|
|
185
|
-
|
|
186
|
-
|
|
193
|
+
if ( c === 0x24 /* $ */ ) {
|
|
194
|
+
steps.push({ mv: this.#ROOT });
|
|
195
|
+
i += 1;
|
|
196
|
+
} else if ( c === 0x40 /* @ */ ) {
|
|
197
|
+
steps.push({ mv: this.#CURRENT });
|
|
198
|
+
i += 1;
|
|
199
|
+
} else {
|
|
200
|
+
steps.push({ mv: i === 0 ? this.#ROOT : this.#CURRENT });
|
|
201
|
+
}
|
|
187
202
|
let mv = this.#UNDEFINED;
|
|
188
203
|
for (;;) {
|
|
189
204
|
if ( i === query.length ) { break; }
|
|
@@ -245,7 +260,8 @@ class JSONPath {
|
|
|
245
260
|
i = r.i + 1;
|
|
246
261
|
mv = this.#UNDEFINED;
|
|
247
262
|
}
|
|
248
|
-
if ( steps.length
|
|
263
|
+
if ( steps.length === 0 ) { return; }
|
|
264
|
+
if ( mv !== this.#UNDEFINED ) { return; }
|
|
249
265
|
return { steps, i };
|
|
250
266
|
}
|
|
251
267
|
#evaluate(steps, pathin) {
|
|
@@ -254,7 +270,7 @@ class JSONPath {
|
|
|
254
270
|
for ( const step of steps ) {
|
|
255
271
|
switch ( step.mv ) {
|
|
256
272
|
case this.#ROOT:
|
|
257
|
-
resultset = [ [] ];
|
|
273
|
+
resultset = [ [ '$' ] ];
|
|
258
274
|
break;
|
|
259
275
|
case this.#CURRENT:
|
|
260
276
|
resultset = [ pathin ];
|
|
@@ -477,13 +493,40 @@ class JSONPath {
|
|
|
477
493
|
}
|
|
478
494
|
if ( outcome ) { return k; }
|
|
479
495
|
}
|
|
480
|
-
#modifyVal(obj, key
|
|
481
|
-
const
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
496
|
+
#modifyVal(obj, key) {
|
|
497
|
+
const { modify, rval } = this.#compiled;
|
|
498
|
+
switch ( modify ) {
|
|
499
|
+
case undefined:
|
|
500
|
+
obj[key] = rval;
|
|
501
|
+
break;
|
|
502
|
+
case '+': {
|
|
503
|
+
if ( rval instanceof Object === false ) { return; }
|
|
504
|
+
const lval = obj[key];
|
|
505
|
+
if ( lval instanceof Object === false ) { return; }
|
|
506
|
+
if ( Array.isArray(lval) ) { return; }
|
|
507
|
+
for ( const [ k, v ] of Object.entries(rval) ) {
|
|
508
|
+
lval[k] = v;
|
|
509
|
+
}
|
|
510
|
+
break;
|
|
511
|
+
}
|
|
512
|
+
case 'repl': {
|
|
513
|
+
const lval = obj[key];
|
|
514
|
+
if ( typeof lval !== 'string' ) { return; }
|
|
515
|
+
if ( this.#compiled.re === undefined ) {
|
|
516
|
+
this.#compiled.re = null;
|
|
517
|
+
try {
|
|
518
|
+
this.#compiled.re = rval.regex !== undefined
|
|
519
|
+
? new RegExp(rval.regex, rval.flags)
|
|
520
|
+
: new RegExp(rval.pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
|
|
521
|
+
} catch {
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
if ( this.#compiled.re === null ) { return; }
|
|
525
|
+
obj[key] = lval.replace(this.#compiled.re, rval.replacement);
|
|
526
|
+
break;
|
|
527
|
+
}
|
|
528
|
+
default:
|
|
529
|
+
break;
|
|
487
530
|
}
|
|
488
531
|
}
|
|
489
532
|
}
|
|
@@ -803,10 +846,10 @@ function safeSelf() {
|
|
|
803
846
|
/******************************************************************************/
|
|
804
847
|
|
|
805
848
|
const scriptletGlobals = {}; // eslint-disable-line
|
|
806
|
-
const argsList = [[".
|
|
807
|
-
const hostnamesMap = new Map([["
|
|
849
|
+
const argsList = [[".pageProps.__APOLLO_STATE__.*[?.__typename==\"AotSidebar\"]","propsToMatch","/_next/data"]];
|
|
850
|
+
const hostnamesMap = new Map([["asiaon.*",0],["asiaontop.com",0]]);
|
|
808
851
|
const exceptionsMap = new Map([]);
|
|
809
|
-
const hasEntities =
|
|
852
|
+
const hasEntities = true;
|
|
810
853
|
const hasAncestors = false;
|
|
811
854
|
|
|
812
855
|
const collectArgIndices = (hn, map, out) => {
|
|
@@ -872,7 +915,7 @@ if ( hasAncestors ) {
|
|
|
872
915
|
// Apply scriplets
|
|
873
916
|
for ( const i of todoIndices ) {
|
|
874
917
|
if ( tonotdoIndices.has(i) ) { continue; }
|
|
875
|
-
try {
|
|
918
|
+
try { jsonEditFetchResponse(...argsList[i]); }
|
|
876
919
|
catch { }
|
|
877
920
|
}
|
|
878
921
|
|
|
@@ -52,12 +52,13 @@ function editOutboundObjectFn(
|
|
|
52
52
|
}
|
|
53
53
|
proxyApplyFn(propChain, function(context) {
|
|
54
54
|
const obj = context.reflect();
|
|
55
|
-
|
|
55
|
+
const objAfter = jsonp.apply(obj);
|
|
56
|
+
if ( objAfter === undefined ) { return obj; }
|
|
56
57
|
safe.uboLog(logPrefix, 'Edited');
|
|
57
58
|
if ( safe.logLevel > 1 ) {
|
|
58
|
-
safe.uboLog(logPrefix, `After edit:\n${safe.JSON_stringify(
|
|
59
|
+
safe.uboLog(logPrefix, `After edit:\n${safe.JSON_stringify(objAfter, null, 2)}`);
|
|
59
60
|
}
|
|
60
|
-
return
|
|
61
|
+
return objAfter;
|
|
61
62
|
});
|
|
62
63
|
}
|
|
63
64
|
|
|
@@ -86,12 +87,19 @@ class JSONPath {
|
|
|
86
87
|
const r = this.#compile(query, 0);
|
|
87
88
|
if ( r === undefined ) { return; }
|
|
88
89
|
if ( r.i !== query.length ) {
|
|
89
|
-
|
|
90
|
+
let val;
|
|
91
|
+
if ( query.startsWith('=', r.i) ) {
|
|
92
|
+
if ( /^=repl\(.+\)$/.test(query.slice(r.i)) ) {
|
|
93
|
+
r.modify = 'repl';
|
|
94
|
+
val = query.slice(r.i+6, -1);
|
|
95
|
+
} else {
|
|
96
|
+
val = query.slice(r.i+1);
|
|
97
|
+
}
|
|
98
|
+
} else if ( query.startsWith('+=', r.i) ) {
|
|
90
99
|
r.modify = '+';
|
|
91
|
-
r.i
|
|
100
|
+
val = query.slice(r.i+2);
|
|
92
101
|
}
|
|
93
|
-
|
|
94
|
-
try { r.rval = JSON.parse(query.slice(r.i+1)); }
|
|
102
|
+
try { r.rval = JSON.parse(val); }
|
|
95
103
|
catch { return; }
|
|
96
104
|
}
|
|
97
105
|
this.#compiled = r;
|
|
@@ -104,28 +112,25 @@ class JSONPath {
|
|
|
104
112
|
return paths;
|
|
105
113
|
}
|
|
106
114
|
apply(root) {
|
|
107
|
-
if ( this.valid === false ) { return
|
|
108
|
-
const {
|
|
109
|
-
this.#root = root;
|
|
115
|
+
if ( this.valid === false ) { return; }
|
|
116
|
+
const { rval } = this.#compiled;
|
|
117
|
+
this.#root = { '$': root };
|
|
110
118
|
const paths = this.#evaluate(this.#compiled.steps, []);
|
|
111
|
-
|
|
112
|
-
|
|
119
|
+
let i = paths.length
|
|
120
|
+
if ( i === 0 ) { this.#root = null; return; }
|
|
113
121
|
while ( i-- ) {
|
|
114
122
|
const { obj, key } = this.#resolvePath(paths[i]);
|
|
115
123
|
if ( rval !== undefined ) {
|
|
116
|
-
|
|
117
|
-
this.#modifyVal(obj, key, rval);
|
|
118
|
-
} else {
|
|
119
|
-
obj[key] = rval;
|
|
120
|
-
}
|
|
124
|
+
this.#modifyVal(obj, key);
|
|
121
125
|
} else if ( Array.isArray(obj) && typeof key === 'number' ) {
|
|
122
126
|
obj.splice(key, 1);
|
|
123
127
|
} else {
|
|
124
128
|
delete obj[key];
|
|
125
129
|
}
|
|
126
130
|
}
|
|
131
|
+
const result = this.#root['$'] ?? null;
|
|
127
132
|
this.#root = null;
|
|
128
|
-
return
|
|
133
|
+
return result;
|
|
129
134
|
}
|
|
130
135
|
dump() {
|
|
131
136
|
return JSON.stringify(this.#compiled);
|
|
@@ -150,8 +155,15 @@ class JSONPath {
|
|
|
150
155
|
if ( query.length === 0 ) { return; }
|
|
151
156
|
const steps = [];
|
|
152
157
|
let c = query.charCodeAt(i);
|
|
153
|
-
|
|
154
|
-
|
|
158
|
+
if ( c === 0x24 /* $ */ ) {
|
|
159
|
+
steps.push({ mv: this.#ROOT });
|
|
160
|
+
i += 1;
|
|
161
|
+
} else if ( c === 0x40 /* @ */ ) {
|
|
162
|
+
steps.push({ mv: this.#CURRENT });
|
|
163
|
+
i += 1;
|
|
164
|
+
} else {
|
|
165
|
+
steps.push({ mv: i === 0 ? this.#ROOT : this.#CURRENT });
|
|
166
|
+
}
|
|
155
167
|
let mv = this.#UNDEFINED;
|
|
156
168
|
for (;;) {
|
|
157
169
|
if ( i === query.length ) { break; }
|
|
@@ -213,7 +225,8 @@ class JSONPath {
|
|
|
213
225
|
i = r.i + 1;
|
|
214
226
|
mv = this.#UNDEFINED;
|
|
215
227
|
}
|
|
216
|
-
if ( steps.length
|
|
228
|
+
if ( steps.length === 0 ) { return; }
|
|
229
|
+
if ( mv !== this.#UNDEFINED ) { return; }
|
|
217
230
|
return { steps, i };
|
|
218
231
|
}
|
|
219
232
|
#evaluate(steps, pathin) {
|
|
@@ -222,7 +235,7 @@ class JSONPath {
|
|
|
222
235
|
for ( const step of steps ) {
|
|
223
236
|
switch ( step.mv ) {
|
|
224
237
|
case this.#ROOT:
|
|
225
|
-
resultset = [ [] ];
|
|
238
|
+
resultset = [ [ '$' ] ];
|
|
226
239
|
break;
|
|
227
240
|
case this.#CURRENT:
|
|
228
241
|
resultset = [ pathin ];
|
|
@@ -445,13 +458,40 @@ class JSONPath {
|
|
|
445
458
|
}
|
|
446
459
|
if ( outcome ) { return k; }
|
|
447
460
|
}
|
|
448
|
-
#modifyVal(obj, key
|
|
449
|
-
const
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
461
|
+
#modifyVal(obj, key) {
|
|
462
|
+
const { modify, rval } = this.#compiled;
|
|
463
|
+
switch ( modify ) {
|
|
464
|
+
case undefined:
|
|
465
|
+
obj[key] = rval;
|
|
466
|
+
break;
|
|
467
|
+
case '+': {
|
|
468
|
+
if ( rval instanceof Object === false ) { return; }
|
|
469
|
+
const lval = obj[key];
|
|
470
|
+
if ( lval instanceof Object === false ) { return; }
|
|
471
|
+
if ( Array.isArray(lval) ) { return; }
|
|
472
|
+
for ( const [ k, v ] of Object.entries(rval) ) {
|
|
473
|
+
lval[k] = v;
|
|
474
|
+
}
|
|
475
|
+
break;
|
|
476
|
+
}
|
|
477
|
+
case 'repl': {
|
|
478
|
+
const lval = obj[key];
|
|
479
|
+
if ( typeof lval !== 'string' ) { return; }
|
|
480
|
+
if ( this.#compiled.re === undefined ) {
|
|
481
|
+
this.#compiled.re = null;
|
|
482
|
+
try {
|
|
483
|
+
this.#compiled.re = rval.regex !== undefined
|
|
484
|
+
? new RegExp(rval.regex, rval.flags)
|
|
485
|
+
: new RegExp(rval.pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
|
|
486
|
+
} catch {
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
if ( this.#compiled.re === null ) { return; }
|
|
490
|
+
obj[key] = lval.replace(this.#compiled.re, rval.replacement);
|
|
491
|
+
break;
|
|
492
|
+
}
|
|
493
|
+
default:
|
|
494
|
+
break;
|
|
455
495
|
}
|
|
456
496
|
}
|
|
457
497
|
}
|
|
@@ -507,8 +507,8 @@ function getRandomTokenFn() {
|
|
|
507
507
|
/******************************************************************************/
|
|
508
508
|
|
|
509
509
|
const scriptletGlobals = {}; // eslint-disable-line
|
|
510
|
-
const argsList = [["adPlacements adSlots no_ads playerResponse.adPlacements playerResponse.adSlots playerResponse.no_ads [].playerResponse.adPlacements [].playerResponse.adSlots [].playerResponse.no_ads","","propsToMatch","/player?"],["playerAds adPlacements adSlots no_ads playerResponse.playerAds playerResponse.adPlacements playerResponse.adSlots playerResponse.no_ads","","propsToMatch","/playlist?"],["reelWatchSequenceResponse.entries.[-].command.reelWatchEndpoint.adClientParams.isAd entries.[-].command.reelWatchEndpoint.adClientParams.isAd","","propsToMatch","url:/reel_watch_sequence?"],["response.timeline.elements.[-].advertiserId","","propsToMatch","url:/api/v2/tabs/for_you"],["avails","","propsToMatch","amazonaws.com"],["imasdk","","propsToMatch","topaz."],["response.ads","","propsToMatch","/api"],["plugins.adService"],["adBreaks.[].startingOffset adBreaks.[].adBreakDuration adBreaks.[].ads adBreaks.[].startTime adBreak adBreakLocations","","propsToMatch","/session.json"],["data.device.adsParams data.device.adSponsorshipTemplate","","propsToMatch","url:/appconfig"],["response.ads","","propsToMatch","/streams"],["ads.[].imageUrl","","propsToMatch","url:api/meta"],["adDetails","","propsToMatch","/secure?"],["data.search.products.[-].sponsored_ad.ad_source","","propsToMatch","url:/plp_search_v2?"],["session.sessionAds session.sessionAdsRequired","","propsToMatch","/session"],["itemList.[-].ad_info.ad_id","","propsToMatch","url:api/recommend/item_list/"],["assets.preroll assets.prerollDebug","","propsToMatch","/stream-link"],["adsConfiguration","","propsToMatch","/vod"],["layout.sections.mainContentCollection.components.[].data.productTiles.[-].sponsoredCreative.adGroupId","","propsToMatch","/search"],["data.[].affiliate_url","","propsToMatch","cdnpk.net/v2/images/search?"],["data.[-].inner.ctaCopy","","propsToMatch","?page="],["configs.*.properties.componentConfigs.slideshowConfigs.*.interstitialNativeAds","","propsToMatch","url:/config"],["*","list.[].link.kicker","propsToMatch","/content/v1/cms/api/amp/Document"],["properties.tiles.[-].isAd","","propsToMatch","/mestripewc/default/config"],["breaks custom_breaks_data pause_ads video_metadata.end_credits_time","pause_ads","propsToMatch","/playlist"],["breaks custom_breaks_data pause_ads video_metadata.end_credits_time","breaks","propsToMatch","/playlist"],["breaks custom_breaks_data pause_ads","","propsToMatch","/playlist"],["*","*.aurl","propsToMatch","/cs?id="]];
|
|
511
|
-
const hostnamesMap = new Map([["www.youtube.com",[0,1,2]],["m.youtube.com",2],["music.youtube.com",2],["tv.youtube.com",2],["youtubekids.com",2],["youtube-nocookie.com",2],["
|
|
510
|
+
const argsList = [["adPlacements adSlots no_ads playerResponse.adPlacements playerResponse.adSlots playerResponse.no_ads [].playerResponse.adPlacements [].playerResponse.adSlots [].playerResponse.no_ads","","propsToMatch","/player?"],["playerAds adPlacements adSlots no_ads playerResponse.playerAds playerResponse.adPlacements playerResponse.adSlots playerResponse.no_ads","","propsToMatch","/playlist?"],["reelWatchSequenceResponse.entries.[-].command.reelWatchEndpoint.adClientParams.isAd entries.[-].command.reelWatchEndpoint.adClientParams.isAd","","propsToMatch","url:/reel_watch_sequence?"],["prerolls midrolls postrolls comm_ad house_ad pause_ad block_ad end_ad exit_ad pin_ad content_pool vertical_ad elements","","propsToMatch","/detail"],["pageProps.__TEMPLATE_QUERY_DATA__.aotFooterWidgets","","propsToMatch","/_next/data"],["response.timeline.elements.[-].advertiserId","","propsToMatch","url:/api/v2/tabs/for_you"],["avails","","propsToMatch","amazonaws.com"],["imasdk","","propsToMatch","topaz."],["response.ads","","propsToMatch","/api"],["plugins.adService"],["adBreaks.[].startingOffset adBreaks.[].adBreakDuration adBreaks.[].ads adBreaks.[].startTime adBreak adBreakLocations","","propsToMatch","/session.json"],["data.device.adsParams data.device.adSponsorshipTemplate","","propsToMatch","url:/appconfig"],["response.ads","","propsToMatch","/streams"],["ads.[].imageUrl","","propsToMatch","url:api/meta"],["adDetails","","propsToMatch","/secure?"],["data.search.products.[-].sponsored_ad.ad_source","","propsToMatch","url:/plp_search_v2?"],["session.sessionAds session.sessionAdsRequired","","propsToMatch","/session"],["itemList.[-].ad_info.ad_id","","propsToMatch","url:api/recommend/item_list/"],["assets.preroll assets.prerollDebug","","propsToMatch","/stream-link"],["adsConfiguration","","propsToMatch","/vod"],["layout.sections.mainContentCollection.components.[].data.productTiles.[-].sponsoredCreative.adGroupId","","propsToMatch","/search"],["data.[].affiliate_url","","propsToMatch","cdnpk.net/v2/images/search?"],["data.[-].inner.ctaCopy","","propsToMatch","?page="],["configs.*.properties.componentConfigs.slideshowConfigs.*.interstitialNativeAds","","propsToMatch","url:/config"],["*","list.[].link.kicker","propsToMatch","/content/v1/cms/api/amp/Document"],["properties.tiles.[-].isAd","","propsToMatch","/mestripewc/default/config"],["breaks custom_breaks_data pause_ads video_metadata.end_credits_time","pause_ads","propsToMatch","/playlist"],["breaks custom_breaks_data pause_ads video_metadata.end_credits_time","breaks","propsToMatch","/playlist"],["breaks custom_breaks_data pause_ads","","propsToMatch","/playlist"],["*","*.aurl","propsToMatch","/cs?id="]];
|
|
511
|
+
const hostnamesMap = new Map([["www.youtube.com",[0,1,2]],["m.youtube.com",2],["music.youtube.com",2],["tv.youtube.com",2],["youtubekids.com",2],["youtube-nocookie.com",2],["ofiii.com",3],["asiaon.*",4],["asiaontop.com",4],["tumblr.com",5],["nbc.com",6],["southpark.*",7],["southparkstudios.*",7],["player.pop.co.uk",8],["player.popfun.co.uk",8],["iprima.cz",9],["pluto.tv",10],["crackle.com",11],["play.virginmediatelevision.ie",12],["misskey.io",13],["misskey.oga.ninja",13],["mk.yopo.work",13],["sushi.ski",13],["trpger.us",13],["warpday.net",13],["zadankai.club",13],["zee5.com",14],["target.com",15],["play.geforcenow.com",16],["www.tiktok.com",17],["npo.nl",18],["watch.shout-tv.com",19],["realcanadiansuperstore.ca",20],["flaticon.com",21],["fomo.id",22],["www.msn.com",[23,24,25]],["hulu.com",[26,27,28]],["mega.nz",29]]);
|
|
512
512
|
const exceptionsMap = new Map([]);
|
|
513
513
|
const hasEntities = true;
|
|
514
514
|
const hasAncestors = false;
|
|
@@ -425,8 +425,8 @@ function getRandomTokenFn() {
|
|
|
425
425
|
/******************************************************************************/
|
|
426
426
|
|
|
427
427
|
const scriptletGlobals = {}; // eslint-disable-line
|
|
428
|
-
const argsList = [["entries.[-].command.reelWatchEndpoint.adClientParams.isAd"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.viewer.sideFeedUnit.nodes.[].new_adverts.nodes.[-].sponsored_data"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.serpResponse.results.edges.[-].rendering_strategy.view_model.story.sponsored_data.ad_id"],["config.globalInteractions.[].bsData"],["playerResponse.adPlacements playerResponse.playerAds playerResponse.adSlots adPlacements playerAds adSlots important"],["enabled","force_disabled"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.serpResponse.results.edges.[-].relay_rendering_strategy.view_model.story.sponsored_data.ad_id"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.node","require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.node.story.sponsored_data.ad_id"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.marketplace_search.feed_units.edges.[-].node.story.sponsored_data.ad_id"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.viewer.marketplace_feed_stories.edges.[-].node.story.sponsored_data.ad_id"],["*","*.adserverDomain"],["urls","urls.0"],["cuepointPlaylist vodPlaybackUrls.result.playbackUrls.cuepoints"],["value.media.ad_breaks"],["data.[].vast_url"],["adReinsertion"],["enabled","testhide"],["AffiliateAdBlock"],["ad_pods.0.ads.0.segments.0.media ad_pods.1.ads.1.segments.1.media ad_pods.2.ads.2.segments.2.media ad_pods.3.ads.3.segments.3.media ad_pods.4.ads.4.segments.4.media ad_pods.5.ads.5.segments.5.media ad_pods.6.ads.6.segments.6.media ad_pods.7.ads.7.segments.7.media ad_pods.8.ads.8.segments.8.media"],["web_share_ads_adsterra_config wap_short_link_middle_page_ad wap_short_link_middle_page_show_time data.ads_cpm_info"],["data.meta.require_addon data.meta.require_captcha data.meta.require_notifications data.meta.require_og_ads data.meta.require_video data.meta.require_web data.meta.require_related_topics data.meta.require_custom_ad_step data.meta.og_ads_offers data.meta.addon_url data.displayAds data.linkCustomAdOffers"],["data.getDetailPageContent.linkCustomAdOffers.[-].title"],["data.getTaboolaAds.*"],["RT-1562-AdShield-script-on-Huffpost"],["ads.servers.[].apiAddress"],["breaks interstitials info","interstitials"],["ad_slots"],["plugins.dfp"],["clickAnywhere urls"],["meta.advertise"],["data.attributes.config.freewheel data.attributes.config.featureFlags.dPlayer"],["data.attributes.ssaiInfo.forecastTimeline data.attributes.ssaiInfo.vendorAttributes.nonLinearAds data.attributes.ssaiInfo.vendorAttributes.videoView data.attributes.ssaiInfo.vendorAttributes.breaks.[].ads.[].adMetadata data.attributes.ssaiInfo.vendorAttributes.breaks.[].ads.[].adParameters data.attributes.ssaiInfo.vendorAttributes.breaks.[].timeOffset"],["ssaiInfo"],["movie.advertising.ad_server playlist.movie.advertising.ad_server"],["MediaContainer.Metadata.[].Ad"],["cuepoints","cuepoints.[].start cuepoints.[].end cuepoints.[].start_float cuepoints.[].end_float"],["testadtags ad"],["resource_response.data.[-].pin_promotion_id resource_response.data.results.[-].pin_promotion_id"],["initialReduxState.pins.{-}.pin_promotion_id initialReduxState.resources.UserHomefeedResource.*.data.[-].pin_promotion_id"],["ads"],["[].data.searchResults.listings.[-].targetingSegments"],["data.xdt_injected_story_units.ad_media_items"],["ssaiInfo fallback.ssaiInfo"],["adtech-brightline adtech-google-pal adtech-iab-om"],["result.ads"],["items.[-].potentialActions.0.object.impressionToken items.[-].hasPart.0.potentialActions.0.object.impressionToken"],["context.adsIncluded"],["stream.insertion.adSession stream.insertion.points stream.insertion stream.sources.*.insertion pods.0.ads"],["ads.metadata ads.document ads.dxc ads.live ads.vod"],["*.tanya_video_ads"],["success.page.spaces.player.widget_wrappers.[].widget.data.intervention_data"],["avails"],["data.reg"],["playerResponse.adPlacements playerResponse.playerAds adPlacements playerAds"],["response.ads"],["adease adeaseBlob vmap","adease"],["plugins.adService"],["session.showAds"],["adverts.breaks"],["*","all"],["adtagparameter","enabled"],["ssai_manifest ad_manifest playback_info.ad_info qvt.playback_info.ad_info"],["PlaybackDetails.[].DaiVod"],["data.searchClassifiedFeed.searchResultView.0.searchResultItemsV2.edges.[-].node.item.content.creative.clickThroughEvent.adsTrackingMetadata.metadata.adRequestId"],["data.me.personalizedFeed.feedItems.[-].promo.creative.clickThroughUrl.adsTrackingMetadata.metadata.adRequestId"],["data.me.rhrFeed.feedItems.[-].promo.creative.clickThroughUrl.adsTrackingMetadata.metadata.sponsor"],["[].data.displayAdsV3.data.[-].__typename"],["[].data.TopAdsProducts.data.[-].__typename"],["[].data.topads.data.[-].__typename"],["placements.processingFile"],["sorts.[-].recommendationList.[].contentMetadata.EncryptedAdTrackingData"],["ads.[-].ad_id"],["gifs.[-].cta.link"],["playlist.movie.advertising.ad_server"],["result.adverts"],["ads breaks cuepoints times"],["breaks custom_breaks_data pause_ads"],["breaks custom_breaks_data pause_ads video_metadata.end_credits_time","pause_ads"],["breaks custom_breaks_data pause_ads video_metadata.end_credits_time","breaks"],["show_adverts"],["bannerad sidebar ti_sidebar"],["data.*.elements.edges.[].node.outboundLink"],["data.children.[].data.outbound_link"],["require.0.3.0.__bbox.define.[].2.is_linkshim_supported"],["dataLayer.trackingId user.trackingId"]];
|
|
429
|
-
const hostnamesMap = new Map([["youtube.com",0],["m.youtube.com",[0,4]],["music.youtube.com",[0,4]],["tv.youtube.com",0],["www.youtube.com",0],["youtubekids.com",[0,4]],["youtube-nocookie.com",[0,4]],["web.facebook.com",[1,2,6,7,8,9]],["www.facebook.com",[1,2,6,7,8,9]],["stories.los40.com",3],["chip.de",5],["focus.de",5],["kicker.de",5],["vipbox.*",10],["vipboxtv.*",10],["viprow.*",10],["shazysport.pro",10],["streamhd247.info",10],["volokit2.com",10],["voodc.com",10],["elixx.*",11],["www.amazon.co.jp",12],["www.amazon.co.uk",12],["www.amazon.com",12],["www.amazon.de",12],["www.primevideo.com",12],["crunchyroll.com",13],["vvvvid.it",14],["plus.rtl.de",15],["tv2.no",16],["5flix.top",17],["listeamed.net",17],["yesmovies.*>>",17],["pistona.xyz",17],["vinomo.xyz",17],["art19.com",18],["fansonlinehub.com",19],["hotmediahub.com",19],["terabox.fun",19],["teralink.me",19],["terashare.me",19],["teraearn.com",19],["linkvertise.com",[20,21,22]],["huffpost.com",23],["domoplus.pl",24],["kuchniaplus.pl",24],["miniminiplus.pl",24],["teletoonplus.pl",24],["vix.com",[25,26,27]],["shorttey.*",28],["vlive.tv",29],["discoveryplus.*",[30,31]],["go.discovery.com",31],["investigationdiscovery.com",31],["watch.foodnetwork.com",31],["play.discoveryplus.com",32],["tvn.pl",33],["app.plex.tv",34],["10.com.au",35],["10play.com.au",35],["player.stv.tv",
|
|
428
|
+
const argsList = [["entries.[-].command.reelWatchEndpoint.adClientParams.isAd"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.viewer.sideFeedUnit.nodes.[].new_adverts.nodes.[-].sponsored_data"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.serpResponse.results.edges.[-].rendering_strategy.view_model.story.sponsored_data.ad_id"],["config.globalInteractions.[].bsData"],["playerResponse.adPlacements playerResponse.playerAds playerResponse.adSlots adPlacements playerAds adSlots important"],["enabled","force_disabled"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.serpResponse.results.edges.[-].relay_rendering_strategy.view_model.story.sponsored_data.ad_id"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.node","require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.node.story.sponsored_data.ad_id"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.marketplace_search.feed_units.edges.[-].node.story.sponsored_data.ad_id"],["require.0.3.0.__bbox.require.[].3.1.__bbox.result.data.viewer.marketplace_feed_stories.edges.[-].node.story.sponsored_data.ad_id"],["*","*.adserverDomain"],["urls","urls.0"],["cuepointPlaylist vodPlaybackUrls.result.playbackUrls.cuepoints"],["value.media.ad_breaks"],["data.[].vast_url"],["adReinsertion"],["enabled","testhide"],["AffiliateAdBlock"],["ad_pods.0.ads.0.segments.0.media ad_pods.1.ads.1.segments.1.media ad_pods.2.ads.2.segments.2.media ad_pods.3.ads.3.segments.3.media ad_pods.4.ads.4.segments.4.media ad_pods.5.ads.5.segments.5.media ad_pods.6.ads.6.segments.6.media ad_pods.7.ads.7.segments.7.media ad_pods.8.ads.8.segments.8.media"],["web_share_ads_adsterra_config wap_short_link_middle_page_ad wap_short_link_middle_page_show_time data.ads_cpm_info"],["data.meta.require_addon data.meta.require_captcha data.meta.require_notifications data.meta.require_og_ads data.meta.require_video data.meta.require_web data.meta.require_related_topics data.meta.require_custom_ad_step data.meta.og_ads_offers data.meta.addon_url data.displayAds data.linkCustomAdOffers"],["data.getDetailPageContent.linkCustomAdOffers.[-].title"],["data.getTaboolaAds.*"],["RT-1562-AdShield-script-on-Huffpost"],["ads.servers.[].apiAddress"],["breaks interstitials info","interstitials"],["ad_slots"],["plugins.dfp"],["clickAnywhere urls"],["meta.advertise"],["data.attributes.config.freewheel data.attributes.config.featureFlags.dPlayer"],["data.attributes.ssaiInfo.forecastTimeline data.attributes.ssaiInfo.vendorAttributes.nonLinearAds data.attributes.ssaiInfo.vendorAttributes.videoView data.attributes.ssaiInfo.vendorAttributes.breaks.[].ads.[].adMetadata data.attributes.ssaiInfo.vendorAttributes.breaks.[].ads.[].adParameters data.attributes.ssaiInfo.vendorAttributes.breaks.[].timeOffset"],["ssaiInfo"],["movie.advertising.ad_server playlist.movie.advertising.ad_server"],["MediaContainer.Metadata.[].Ad"],["cuepoints","cuepoints.[].start cuepoints.[].end cuepoints.[].start_float cuepoints.[].end_float"],["props.pageProps.data.aotHomepageTopBar props.pageProps.data.aotHomepageTopBar props.pageProps.data.aotHeaderAdScripts props.pageProps.data.aotFooterWidgets"],["testadtags ad"],["resource_response.data.[-].pin_promotion_id resource_response.data.results.[-].pin_promotion_id"],["initialReduxState.pins.{-}.pin_promotion_id initialReduxState.resources.UserHomefeedResource.*.data.[-].pin_promotion_id"],["ads"],["[].data.searchResults.listings.[-].targetingSegments"],["data.xdt_injected_story_units.ad_media_items"],["ssaiInfo fallback.ssaiInfo"],["adtech-brightline adtech-google-pal adtech-iab-om"],["result.ads"],["items.[-].potentialActions.0.object.impressionToken items.[-].hasPart.0.potentialActions.0.object.impressionToken"],["context.adsIncluded"],["stream.insertion.adSession stream.insertion.points stream.insertion stream.sources.*.insertion pods.0.ads"],["ads.metadata ads.document ads.dxc ads.live ads.vod"],["*.tanya_video_ads"],["success.page.spaces.player.widget_wrappers.[].widget.data.intervention_data"],["avails"],["data.reg"],["playerResponse.adPlacements playerResponse.playerAds adPlacements playerAds"],["response.ads"],["adease adeaseBlob vmap","adease"],["plugins.adService"],["session.showAds"],["adverts.breaks"],["*","all"],["adtagparameter","enabled"],["ssai_manifest ad_manifest playback_info.ad_info qvt.playback_info.ad_info"],["PlaybackDetails.[].DaiVod"],["data.searchClassifiedFeed.searchResultView.0.searchResultItemsV2.edges.[-].node.item.content.creative.clickThroughEvent.adsTrackingMetadata.metadata.adRequestId"],["data.me.personalizedFeed.feedItems.[-].promo.creative.clickThroughUrl.adsTrackingMetadata.metadata.adRequestId"],["data.me.rhrFeed.feedItems.[-].promo.creative.clickThroughUrl.adsTrackingMetadata.metadata.sponsor"],["[].data.displayAdsV3.data.[-].__typename"],["[].data.TopAdsProducts.data.[-].__typename"],["[].data.topads.data.[-].__typename"],["placements.processingFile"],["sorts.[-].recommendationList.[].contentMetadata.EncryptedAdTrackingData"],["ads.[-].ad_id"],["gifs.[-].cta.link"],["playlist.movie.advertising.ad_server"],["result.adverts"],["data.pinotPausedPlaybackPage"],["ads breaks cuepoints times"],["breaks custom_breaks_data pause_ads"],["breaks custom_breaks_data pause_ads video_metadata.end_credits_time","pause_ads"],["breaks custom_breaks_data pause_ads video_metadata.end_credits_time","breaks"],["show_adverts"],["bannerad sidebar ti_sidebar"],["data.*.elements.edges.[].node.outboundLink"],["data.children.[].data.outbound_link"],["require.0.3.0.__bbox.define.[].2.is_linkshim_supported"],["dataLayer.trackingId user.trackingId"]];
|
|
429
|
+
const hostnamesMap = new Map([["youtube.com",0],["m.youtube.com",[0,4]],["music.youtube.com",[0,4]],["tv.youtube.com",0],["www.youtube.com",0],["youtubekids.com",[0,4]],["youtube-nocookie.com",[0,4]],["web.facebook.com",[1,2,6,7,8,9]],["www.facebook.com",[1,2,6,7,8,9]],["stories.los40.com",3],["chip.de",5],["focus.de",5],["kicker.de",5],["vipbox.*",10],["vipboxtv.*",10],["viprow.*",10],["shazysport.pro",10],["streamhd247.info",10],["volokit2.com",10],["voodc.com",10],["elixx.*",11],["www.amazon.co.jp",12],["www.amazon.co.uk",12],["www.amazon.com",12],["www.amazon.de",12],["www.primevideo.com",12],["crunchyroll.com",13],["vvvvid.it",14],["plus.rtl.de",15],["tv2.no",16],["5flix.top",17],["listeamed.net",17],["yesmovies.*>>",17],["pistona.xyz",17],["vinomo.xyz",17],["art19.com",18],["fansonlinehub.com",19],["hotmediahub.com",19],["terabox.fun",19],["teralink.me",19],["terashare.me",19],["teraearn.com",19],["linkvertise.com",[20,21,22]],["huffpost.com",23],["domoplus.pl",24],["kuchniaplus.pl",24],["miniminiplus.pl",24],["teletoonplus.pl",24],["vix.com",[25,26,27]],["shorttey.*",28],["vlive.tv",29],["discoveryplus.*",[30,31]],["go.discovery.com",31],["investigationdiscovery.com",31],["watch.foodnetwork.com",31],["play.discoveryplus.com",32],["tvn.pl",33],["app.plex.tv",34],["10.com.au",35],["10play.com.au",35],["asiaon.*",36],["asiaontop.com",36],["player.stv.tv",37],["pinterest.*",[38,39]],["fox.com",40],["foxsports.com",40],["serially.it",40],["autotrader.co.uk",41],["instagram.com",42],["play.hbomax.com",[43,44]],["play.max.com",[43,44]],["sportstiger.com",45],["swisscows.com",[46,47]],["disneyplus.com",[48,49]],["colearn.id",50],["hotstar.com",51],["nbc.com",52],["play.virginmediatelevision.ie",52],["play.history.com",53],["eu-proxy.startpage.com",54],["player.pop.co.uk",55],["player.popfun.co.uk",55],["foxtel.com.au",56],["iprima.cz",57],["speedrun.com",58],["channel4.com",59],["hentaihaven.xxx",60],["winfuture.de",61],["watch.sling.com",62],["dazn.com",63],["nextdoor.com",[64,65,66]],["tokopedia.com",[67,68,69]],["upscaler.stockphotos.com",70],["roblox.com",71],["sainsburys.co.uk",72],["redgifs.com",73],["tvn24.pl",74],["netflix.com",[75,76]],["sbs.com.au",77],["hulu.com",[78,79,80]],["bitchute.com",81],["criticker.com",82],["www.reddit.com",[83,84]],["threads.net",85],["nypost.com",86],["pagesix.com",86]]);
|
|
430
430
|
const exceptionsMap = new Map([["vvid30c.*",[17]]]);
|
|
431
431
|
const hasEntities = true;
|
|
432
432
|
const hasAncestors = true;
|