@browserless.io/browserless 2.33.0 → 2.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/README.md +1 -1
  3. package/build/config.d.ts +1 -1
  4. package/build/config.js +1 -1
  5. package/build/http.d.ts +10 -0
  6. package/build/http.js +5 -0
  7. package/build/limiter.spec.js +1 -1
  8. package/build/routes/chrome/http/content.post.body.json +18 -109
  9. package/build/routes/chrome/http/pdf.post.body.json +18 -109
  10. package/build/routes/chrome/http/scrape.post.body.json +18 -109
  11. package/build/routes/chrome/http/screenshot.post.body.json +18 -109
  12. package/build/routes/chrome/tests/content.spec.js +12 -12
  13. package/build/routes/chrome/tests/page-websocket.spec.js +3 -3
  14. package/build/routes/chrome/tests/pdf.spec.js +13 -13
  15. package/build/routes/chrome/tests/performance.spec.js +4 -4
  16. package/build/routes/chrome/tests/scrape.spec.js +13 -13
  17. package/build/routes/chrome/tests/screenshot.spec.js +14 -14
  18. package/build/routes/chromium/http/content.post.body.json +18 -109
  19. package/build/routes/chromium/http/pdf.post.body.json +18 -109
  20. package/build/routes/chromium/http/scrape.post.body.json +18 -109
  21. package/build/routes/chromium/http/screenshot.post.body.json +18 -109
  22. package/build/routes/chromium/tests/content.spec.js +13 -13
  23. package/build/routes/chromium/tests/page-websocket.spec.js +3 -3
  24. package/build/routes/chromium/tests/pdf.spec.js +13 -13
  25. package/build/routes/chromium/tests/performance.spec.js +4 -4
  26. package/build/routes/chromium/tests/scrape.spec.js +13 -13
  27. package/build/routes/chromium/tests/screenshot.spec.js +14 -14
  28. package/build/routes/edge/http/content.post.body.json +18 -109
  29. package/build/routes/edge/http/pdf.post.body.json +18 -109
  30. package/build/routes/edge/http/scrape.post.body.json +18 -109
  31. package/build/routes/edge/http/screenshot.post.body.json +18 -109
  32. package/build/routes/edge/tests/content.spec.js +12 -12
  33. package/build/routes/edge/tests/page-websocket.spec.js +3 -3
  34. package/build/routes/edge/tests/pdf.spec.js +13 -13
  35. package/build/routes/edge/tests/performance.spec.js +4 -4
  36. package/build/routes/edge/tests/scrape.spec.js +13 -13
  37. package/build/routes/edge/tests/screenshot.spec.js +14 -14
  38. package/build/routes/management/http/kill.get.d.ts +1 -1
  39. package/build/routes/management/http/kill.get.query.json +0 -3
  40. package/build/routes/management/http/pressure.get.d.ts +1 -1
  41. package/build/routes/management/http/pressure.get.js +12 -4
  42. package/build/routes/management/http/sessions.get.d.ts +1 -1
  43. package/build/routes/management/http/sessions.get.query.json +0 -3
  44. package/build/routes/management/tests/management.spec.js +13 -13
  45. package/build/server.js +12 -4
  46. package/build/shared/content.http.js +9 -2
  47. package/build/shared/pdf.http.js +9 -2
  48. package/build/shared/scrape.http.js +9 -2
  49. package/build/shared/screenshot.http.js +9 -2
  50. package/build/shim.d.ts +5 -0
  51. package/build/shim.js +13 -0
  52. package/build/shim.spec.js +28 -1
  53. package/build/types.d.ts +21 -1
  54. package/build/types.js +14 -0
  55. package/build/utils.d.ts +1 -0
  56. package/build/utils.js +4 -3
  57. package/extensions/ublocklite/_locales/ar/messages.json +8 -8
  58. package/extensions/ublocklite/_locales/be/messages.json +8 -8
  59. package/extensions/ublocklite/_locales/fi/messages.json +18 -18
  60. package/extensions/ublocklite/_locales/hi/messages.json +21 -21
  61. package/extensions/ublocklite/_locales/hu/messages.json +8 -8
  62. package/extensions/ublocklite/_locales/id/messages.json +15 -15
  63. package/extensions/ublocklite/_locales/ja/messages.json +23 -23
  64. package/extensions/ublocklite/_locales/nl/messages.json +1 -1
  65. package/extensions/ublocklite/_locales/pt_BR/messages.json +15 -15
  66. package/extensions/ublocklite/_locales/pt_PT/messages.json +18 -18
  67. package/extensions/ublocklite/_locales/ru/messages.json +1 -1
  68. package/extensions/ublocklite/_locales/th/messages.json +30 -30
  69. package/extensions/ublocklite/_locales/tr/messages.json +1 -1
  70. package/extensions/ublocklite/_locales/uk/messages.json +10 -10
  71. package/extensions/ublocklite/_locales/vi/messages.json +8 -8
  72. package/extensions/ublocklite/css/dashboard.css +9 -4
  73. package/extensions/ublocklite/css/picker-ui.css +1 -1
  74. package/extensions/ublocklite/css/report.css +0 -8
  75. package/extensions/ublocklite/css/settings.css +17 -13
  76. package/extensions/ublocklite/dashboard.html +16 -12
  77. package/extensions/ublocklite/js/background.js +75 -19
  78. package/extensions/ublocklite/js/config.js +2 -1
  79. package/extensions/ublocklite/js/dashboard.js +9 -5
  80. package/extensions/ublocklite/js/debug.js +69 -6
  81. package/extensions/ublocklite/js/develop.js +1 -1
  82. package/extensions/ublocklite/js/ext-compat.js +9 -2
  83. package/extensions/ublocklite/js/ext.js +6 -0
  84. package/extensions/ublocklite/js/fetch.js +3 -1
  85. package/extensions/ublocklite/js/filter-lists.js +17 -9
  86. package/extensions/ublocklite/js/filter-manager.js +80 -28
  87. package/extensions/ublocklite/js/jsonpath.js +65 -26
  88. package/extensions/ublocklite/js/mode-manager.js +5 -1
  89. package/extensions/ublocklite/js/picker-ui.js +32 -41
  90. package/extensions/ublocklite/js/popup.js +11 -11
  91. package/extensions/ublocklite/js/redirect-resources.js +1 -0
  92. package/extensions/ublocklite/js/report.js +4 -2
  93. package/extensions/ublocklite/js/ro-dnr-editor.js +6 -1
  94. package/extensions/ublocklite/js/ruleset-manager.js +38 -13
  95. package/extensions/ublocklite/js/scripting/css-generic.js +0 -1
  96. package/extensions/ublocklite/js/scripting/css-procedural-api.js +821 -0
  97. package/extensions/ublocklite/js/scripting/css-procedural.js +62 -718
  98. package/extensions/ublocklite/{rulesets/scripting/declarative/ubol-tests.js → js/scripting/css-user-terminate.js} +16 -13
  99. package/extensions/ublocklite/js/scripting/css-user.js +12 -1
  100. package/extensions/ublocklite/js/scripting/picker.js +46 -13
  101. package/extensions/ublocklite/js/scripting/tool-overlay.js +14 -8
  102. package/extensions/ublocklite/js/scripting/unpicker.js +5 -9
  103. package/extensions/ublocklite/js/scripting/zapper.js +1 -1
  104. package/extensions/ublocklite/js/scripting-manager.js +4 -75
  105. package/extensions/ublocklite/js/settings.js +3 -5
  106. package/extensions/ublocklite/js/static-filtering-parser.js +3 -3
  107. package/extensions/ublocklite/js/tool-overlay-ui.js +20 -24
  108. package/extensions/ublocklite/js/troubleshooting.js +11 -19
  109. package/extensions/ublocklite/js/ubo-parser.js +1 -1
  110. package/extensions/ublocklite/js/unpicker-ui.js +16 -9
  111. package/extensions/ublocklite/js/zapper-ui.js +3 -2
  112. package/extensions/ublocklite/manifest.json +12 -2
  113. package/extensions/ublocklite/picker-ui.html +1 -1
  114. package/extensions/ublocklite/report.html +0 -1
  115. package/extensions/ublocklite/rulesets/generic-details.json +28 -16
  116. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +5 -2
  117. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +27 -15
  118. package/extensions/ublocklite/rulesets/main/annoyances-notifications.json +276 -0
  119. package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -3
  120. package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +4 -4
  121. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +3 -2
  122. package/extensions/ublocklite/rulesets/main/bgr-0.json +54 -68
  123. package/extensions/ublocklite/rulesets/main/block-lan.json +3 -2
  124. package/extensions/ublocklite/rulesets/main/chn-0.json +28 -21
  125. package/extensions/ublocklite/rulesets/main/deu-0.json +7 -6
  126. package/extensions/ublocklite/rulesets/main/dpollock-0.json +8 -41
  127. package/extensions/ublocklite/rulesets/main/easylist.json +68 -42
  128. package/extensions/ublocklite/rulesets/main/easyprivacy.json +89 -12
  129. package/extensions/ublocklite/rulesets/main/fra-0.json +19 -19
  130. package/extensions/ublocklite/rulesets/main/hrv-0.json +5 -5
  131. package/extensions/ublocklite/rulesets/main/hun-0.json +5 -3
  132. package/extensions/ublocklite/rulesets/main/idn-0.json +13 -2
  133. package/extensions/ublocklite/rulesets/main/ind-0.json +34 -26
  134. package/extensions/ublocklite/rulesets/main/irn-0.json +676 -635
  135. package/extensions/ublocklite/rulesets/main/isr-0.json +1 -0
  136. package/extensions/ublocklite/rulesets/main/jpn-1.json +55 -31
  137. package/extensions/ublocklite/rulesets/main/kor-1.json +9 -4
  138. package/extensions/ublocklite/rulesets/main/mkd-0.json +1 -1
  139. package/extensions/ublocklite/rulesets/main/nld-0.json +2 -1
  140. package/extensions/ublocklite/rulesets/main/nor-0.json +35 -13
  141. package/extensions/ublocklite/rulesets/main/pgl.json +36 -15
  142. package/extensions/ublocklite/rulesets/main/pol-0.json +3 -2
  143. package/extensions/ublocklite/rulesets/main/rus-0.json +37 -37
  144. package/extensions/ublocklite/rulesets/main/rus-1.json +7 -3
  145. package/extensions/ublocklite/rulesets/main/spa-1.json +15 -33
  146. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +15675 -15915
  147. package/extensions/ublocklite/rulesets/main/swe-1.json +46 -34
  148. package/extensions/ublocklite/rulesets/main/tur-0.json +56 -32
  149. package/extensions/ublocklite/rulesets/main/ublock-badware.json +87 -89
  150. package/extensions/ublocklite/rulesets/main/ublock-experimental.json +3 -0
  151. package/extensions/ublocklite/rulesets/main/ublock-filters.json +139 -69
  152. package/extensions/ublocklite/rulesets/main/ukr-0.json +5 -7
  153. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +546 -1235
  154. package/extensions/ublocklite/rulesets/main/vie-1.json +55 -57
  155. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +4 -2
  156. package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +2 -1
  157. package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +14 -14
  158. package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +4 -8
  159. package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +1 -1
  160. package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +1 -1
  161. package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +35 -0
  162. package/extensions/ublocklite/rulesets/redirect/irn-0.json +23 -23
  163. package/extensions/ublocklite/rulesets/redirect/kor-1.json +1 -1
  164. package/extensions/ublocklite/rulesets/redirect/rus-0.json +2 -1
  165. package/extensions/ublocklite/rulesets/redirect/spa-1.json +1 -2
  166. package/extensions/ublocklite/rulesets/redirect/tur-0.json +2 -3
  167. package/extensions/ublocklite/rulesets/redirect/ublock-badware.json +18 -0
  168. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +20 -15
  169. package/extensions/ublocklite/rulesets/redirect/vie-1.json +5 -22
  170. package/extensions/ublocklite/rulesets/regex/chn-0.json +1 -1
  171. package/extensions/ublocklite/rulesets/regex/ita-0.json +1 -0
  172. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  173. package/extensions/ublocklite/rulesets/regex/tur-0.json +4 -1
  174. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +3 -8
  175. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +14 -9
  176. package/extensions/ublocklite/rulesets/regex/ukr-0.json +3 -5
  177. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +26 -11
  178. package/extensions/ublocklite/rulesets/removeparam/irn-0.json +16 -15
  179. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +3 -2
  180. package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +6 -5
  181. package/extensions/ublocklite/rulesets/ruleset-details.json +332 -324
  182. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  183. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +87 -0
  184. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +2 -2
  185. package/extensions/ublocklite/rulesets/scripting/generic/bgr-0.js +3 -3
  186. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +2 -2
  187. package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +1 -1
  188. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  189. package/extensions/ublocklite/rulesets/scripting/generic/est-0.js +1 -1
  190. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +2 -2
  191. package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +1 -1
  192. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
  193. package/extensions/ublocklite/rulesets/scripting/generic/ind-0.js +2 -2
  194. package/extensions/ublocklite/rulesets/scripting/generic/irn-0.js +3 -3
  195. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +3 -3
  196. package/extensions/ublocklite/rulesets/scripting/generic/kor-1.js +2 -2
  197. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
  198. package/extensions/ublocklite/rulesets/scripting/generic/pol-0.js +1 -1
  199. package/extensions/ublocklite/rulesets/scripting/generic/rou-1.js +2 -2
  200. package/extensions/ublocklite/rulesets/scripting/generic/rus-0.js +1 -1
  201. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
  202. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +1 -1
  203. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  204. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +3 -3
  205. package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +1 -1
  206. package/extensions/ublocklite/rulesets/scripting/{declarative/isr-0.js → generichigh/annoyances-notifications.css} +15 -21
  207. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +14 -0
  208. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +3 -0
  209. package/extensions/ublocklite/rulesets/scripting/generichigh/est-0.css +1 -0
  210. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +34 -0
  211. package/extensions/ublocklite/rulesets/scripting/generichigh/irn-0.css +27 -0
  212. package/extensions/ublocklite/rulesets/scripting/generichigh/nor-0.css +17 -0
  213. package/extensions/ublocklite/rulesets/scripting/generichigh/pol-0.css +8 -0
  214. package/extensions/ublocklite/rulesets/scripting/generichigh/rou-1.css +1 -0
  215. package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +107 -0
  216. package/extensions/ublocklite/rulesets/scripting/generichigh/rus-1.css +3 -0
  217. package/extensions/ublocklite/rulesets/scripting/generichigh/swe-1.css +1 -0
  218. package/extensions/ublocklite/rulesets/scripting/generichigh/tur-0.css +1 -0
  219. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +6 -2
  220. package/extensions/ublocklite/rulesets/scripting/generichigh/vie-1.css +1 -0
  221. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  222. package/extensions/ublocklite/rulesets/scripting/procedural/alb-0.js +4 -4
  223. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +4 -4
  224. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-notifications.js +42 -0
  225. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
  226. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  227. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
  228. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
  229. package/extensions/ublocklite/rulesets/scripting/procedural/cze-0.js +3 -3
  230. package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +1 -1
  231. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  232. package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/easyprivacy.js +5 -5
  233. package/extensions/ublocklite/rulesets/scripting/procedural/est-0.js +3 -3
  234. package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +3 -3
  235. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +4 -4
  236. package/extensions/ublocklite/rulesets/scripting/procedural/grc-0.js +3 -3
  237. package/extensions/ublocklite/rulesets/scripting/procedural/hrv-0.js +3 -3
  238. package/extensions/ublocklite/rulesets/scripting/procedural/hun-0.js +3 -3
  239. package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
  240. package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +3 -3
  241. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  242. package/extensions/ublocklite/rulesets/scripting/procedural/isl-0.js +1 -1
  243. package/extensions/ublocklite/rulesets/scripting/procedural/isr-0.js +3 -3
  244. package/extensions/ublocklite/rulesets/scripting/procedural/ita-0.js +3 -3
  245. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  246. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  247. package/extensions/ublocklite/rulesets/scripting/procedural/ltu-0.js +3 -3
  248. package/extensions/ublocklite/rulesets/scripting/procedural/lva-0.js +1 -1
  249. package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/mkd-0.js +4 -4
  250. package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
  251. package/extensions/ublocklite/rulesets/scripting/procedural/nor-0.js +4 -4
  252. package/extensions/ublocklite/rulesets/scripting/procedural/pol-0.js +3 -3
  253. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  254. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  255. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  256. package/extensions/ublocklite/rulesets/scripting/procedural/spa-0.js +1 -1
  257. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +4 -4
  258. package/extensions/ublocklite/rulesets/scripting/procedural/svn-0.js +1 -1
  259. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  260. package/extensions/ublocklite/rulesets/scripting/procedural/tha-0.js +1 -1
  261. package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +4 -4
  262. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-badware.js +3 -3
  263. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  264. package/extensions/ublocklite/rulesets/scripting/procedural/ubol-tests.js +1 -1
  265. package/extensions/ublocklite/rulesets/scripting/procedural/ukr-0.js +3 -3
  266. package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +3 -3
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-current-script.js +6 -5
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.abort-current-script.js +4 -3
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-constant.js +2 -2
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie-reload.js +446 -0
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-session-storage-item.js +2 -2
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.abort-current-script.js +452 -0
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.abort-on-property-write.js +347 -0
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.addEventListener-defuser.js +498 -0
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.remove-attr.js +405 -0
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/{tur-0.set-attr.js → annoyances-notifications.remove-class.js} +90 -119
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-constant.js +541 -0
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-cookie.js +442 -0
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-local-storage-item.js +399 -0
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-session-storage-item.js +399 -0
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +5 -4
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-property-read.js +1 -1
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +1 -1
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +6 -5
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +1 -1
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +1 -1
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +3 -3
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +2 -2
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
  301. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.abort-current-script.js +4 -3
  302. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +5 -4
  303. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-constant.js +1 -1
  304. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-local-storage-item.js +1 -1
  305. package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.abort-current-script.js +4 -3
  306. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.abort-current-script.js +4 -3
  307. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-requestAnimationFrame.js +407 -0
  308. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
  309. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +1 -1
  310. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.remove-node-text.js +449 -0
  311. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.abort-current-script.js +6 -5
  312. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-local-storage-item.js +399 -0
  313. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-current-script.js +7 -6
  314. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-on-property-read.js +3 -3
  315. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +2 -2
  316. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +4 -3
  317. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-local-storage-item.js +2 -2
  318. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
  319. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.abort-current-script.js +4 -3
  320. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-current-script.js +6 -5
  321. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-on-property-write.js +2 -2
  322. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +2 -2
  323. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.adjust-setTimeout.js +1 -1
  324. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +2 -2
  325. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +2 -2
  326. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-node-text.js +2 -2
  327. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-constant.js +2 -2
  328. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +4 -3
  329. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  330. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.spoof-css.js +422 -0
  331. package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.abort-current-script.js +4 -3
  332. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.abort-current-script.js +4 -3
  333. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-setTimeout.js +2 -2
  334. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-xhr.js +584 -0
  335. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.abort-current-script.js +4 -3
  336. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.abort-current-script.js +4 -3
  337. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +4 -3
  338. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setInterval.js +2 -2
  339. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setTimeout.js +2 -2
  340. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-window-open.js +2 -2
  341. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-current-script.js +5 -4
  342. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
  343. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
  344. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.adjust-setInterval.js +1 -1
  345. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.href-sanitizer.js +2 -2
  346. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.json-prune-fetch-response.js +2 -2
  347. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +3 -3
  348. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +2 -2
  349. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  350. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-cookie.js +2 -2
  351. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-xhr.js +1 -1
  352. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +3 -3
  353. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +6 -5
  354. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
  355. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-write.js +2 -2
  356. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +3 -3
  357. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setTimeout.js +2 -2
  358. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +3 -3
  359. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +2 -2
  360. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
  361. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  362. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-attr.js +2 -2
  363. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
  364. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-local-storage-item.js +1 -1
  365. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.abort-current-script.js +5 -4
  366. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +1 -1
  367. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-xhr.js +1 -1
  368. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.set-constant.js +1 -1
  369. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-current-script.js +4 -3
  370. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +1 -1
  371. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +2 -2
  372. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setInterval.js +2 -2
  373. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setTimeout.js +332 -0
  374. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.m3u-prune.js +2 -2
  375. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  376. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
  377. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  378. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-local-storage-item.js +3 -3
  379. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.abort-current-script.js +4 -3
  380. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +7 -6
  381. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +2 -2
  382. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
  383. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  384. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  385. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +3 -3
  386. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +3 -3
  387. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.close-window.js +3 -3
  388. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
  389. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit.js +69 -29
  390. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
  391. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +2 -2
  392. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +70 -30
  393. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +2 -2
  394. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +1 -1
  395. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.close-window.js → ublock-filters.prevent-canvas.js} +14 -21
  396. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +2 -2
  397. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
  398. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +3 -3
  399. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +2 -2
  400. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
  401. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
  402. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  403. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  404. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
  405. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  406. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
  407. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  408. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-session-storage-item.js +2 -2
  409. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +2 -2
  410. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
  411. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +927 -0
  412. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +3 -3
  413. package/extensions/ublocklite/rulesets/scripting/scriptlet/{hun-0.prevent-fetch.js → ublock-filters.trusted-prevent-fetch.js} +7 -7
  414. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
  415. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-fetch-response.js +2 -2
  416. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  417. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +3 -3
  418. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-attr.js +2 -2
  419. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +4 -4
  420. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
  421. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +1 -1
  422. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +2 -2
  423. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-fetch-response.js +68 -28
  424. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-xhr-response.js +68 -28
  425. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-current-script.js +4 -3
  426. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-on-property-read.js +1 -1
  427. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +6 -5
  428. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  429. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +1 -1
  430. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  431. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  432. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +42 -0
  433. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  434. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  435. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  436. package/extensions/ublocklite/rulesets/scripting/specific/bgr-0.js +3 -3
  437. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  438. package/extensions/ublocklite/rulesets/scripting/specific/cze-0.js +1 -1
  439. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  440. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  441. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  442. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  443. package/extensions/ublocklite/rulesets/scripting/specific/hrv-0.js +3 -3
  444. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  445. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  446. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  447. package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
  448. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  449. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  450. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  451. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  452. package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
  453. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  454. package/extensions/ublocklite/rulesets/scripting/specific/pol-0.js +3 -3
  455. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  456. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  457. package/extensions/ublocklite/rulesets/scripting/specific/rus-1.js +3 -3
  458. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  459. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  460. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  461. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  462. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  463. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  464. package/extensions/ublocklite/rulesets/scriptlet-details.json +408 -341
  465. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +13 -1
  466. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +0 -1
  467. package/extensions/ublocklite/rulesets/strictblock/annoyances-notifications.json +41 -0
  468. package/extensions/ublocklite/rulesets/strictblock/bgr-0.json +1 -2
  469. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +278 -1
  470. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +8 -41
  471. package/extensions/ublocklite/rulesets/strictblock/easylist.json +13 -14
  472. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +74 -3
  473. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +500 -41
  474. package/extensions/ublocklite/rulesets/strictblock/hun-0.json +2 -0
  475. package/extensions/ublocklite/rulesets/strictblock/irn-0.json +6 -2
  476. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +182 -171
  477. package/extensions/ublocklite/rulesets/strictblock/kor-1.json +5 -0
  478. package/extensions/ublocklite/rulesets/strictblock/mkd-0.json +1 -0
  479. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +6 -4
  480. package/extensions/ublocklite/rulesets/strictblock/pgl.json +36 -15
  481. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
  482. package/extensions/ublocklite/rulesets/strictblock/rus-1.json +1 -0
  483. package/extensions/ublocklite/rulesets/strictblock/spa-1.json +1 -0
  484. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +15675 -15915
  485. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +6 -55
  486. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +0 -1
  487. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +677 -670
  488. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
  489. package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +1 -4
  490. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +546 -1235
  491. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +2 -2
  492. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +97 -14
  493. package/extensions/ublocklite/ublock.zip +0 -0
  494. package/extensions/ublocklite/web_accessible_resources/fingerprint2.js +1 -1
  495. package/package.json +12 -12
  496. package/src/config.ts +1 -1
  497. package/src/http.ts +5 -0
  498. package/src/limiter.spec.ts +1 -1
  499. package/src/routes/chrome/tests/content.spec.ts +12 -12
  500. package/src/routes/chrome/tests/page-websocket.spec.ts +3 -3
  501. package/src/routes/chrome/tests/pdf.spec.ts +13 -13
  502. package/src/routes/chrome/tests/performance.spec.ts +4 -4
  503. package/src/routes/chrome/tests/scrape.spec.ts +13 -13
  504. package/src/routes/chrome/tests/screenshot.spec.ts +14 -14
  505. package/src/routes/chromium/tests/content.spec.ts +13 -13
  506. package/src/routes/chromium/tests/page-websocket.spec.ts +3 -3
  507. package/src/routes/chromium/tests/pdf.spec.ts +13 -13
  508. package/src/routes/chromium/tests/performance.spec.ts +4 -4
  509. package/src/routes/chromium/tests/scrape.spec.ts +13 -13
  510. package/src/routes/chromium/tests/screenshot.spec.ts +14 -14
  511. package/src/routes/edge/tests/content.spec.ts +12 -12
  512. package/src/routes/edge/tests/page-websocket.spec.ts +3 -3
  513. package/src/routes/edge/tests/pdf.spec.ts +13 -13
  514. package/src/routes/edge/tests/performance.spec.ts +4 -4
  515. package/src/routes/edge/tests/scrape.spec.ts +13 -13
  516. package/src/routes/edge/tests/screenshot.spec.ts +14 -14
  517. package/src/routes/management/http/kill.get.ts +1 -1
  518. package/src/routes/management/http/pressure.get.ts +15 -3
  519. package/src/routes/management/http/sessions.get.ts +1 -1
  520. package/src/routes/management/tests/management.spec.ts +13 -13
  521. package/src/server.ts +17 -3
  522. package/src/shared/content.http.ts +9 -1
  523. package/src/shared/pdf.http.ts +9 -1
  524. package/src/shared/scrape.http.ts +9 -1
  525. package/src/shared/screenshot.http.ts +9 -1
  526. package/src/shim.spec.ts +40 -1
  527. package/src/shim.ts +17 -0
  528. package/src/types.ts +32 -1
  529. package/src/utils.ts +5 -3
  530. package/static/docs/swagger.json +455 -150
  531. package/static/docs/swagger.min.json +454 -149
  532. package/static/function/client.js +46 -8
  533. package/static/function/index.html +46 -8
  534. package/extensions/ublocklite/js/scripting/css-declarative.js +0 -116
  535. package/extensions/ublocklite/rulesets/scripting/declarative/adguard-mobile.js +0 -42
  536. package/extensions/ublocklite/rulesets/scripting/declarative/alb-0.js +0 -42
  537. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-cookies.js +0 -42
  538. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-others.js +0 -42
  539. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-overlays.js +0 -42
  540. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-social.js +0 -42
  541. package/extensions/ublocklite/rulesets/scripting/declarative/chn-0.js +0 -42
  542. package/extensions/ublocklite/rulesets/scripting/declarative/cze-0.js +0 -42
  543. package/extensions/ublocklite/rulesets/scripting/declarative/easylist.js +0 -42
  544. package/extensions/ublocklite/rulesets/scripting/declarative/est-0.js +0 -42
  545. package/extensions/ublocklite/rulesets/scripting/declarative/fin-0.js +0 -42
  546. package/extensions/ublocklite/rulesets/scripting/declarative/fra-0.js +0 -42
  547. package/extensions/ublocklite/rulesets/scripting/declarative/grc-0.js +0 -42
  548. package/extensions/ublocklite/rulesets/scripting/declarative/hrv-0.js +0 -42
  549. package/extensions/ublocklite/rulesets/scripting/declarative/hun-0.js +0 -42
  550. package/extensions/ublocklite/rulesets/scripting/declarative/idn-0.js +0 -42
  551. package/extensions/ublocklite/rulesets/scripting/declarative/irn-0.js +0 -42
  552. package/extensions/ublocklite/rulesets/scripting/declarative/jpn-1.js +0 -42
  553. package/extensions/ublocklite/rulesets/scripting/declarative/kor-1.js +0 -42
  554. package/extensions/ublocklite/rulesets/scripting/declarative/ltu-0.js +0 -42
  555. package/extensions/ublocklite/rulesets/scripting/declarative/nld-0.js +0 -42
  556. package/extensions/ublocklite/rulesets/scripting/declarative/nor-0.js +0 -42
  557. package/extensions/ublocklite/rulesets/scripting/declarative/pol-0.js +0 -42
  558. package/extensions/ublocklite/rulesets/scripting/declarative/rou-1.js +0 -42
  559. package/extensions/ublocklite/rulesets/scripting/declarative/rus-0.js +0 -42
  560. package/extensions/ublocklite/rulesets/scripting/declarative/rus-1.js +0 -42
  561. package/extensions/ublocklite/rulesets/scripting/declarative/spa-1.js +0 -42
  562. package/extensions/ublocklite/rulesets/scripting/declarative/swe-1.js +0 -42
  563. package/extensions/ublocklite/rulesets/scripting/declarative/tur-0.js +0 -42
  564. package/extensions/ublocklite/rulesets/scripting/declarative/ublock-badware.js +0 -42
  565. package/extensions/ublocklite/rulesets/scripting/declarative/ublock-filters.js +0 -42
  566. package/extensions/ublocklite/rulesets/scripting/declarative/ukr-0.js +0 -42
  567. package/extensions/ublocklite/rulesets/scripting/declarative/vie-1.js +0 -42
  568. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.overlay-buster.js +0 -165
