@browserless.io/browserless 2.34.0 → 2.36.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 (451) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/build/limiter.js +1 -1
  3. package/build/routes/chrome/http/content.post.body.json +90 -1
  4. package/build/routes/chrome/http/pdf.post.body.json +90 -1
  5. package/build/routes/chrome/http/scrape.post.body.json +90 -1
  6. package/build/routes/chrome/http/scrape.post.response.json +21 -22
  7. package/build/routes/chrome/http/screenshot.post.body.json +90 -1
  8. package/build/routes/chromium/http/content.post.body.json +90 -1
  9. package/build/routes/chromium/http/pdf.post.body.json +90 -1
  10. package/build/routes/chromium/http/scrape.post.body.json +90 -1
  11. package/build/routes/chromium/http/scrape.post.response.json +21 -22
  12. package/build/routes/chromium/http/screenshot.post.body.json +90 -1
  13. package/build/routes/chromium/tests/scrape.spec.js +41 -0
  14. package/build/routes/edge/http/content.post.body.json +90 -1
  15. package/build/routes/edge/http/pdf.post.body.json +90 -1
  16. package/build/routes/edge/http/scrape.post.body.json +90 -1
  17. package/build/routes/edge/http/scrape.post.response.json +21 -22
  18. package/build/routes/edge/http/screenshot.post.body.json +90 -1
  19. package/build/sdk-utils.js +1 -1
  20. package/build/shared/scrape.http.js +13 -3
  21. package/docker/base/Dockerfile +8 -8
  22. package/docker/chrome/Dockerfile +2 -2
  23. package/docker/chromium/Dockerfile +2 -2
  24. package/docker/edge/Dockerfile +2 -2
  25. package/docker/firefox/Dockerfile +2 -2
  26. package/docker/multi/Dockerfile +2 -2
  27. package/docker/sdk/Dockerfile +1 -1
  28. package/docker/webkit/Dockerfile +2 -2
  29. package/extensions/ublocklite/README.md +1 -1
  30. package/extensions/ublocklite/_locales/br_FR/messages.json +1 -1
  31. package/extensions/ublocklite/_locales/bs/messages.json +58 -58
  32. package/extensions/ublocklite/_locales/he/messages.json +2 -2
  33. package/extensions/ublocklite/_locales/hu/messages.json +1 -1
  34. package/extensions/ublocklite/_locales/pt_BR/messages.json +1 -1
  35. package/extensions/ublocklite/_locales/pt_PT/messages.json +1 -1
  36. package/extensions/ublocklite/_locales/ro/messages.json +1 -1
  37. package/extensions/ublocklite/_locales/sk/messages.json +6 -6
  38. package/extensions/ublocklite/_locales/sq/messages.json +17 -17
  39. package/extensions/ublocklite/_locales/sr/messages.json +28 -28
  40. package/extensions/ublocklite/_locales/th/messages.json +1 -1
  41. package/extensions/ublocklite/_locales/tr/messages.json +1 -1
  42. package/extensions/ublocklite/_locales/vi/messages.json +1 -1
  43. package/extensions/ublocklite/css/common.css +5 -3
  44. package/extensions/ublocklite/css/default.css +10 -0
  45. package/extensions/ublocklite/css/unpicker-ui.css +1 -0
  46. package/extensions/ublocklite/js/background.js +5 -3
  47. package/extensions/ublocklite/js/dnr-parser.js +1 -1
  48. package/extensions/ublocklite/js/fetch.js +1 -1
  49. package/extensions/ublocklite/js/filter-lists.js +1 -4
  50. package/extensions/ublocklite/js/filter-manager.js +45 -9
  51. package/extensions/ublocklite/js/popup.js +2 -2
  52. package/extensions/ublocklite/js/ruleset-manager.js +10 -126
  53. package/extensions/ublocklite/js/rw-dnr-editor.js +8 -4
  54. package/extensions/ublocklite/js/scripting/css-procedural.js +2 -0
  55. package/extensions/ublocklite/js/scripting/css-specific.js +2 -0
  56. package/extensions/ublocklite/js/scripting/tool-overlay.js +1 -0
  57. package/extensions/ublocklite/js/scripting-manager.js +2 -2
  58. package/extensions/ublocklite/js/settings.js +2 -1
  59. package/extensions/ublocklite/js/static-filtering-parser.js +25 -18
  60. package/extensions/ublocklite/js/ubo-parser.js +181 -65
  61. package/extensions/ublocklite/manifest.json +4 -4
  62. package/extensions/ublocklite/rulesets/generic-details.json +7 -17
  63. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +25 -4
  64. package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +615 -1
  65. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +21 -8
  66. package/extensions/ublocklite/rulesets/main/annoyances-others.json +5 -2
  67. package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +22 -2
  68. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
  69. package/extensions/ublocklite/rulesets/main/chn-0.json +98 -29
  70. package/extensions/ublocklite/rulesets/main/cze-0.json +6 -1
  71. package/extensions/ublocklite/rulesets/main/deu-0.json +15 -11
  72. package/extensions/ublocklite/rulesets/main/dpollock-0.json +4 -0
  73. package/extensions/ublocklite/rulesets/main/easylist.json +146 -98
  74. package/extensions/ublocklite/rulesets/main/easyprivacy.json +149 -32
  75. package/extensions/ublocklite/rulesets/main/est-0.json +1 -1
  76. package/extensions/ublocklite/rulesets/main/fin-0.json +9 -0
  77. package/extensions/ublocklite/rulesets/main/fra-0.json +49 -9
  78. package/extensions/ublocklite/rulesets/main/hun-0.json +4 -1
  79. package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
  80. package/extensions/ublocklite/rulesets/main/ind-0.json +101 -155
  81. package/extensions/ublocklite/rulesets/main/irn-0.json +34 -11
  82. package/extensions/ublocklite/rulesets/main/isr-0.json +20 -2
  83. package/extensions/ublocklite/rulesets/main/ita-0.json +3 -1
  84. package/extensions/ublocklite/rulesets/main/jpn-1.json +69 -22
  85. package/extensions/ublocklite/rulesets/main/kor-1.json +39 -5
  86. package/extensions/ublocklite/rulesets/main/ltu-0.json +3 -1
  87. package/extensions/ublocklite/rulesets/main/lva-0.json +2 -1
  88. package/extensions/ublocklite/rulesets/main/nld-0.json +6 -1
  89. package/extensions/ublocklite/rulesets/main/nor-0.json +13 -4
  90. package/extensions/ublocklite/rulesets/main/pgl.json +8 -11
  91. package/extensions/ublocklite/rulesets/main/pol-0.json +13 -2
  92. package/extensions/ublocklite/rulesets/main/rou-1.json +17 -1
  93. package/extensions/ublocklite/rulesets/main/rus-0.json +104 -27
  94. package/extensions/ublocklite/rulesets/main/rus-1.json +114 -4
  95. package/extensions/ublocklite/rulesets/main/spa-1.json +43 -15
  96. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +15832 -9032
  97. package/extensions/ublocklite/rulesets/main/swe-1.json +89 -52
  98. package/extensions/ublocklite/rulesets/main/tha-0.json +7 -1
  99. package/extensions/ublocklite/rulesets/main/tur-0.json +54 -6
  100. package/extensions/ublocklite/rulesets/main/ublock-badware.json +79 -106
  101. package/extensions/ublocklite/rulesets/main/ublock-filters.json +794 -111
  102. package/extensions/ublocklite/rulesets/main/ubol-tests.json +60 -0
  103. package/extensions/ublocklite/rulesets/main/ukr-0.json +20 -1
  104. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +631 -676
  105. package/extensions/ublocklite/rulesets/main/vie-1.json +74 -59
  106. package/extensions/ublocklite/rulesets/regex/chn-0.json +8 -3
  107. package/extensions/ublocklite/rulesets/regex/deu-0.json +0 -1
  108. package/extensions/ublocklite/rulesets/regex/easylist.json +0 -2
  109. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  110. package/extensions/ublocklite/rulesets/regex/kor-1.json +1 -0
  111. package/extensions/ublocklite/rulesets/regex/pol-0.json +1 -0
  112. package/extensions/ublocklite/rulesets/regex/rus-0.json +1 -0
  113. package/extensions/ublocklite/rulesets/regex/rus-1.json +24 -0
  114. package/extensions/ublocklite/rulesets/regex/tur-0.json +2 -1
  115. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +10 -8
  116. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +28 -12
  117. package/extensions/ublocklite/rulesets/ruleset-details.json +252 -472
  118. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  119. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +1 -1
  120. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +1 -1
  121. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +1 -1
  122. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +3 -3
  123. package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +2 -2
  124. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  125. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +1 -1
  126. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +1 -1
  127. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +3 -3
  128. package/extensions/ublocklite/rulesets/scripting/generic/nld-0.js +1 -1
  129. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
  130. package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +3 -3
  131. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
  132. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +3 -3
  133. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  134. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +1 -1
  135. package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +2 -2
  136. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -9
  137. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +2 -13
  138. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +4 -0
  139. package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +1 -0
  140. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
  141. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  142. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
  143. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-notifications.js +3 -3
  144. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
  145. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  146. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
  147. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
  148. package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +3 -3
  149. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  150. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +3 -3
  151. package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
  152. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  153. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  154. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  155. package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
  156. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  157. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  158. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  159. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
  160. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  161. package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +3 -3
  162. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  163. package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +2 -2
  164. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-on-property-read.js +2 -2
  165. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-constant.js +2 -2
  166. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie-reload.js +1 -1
  167. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie.js +2 -2
  168. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.trusted-replace-node-text.js +450 -0
  169. package/extensions/ublocklite/rulesets/scripting/scriptlet/{jpn-1.abort-on-property-write.js → adguard-mobile.trusted-set-attr.js} +107 -41
  170. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +407 -0
  171. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
  172. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  173. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  174. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  175. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-replace-node-text.js +2 -2
  176. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  177. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  178. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +1 -1
  179. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +1 -1
  180. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-stack-trace.js +2 -2
  181. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
  182. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +9 -2
  183. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +2 -2
  184. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
  185. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-xhr.js +2 -2
  186. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-cookie.js +2 -2
  187. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  188. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
  189. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-click-element.js +1 -1
  190. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-outbound-text.js +427 -0
  191. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +2 -2
  192. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +2 -2
  193. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +2 -2
  194. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +1 -1
  195. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +9 -2
  196. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
  197. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +1 -1
  198. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
  199. package/extensions/ublocklite/rulesets/scripting/scriptlet/{vie-1.m3u-prune.js → chn-0.spoof-css.js} +109 -148
  200. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +1 -1
  201. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +7 -0
  202. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-constant.js +1 -1
  203. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +2 -2
  204. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.adjust-setTimeout.js +2 -2
  205. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +7 -0
  206. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
  207. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.set-constant.js +1 -1
  208. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-local-storage-item.js +2 -2
  209. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +7 -0
  210. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +2 -2
  211. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +7 -0
  212. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +1 -1
  213. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-node-text.js +2 -2
  214. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +2 -2
  215. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
  216. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +7 -0
  217. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-current-script.js +2 -2
  218. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
  219. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +7 -0
  220. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +1 -1
  221. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-cookie.js +442 -0
  222. package/extensions/ublocklite/rulesets/scripting/scriptlet/{ublock-filters.evaldata-prune.js → kor-1.json-prune-xhr-response.js} +227 -198
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.json-prune.js +2 -2
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +7 -0
  225. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +2 -2
  226. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  227. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +7 -0
  228. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +7 -0
  229. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +2 -2
  230. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.remove-node-text.js +1 -1
  231. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
  232. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-write.js +2 -2
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +10 -3
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +2 -2
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-xhr.js +1 -1
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-cookie.js +3 -3
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-local-storage-item.js +2 -2
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.abort-on-property-read.js +3 -3
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +1 -1
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.json-prune.js +2 -2
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +7 -0
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +4 -4
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +3 -3
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +2 -2
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +2 -2
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setInterval.js +1 -1
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +1 -1
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +9 -2
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +2 -2
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +2 -2
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +2 -2
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +2 -2
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +2 -2
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +1 -1
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +2 -2
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setInterval.js +2 -2
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +7 -0
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +2 -2
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-node-text.js +2 -2
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-cookie.js +2 -2
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.addEventListener-defuser.js +498 -0
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +450 -0
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +3 -3
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +3 -3
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +3 -3
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.disable-newtab-links.js +1 -1
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-fetch-response.js +927 -0
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +851 -0
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +3 -3
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.m3u-prune.js +2 -2
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +3 -3
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +2 -2
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +10 -3
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +2 -2
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +3 -3
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +3 -3
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +2 -2
  301. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-attr.js +2 -2
  302. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  303. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
  304. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  305. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.spoof-css.js +2 -2
  306. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +1 -1
  307. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
  308. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +1 -1
  309. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -0
  310. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-xhr.js +1 -1
  311. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
  312. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  313. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
  314. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-xhr-response.js +1 -1
  315. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +2 -2
  316. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
  317. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +2 -2
  318. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +1 -1
  319. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.xml-prune.js +2 -2
  320. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +7 -0
  321. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
  322. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  323. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.json-prune.js +1 -1
  324. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +7 -0
  325. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  326. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  327. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
  328. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  329. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  330. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  331. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  332. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  333. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  334. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  335. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  336. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  337. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  338. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  339. package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
  340. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  341. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  342. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  343. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  344. package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
  345. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  346. package/extensions/ublocklite/rulesets/scripting/specific/pol-0.js +3 -3
  347. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  348. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  349. package/extensions/ublocklite/rulesets/scripting/specific/rus-1.js +3 -3
  350. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  351. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  352. package/extensions/ublocklite/rulesets/scripting/specific/tha-0.js +3 -3
  353. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  354. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  355. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  356. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  357. package/extensions/ublocklite/rulesets/scriptlet-details.json +301 -173
  358. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +11 -1
  359. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +1 -0
  360. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +398 -791
  361. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +4 -0
  362. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  363. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +76 -74
  364. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +429 -49
  365. package/extensions/ublocklite/rulesets/strictblock/irn-0.json +2 -0
  366. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +185 -176
  367. package/extensions/ublocklite/rulesets/strictblock/kor-1.json +6 -1
  368. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  369. package/extensions/ublocklite/rulesets/strictblock/pgl.json +8 -11
  370. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +2 -0
  371. package/extensions/ublocklite/rulesets/strictblock/rus-1.json +1 -0
  372. package/extensions/ublocklite/rulesets/strictblock/spa-1.json +1 -2
  373. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +15832 -9032
  374. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +2 -0
  375. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +4 -0
  376. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +636 -631
  377. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +3 -2
  378. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +631 -676
  379. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +7 -8
  380. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +30 -0
  381. package/extensions/ublocklite/ublock.zip +0 -0
  382. package/package.json +23 -21
  383. package/scripts/build-open-api.js +15 -1
  384. package/scripts/install-adblock.js +25 -4
  385. package/scripts/start.sh +1 -1
  386. package/scripts/test.sh +2 -2
  387. package/src/limiter.ts +1 -1
  388. package/src/routes/chromium/tests/scrape.spec.ts +48 -0
  389. package/src/sdk-utils.ts +1 -1
  390. package/src/shared/scrape.http.ts +17 -5
  391. package/static/docs/swagger.json +330 -102
  392. package/static/docs/swagger.min.json +329 -101
  393. package/static/function/client.js +273 -171
  394. package/static/function/index.html +273 -171
  395. package/extensions/ublocklite/rulesets/modify-headers/annoyances-overlays.json +0 -108
  396. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +0 -316
  397. package/extensions/ublocklite/rulesets/modify-headers/cze-0.json +0 -25
  398. package/extensions/ublocklite/rulesets/modify-headers/deu-0.json +0 -24
  399. package/extensions/ublocklite/rulesets/modify-headers/easylist.json +0 -14
  400. package/extensions/ublocklite/rulesets/modify-headers/easyprivacy.json +0 -48
  401. package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +0 -215
  402. package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
  403. package/extensions/ublocklite/rulesets/modify-headers/isr-0.json +0 -50
  404. package/extensions/ublocklite/rulesets/modify-headers/rus-0.json +0 -41
  405. package/extensions/ublocklite/rulesets/modify-headers/rus-1.json +0 -22
  406. package/extensions/ublocklite/rulesets/modify-headers/swe-1.json +0 -46
  407. package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +0 -53
  408. package/extensions/ublocklite/rulesets/modify-headers/ubol-tests.json +0 -25
  409. package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +0 -162
  410. package/extensions/ublocklite/rulesets/redirect/adguard-mobile.json +0 -20
  411. package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +0 -15
  412. package/extensions/ublocklite/rulesets/redirect/chn-0.json +0 -40
  413. package/extensions/ublocklite/rulesets/redirect/cze-0.json +0 -76
  414. package/extensions/ublocklite/rulesets/redirect/deu-0.json +0 -79
  415. package/extensions/ublocklite/rulesets/redirect/easylist.json +0 -103
  416. package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +0 -137
  417. package/extensions/ublocklite/rulesets/redirect/fin-0.json +0 -121
  418. package/extensions/ublocklite/rulesets/redirect/fra-0.json +0 -35
  419. package/extensions/ublocklite/rulesets/redirect/hun-0.json +0 -38
  420. package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
  421. package/extensions/ublocklite/rulesets/redirect/isr-0.json +0 -17
  422. package/extensions/ublocklite/rulesets/redirect/jpn-1.json +0 -30
  423. package/extensions/ublocklite/rulesets/redirect/kor-1.json +0 -25
  424. package/extensions/ublocklite/rulesets/redirect/ltu-0.json +0 -33
  425. package/extensions/ublocklite/rulesets/redirect/nld-0.json +0 -79
  426. package/extensions/ublocklite/rulesets/redirect/nor-0.json +0 -132
  427. package/extensions/ublocklite/rulesets/redirect/pol-0.json +0 -15
  428. package/extensions/ublocklite/rulesets/redirect/rou-1.json +0 -53
  429. package/extensions/ublocklite/rulesets/redirect/rus-0.json +0 -21
  430. package/extensions/ublocklite/rulesets/redirect/rus-1.json +0 -118
  431. package/extensions/ublocklite/rulesets/redirect/spa-1.json +0 -27
  432. package/extensions/ublocklite/rulesets/redirect/swe-1.json +0 -14
  433. package/extensions/ublocklite/rulesets/redirect/tha-0.json +0 -78
  434. package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -24
  435. package/extensions/ublocklite/rulesets/redirect/ublock-badware.json +0 -18
  436. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +0 -556
  437. package/extensions/ublocklite/rulesets/redirect/ubol-tests.json +0 -22
  438. package/extensions/ublocklite/rulesets/redirect/ukr-0.json +0 -18
  439. package/extensions/ublocklite/rulesets/redirect/vie-1.json +0 -85
  440. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +0 -612
  441. package/extensions/ublocklite/rulesets/removeparam/annoyances-overlays.json +0 -27
  442. package/extensions/ublocklite/rulesets/removeparam/chn-0.json +0 -48
  443. package/extensions/ublocklite/rulesets/removeparam/est-0.json +0 -26
  444. package/extensions/ublocklite/rulesets/removeparam/fin-0.json +0 -52
  445. package/extensions/ublocklite/rulesets/removeparam/irn-0.json +0 -18
  446. package/extensions/ublocklite/rulesets/removeparam/kor-1.json +0 -26
  447. package/extensions/ublocklite/rulesets/removeparam/rus-0.json +0 -19
  448. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +0 -98
  449. package/extensions/ublocklite/rulesets/removeparam/swe-1.json +0 -125
  450. package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +0 -63
  451. package/extensions/ublocklite/rulesets/removeparam/ukr-0.json +0 -49
@@ -41,6 +41,7 @@ function preventFetchFn(
41
41
  responseType = ''
42
42
  ) {
43
43
  const safe = safeSelf();
44
+ const setTimeout = self.setTimeout;
44
45
  const scriptletName = `${trusted ? 'trusted-' : ''}prevent-fetch`;
45
46
  const logPrefix = safe.makeLogPrefix(
46
47
  scriptletName,
@@ -48,6 +49,7 @@ function preventFetchFn(
48
49
  responseBody,
49
50
  responseType
50
51
  );
52
+ const extraArgs = safe.getExtraArgs(Array.from(arguments), 4);
51
53
  const needles = [];
52
54
  for ( const condition of safe.String_split.call(propsToMatch, /\s+/) ) {
53
55
  if ( condition === '' ) { continue; }
@@ -135,6 +137,11 @@ function preventFetchFn(
135
137
  responseProps
136
138
  );
137
139
  safe.Object_defineProperties(response, props);
140
+ if ( extraArgs.throttle ) {
141
+ return new Promise(resolve => {
142
+ setTimeout(( ) => { resolve(response); }, extraArgs.throttle);
143
+ });
144
+ }
138
145
  return response;
139
146
  });
140
147
  });
@@ -472,8 +479,8 @@ function safeSelf() {
472
479
  /******************************************************************************/
473
480
 
474
481
  const scriptletGlobals = {}; // eslint-disable-line
475
- const argsList = [["pagead2.googlesyndication.com"],["method:HEAD"],["/googlesyndication\\.com|doubleclick\\.net/"],["www3.doubleclick.net"],["/pagead2\\.googlesyndication\\.com|\\/fbevents\\.js/"]];
476
- const hostnamesMap = new Map([["slashview.com",0],["fsbot.xyz",0],["mpyit.com",0],["hmanga.world",1],["wandhi.com",2],["taiwanlibrarysearch.herokuapp.com",3],["linetv.tw",4]]);
482
+ const argsList = [["adsbygoogle.js"],["pagead2.googlesyndication.com"],["method:HEAD"],["/googlesyndication\\.com|doubleclick\\.net/"],["www3.doubleclick.net"],["/pagead2\\.googlesyndication\\.com|\\/fbevents\\.js/"]];
483
+ const hostnamesMap = new Map([["helper-employer.com",0],["slashview.com",1],["fsbot.xyz",1],["mpyit.com",1],["hmanga.world",2],["wandhi.com",3],["taiwanlibrarysearch.herokuapp.com",4],["linetv.tw",5]]);
477
484
  const exceptionsMap = new Map([]);
478
485
  const hasEntities = false;
479
486
  const hasAncestors = false;
@@ -362,8 +362,8 @@ function safeSelf() {
362
362
  /******************************************************************************/
363
363
 
364
364
  const scriptletGlobals = {}; // eslint-disable-line
365
- const argsList = [[".offsetHeight == 0"],[".offsetHeight"],["float_right > div"],["adblock_tip"],["/\\.height\\(\\) == 0|adsbygoogle/"],["myModal"],["loadErrorTip"],["ins.adsbygoogle"],["_0x"],["adblock"],["发现严重BUG"],["checker"],["/(\\s|\\()tpc/"],["/home/?adblock="],["ad_num_show"],["adsbygoogle"],["checkSiteNormalLoad"],["/ad block stop|warm_msg/"],["location.href","3000"],["window.location.href"],["ecjkox.com"],["/getCookie|checkCK|checkCookie|checkC00kie|checkCoookie|checkCookiiiie|document\\.cookie|buttonClose|exptime/"]];
366
- const hostnamesMap = new Map([["445nan.com",0],["ftchinese.com",1],["jmcomic-zzz.org",2],["18comic.org",2],["18comic.vip",2],["itdog.cn",3],["xbeibeix.com",4],["520cc.cc",[5,18]],["colamanga.com",6],["cocomanga.com",[6,16]],["ekamus.info",7],["logi.im",7],["moeci.com",8],["tingfm.com",9],["233tw.com",10],["ruanyifeng.com",11],["t66y.com",12],["tsubasa.im",13],["league-funny.com",14],["haoweichi.com",15],["ohmanhua.com",16],["onemanhua.com",16],["5278.cc",17],["hboav.com",17],["erciyan.com",19],["youziks.com",20],["axutongxue.onrender.com",21],["axutongxue.space",21],["axutongxue.cn",21],["axu.pages.dev",21],["axutongxue.vip",21],["axutongxue.com",21],["axutongxue.net",21]]);
365
+ const argsList = [[".offsetHeight == 0"],[".offsetHeight"],["float_right > div"],["adblock_tip"],["/\\.height\\(\\) == 0|adsbygoogle/"],["myModal"],["loadErrorTip"],["ins.adsbygoogle"],["_0x"],["adblock"],["发现严重BUG"],["checker"],["/(\\s|\\()tpc/"],["/home/?adblock="],["ad_num_show"],["adsbygoogle"],["checkSiteNormalLoad"],["/ad block stop|warm_msg/"],["location.href","3000"],["try{e()}catch(e){if(t[e.message])return;"],["window.location.href"],["ecjkox.com"],["/getCookie|checkCK|checkCookie|checkC00kie|checkCoookie|checkCookiiiie|document\\.cookie|buttonClose|exptime/"]];
366
+ const hostnamesMap = new Map([["445nan.com",0],["ftchinese.com",1],["jmcomic-zzz.org",2],["18comic.org",2],["18comic.vip",2],["itdog.cn",3],["xbeibeix.com",4],["520cc.cc",[5,18]],["colamanga.com",6],["cocomanga.com",[6,16]],["ekamus.info",7],["logi.im",7],["moeci.com",8],["tingfm.com",9],["233tw.com",10],["ruanyifeng.com",11],["t66y.com",12],["tsubasa.im",13],["league-funny.com",14],["haoweichi.com",15],["ohmanhua.com",16],["onemanhua.com",16],["5278.cc",17],["hboav.com",17],["cidetxt.cc",19],["erciyan.com",20],["youziks.com",21],["axutongxue.onrender.com",22],["axutongxue.space",22],["axutongxue.cn",22],["axu.pages.dev",22],["axutongxue.vip",22],["axutongxue.com",22],["axutongxue.net",22]]);
367
367
  const exceptionsMap = new Map([]);
368
368
  const hasEntities = false;
369
369
  const hasAncestors = false;
@@ -391,7 +391,7 @@ function safeSelf() {
391
391
 
392
392
  const scriptletGlobals = {}; // eslint-disable-line
393
393
  const argsList = [[],["/bit\\.ly|kbtv/"],["0","qciss.net"],["88p2p.com"]];
394
- const hostnamesMap = new Map([["embedrise.com",0],["88files.net",0],["freejavbt.com",0],["vikacg.com",0],["iwatchme2u.com",1],["qciss.net",2],["5278.cc",3]]);
394
+ const hostnamesMap = new Map([["embedrise.com",0],["88files.net",0],["freejavbt.com",0],["umbooks.com",0],["vikacg.com",0],["iwatchme2u.com",1],["qciss.net",2],["5278.cc",3]]);
395
395
  const exceptionsMap = new Map([]);
396
396
  const hasEntities = false;
397
397
  const hasAncestors = false;
@@ -460,8 +460,8 @@ function validateConstantFn(trusted, raw, extraArgs = {}) {
460
460
  /******************************************************************************/
461
461
 
462
462
  const scriptletGlobals = {}; // eslint-disable-line
463
- const argsList = [["ad_id_for_555",""],["all520dddaaa2022ccc","true"],["_AdBlockInit","noopFunc"],["checkAndHandleAdBlock","undefined"],["adsbygoogle","{}"],["adsbygoogle.loaded","true"],["AD_SURVEY_Add_AdPos","noopFunc"],["AD_SURVEY_Add_AdPos_Simple","noopFunc"],["killads","true"],["isAdsDisplayed","true"],["fuzqingAdPlus","{}"],["all520dddaaa2022aaa","undefined"],["canRunAds","true"],["adblock","0"],["can_run_ads","true"],["google_tag_manager","{}"],["google.ima.AdError","noopFunc"],["ga","noopFunc"],["google_empty_script_included","true"],["adsbygoogle","noopFunc"],["Object.prototype.cnobpreroll_","true"],["Object.prototype.canobpreroll_","true"],["ads",""],["NativeAd","noopFunc"],["__jsadsuccess","true"],["onload","null"],["adbk","false"],["config.group",""],["preBid","{}"],["preBid.displayAd","noopFunc"],["preBid.getPrerollVASTUrl","noopFunc"],["player.VastADPlugin","noopFunc"],["ADSOBJET","{}"],["myPlayer.adDisplay","undefined"],["NEWS_FEED","noopFunc"],["conone_lmg","noopFunc"],["Object.prototype.ad_switch","0"],["dy_card_dyrun","undefined"],["poped","true"],["Object.prototype.adData","{}"],["Object.prototype._adData","{}"],["MM_openBrWindow","noopFunc"],["lists","undefined"],["is_show","false"],["allData.safeLevel","1"],["appData","[]"],["topData","[]"],["midData","[]"],["btmData","[]"],["coupletData","[]"],["adInfo","{}"],["isAdLoaded","true"],["Object.prototype.noAD","true"],["infoList","[]"],["CreativePlayerwebPlugin.AD_EVENT.AD_DESTROY",""],["CreativePlayerwebPlugin.AD_EVENT.AD_LOAD_START",""],["ConFig.config.ads","{}"],["pageData.__banners.0.commercial.mediaUrl",""],["pageData.__banners.0.commercial.jumpUrl",""],["pageData.__banners.0.commercial.title",""],["pageData.__banners.1.commercial.mediaUrl",""],["pageData.__banners.1.commercial.jumpUrl",""],["pageData.__banners.1.commercial.title",""],["detailParams.is_ad_play","false"]];
464
- const hostnamesMap = new Map([["surirt.com",[0,1]],["520cc.cc",1],["520call.me",[1,11]],["baomidou.com",2],["nodejs.cn",[2,4,5]],["docsmall.com",2],["bilinovel.com",3],["huanqiu.com",[6,7]],["itbaoku.cn",8],["yaociyuan.bid",8],["bigpixel.cn",8],["jkpan.cc",8],["ekamus.info",9],["koyi.pub",10],["bde4.icu",12],["tingfm.com",[12,14]],["slashlook.com",12],["linovelib.com",13],["linetv.tw",[15,16]],["ebb.io",[17,18]],["wenxuecity.com",19],["ddys.*",[20,21]],["ddrk.me",[20,21]],["sssam.com",22],["cocomanga.com",[23,24]],["ohmanhua.com",[23,24]],["onemanhua.com",[23,24]],["hboav.com",[25,26]],["cnys.tv",27],["now.com",[28,29,30]],["player.hboav.com",31],["x99av.com",32],["hamivideo.hinet.net",33],["jianshu.com",34],["xkyn.com",35],["tangdoucdn.com",36],["dianyingim.com",37],["xvideo.cc",38],["v-wb.youku.com",39],["m.youku.com",40],["v.youku.com",40],["edc1014070.pixnet.net",41],["m.biqiugege8.com",42],["theav.xyz",43],["69xx.one",43],["theporn.cc",43],["v.ifeng.com",44],["445nan.com",[45,46,47,48,49]],["huya.com",50],["le.com",[51,52]],["axutongxue.onrender.com",53],["axutongxue.space",53],["axutongxue.cn",53],["axu.pages.dev",53],["axutongxue.vip",53],["axutongxue.com",53],["axutongxue.net",53],["sports.qq.com",[54,55]],["lpl.qq.com",[54,55]],["v.qq.com",[54,55]],["huaren.live",56],["nivod2.com",[57,58,59,60,61,62,63]],["nivod2.tv",[57,58,59,60,61,62,63]],["nivod4.com",[57,58,59,60,61,62,63]],["nivod5.com",[57,58,59,60,61,62,63]]]);
463
+ const argsList = [["ad_id_for_555",""],["all520dddaaa2022ccc","true"],["_AdBlockInit","noopFunc"],["checkAndHandleAdBlock","undefined"],["adsbygoogle","{}"],["adsbygoogle.loaded","true"],["AD_SURVEY_Add_AdPos","noopFunc"],["AD_SURVEY_Add_AdPos_Simple","noopFunc"],["killads","true"],["isAdsDisplayed","true"],["fuzqingAdPlus","{}"],["all520dddaaa2022aaa","undefined"],["canRunAds","true"],["adblock","0"],["can_run_ads","true"],["google_tag_manager","{}"],["google.ima.AdError","noopFunc"],["ga","noopFunc"],["google_empty_script_included","true"],["adsbygoogle","noopFunc"],["Object.prototype.cnobpreroll_","true"],["Object.prototype.canobpreroll_","true"],["ads",""],["NativeAd","noopFunc"],["__jsadsuccess","true"],["onload","null"],["adbk","false"],["config.group",""],["preBid","{}"],["preBid.displayAd","noopFunc"],["preBid.getPrerollVASTUrl","noopFunc"],["player.VastADPlugin","noopFunc"],["ADSOBJET","{}"],["myPlayer.adDisplay","undefined"],["NEWS_FEED","noopFunc"],["conone_lmg","noopFunc"],["Object.prototype.ad_switch","0"],["dy_card_dyrun","undefined"],["poped","true"],["Object.prototype.adData","{}"],["Object.prototype._adData","{}"],["MM_openBrWindow","noopFunc"],["lists","undefined"],["is_show","false"],["allData.safeLevel","1"],["appData","[]"],["topData","[]"],["midData","[]"],["btmData","[]"],["coupletData","[]"],["adInfo","{}"],["isAdLoaded","true"],["Object.prototype.noAD","true"],["infoList","[]"],["adObj","noopFunc"],["CreativePlayerwebPlugin.AD_EVENT.AD_DESTROY",""],["CreativePlayerwebPlugin.AD_EVENT.AD_LOAD_START",""],["ConFig.config.ads","{}"],["pageData.__banners.0.commercial.mediaUrl",""],["pageData.__banners.0.commercial.jumpUrl",""],["pageData.__banners.0.commercial.title",""],["pageData.__banners.1.commercial.mediaUrl",""],["pageData.__banners.1.commercial.jumpUrl",""],["pageData.__banners.1.commercial.title",""],["detailParams.is_ad_play","false"]];
464
+ const hostnamesMap = new Map([["surirt.com",[0,1]],["520cc.cc",1],["520call.me",[1,11]],["baomidou.com",2],["nodejs.cn",[2,4,5]],["docsmall.com",2],["bilinovel.com",3],["huanqiu.com",[6,7]],["itbaoku.cn",8],["yaociyuan.bid",8],["bigpixel.cn",8],["jkpan.cc",8],["ekamus.info",9],["koyi.pub",10],["bde4.icu",12],["tingfm.com",[12,14]],["slashlook.com",12],["linovelib.com",13],["linetv.tw",[15,16]],["ebb.io",[17,18]],["wenxuecity.com",19],["ddys.*",[20,21]],["ddrk.me",[20,21]],["sssam.com",22],["cocomanga.com",[23,24]],["ohmanhua.com",[23,24]],["onemanhua.com",[23,24]],["hboav.com",[25,26]],["cnys.tv",27],["now.com",[28,29,30]],["player.hboav.com",31],["x99av.com",32],["hamivideo.hinet.net",33],["jianshu.com",34],["xkyn.com",35],["tangdoucdn.com",36],["dianyingim.com",37],["xvideo.cc",38],["v-wb.youku.com",39],["m.youku.com",40],["v.youku.com",40],["edc1014070.pixnet.net",41],["m.biqiugege8.com",42],["theav.xyz",43],["69xx.one",43],["theporn.cc",43],["v.ifeng.com",44],["445nan.com",[45,46,47,48,49]],["huya.com",50],["le.com",[51,52]],["axutongxue.onrender.com",53],["axutongxue.space",53],["axutongxue.cn",53],["axu.pages.dev",53],["axutongxue.vip",53],["axutongxue.com",53],["axutongxue.net",53],["enhuku.com",54],["sports.qq.com",[55,56]],["lpl.qq.com",[55,56]],["v.qq.com",[55,56]],["huaren.live",57],["nivod2.com",[58,59,60,61,62,63,64]],["nivod2.tv",[58,59,60,61,62,63,64]],["nivod4.com",[58,59,60,61,62,63,64]],["nivod5.com",[58,59,60,61,62,63,64]]]);
465
465
  const exceptionsMap = new Map([]);
466
466
  const hasEntities = true;
467
467
  const hasAncestors = false;
@@ -20,170 +20,131 @@
20
20
 
21
21
  */
22
22
 
23
- // ruleset: vie-1
23
+ // ruleset: chn-0
24
24
 
25
25
  // Important!
26
26
  // Isolate from global scope
27
27
 
28
28
  // Start of local scope
29
- (function uBOL_m3uPrune() {
29
+ (function uBOL_spoofCSS() {
30
30
 
31
31
  /******************************************************************************/
32
32
 
33
- function m3uPrune(
34
- m3uPattern = '',
35
- urlPattern = ''
33
+ function spoofCSS(
34
+ selector,
35
+ ...args
36
36
  ) {
37
- if ( typeof m3uPattern !== 'string' ) { return; }
38
- const safe = safeSelf();
39
- const logPrefix = safe.makeLogPrefix('m3u-prune', m3uPattern, urlPattern);
40
- const toLog = [];
41
- const regexFromArg = arg => {
42
- if ( arg === '' ) { return /^/; }
43
- const match = /^\/(.+)\/([gms]*)$/.exec(arg);
44
- if ( match !== null ) {
45
- let flags = match[2] || '';
46
- if ( flags.includes('m') ) { flags += 's'; }
47
- return new RegExp(match[1], flags);
48
- }
49
- return new RegExp(
50
- arg.replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*+/g, '.*?')
51
- );
52
- };
53
- const reM3u = regexFromArg(m3uPattern);
54
- const reUrl = regexFromArg(urlPattern);
55
- const pruneSpliceoutBlock = (lines, i) => {
56
- if ( lines[i].startsWith('#EXT-X-CUE:TYPE="SpliceOut"') === false ) {
57
- return false;
58
- }
59
- toLog.push(`\t${lines[i]}`);
60
- lines[i] = undefined; i += 1;
61
- if ( lines[i].startsWith('#EXT-X-ASSET:CAID') ) {
62
- toLog.push(`\t${lines[i]}`);
63
- lines[i] = undefined; i += 1;
64
- }
65
- if ( lines[i].startsWith('#EXT-X-SCTE35:') ) {
66
- toLog.push(`\t${lines[i]}`);
67
- lines[i] = undefined; i += 1;
37
+ if ( typeof selector !== 'string' ) { return; }
38
+ if ( selector === '' ) { return; }
39
+ const toCamelCase = s => s.replace(/-[a-z]/g, s => s.charAt(1).toUpperCase());
40
+ const propToValueMap = new Map();
41
+ const privatePropToValueMap = new Map();
42
+ for ( let i = 0; i < args.length; i += 2 ) {
43
+ const prop = toCamelCase(args[i+0]);
44
+ if ( prop === '' ) { break; }
45
+ const value = args[i+1];
46
+ if ( typeof value !== 'string' ) { break; }
47
+ if ( prop.charCodeAt(0) === 0x5F /* _ */ ) {
48
+ privatePropToValueMap.set(prop, value);
49
+ } else {
50
+ propToValueMap.set(prop, value);
68
51
  }
69
- if ( lines[i].startsWith('#EXT-X-CUE-IN') ) {
70
- toLog.push(`\t${lines[i]}`);
71
- lines[i] = undefined; i += 1;
72
- }
73
- if ( lines[i].startsWith('#EXT-X-SCTE35:') ) {
74
- toLog.push(`\t${lines[i]}`);
75
- lines[i] = undefined; i += 1;
52
+ }
53
+ const safe = safeSelf();
54
+ const logPrefix = safe.makeLogPrefix('spoof-css', selector, ...args);
55
+ const instanceProperties = [ 'cssText', 'length', 'parentRule' ];
56
+ const spoofStyle = (prop, real) => {
57
+ const normalProp = toCamelCase(prop);
58
+ const shouldSpoof = propToValueMap.has(normalProp);
59
+ const value = shouldSpoof ? propToValueMap.get(normalProp) : real;
60
+ if ( shouldSpoof ) {
61
+ safe.uboLog(logPrefix, `Spoofing ${prop} to ${value}`);
76
62
  }
77
- return true;
63
+ return value;
78
64
  };
79
- const pruneInfBlock = (lines, i) => {
80
- if ( lines[i].startsWith('#EXTINF') === false ) { return false; }
81
- if ( reM3u.test(lines[i+1]) === false ) { return false; }
82
- toLog.push('Discarding', `\t${lines[i]}, \t${lines[i+1]}`);
83
- lines[i] = lines[i+1] = undefined; i += 2;
84
- if ( lines[i].startsWith('#EXT-X-DISCONTINUITY') ) {
85
- toLog.push(`\t${lines[i]}`);
86
- lines[i] = undefined; i += 1;
87
- }
88
- return true;
65
+ const cloackFunc = (fn, thisArg, name) => {
66
+ const trap = fn.bind(thisArg);
67
+ Object.defineProperty(trap, 'name', { value: name });
68
+ Object.defineProperty(trap, 'toString', {
69
+ value: ( ) => `function ${name}() { [native code] }`
70
+ });
71
+ return trap;
89
72
  };
90
- const pruner = text => {
91
- if ( (/^\s*#EXTM3U/.test(text)) === false ) { return text; }
92
- if ( m3uPattern === '' ) {
93
- safe.uboLog(` Content:\n${text}`);
94
- return text;
95
- }
96
- if ( reM3u.multiline ) {
97
- reM3u.lastIndex = 0;
98
- for (;;) {
99
- const match = reM3u.exec(text);
100
- if ( match === null ) { break; }
101
- let discard = match[0];
102
- let before = text.slice(0, match.index);
103
- if (
104
- /^[\n\r]+/.test(discard) === false &&
105
- /[\n\r]+$/.test(before) === false
106
- ) {
107
- const startOfLine = /[^\n\r]+$/.exec(before);
108
- if ( startOfLine !== null ) {
109
- before = before.slice(0, startOfLine.index);
110
- discard = startOfLine[0] + discard;
73
+ self.getComputedStyle = new Proxy(self.getComputedStyle, {
74
+ apply: function(target, thisArg, args) {
75
+ // eslint-disable-next-line no-debugger
76
+ if ( privatePropToValueMap.has('_debug') ) { debugger; }
77
+ const style = Reflect.apply(target, thisArg, args);
78
+ const targetElements = new WeakSet(document.querySelectorAll(selector));
79
+ if ( targetElements.has(args[0]) === false ) { return style; }
80
+ const proxiedStyle = new Proxy(style, {
81
+ get(target, prop) {
82
+ if ( typeof target[prop] === 'function' ) {
83
+ if ( prop === 'getPropertyValue' ) {
84
+ return cloackFunc(function getPropertyValue(prop) {
85
+ return spoofStyle(prop, target[prop]);
86
+ }, target, 'getPropertyValue');
87
+ }
88
+ return cloackFunc(target[prop], target, prop);
111
89
  }
112
- }
113
- let after = text.slice(match.index + match[0].length);
114
- if (
115
- /[\n\r]+$/.test(discard) === false &&
116
- /^[\n\r]+/.test(after) === false
117
- ) {
118
- const endOfLine = /^[^\n\r]+/.exec(after);
119
- if ( endOfLine !== null ) {
120
- after = after.slice(endOfLine.index);
121
- discard += discard + endOfLine[0];
90
+ if ( instanceProperties.includes(prop) ) {
91
+ return Reflect.get(target, prop);
122
92
  }
123
- }
124
- text = before.trim() + '\n' + after.trim();
125
- reM3u.lastIndex = before.length + 1;
126
- toLog.push('Discarding', ...safe.String_split.call(discard, /\n+/).map(s => `\t${s}`));
127
- if ( reM3u.global === false ) { break; }
93
+ return spoofStyle(prop, Reflect.get(target, prop));
94
+ },
95
+ getOwnPropertyDescriptor(target, prop) {
96
+ if ( propToValueMap.has(prop) ) {
97
+ return {
98
+ configurable: true,
99
+ enumerable: true,
100
+ value: propToValueMap.get(prop),
101
+ writable: true,
102
+ };
103
+ }
104
+ return Reflect.getOwnPropertyDescriptor(target, prop);
105
+ },
106
+ });
107
+ return proxiedStyle;
108
+ },
109
+ get(target, prop) {
110
+ if ( prop === 'toString' ) {
111
+ return target.toString.bind(target);
128
112
  }
129
- return text;
130
- }
131
- const lines = safe.String_split.call(text, /\n\r|\n|\r/);
132
- for ( let i = 0; i < lines.length; i++ ) {
133
- if ( lines[i] === undefined ) { continue; }
134
- if ( pruneSpliceoutBlock(lines, i) ) { continue; }
135
- if ( pruneInfBlock(lines, i) ) { continue; }
136
- }
137
- return lines.filter(l => l !== undefined).join('\n');
138
- };
139
- const urlFromArg = arg => {
140
- if ( typeof arg === 'string' ) { return arg; }
141
- if ( arg instanceof Request ) { return arg.url; }
142
- return String(arg);
143
- };
144
- const realFetch = self.fetch;
145
- self.fetch = new Proxy(self.fetch, {
113
+ return Reflect.get(target, prop);
114
+ },
115
+ });
116
+ Element.prototype.getBoundingClientRect = new Proxy(Element.prototype.getBoundingClientRect, {
146
117
  apply: function(target, thisArg, args) {
147
- if ( reUrl.test(urlFromArg(args[0])) === false ) {
148
- return Reflect.apply(target, thisArg, args);
118
+ // eslint-disable-next-line no-debugger
119
+ if ( privatePropToValueMap.has('_debug') ) { debugger; }
120
+ const rect = Reflect.apply(target, thisArg, args);
121
+ const targetElements = new WeakSet(document.querySelectorAll(selector));
122
+ if ( targetElements.has(thisArg) === false ) { return rect; }
123
+ let { x, y, height, width } = rect;
124
+ if ( privatePropToValueMap.has('_rectx') ) {
125
+ x = parseFloat(privatePropToValueMap.get('_rectx'));
149
126
  }
150
- return realFetch(...args).then(realResponse =>
151
- realResponse.text().then(text => {
152
- const response = new Response(pruner(text), {
153
- status: realResponse.status,
154
- statusText: realResponse.statusText,
155
- headers: realResponse.headers,
156
- });
157
- if ( toLog.length !== 0 ) {
158
- toLog.unshift(logPrefix);
159
- safe.uboLog(toLog.join('\n'));
160
- }
161
- return response;
162
- })
163
- );
164
- }
165
- });
166
- self.XMLHttpRequest.prototype.open = new Proxy(self.XMLHttpRequest.prototype.open, {
167
- apply: async (target, thisArg, args) => {
168
- if ( reUrl.test(urlFromArg(args[1])) === false ) {
169
- return Reflect.apply(target, thisArg, args);
127
+ if ( privatePropToValueMap.has('_recty') ) {
128
+ y = parseFloat(privatePropToValueMap.get('_recty'));
170
129
  }
171
- thisArg.addEventListener('readystatechange', function() {
172
- if ( thisArg.readyState !== 4 ) { return; }
173
- const type = thisArg.responseType;
174
- if ( type !== '' && type !== 'text' ) { return; }
175
- const textin = thisArg.responseText;
176
- const textout = pruner(textin);
177
- if ( textout === textin ) { return; }
178
- Object.defineProperty(thisArg, 'response', { value: textout });
179
- Object.defineProperty(thisArg, 'responseText', { value: textout });
180
- if ( toLog.length !== 0 ) {
181
- toLog.unshift(logPrefix);
182
- safe.uboLog(toLog.join('\n'));
183
- }
184
- });
185
- return Reflect.apply(target, thisArg, args);
186
- }
130
+ if ( privatePropToValueMap.has('_rectw') ) {
131
+ width = parseFloat(privatePropToValueMap.get('_rectw'));
132
+ } else if ( propToValueMap.has('width') ) {
133
+ width = parseFloat(propToValueMap.get('width'));
134
+ }
135
+ if ( privatePropToValueMap.has('_recth') ) {
136
+ height = parseFloat(privatePropToValueMap.get('_recth'));
137
+ } else if ( propToValueMap.has('height') ) {
138
+ height = parseFloat(propToValueMap.get('height'));
139
+ }
140
+ return new self.DOMRect(x, y, width, height);
141
+ },
142
+ get(target, prop) {
143
+ if ( prop === 'toString' ) {
144
+ return target.toString.bind(target);
145
+ }
146
+ return Reflect.get(target, prop);
147
+ },
187
148
  });
188
149
  }
189
150
 
@@ -380,8 +341,8 @@ function safeSelf() {
380
341
  /******************************************************************************/
381
342
 
382
343
  const scriptletGlobals = {}; // eslint-disable-line
383
- const argsList = [["/#EXT-X-DISCONTINUITY(.|\\n){1,1000}#EXT-X-DISCONTINUITY/gm","index.m3u8"]];
384
- const hostnamesMap = new Map([["yeuphim.fit",0]]);
344
+ const argsList = [[".adsbygoogle","display","block"]];
345
+ const hostnamesMap = new Map([["helper-employer.com",0]]);
385
346
  const exceptionsMap = new Map([]);
386
347
  const hasEntities = false;
387
348
  const hasAncestors = false;
@@ -449,7 +410,7 @@ if ( hasAncestors ) {
449
410
  // Apply scriplets
450
411
  for ( const i of todoIndices ) {
451
412
  if ( tonotdoIndices.has(i) ) { continue; }
452
- try { m3uPrune(...argsList[i]); }
413
+ try { spoofCSS(...argsList[i]); }
453
414
  catch { }
454
415
  }
455
416
 
@@ -372,7 +372,7 @@ function getRandomTokenFn() {
372
372
 
373
373
  const scriptletGlobals = {}; // eslint-disable-line
374
374
  const argsList = [["document.getElementsByTagName","gtm.js"],["document.createElement","admiral"],["document.createElement","googletag"],["document.getElementsByTagName",".pubads"],["document.createElement","keen-tracking"]];
375
- const hostnamesMap = new Map([["bolighub.dk",0],["247sports.com",1],["androidpolice.com",1],["bringmethenews.com",1],["mensjournal.com",1],["arstechnica.com",1],["audizine.com",1],["blackenterprise.com",1],["boston.com",1],["britannica.com",1],["cattime.com",1],["cbr.com",1],["cheatsheet.com",1],["collider.com",1],["comingsoon.net",1],["cwtv.com",1],["dogtime.com",1],["esportstales.com",1],["forums.hfboards.com",1],["freep.com",1],["fresnobee.com",1],["gamerant.com",1],["gbatemp.net",1],["golfdigest.com",1],["grabify.link",1],["hancinema.net",1],["hemmings.com",1],["howtogeek.com",1],["ijr.com",1],["informazionefiscale.it",1],["inquirer.net",1],["insider-gaming.com",1],["knowyourmeme.com",1],["magesypro.pro",1],["makeuseof.com",1],["money.it",1],["motorbiscuit.com",1],["movieweb.com",1],["nationalreview.com",1],["nbcnews.com",1],["neopets.com",1],["nofilmschool.com",1],["nypost.com",1],["omg.blog",1],["order-order.com",1],["playstationlifestyle.net",1],["pwinsider.com",1],["savvytime.com",1],["screenrant.com",1],["siliconera.com",1],["simpleflying.com",1],["sporcle.com",1],["stealthoptional.com",1],["techlicious.com",1],["technicpack.net",1],["thedraftnetwork.com",1],["thefashionspot.com",1],["thegamer.com",1],["thenerdstash.com",1],["titantv.com",1],["topspeed.com",1],["twinfinite.net",1],["videogamer.com",1],["wnd.com",1],["worldpopulationreview.com",1],["wral.com",1],["wrestlezone.com",1],["wrestlinginc.com",1],["xda-developers.com",1],["iwb.jp",2],["apnews.com",3],["sidereel.com",3],["mwed.jp",4]]);
375
+ const hostnamesMap = new Map([["bolighub.dk",0],["247sports.com",1],["androidpolice.com",1],["bringmethenews.com",1],["mensjournal.com",1],["arstechnica.com",1],["audizine.com",1],["blackenterprise.com",1],["boston.com",1],["cattime.com",1],["cbr.com",1],["cheatsheet.com",1],["collider.com",1],["comingsoon.net",1],["cwtv.com",1],["dogtime.com",1],["esportstales.com",1],["forums.hfboards.com",1],["freep.com",1],["fresnobee.com",1],["gamerant.com",1],["gbatemp.net",1],["golfdigest.com",1],["grabify.link",1],["hancinema.net",1],["hemmings.com",1],["howtogeek.com",1],["ijr.com",1],["informazionefiscale.it",1],["inquirer.net",1],["insider-gaming.com",1],["knowyourmeme.com",1],["magesypro.pro",1],["makeuseof.com",1],["money.it",1],["motorbiscuit.com",1],["movieweb.com",1],["nationalreview.com",1],["nbcnews.com",1],["neopets.com",1],["nofilmschool.com",1],["nypost.com",1],["omg.blog",1],["order-order.com",1],["playstationlifestyle.net",1],["pwinsider.com",1],["savvytime.com",1],["screenrant.com",1],["siliconera.com",1],["simpleflying.com",1],["sporcle.com",1],["stealthoptional.com",1],["techlicious.com",1],["technicpack.net",1],["thedraftnetwork.com",1],["thefashionspot.com",1],["thegamer.com",1],["thenerdstash.com",1],["titantv.com",1],["topspeed.com",1],["twinfinite.net",1],["videogamer.com",1],["wnd.com",1],["worldpopulationreview.com",1],["wral.com",1],["wrestlezone.com",1],["wrestlinginc.com",1],["xda-developers.com",1],["iwb.jp",2],["apnews.com",3],["sidereel.com",3],["mwed.jp",4]]);
376
376
  const exceptionsMap = new Map([]);
377
377
  const hasEntities = false;
378
378
  const hasAncestors = false;
@@ -41,6 +41,7 @@ function preventFetchFn(
41
41
  responseType = ''
42
42
  ) {
43
43
  const safe = safeSelf();
44
+ const setTimeout = self.setTimeout;
44
45
  const scriptletName = `${trusted ? 'trusted-' : ''}prevent-fetch`;
45
46
  const logPrefix = safe.makeLogPrefix(
46
47
  scriptletName,
@@ -48,6 +49,7 @@ function preventFetchFn(
48
49
  responseBody,
49
50
  responseType
50
51
  );
52
+ const extraArgs = safe.getExtraArgs(Array.from(arguments), 4);
51
53
  const needles = [];
52
54
  for ( const condition of safe.String_split.call(propsToMatch, /\s+/) ) {
53
55
  if ( condition === '' ) { continue; }
@@ -135,6 +137,11 @@ function preventFetchFn(
135
137
  responseProps
136
138
  );
137
139
  safe.Object_defineProperties(response, props);
140
+ if ( extraArgs.throttle ) {
141
+ return new Promise(resolve => {
142
+ setTimeout(( ) => { resolve(response); }, extraArgs.throttle);
143
+ });
144
+ }
138
145
  return response;
139
146
  });
140
147
  });
@@ -461,7 +461,7 @@ function validateConstantFn(trusted, raw, extraArgs = {}) {
461
461
 
462
462
  const scriptletGlobals = {}; // eslint-disable-line
463
463
  const argsList = [["Navigator.prototype.globalPrivacyControl","false"],["navigator.globalPrivacyControl","false"],["admiral","noopFunc"],["gnt.x.adm",""],["ncbi.sg","{}"],["ncbi.sg.ping","noopFunc"]];
464
- const hostnamesMap = new Map([["geizhals.de",[0,1]],["harborfreight.com",[0,1]],["gemini.com",[0,1]],["flyfrontier.com",[0,1]],["acmemarkets.com",[0,1]],["usaa.com",[0,1]],["capezio.com",[0,1]],["twitch.tv",[0,1]],["spotify.com",[0,1]],["tidal.com",[0,1]],["deezer.com",[0,1]],["pandora.com",[0,1]],["qobuz.com",[0,1]],["soundcloud.com",[0,1]],["vimeo.com",[0,1]],["x.com",[0,1]],["twitter.com",[0,1]],["eventbrite.com",[0,1]],["wunderground.com",[0,1]],["accuweather.com",[0,1]],["formula1.com",[0,1]],["lenscrafters.com",[0,1]],["subway.com",[0,1]],["ticketmaster.*",[0,1]],["livewithkellyandmark.com",[0,1]],["visible.com",[0,1]],["porsche.com",[0,1]],["uber.com",[0,1]],["jdsports.com",[0,1]],["engadget.com",[0,1]],["yahoo.com",[0,1]],["techcrunch.com",[0,1]],["rivals.com",[0,1]],["kkrt.com",[0,1]],["crunchyroll.com",[0,1]],["dnb.com",[0,1]],["dnb.co.uk",[0,1]],["weather.com",[0,1]],["ubereats.com",[0,1]],["gbatemp.net",2],["usatoday.com",3],["ncbi.nlm.nih.gov",[4,5]]]);
464
+ const hostnamesMap = new Map([["geizhals.de",[0,1]],["harborfreight.com",[0,1]],["flyfrontier.com",[0,1]],["acmemarkets.com",[0,1]],["usaa.com",[0,1]],["capezio.com",[0,1]],["twitch.tv",[0,1]],["spotify.com",[0,1]],["tidal.com",[0,1]],["deezer.com",[0,1]],["pandora.com",[0,1]],["qobuz.com",[0,1]],["soundcloud.com",[0,1]],["vimeo.com",[0,1]],["x.com",[0,1]],["twitter.com",[0,1]],["eventbrite.com",[0,1]],["wunderground.com",[0,1]],["accuweather.com",[0,1]],["formula1.com",[0,1]],["lenscrafters.com",[0,1]],["subway.com",[0,1]],["ticketmaster.*",[0,1]],["livewithkellyandmark.com",[0,1]],["visible.com",[0,1]],["porsche.com",[0,1]],["uber.com",[0,1]],["jdsports.com",[0,1]],["engadget.com",[0,1]],["yahoo.com",[0,1]],["techcrunch.com",[0,1]],["rivals.com",[0,1]],["kkrt.com",[0,1]],["crunchyroll.com",[0,1]],["dnb.com",[0,1]],["dnb.co.uk",[0,1]],["weather.com",[0,1]],["ubereats.com",[0,1]],["gbatemp.net",2],["usatoday.com",3],["ncbi.nlm.nih.gov",[4,5]]]);
465
465
  const exceptionsMap = new Map([]);
466
466
  const hasEntities = true;
467
467
  const hasAncestors = false;
@@ -417,8 +417,8 @@ function shouldDebug(details) {
417
417
  /******************************************************************************/
418
418
 
419
419
  const scriptletGlobals = {}; // eslint-disable-line
420
- const argsList = [["DOMContentLoaded","adblock"],["load","isAdblock"],["DOMContentLoaded","adsbygoogle"],["click","Popup"],["DOMContentLoaded","interstitial"]];
421
- const hostnamesMap = new Map([["nicematin.com",0],["cyclismactu.net",1],["lecourrier-du-soir.com",2],["player.melaniezettofrais.online",3],["macg.co",4]]);
420
+ const argsList = [["DOMContentLoaded","adblock"],["DOMContentLoaded","isAdblock"],["load","isAdblock"],["DOMContentLoaded","adsbygoogle"],["click","Popup"],["DOMContentLoaded","interstitial"]];
421
+ const hostnamesMap = new Map([["nicematin.com",0],["cyclismactu.net",[1,2]],["lecourrier-du-soir.com",3],["player.melaniezettofrais.online",4],["macg.co",5]]);
422
422
  const exceptionsMap = new Map([]);
423
423
  const hasEntities = false;
424
424
  const hasAncestors = false;
@@ -251,8 +251,8 @@ function safeSelf() {
251
251
  /******************************************************************************/
252
252
 
253
253
  const scriptletGlobals = {}; // eslint-disable-line
254
- const argsList = [["/userConsentProcess|this===/","*","0.001"],["return t()","*","0.001"],["userConsentProcessEnded","*","0.001"],["setTimeoutIds_","*","0.001"],["/userConsentProcessEnded|\\[0\\]\\+\"With\"/","*","0.001"]];
255
- const hostnamesMap = new Map([["marieclaire.fr",0],["sudouest.fr",1],["magicmaman.com",2],["lessentiel.lu",3],["20min.ch",3],["cosmopolitan.fr",4]]);
254
+ const argsList = [["event_listener_timeout","*","0.001"],["/userConsentProcess|this===/","*","0.001"],["return t()","*","0.001"],["userConsentProcessEnded","*","0.001"],["setTimeoutIds_","*","0.001"],["/userConsentProcessEnded|\\[0\\]\\+\"With\"/","*","0.001"]];
255
+ const hostnamesMap = new Map([["supersoluce.com",0],["marieclaire.fr",1],["sudouest.fr",2],["magicmaman.com",3],["lessentiel.lu",4],["20min.ch",4],["cosmopolitan.fr",5]]);
256
256
  const exceptionsMap = new Map([]);
257
257
  const hasEntities = false;
258
258
  const hasAncestors = false;
@@ -41,6 +41,7 @@ function preventFetchFn(
41
41
  responseType = ''
42
42
  ) {
43
43
  const safe = safeSelf();
44
+ const setTimeout = self.setTimeout;
44
45
  const scriptletName = `${trusted ? 'trusted-' : ''}prevent-fetch`;
45
46
  const logPrefix = safe.makeLogPrefix(
46
47
  scriptletName,
@@ -48,6 +49,7 @@ function preventFetchFn(
48
49
  responseBody,
49
50
  responseType
50
51
  );
52
+ const extraArgs = safe.getExtraArgs(Array.from(arguments), 4);
51
53
  const needles = [];
52
54
  for ( const condition of safe.String_split.call(propsToMatch, /\s+/) ) {
53
55
  if ( condition === '' ) { continue; }
@@ -135,6 +137,11 @@ function preventFetchFn(
135
137
  responseProps
136
138
  );
137
139
  safe.Object_defineProperties(response, props);
140
+ if ( extraArgs.throttle ) {
141
+ return new Promise(resolve => {
142
+ setTimeout(( ) => { resolve(response); }, extraArgs.throttle);
143
+ });
144
+ }
138
145
  return response;
139
146
  });
140
147
  });
@@ -362,8 +362,8 @@ function safeSelf() {
362
362
  /******************************************************************************/
363
363
 
364
364
  const scriptletGlobals = {}; // eslint-disable-line
365
- const argsList = [["displayCookieWallBanner"],["detected"],["adsbygoogle"],["sessionStorage"],["randno","25"]];
366
- const hostnamesMap = new Map([["gamekult.com",0],["cookomix.com",1],["voyageforum.com",2],["japscan.*",3],["jeune-gay.fr",4]]);
365
+ const argsList = [["displayCookieWallBanner"],["detected"],["isAdblock"],["adsbygoogle"],["sessionStorage"],["randno","25"]];
366
+ const hostnamesMap = new Map([["gamekult.com",0],["cookomix.com",1],["cyclismactu.net",2],["voyageforum.com",3],["japscan.*",4],["jeune-gay.fr",5]]);
367
367
  const exceptionsMap = new Map([]);
368
368
  const hasEntities = true;
369
369
  const hasAncestors = false;
@@ -461,7 +461,7 @@ function validateConstantFn(trusted, raw, extraArgs = {}) {
461
461
 
462
462
  const scriptletGlobals = {}; // eslint-disable-line
463
463
  const argsList = [["LCI.adNetwork","undefined"],["penci_options_set.ad_blocker_detector","false"],["ima","{}"],["integrityObserver.corrupted","0"],["checkAdsBlocked","noopFunc"],["dAp","true"],["checkDiv","noopFunc"],["navigator.brave","undefined"],["moneyAbovePrivacy","true"],["bAdBlocker","false"],["noPub","1"],["canRunAds","true"],["adClasses","[]"],["adblockdetected","false"],["integrityObserver.corrupted","false"],["window.adsapp","true"],["ujloijdkhjkwus","false"],["wIsAdBlocked","false"],["adBlockDetected","false"],["google_jobrunner","noopFunc"],["ptv.Data.uniroll","{}"],["pmd.Data.uniroll","{}"],["OAS_AD","noopFunc"],["Object.prototype.isBlockerDetected","false"],["__TF1_CONFIG__.featureFlag.contentAccess.isAdblockCheckRequired","false"],["__TF1_CONFIG__.adblock.display","false"],["__TF1_CONFIG__.adblock.serverRequest","false"],["advanced_ads_ready","noopFunc"],["FastClick","noopFunc"],["FastClick.attach","noopFunc"],["empire.isAdbActive","false"],["empire.directHideAds","undefined"],["empire.countpremium.film","0"],["empire.countpremium.serie","0"],["empire.countpremiumMore.film.count","0"],["empire.countpremiumMore.serie.count","0"],["empire.countpremiumaccount.film","0"],["empire.countpremiumaccount.serie","0"],["empire.mediaData.advisorDirect",""],["empire.mediaData.advisorMovie","1"],["empire.mediaData.advisorSerie","1"],["adsConfig","[]"],["isSetupAccess","true"],["Object.prototype.withAds","false"],["AC.config.ads","{}"],["getAudioAdUrl","noopFunc"],["aEteAffiche","true"],["__data.application.settings.featPlayerAds","false"],["tv.freewheel.SDK.Util.pingURLWithForm","trueFunc"],["tv.freewheel.SDK.Util.pingURLWithImage","trueFunc"],["tv.freewheel.SDK.Util.pingURLWithScript","trueFunc"],["tv.freewheel.SDK.Util.pingURLWithXMLHTTPRequest","trueFunc"],["tv.freewheel.SDK.Util.sendAdRequestWithXMLHTTPRequest","trueFunc"],["__NEXT_DATA__.runtimeConfig.playerTF1.ads.enable","false"]];
464
- const hostnamesMap = new Map([["lecrabeinfo.net",0],["equinoxmagazine.fr",1],["adala-news.fr",1],["tvaplus.ca",2],["journaldesfemmes.fr",3],["rustica.fr",4],["cookomix.com",5],["cinefil.com",6],["empire-anime.com",[7,30,31,32,33,34,35,36,37,38,39,40]],["empire-streamz.fr",[7,30,31,32,33,34,35,36,37]],["empire-streaming.*",[7,30,31,32,33,34,35,36,37,38,39,40]],["empire-stream.net",7],["signal-arnaques.com",8],["dhnet.be",9],["sudinfo.be",9],["7sur7.be",9],["rtl.be",9],["pianoweb.fr",10],["parlons-basket.com",11],["mac4ever.com",11],["jaitoutcompris.com",12],["varmatin.com",13],["nicematin.com",13],["commentcamarche.net",14],["20minutes.fr",15],["hollywoodpq.com",16],["jardiner-malin.fr",17],["hack-life.net",18],["jtrouver.com",19],["playtv.fr",[20,21]],["skyrock.com",22],["skyrock.fr",22],["m6.fr",[23,48,49,50,51,52]],["tf1.fr",[24,25,26,48,49,50,51,52]],["justarrived.lu",27],["occasions.decathlon.fr",[28,29]],["empire-stream.*",[30,31,32,33,34,35,36,37]],["e-player-stream.*",41],["e-player-stream.app",42],["maxisciences.com",43],["gentside.com",43],["femmeactuelle.fr",43],["geo.fr",43],["voici.fr",43],["programme-tv.net",43],["gala.fr",43],["capital.fr",43],["allocine.fr",44],["funradio.fr",45],["rtl2.fr",45],["rtl.fr",45],["e-sushi.fr",46],["canalplus.com",47],["tf1info.fr",53]]);
464
+ const hostnamesMap = new Map([["lecrabeinfo.net",0],["equinoxmagazine.fr",1],["adala-news.fr",1],["qub.ca",2],["tvaplus.ca",2],["journaldesfemmes.fr",3],["rustica.fr",4],["cookomix.com",5],["cinefil.com",6],["empire-anime.com",[7,30,31,32,33,34,35,36,37,38,39,40]],["empire-streamz.fr",[7,30,31,32,33,34,35,36,37]],["empire-streaming.*",[7,30,31,32,33,34,35,36,37,38,39,40]],["empire-stream.net",7],["signal-arnaques.com",8],["dhnet.be",9],["sudinfo.be",9],["7sur7.be",9],["rtl.be",9],["pianoweb.fr",10],["parlons-basket.com",11],["mac4ever.com",11],["jaitoutcompris.com",12],["varmatin.com",13],["nicematin.com",13],["commentcamarche.net",14],["20minutes.fr",15],["hollywoodpq.com",16],["jardiner-malin.fr",17],["hack-life.net",18],["jtrouver.com",19],["playtv.fr",[20,21]],["skyrock.com",22],["skyrock.fr",22],["m6.fr",[23,48,49,50,51,52]],["tf1.fr",[24,25,26,48,49,50,51,52]],["justarrived.lu",27],["occasions.decathlon.fr",[28,29]],["empire-stream.*",[30,31,32,33,34,35,36,37]],["e-player-stream.*",41],["e-player-stream.app",42],["maxisciences.com",43],["gentside.com",43],["femmeactuelle.fr",43],["geo.fr",43],["voici.fr",43],["programme-tv.net",43],["gala.fr",43],["capital.fr",43],["allocine.fr",44],["funradio.fr",45],["rtl2.fr",45],["rtl.fr",45],["e-sushi.fr",46],["canalplus.com",47],["tf1info.fr",53]]);
465
465
  const exceptionsMap = new Map([]);
466
466
  const hasEntities = true;
467
467
  const hasAncestors = false;
@@ -318,8 +318,8 @@ function safeSelf() {
318
318
  /******************************************************************************/
319
319
 
320
320
  const scriptletGlobals = {}; // eslint-disable-line
321
- const argsList = [["felhasznalo_cookie_preferencia","0"]];
322
- const hostnamesMap = new Map([["onlinepenztarca.hu",0]]);
321
+ const argsList = [["felhasznalo_cookie_preferencia","0"],["skanzen-cookie-consent","false"]];
322
+ const hostnamesMap = new Map([["onlinepenztarca.hu",0],["skanzen.hu",1]]);
323
323
  const exceptionsMap = new Map([]);
324
324
  const hasEntities = false;
325
325
  const hasAncestors = false;
@@ -41,6 +41,7 @@ function preventFetchFn(
41
41
  responseType = ''
42
42
  ) {
43
43
  const safe = safeSelf();
44
+ const setTimeout = self.setTimeout;
44
45
  const scriptletName = `${trusted ? 'trusted-' : ''}prevent-fetch`;
45
46
  const logPrefix = safe.makeLogPrefix(
46
47
  scriptletName,
@@ -48,6 +49,7 @@ function preventFetchFn(
48
49
  responseBody,
49
50
  responseType
50
51
  );
52
+ const extraArgs = safe.getExtraArgs(Array.from(arguments), 4);
51
53
  const needles = [];
52
54
  for ( const condition of safe.String_split.call(propsToMatch, /\s+/) ) {
53
55
  if ( condition === '' ) { continue; }
@@ -135,6 +137,11 @@ function preventFetchFn(
135
137
  responseProps
136
138
  );
137
139
  safe.Object_defineProperties(response, props);
140
+ if ( extraArgs.throttle ) {
141
+ return new Promise(resolve => {
142
+ setTimeout(( ) => { resolve(response); }, extraArgs.throttle);
143
+ });
144
+ }
138
145
  return response;
139
146
  });
140
147
  });
@@ -371,8 +371,8 @@ function getRandomTokenFn() {
371
371
  /******************************************************************************/
372
372
 
373
373
  const scriptletGlobals = {}; // eslint-disable-line
374
- const argsList = [["disableSelection","reEnable"],["vc_url"],["watermarkAdData"],["document.onclick","checkCookie"],["document.onselectstart","killCopy"],["eif"],["document.onclick","Hamisheonlinepaps"],["jQuery","Drupal"],["jQuery","contextmenu"],["reEnable"],["document.oncontextmenu"],["jQuery","wccp_pro"],["clear_body_at_all_for_extentions"],["pa_vc_url"],["document.write","renderAds"]];
375
- const hostnamesMap = new Map([["anesthesianotes.ir",0],["coffeeapps.ir",0],["androidparsi.ir",1],["dailymobile.ir",1],["tarfandha.org",1],["alaatv.com",2],["bandmoviez.one",3],["fileboro.com",4],["farnet.io",5],["hamisheonline.com",6],["iranstar.com",7],["itarfand.com",8],["jafekri.com",[9,10,11,12]],["jeyran.net",10],["searchline.ir",10],["takmili.com",10],["vakil.net",10],["mybia4music.com",13],["p30konkor.com",0],["sclinic.ir",0],["tabnak.ir",14]]);
374
+ const argsList = [["disableSelection","reEnable"],["vc_url"],["document.onclick","checkCookie"],["document.onselectstart","killCopy"],["eif"],["document.onclick","Hamisheonlinepaps"],["jQuery","Drupal"],["jQuery","contextmenu"],["reEnable"],["document.oncontextmenu"],["jQuery","wccp_pro"],["clear_body_at_all_for_extentions"],["pa_vc_url"],["document.write","renderAds"]];
375
+ const hostnamesMap = new Map([["anesthesianotes.ir",0],["coffeeapps.ir",0],["androidparsi.ir",1],["dailymobile.ir",1],["tarfandha.org",1],["bandmoviez.one",2],["fileboro.com",3],["farnet.io",4],["hamisheonline.com",5],["iranstar.com",6],["itarfand.com",7],["jafekri.com",[8,9,10,11]],["jeyran.net",9],["searchline.ir",9],["takmili.com",9],["vakil.net",9],["mybia4music.com",12],["p30konkor.com",0],["sclinic.ir",0],["tabnak.ir",13]]);
376
376
  const exceptionsMap = new Map([]);
377
377
  const hasEntities = false;
378
378
  const hasAncestors = false;