@@ -460,8 +460,8 @@ function urlSkip(url, blocked, steps, directive = {}) {
460
460
  /******************************************************************************/
461
461
 
462
462
  const scriptletGlobals = {}; // eslint-disable-line
463
- const argsList = [["a[href^=\"https://cdns.6hiidude.gold/file.php?link=http\"]","?link"],["a[href^=\"https://link.asiaon.top/full?api=\"][href*=\"&url=aHR0c\"]","?url -base64"],["a[href^=\"https://azrom.net/\"][href*=\"?url=\"]","?url"],["a[href^=\"/p/download.html?ntlruby=\"]","?ntlruby"],["a[href^=\"https://www.adtival.network/\"][href*=\"&url=\"]","?url"],["a[href^=\"https://linkshortify.com/\"][href*=\"url=http\"]","?url"],["a[href^=\"https://www.linkedin.com/redir/redirect?url=http\"]","?url"],["a[href^=\"/rebates/welcome?url=http\"]","?url"],["a[href^=\"https://deeplink.musescore.com/redirect?to=http\"]","?to"],["a[href^=\"//duckduckgo.com/l/?uddg=\"]","?uddg"],["a[href^=\"https://go.skimresources.com/\"][href*=\"&url=http\"]","?url"],["a[href^=\"https://click.linksynergy.com/\"][href*=\"link?id=\"][href*=\"&murl=http\"]","?murl"],["a[href^=\"/vp/player/to/?u=http\"], a[href^=\"/vp/download/goto/?u=http\"]","?u"],["a[href^=\"https://drivevideo.xyz/link?link=http\"]","?link"],["a[href^=\"https://click.linksynergy.com/deeplink?id=\"][href*=\"&murl=\"]","?murl"],["a[href*=\"?\"][href*=\"&url=http\"]","?url"],["a[href*=\"?\"][href*=\"&u=http\"]","?u"],["a[href^=\"https://app.adjust.com/\"][href*=\"?fallback=http\"]","?fallback"],["a[href^=\"https://go.redirectingat.com?url=http\"]","?url"],["a[href^=\"/check.php?\"][href*=\"&url=http\"]","?url"],["a[href^=\"https://click.linksynergy.com/deeplink?id=\"][href*=\"&murl=http\"]","?murl"],["a[href^=\"https://disq.us/url?url=\"][title^=\"http\"]","[title]"],["a[href^=\"https://disq.us/?url=http\"]","?url"],["a[href^=\"https://steamcommunity.com/linkfilter/?url=http\"]","?url"],["a[href^=\"https://steamcommunity.com/linkfilter/?u=http\"]","?u"],["a[href^=\"https://colab.research.google.com/corgiredirector?site=http\"]","?site"],["a[href^=\"https://shop-links.co/link/?\"][href*=\"&url=http\"]","?url"],["a[href^=\"https://redirect.viglink.com/?\"][href*=\"ourl=http\"]","?ourl"],["a[href^=\"http://www.jdoqocy.com/click-\"][href*=\"?URL=http\"]","?URL"],["a[href^=\"https://track.adtraction.com/t/t?\"][href*=\"&url=http\"]","?url"],["a[href^=\"https://metager.org/partner/r?link=http\"]","?link"],["a[href*=\"go.redirectingat.com\"][href*=\"url=http\"]","?url"],["a[href^=\"https://slickdeals.net/?\"][href*=\"u2=http\"]","?u2"],["a[href^=\"https://online.adservicemedia.dk/\"][href*=\"deeplink=http\"]","?deeplink"],["a[href*=\".justwatch.com/a?\"][href*=\"&r=http\"]","?r"],["a[href^=\"https://clicks.trx-hub.com/\"][href*=\"bn5x.net\"]","?q?u"],["a[href^=\"https://shopping.yahoo.com/rdlw?\"][href*=\"gcReferrer=http\"]","?gcReferrer"],["a[href*=\"?\"][href*=\"u=http\"]:is([href*=\".com/c/\"],[href*=\".io/c/\"],[href*=\".net/c/\"],[href*=\"?subId1=\"],[href^=\"https://affportal.bhphoto.com/dl/redventures/?\"])","?u"],["a[href*=\"?\"][href*=\"url=http\"]:is([href^=\"https://cc.\"][href*=\".com/v1/otc/\"],[href^=\"https://go.skimresources.com\"],[href^=\"https://go.redirectingat.com\"],[href^=\"https://invol.co/aff_m?\"],[href^=\"https://shop-links.co/link\"],[href^=\"https://track.effiliation.com/servlet/effi.redir?\"],[href*=\".com/a.ashx?\"],[href^=\"https://www.\"][href*=\".com/t/\"],[href*=\".prsm1.com/r?\"],[href*=\".com/click-\"],[href*=\".net/click-\"],a[href*=\".com/t/t?a=\"],a[href*=\".dk/t/t?a=\"])","?url"],["a[href*=\"/Proxy.ashx?\"][href*=\"GR_URL=http\"]","?GR_URL"],["a[href^=\"https://go.redirectingat.com/\"][href*=\"&url=http\"]","?url"],["a[href*=\"awin1.com/\"][href*=\".php?\"][href*=\"ued=http\"]","?ued"],["a[href*=\"awin1.com/\"][href*=\".php?\"][href*=\"p=http\"]","?p"],["a.autolinker_link[href*=\".com/t/\"][href*=\"url=http\"]","?url"],["a[rel=\"sponsored nofollow\"][href^=\"https://fsx.i-run.fr/?\"][href*=\"redir=http\"]","?redir"],["a[rel=\"sponsored nofollow\"][href*=\".tradeinn.com/ts/\"][href*=\"trg=http\"]","?trg"],["a[href*=\".com/r.cfm?\"][href*=\"urllink=http\"]","?urllink"],["a[href^=\"https://gate.sc\"][href*=\"?url=http\"]","?url"],["a[href^=\"https://spreaker.onelink.me/\"][href*=\"&af_web_dp=http\"]","?af_web_dp"],["a[href*=\"https://www.chollometro.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.dealabs.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.hotukdeals.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.mydealz.de/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://nl.pepper.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.pepper.it/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.pepper.pl/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.pepper.ru/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.preisjaeger.at/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.promodescuentos.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.pelando.com.br/api/redirect?url=\"]","?url"],["a[href^=\"https://cna.st/\"][data-offer-url^=\"https://\"]","[data-offer-url]"],["a.btn[href^=\"https://zxro.com/u/?url=http\"]","?url"]];
464
- const hostnamesMap = new Map([["6hiidude.gold",0],["asiaon.top",1],["asiaontop.com",1],["azrom.net",2],["taisachonthi.com",3],["kazefuri.net",4],["movies4u.*",5],["linkedin.com",6],["bing.com",7],["musescore.com",8],["html.duckduckgo.com",9],["lite.duckduckgo.com",9],["starstyle.com",10],["insidehook.com",[11,37,38,41,42,46]],["nbcnews.com",[11,37,38,41,42]],["pcpartpicker.com",[11,37,38]],["space.com",[11,37,38,39,41,42]],["tomshardware.com",[11,20,37,38,39]],["fap18.net",12],["xxxmom.net",12],["fuck55.net",12],["gofucker.com",12],["sexu.tv",12],["vid123.net",12],["babe8.net",12],["beeg.porn",12],["losporn.org",13],["streamporn.li",13],["pandamovies.org",13],["bananamovies.org",13],["xopenload.net",13],["adultdvdparadise.com",13],["speedporn.net",13],["mangoporn.net",13],["pandamovie.info",13],["mangoporn.co",13],["mangoparody.com",13],["xxxscenes.net",13],["pornkino.cc",13],["watchxxxfree.pw",13],["pandamovie.in",13],["speedporn.pw",13],["watchfreexxx.net",13],["youwatchporn.com",13],["watchpornfree.info",13],["pandamovies.me",13],["xtapes.me",13],["netflixporno.net",13],["pornwish.org",13],["freeomovie.info",13],["fullxxxmovies.me",13],["watchpornx.com",13],["xxxparodyhd.net",13],["xxxstream.me",13],["pornwatch.ws",13],["xopenload.pw",13],["pandamovies.pw",13],["streamporn.pw",13],["xopenload.me",13],["nowinstock.net",[14,15,16]],["paypal.com",17],["elotrolado.net",18],["tube188.com",19],["disqus.com",[21,22]],["steamcommunity.com",[23,24]],["colab.research.google.com",25],["xda-developers.com",[26,27,41,42]],["isthereanydeal.com",[28,29]],["metager.org",30],["slickdeals.net",[31,32]],["dk.pcpartpicker.com",33],["justwatch.com",34],["variety.com",35],["engadget.com",36],["cnet.com",[37,38]],["dogfoodadvisor.com",37],["hunker.com",[37,38]],["notebookcheck.net",37],["pcgamingwiki.com",[37,38]],["popularmechanics.com",[37,38]],["purewow.com",[37,38]],["sheknows.com",37],["streetinsider.com",37],["zdnet.com",[37,38,39]],["androidauthority.com",38],["jljbacktoclassic.com",[38,46]],["otherweb.com",38],["sport-passion.fr",[38,44,45]],["windowscentral.com",40],["shutupandtakemyyen.com",[41,42]],["thisiswhyimbroke.com",[41,42]],["forums.redflagdeals.com",43],["soundcloud.com",47],["spreaker.com",48],["chollometro.com",49],["dealabs.com",50],["hotukdeals.com",51],["mydealz.de",52],["nl.pepper.com",53],["pepper.it",54],["pepper.pl",55],["pepper.ru",56],["preisjaeger.at",57],["promodescuentos.com",58],["pelando.com.br",59],["pitchfork.com",60],["onual.com",61]]);
463
+ const argsList = [["a[href^=\"https://cdns.6hiidude.gold/file.php?link=http\"]","?link"],["a[href^=\"https://link.asiaon.top/full?api=\"][href*=\"&url=aHR0c\"]","?url -base64"],["a[href^=\"https://azrom.net/\"][href*=\"?url=\"]","?url"],["a[href^=\"/p/download.html?ntlruby=\"]","?ntlruby"],["a[href^=\"https://www.adtival.network/\"][href*=\"&url=\"]","?url"],["a[href^=\"https://linkshortify.com/\"][href*=\"url=http\"]","?url"],["a[href^=\"https://www.linkedin.com/redir/redirect?url=http\"]","?url"],["body a[href^=\"/rebates/welcome?url=http\"]","?url"],["a[href^=\"https://deeplink.musescore.com/redirect?to=http\"]","?to"],["a[href^=\"//duckduckgo.com/l/?uddg=\"]","?uddg"],["a[href^=\"https://go.skimresources.com/\"][href*=\"&url=http\"]","?url"],["a[href^=\"https://click.linksynergy.com/\"][href*=\"link?id=\"][href*=\"&murl=http\"]","?murl"],["a[href^=\"/vp/player/to/?u=http\"], a[href^=\"/vp/download/goto/?u=http\"]","?u"],["a[href^=\"https://drivevideo.xyz/link?link=http\"]","?link"],["a[href^=\"https://click.linksynergy.com/deeplink?id=\"][href*=\"&murl=\"]","?murl"],["a[href*=\"?\"][href*=\"&url=http\"]","?url"],["a[href*=\"?\"][href*=\"&u=http\"]","?u"],["a[href^=\"https://app.adjust.com/\"][href*=\"?fallback=http\"]","?fallback"],["a[href^=\"https://go.redirectingat.com?url=http\"]","?url"],["a[href^=\"/check.php?\"][href*=\"&url=http\"]","?url"],["a[href^=\"https://click.linksynergy.com/deeplink?id=\"][href*=\"&murl=http\"]","?murl"],["a[href^=\"https://disq.us/url?url=\"][title^=\"http\"]","[title]"],["a[href^=\"https://disq.us/?url=http\"]","?url"],["a[href^=\"https://steamcommunity.com/linkfilter/?url=http\"]","?url"],["a[href^=\"https://steamcommunity.com/linkfilter/?u=http\"]","?u"],["a[href^=\"https://colab.research.google.com/corgiredirector?site=http\"]","?site"],["a[href^=\"https://shop-links.co/link/?\"][href*=\"&url=http\"]","?url"],["a[href^=\"https://redirect.viglink.com/?\"][href*=\"ourl=http\"]","?ourl"],["a[href^=\"http://www.jdoqocy.com/click-\"][href*=\"?URL=http\"]","?URL"],["a[href^=\"https://track.adtraction.com/t/t?\"][href*=\"&url=http\"]","?url"],["a[href^=\"https://metager.org/partner/r?link=http\"]","?link"],["a[href*=\"go.redirectingat.com\"][href*=\"url=http\"]","?url"],["a[href^=\"https://slickdeals.net/?\"][href*=\"u2=http\"]","?u2"],["a[href^=\"https://online.adservicemedia.dk/\"][href*=\"deeplink=http\"]","?deeplink"],["a[href*=\".justwatch.com/a?\"][href*=\"&r=http\"]","?r"],["a[href^=\"https://clicks.trx-hub.com/\"][href*=\"bn5x.net\"]","?q?u"],["a[href^=\"https://shopping.yahoo.com/rdlw?\"][href*=\"gcReferrer=http\"]","?gcReferrer"],["body a[href*=\"?\"][href*=\"u=http\"]:is([href*=\".com/c/\"],[href*=\".io/c/\"],[href*=\".net/c/\"],[href*=\"?subId1=\"],[href^=\"https://affportal.bhphoto.com/dl/redventures/?\"])","?u"],["body a[href*=\"?\"][href*=\"url=http\"]:is([href^=\"https://cc.\"][href*=\".com/v1/otc/\"],[href^=\"https://go.skimresources.com\"],[href^=\"https://go.redirectingat.com\"],[href^=\"https://invol.co/aff_m?\"],[href^=\"https://shop-links.co/link\"],[href^=\"https://track.effiliation.com/servlet/effi.redir?\"],[href*=\".com/a.ashx?\"],[href^=\"https://www.\"][href*=\".com/t/\"],[href*=\".prsm1.com/r?\"],[href*=\".com/click-\"],[href*=\".net/click-\"],a[href*=\".com/t/t?a=\"],a[href*=\".dk/t/t?a=\"])","?url"],["body a[href*=\"/Proxy.ashx?\"][href*=\"GR_URL=http\"]","?GR_URL"],["body a[href^=\"https://go.redirectingat.com/\"][href*=\"&url=http\"]","?url"],["body a[href*=\"awin1.com/\"][href*=\".php?\"][href*=\"ued=http\"]","?ued"],["body a[href*=\"awin1.com/\"][href*=\".php?\"][href*=\"p=http\"]","?p"],["a.autolinker_link[href*=\".com/t/\"][href*=\"url=http\"]","?url"],["body a[rel=\"sponsored nofollow\"][href^=\"https://fsx.i-run.fr/?\"][href*=\"redir=http\"]","?redir"],["body a[rel=\"sponsored nofollow\"][href*=\".tradeinn.com/ts/\"][href*=\"trg=http\"]","?trg"],["body a[href*=\".com/r.cfm?\"][href*=\"urllink=http\"]","?urllink"],["body a[href^=\"https://gate.sc\"][href*=\"?url=http\"]","?url"],["body a[href^=\"https://spreaker.onelink.me/\"][href*=\"&af_web_dp=http\"]","?af_web_dp"],["body a[href^=\"/link.php?url=http\"]","?url"],["a[href*=\"https://www.chollometro.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.dealabs.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.hotukdeals.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.mydealz.de/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://nl.pepper.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.pepper.it/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.pepper.pl/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.pepper.ru/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.preisjaeger.at/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.promodescuentos.com/visit/\"][title^=\"https://\"]","[title]"],["a[href*=\"https://www.pelando.com.br/api/redirect?url=\"]","?url"],["a[href^=\"https://cna.st/\"][data-offer-url^=\"https://\"]","[data-offer-url]"],["a.btn[href^=\"https://zxro.com/u/?url=http\"]","?url"]];
464
+ const hostnamesMap = new Map([["6hiidude.gold",0],["asiaon.top",1],["asiaontop.com",1],["azrom.net",2],["taisachonthi.com",3],["kazefuri.net",4],["movies4u.*",5],["linkedin.com",6],["bing.com",7],["musescore.com",8],["html.duckduckgo.com",9],["lite.duckduckgo.com",9],["starstyle.com",10],["insidehook.com",[11,37,38,41,42,46]],["nbcnews.com",[11,37,38,41,42]],["pcpartpicker.com",[11,37,38]],["space.com",[11,37,38,39,41,42]],["tomshardware.com",[11,20,37,38,39]],["fap18.net",12],["xxxmom.net",12],["fuck55.net",12],["gofucker.com",12],["sexu.tv",12],["vid123.net",12],["babe8.net",12],["beeg.porn",12],["losporn.org",13],["streamporn.li",13],["pandamovies.org",13],["bananamovies.org",13],["xopenload.net",13],["adultdvdparadise.com",13],["speedporn.net",13],["mangoporn.net",13],["pandamovie.info",13],["mangoporn.co",13],["mangoparody.com",13],["xxxscenes.net",13],["pornkino.cc",13],["watchxxxfree.pw",13],["pandamovie.in",13],["speedporn.pw",13],["watchfreexxx.net",13],["youwatchporn.com",13],["watchpornfree.info",13],["pandamovies.me",13],["xtapes.me",13],["netflixporno.net",13],["pornwish.org",13],["freeomovie.info",13],["fullxxxmovies.me",13],["watchpornx.com",13],["xxxparodyhd.net",13],["xxxstream.me",13],["pornwatch.ws",13],["xopenload.pw",13],["pandamovies.pw",13],["streamporn.pw",13],["xopenload.me",13],["nowinstock.net",[14,15,16]],["paypal.com",17],["elotrolado.net",18],["tube188.com",19],["disqus.com",[21,22]],["steamcommunity.com",[23,24]],["colab.research.google.com",25],["xda-developers.com",[26,27,41,42]],["isthereanydeal.com",[28,29]],["metager.org",30],["slickdeals.net",[31,32]],["dk.pcpartpicker.com",33],["justwatch.com",34],["variety.com",35],["engadget.com",36],["cnet.com",[37,38]],["dogfoodadvisor.com",37],["hunker.com",[37,38]],["notebookcheck.net",37],["pcgamingwiki.com",[37,38]],["popularmechanics.com",[37,38]],["purewow.com",[37,38]],["sheknows.com",37],["streetinsider.com",37],["zdnet.com",[37,38,39]],["androidauthority.com",38],["jljbacktoclassic.com",[38,46]],["otherweb.com",38],["sport-passion.fr",[38,44,45]],["techradar.com",39],["windowscentral.com",40],["shutupandtakemyyen.com",[41,42]],["thisiswhyimbroke.com",[41,42]],["forums.redflagdeals.com",43],["soundcloud.com",47],["spreaker.com",48],["dogdrip.net",49],["chollometro.com",50],["dealabs.com",51],["hotukdeals.com",52],["mydealz.de",53],["nl.pepper.com",54],["pepper.it",55],["pepper.pl",56],["pepper.ru",57],["preisjaeger.at",58],["promodescuentos.com",59],["pelando.com.br",60],["pitchfork.com",61],["onual.com",62]]);
465
465
  const exceptionsMap = new Map([]);
466
466
  const hasEntities = true;
467
467
  const hasAncestors = false;
@@ -52,12 +52,13 @@ function editOutboundObjectFn(
52
52
  }
53
53
  proxyApplyFn(propChain, function(context) {
54
54
  const obj = context.reflect();
55
- if ( jsonp.apply(obj) === 0 ) { return obj; }
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(obj, null, 2)}`);
59
+ safe.uboLog(logPrefix, `After edit:\n${safe.JSON_stringify(objAfter, null, 2)}`);
59
60
  }
60
- return obj;
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
- if ( query.startsWith('+=', r.i) ) {
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 += 1;
100
+ val = query.slice(r.i+2);
92
101
  }
93
- if ( query.startsWith('=', r.i) === false ) { return; }
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 0; }
108
- const { modify, rval } = this.#compiled;
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
- const n = paths.length;
112
- let i = n;
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
- if ( modify === '+' ) {
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 n;
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
- steps.push({ mv: c === 0x24 /* $ */ ? this.#ROOT : this.#CURRENT });
154
- if ( c === 0x24 /* $ */ || c === 0x40 /* @ */ ) { i += 1; }
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 <= 1 ) { return; }
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, rval) {
449
- const lval = obj[key];
450
- if ( rval instanceof Object === false ) { return; }
451
- if ( lval instanceof Object === false ) { return; }
452
- if ( Array.isArray(lval) ) { return; }
453
- for ( const [ k, v ] of Object.entries(rval) ) {
454
- lval[k] = v;
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 = [["playerAds adPlacements adSlots no_ads playerResponse.playerAds playerResponse.adPlacements playerResponse.adSlots playerResponse.no_ads [].playerResponse.adPlacements [].playerResponse.playerAds [].playerResponse.adSlots [].playerResponse.no_ads","","propsToMatch","/player\\?|get_watch|^\\W+$/"],["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],["tumblr.com",3],["nbc.com",4],["southpark.*",5],["southparkstudios.*",5],["player.pop.co.uk",6],["player.popfun.co.uk",6],["iprima.cz",7],["pluto.tv",8],["crackle.com",9],["play.virginmediatelevision.ie",10],["misskey.io",11],["misskey.oga.ninja",11],["mk.yopo.work",11],["sushi.ski",11],["trpger.us",11],["warpday.net",11],["zadankai.club",11],["zee5.com",12],["target.com",13],["play.geforcenow.com",14],["www.tiktok.com",15],["npo.nl",16],["watch.shout-tv.com",17],["realcanadiansuperstore.ca",18],["flaticon.com",19],["fomo.id",20],["www.msn.com",[21,22,23]],["hulu.com",[24,25,26]],["mega.nz",27]]);
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"],["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],["tumblr.com",4],["nbc.com",5],["southpark.*",6],["southparkstudios.*",6],["player.pop.co.uk",7],["player.popfun.co.uk",7],["iprima.cz",8],["pluto.tv",9],["crackle.com",10],["play.virginmediatelevision.ie",11],["misskey.io",12],["misskey.oga.ninja",12],["mk.yopo.work",12],["sushi.ski",12],["trpger.us",12],["warpday.net",12],["zadankai.club",12],["zee5.com",13],["target.com",14],["play.geforcenow.com",15],["www.tiktok.com",16],["npo.nl",17],["watch.shout-tv.com",18],["realcanadiansuperstore.ca",19],["flaticon.com",20],["fomo.id",21],["www.msn.com",[22,23,24]],["hulu.com",[25,26,27]],["mega.nz",28]]);
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"],["props.children.[].props.tvc"],["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"],["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],["xem15.net",24],["domoplus.pl",25],["kuchniaplus.pl",25],["miniminiplus.pl",25],["teletoonplus.pl",25],["vix.com",[26,27,28]],["shorttey.*",29],["vlive.tv",30],["discoveryplus.*",[31,32]],["go.discovery.com",32],["investigationdiscovery.com",32],["watch.foodnetwork.com",32],["play.discoveryplus.com",33],["tvn.pl",34],["app.plex.tv",35],["10.com.au",36],["10play.com.au",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],["sbs.com.au",76],["hulu.com",[77,78,79]],["bitchute.com",80],["www.reddit.com",[81,82]],["threads.net",83],["nypost.com",84],["pagesix.com",84]]);
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",36],["pinterest.*",[37,38]],["fox.com",39],["foxsports.com",39],["serially.it",39],["autotrader.co.uk",40],["instagram.com",41],["play.hbomax.com",[42,43]],["play.max.com",[42,43]],["sportstiger.com",44],["swisscows.com",[45,46]],["disneyplus.com",[47,48]],["colearn.id",49],["hotstar.com",50],["nbc.com",51],["play.virginmediatelevision.ie",51],["play.history.com",52],["eu-proxy.startpage.com",53],["player.pop.co.uk",54],["player.popfun.co.uk",54],["foxtel.com.au",55],["iprima.cz",56],["speedrun.com",57],["channel4.com",58],["hentaihaven.xxx",59],["winfuture.de",60],["watch.sling.com",61],["dazn.com",62],["nextdoor.com",[63,64,65]],["tokopedia.com",[66,67,68]],["upscaler.stockphotos.com",69],["roblox.com",70],["sainsburys.co.uk",71],["redgifs.com",72],["tvn24.pl",73],["netflix.com",74],["sbs.com.au",75],["hulu.com",[76,77,78]],["bitchute.com",79],["criticker.com",80],["www.reddit.com",[81,82]],["threads.net",83],["nypost.com",84],["pagesix.com",84]]);
430
430
  const exceptionsMap = new Map([["vvid30c.*",[17]]]);
431
431
  const hasEntities = true;
432
432
  const hasAncestors = true;
@@ -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
- if ( query.startsWith('+=', r.i) ) {
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 += 1;
132
+ val = query.slice(r.i+2);
125
133
  }
126
- if ( query.startsWith('=', r.i) === false ) { return; }
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 0; }
141
- const { modify, rval } = this.#compiled;
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
- const n = paths.length;
145
- let i = n;
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
- if ( modify === '+' ) {
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 n;
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
- steps.push({ mv: c === 0x24 /* $ */ ? this.#ROOT : this.#CURRENT });
187
- if ( c === 0x24 /* $ */ || c === 0x40 /* @ */ ) { i += 1; }
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 <= 1 ) { return; }
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, rval) {
482
- const lval = obj[key];
483
- if ( rval instanceof Object === false ) { return; }
484
- if ( lval instanceof Object === false ) { return; }
485
- if ( Array.isArray(lval) ) { return; }
486
- for ( const [ k, v ] of Object.entries(rval) ) {
487
- lval[k] = v;
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
- if ( jsonp.apply(obj) === 0 ) {
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(obj);
548
+ const lineAfter = safe.JSON_stringify(objAfter);
509
549
  linesAfter.push(lineAfter);
510
550
  }
511
551
  return linesAfter.join(lineSeparator);
@@ -745,8 +785,8 @@ function safeSelf() {
745
785
  /******************************************************************************/
746
786
 
747
787
  const scriptletGlobals = {}; // eslint-disable-line
748
- const argsList = [[".data[?@.category==\"SPONSORED\"].node","","propsToMatch","/graphql"],[".data.viewer.news_feed.edges.*[?@.category==\"SPONSORED\"].node","","propsToMatch","/graphql"]];
749
- const hostnamesMap = new Map([["web.facebook.com",[0,1]],["www.facebook.com",[0,1]]]);
788
+ const argsList = [[".data[?@.category==\"SPONSORED\"].node","","propsToMatch","/graphql"],[".data.viewer.news_feed.edges.*[?@.category==\"SPONSORED\"].node","","propsToMatch","/graphql"],[".data.viewer.marketplace_feed_stories.edges.*[?@.node.__typename==\"MarketplaceFeedAdStory\"]","/graphql"]];
789
+ const hostnamesMap = new Map([["web.facebook.com",[0,1,2]],["www.facebook.com",[0,1,2]]]);
750
790
  const exceptionsMap = new Map([]);
751
791
  const hasEntities = false;
752
792
  const hasAncestors = false;