@browserless.io/browserless 2.37.0 → 2.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/build/browsers/index.js +15 -0
  2. package/build/routes/chrome/http/content.post.query.json +3 -0
  3. package/build/routes/chrome/http/download.post.query.json +3 -0
  4. package/build/routes/chrome/http/function.post.query.json +3 -0
  5. package/build/routes/chrome/http/pdf.post.query.json +3 -0
  6. package/build/routes/chrome/http/performance.post.query.json +3 -0
  7. package/build/routes/chrome/http/scrape.post.query.json +3 -0
  8. package/build/routes/chrome/http/screenshot.post.query.json +3 -0
  9. package/build/routes/chrome/tests/content.spec.js +21 -0
  10. package/build/routes/chrome/tests/json.spec.js +100 -0
  11. package/build/routes/chrome/ws/browser.query.json +3 -0
  12. package/build/routes/chrome/ws/cdp.query.json +3 -0
  13. package/build/routes/chrome/ws/function-connect.query.json +3 -0
  14. package/build/routes/chrome/ws/page.query.json +3 -0
  15. package/build/routes/chromium/http/content.post.query.json +3 -0
  16. package/build/routes/chromium/http/download.post.query.json +3 -0
  17. package/build/routes/chromium/http/function.post.query.json +3 -0
  18. package/build/routes/chromium/http/pdf.post.query.json +3 -0
  19. package/build/routes/chromium/http/performance.post.query.json +3 -0
  20. package/build/routes/chromium/http/scrape.post.query.json +3 -0
  21. package/build/routes/chromium/http/screenshot.post.query.json +3 -0
  22. package/build/routes/chromium/tests/content.spec.js +21 -0
  23. package/build/routes/chromium/tests/function.spec.js +27 -0
  24. package/build/routes/chromium/tests/json.spec.js +100 -0
  25. package/build/routes/chromium/ws/browser.query.json +3 -0
  26. package/build/routes/chromium/ws/cdp.query.json +3 -0
  27. package/build/routes/chromium/ws/function-connect.query.json +3 -0
  28. package/build/routes/chromium/ws/page.query.json +3 -0
  29. package/build/routes/edge/http/content.post.query.json +3 -0
  30. package/build/routes/edge/http/download.post.query.json +3 -0
  31. package/build/routes/edge/http/function.post.query.json +3 -0
  32. package/build/routes/edge/http/pdf.post.query.json +3 -0
  33. package/build/routes/edge/http/performance.post.query.json +3 -0
  34. package/build/routes/edge/http/scrape.post.query.json +3 -0
  35. package/build/routes/edge/http/screenshot.post.query.json +3 -0
  36. package/build/routes/edge/tests/content.spec.js +21 -0
  37. package/build/routes/edge/tests/json.spec.js +100 -0
  38. package/build/routes/edge/ws/browser.query.json +3 -0
  39. package/build/routes/edge/ws/cdp.query.json +3 -0
  40. package/build/routes/edge/ws/function-connect.query.json +3 -0
  41. package/build/routes/edge/ws/page.query.json +3 -0
  42. package/build/routes/management/http/kill.get.query.json +3 -0
  43. package/build/routes/management/http/sessions.get.query.json +3 -0
  44. package/build/routes/management/tests/management.spec.js +44 -0
  45. package/build/server.js +1 -1
  46. package/build/shim.js +11 -1
  47. package/build/shim.spec.js +14 -0
  48. package/build/types.d.ts +2 -0
  49. package/extensions/ublocklite/_locales/br_FR/messages.json +2 -2
  50. package/extensions/ublocklite/_locales/cs/messages.json +8 -8
  51. package/extensions/ublocklite/_locales/da/messages.json +5 -5
  52. package/extensions/ublocklite/_locales/es/messages.json +4 -4
  53. package/extensions/ublocklite/_locales/gl/messages.json +5 -5
  54. package/extensions/ublocklite/_locales/ka/messages.json +5 -5
  55. package/extensions/ublocklite/_locales/ru/messages.json +3 -3
  56. package/extensions/ublocklite/_locales/sq/messages.json +5 -5
  57. package/extensions/ublocklite/_locales/sv/messages.json +5 -5
  58. package/extensions/ublocklite/_locales/zh_CN/messages.json +5 -5
  59. package/extensions/ublocklite/css/settings.css +6 -0
  60. package/extensions/ublocklite/dashboard.html +1 -1
  61. package/extensions/ublocklite/js/background.js +10 -6
  62. package/extensions/ublocklite/js/dashboard.js +4 -5
  63. package/extensions/ublocklite/js/jsonpath.js +25 -10
  64. package/extensions/ublocklite/js/report.js +2 -4
  65. package/extensions/ublocklite/js/troubleshooting.js +30 -18
  66. package/extensions/ublocklite/manifest.json +2 -2
  67. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +1 -1
  68. package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +1 -1
  69. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +6 -4
  70. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +2 -1
  71. package/extensions/ublocklite/rulesets/main/chn-0.json +5 -3
  72. package/extensions/ublocklite/rulesets/main/easylist.json +10 -13
  73. package/extensions/ublocklite/rulesets/main/easyprivacy.json +8 -9
  74. package/extensions/ublocklite/rulesets/main/fin-0.json +3 -1
  75. package/extensions/ublocklite/rulesets/main/ita-0.json +2 -0
  76. package/extensions/ublocklite/rulesets/main/jpn-1.json +8 -10
  77. package/extensions/ublocklite/rulesets/main/nor-0.json +2 -2
  78. package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
  79. package/extensions/ublocklite/rulesets/main/rus-1.json +2 -1
  80. package/extensions/ublocklite/rulesets/main/spa-1.json +6 -1
  81. package/extensions/ublocklite/rulesets/main/swe-1.json +5 -5
  82. package/extensions/ublocklite/rulesets/main/tur-0.json +2 -2
  83. package/extensions/ublocklite/rulesets/main/ublock-badware.json +4 -2
  84. package/extensions/ublocklite/rulesets/main/ublock-filters.json +25 -25
  85. package/extensions/ublocklite/rulesets/main/ukr-0.json +2 -2
  86. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +610 -80
  87. package/extensions/ublocklite/rulesets/main/vie-1.json +20 -14
  88. package/extensions/ublocklite/rulesets/regex/easylist.json +1 -6
  89. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  90. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +3 -4
  91. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +11 -9
  92. package/extensions/ublocklite/rulesets/ruleset-details.json +120 -120
  93. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +2 -2
  94. package/extensions/ublocklite/rulesets/scripting/generic/ita-0.js +1 -1
  95. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +2 -2
  96. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
  97. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +2 -2
  98. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  99. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
  100. package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +1 -1
  101. package/extensions/ublocklite/rulesets/scripting/procedural/grc-0.js +3 -3
  102. package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +3 -3
  103. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  104. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  105. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
  106. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +2 -2
  107. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  108. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.addEventListener-defuser.js +7 -3
  109. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.prevent-setTimeout.js +5 -1
  110. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.addEventListener-defuser.js +5 -1
  111. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +5 -1
  112. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-setTimeout.js +5 -1
  113. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  114. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  115. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  116. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  117. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.addEventListener-defuser.js +5 -1
  118. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +5 -1
  119. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.json-prune.js +2 -2
  120. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setInterval.js +5 -1
  121. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setTimeout.js +5 -1
  122. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +5 -1
  123. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.noeval-if.js +5 -1
  124. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +5 -1
  125. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +5 -1
  126. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +5 -1
  127. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +5 -1
  128. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-class.js +2 -2
  129. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-argument.js +5 -1
  130. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-outbound-text.js +5 -1
  131. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-suppress-native-method.js +5 -1
  132. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +5 -1
  133. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.evaldata-prune.js +5 -1
  134. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.noeval-if.js +5 -1
  135. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +6 -2
  136. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setInterval.js +5 -1
  137. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +5 -1
  138. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +5 -1
  139. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.addEventListener-defuser.js +5 -1
  140. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setInterval.js +5 -1
  141. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setTimeout.js +5 -1
  142. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +5 -1
  143. package/extensions/ublocklite/rulesets/scripting/scriptlet/est-0.addEventListener-defuser.js +5 -1
  144. package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.prevent-setTimeout.js +5 -1
  145. package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.remove-node-text.js +449 -0
  146. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +5 -1
  147. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +5 -1
  148. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-requestAnimationFrame.js +5 -1
  149. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setInterval.js +5 -1
  150. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +5 -1
  151. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +5 -1
  152. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.addEventListener-defuser.js +5 -1
  153. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-setTimeout.js +5 -1
  154. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-window-open.js +5 -1
  155. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +5 -1
  156. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.noeval-if.js +5 -1
  157. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +5 -1
  158. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-setTimeout.js +5 -1
  159. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-window-open.js +5 -1
  160. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +5 -1
  161. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +5 -1
  162. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-setTimeout.js +5 -1
  163. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +5 -1
  164. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.addEventListener-defuser.js +5 -1
  165. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +5 -1
  166. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-setTimeout.js +5 -1
  167. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-window-open.js +5 -1
  168. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +5 -1
  169. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
  170. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.noeval-if.js +5 -1
  171. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +5 -1
  172. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setInterval.js +5 -1
  173. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setTimeout.js +5 -1
  174. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-window-open.js +5 -1
  175. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.addEventListener-defuser.js +5 -1
  176. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +5 -1
  177. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setInterval.js +5 -1
  178. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +5 -1
  179. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-window-open.js +5 -1
  180. package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.prevent-setTimeout.js +5 -1
  181. package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.prevent-window-open.js +5 -1
  182. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.addEventListener-defuser.js +5 -1
  183. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +5 -1
  184. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-setTimeout.js +5 -1
  185. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.addEventListener-defuser.js +5 -1
  186. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +5 -1
  187. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-setTimeout.js +5 -1
  188. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.addEventListener-defuser.js +5 -1
  189. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.noeval-if.js +5 -1
  190. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setInterval.js +5 -1
  191. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setTimeout.js +5 -1
  192. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-window-open.js +5 -1
  193. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.noeval-if.js +5 -1
  194. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setInterval.js +5 -1
  195. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setTimeout.js +5 -1
  196. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-window-open.js +5 -1
  197. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-stack-trace.js +2 -2
  198. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +8 -4
  199. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.noeval-if.js +5 -1
  200. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +5 -1
  201. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setInterval.js +5 -1
  202. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +5 -1
  203. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-window-open.js +5 -1
  204. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
  205. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
  206. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  207. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +5 -1
  208. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +5 -1
  209. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-setTimeout.js +5 -1
  210. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +5 -1
  211. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
  212. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +5 -1
  213. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +5 -1
  214. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +5 -1
  215. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setInterval.js +5 -1
  216. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +5 -1
  217. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +5 -1
  218. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +5 -1
  219. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +5 -1
  220. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setInterval.js +5 -1
  221. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +5 -1
  222. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +5 -1
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +5 -1
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setInterval.js +5 -1
  225. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +5 -1
  226. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +6 -2
  227. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +1 -1
  228. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.addEventListener-defuser.js +5 -1
  229. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.noeval-if.js +5 -1
  230. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.trusted-replace-argument.js +5 -1
  231. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +848 -0
  232. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +1 -1
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +1 -1
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +7 -3
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-fetch-response.js +29 -11
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +24 -10
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit.js +29 -11
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +24 -10
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +6 -2
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +7 -3
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +5 -1
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +5 -1
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +7 -3
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +5 -1
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +2 -2
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +1 -1
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-request.js +941 -0
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +29 -11
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit.js +29 -11
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +5 -1
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-dom-bypass.js +5 -1
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -3
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +5 -1
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +2 -2
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +7 -3
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +6 -2
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-fetch-response.js +29 -11
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-xhr-response.js +24 -10
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.prevent-setTimeout.js +5 -1
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.trusted-prevent-dom-bypass.js +5 -1
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +5 -1
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-window-open.js +5 -1
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +1 -1
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.addEventListener-defuser.js +5 -1
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +5 -1
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-setTimeout.js +5 -1
  273. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  274. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  275. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
  276. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  277. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  278. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  279. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  280. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  281. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  282. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  283. package/extensions/ublocklite/rulesets/scripting/specific/grc-0.js +3 -3
  284. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  285. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  286. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +1 -1
  287. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  288. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  289. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  290. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  291. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  292. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  293. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  294. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  295. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  296. package/extensions/ublocklite/rulesets/scriptlet-details.json +90 -32
  297. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +5 -0
  298. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +67 -1
  299. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  300. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +17 -1
  301. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +198 -196
  302. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  303. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +2 -0
  304. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +532 -530
  305. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +23 -19
  306. package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +2 -0
  307. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +610 -80
  308. package/extensions/ublocklite/ublock.zip +0 -0
  309. package/package.json +13 -12
  310. package/scripts/install-debugger.js +2 -2
  311. package/src/browsers/index.ts +20 -0
  312. package/src/routes/chrome/tests/content.spec.ts +24 -0
  313. package/src/routes/chrome/tests/json.spec.ts +134 -0
  314. package/src/routes/chromium/tests/content.spec.ts +24 -0
  315. package/src/routes/chromium/tests/function.spec.ts +33 -0
  316. package/src/routes/chromium/tests/json.spec.ts +134 -0
  317. package/src/routes/chromium/tests/scrape.spec.ts +3 -1
  318. package/src/routes/edge/tests/content.spec.ts +24 -0
  319. package/src/routes/edge/tests/json.spec.ts +134 -0
  320. package/src/routes/management/tests/management.spec.ts +66 -0
  321. package/src/server.ts +1 -1
  322. package/src/shared/screenshot.http.ts +1 -1
  323. package/src/shim.spec.ts +18 -0
  324. package/src/shim.ts +15 -1
  325. package/src/types.ts +2 -0
  326. package/static/docs/swagger.json +4 -1
  327. package/static/docs/swagger.min.json +4 -1
  328. package/static/function/client.js +86 -92
  329. package/static/function/index.html +86 -92
  330. package/build/routes/chrome/tests/json-version.spec.js +0 -37
  331. package/build/routes/chromium/tests/json-version.spec.js +0 -37
  332. package/build/routes/edge/tests/json-version.spec.js +0 -37
  333. package/src/routes/chrome/tests/json-version.spec.ts +0 -52
  334. package/src/routes/chromium/tests/json-version.spec.ts +0 -52
  335. package/src/routes/edge/tests/json-version.spec.ts +0 -52
  336. /package/build/routes/chrome/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
  337. /package/build/routes/chromium/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
  338. /package/build/routes/edge/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
@@ -112,6 +112,10 @@ function proxyApplyFn(
112
112
  : new proxyApplyFn.ApplyContext(...args);
113
113
  }
114
114
  };
115
+ proxyApplyFn.isCtor = new Map();
116
+ }
117
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
118
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
115
119
  }
116
120
  const fnStr = fn.toString();
117
121
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -124,7 +128,7 @@ function proxyApplyFn(
124
128
  return Reflect.get(target, prop);
125
129
  },
126
130
  };
127
- if ( fn.prototype?.constructor === fn ) {
131
+ if ( proxyApplyFn.isCtor.get(target) ) {
128
132
  proxyDetails.construct = function(target, args) {
129
133
  return handler(proxyApplyFn.CtorContext.factory(target, args));
130
134
  };
@@ -118,6 +118,10 @@ function proxyApplyFn(
118
118
  : new proxyApplyFn.ApplyContext(...args);
119
119
  }
120
120
  };
121
+ proxyApplyFn.isCtor = new Map();
122
+ }
123
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
124
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
121
125
  }
122
126
  const fnStr = fn.toString();
123
127
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -130,7 +134,7 @@ function proxyApplyFn(
130
134
  return Reflect.get(target, prop);
131
135
  },
132
136
  };
133
- if ( fn.prototype?.constructor === fn ) {
137
+ if ( proxyApplyFn.isCtor.get(target) ) {
134
138
  proxyDetails.construct = function(target, args) {
135
139
  return handler(proxyApplyFn.CtorContext.factory(target, args));
136
140
  };
@@ -118,6 +118,10 @@ function proxyApplyFn(
118
118
  : new proxyApplyFn.ApplyContext(...args);
119
119
  }
120
120
  };
121
+ proxyApplyFn.isCtor = new Map();
122
+ }
123
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
124
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
121
125
  }
122
126
  const fnStr = fn.toString();
123
127
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -130,7 +134,7 @@ function proxyApplyFn(
130
134
  return Reflect.get(target, prop);
131
135
  },
132
136
  };
133
- if ( fn.prototype?.constructor === fn ) {
137
+ if ( proxyApplyFn.isCtor.get(target) ) {
134
138
  proxyDetails.construct = function(target, args) {
135
139
  return handler(proxyApplyFn.CtorContext.factory(target, args));
136
140
  };
@@ -177,6 +177,10 @@ function proxyApplyFn(
177
177
  : new proxyApplyFn.ApplyContext(...args);
178
178
  }
179
179
  };
180
+ proxyApplyFn.isCtor = new Map();
181
+ }
182
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
183
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
180
184
  }
181
185
  const fnStr = fn.toString();
182
186
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -189,7 +193,7 @@ function proxyApplyFn(
189
193
  return Reflect.get(target, prop);
190
194
  },
191
195
  };
192
- if ( fn.prototype?.constructor === fn ) {
196
+ if ( proxyApplyFn.isCtor.get(target) ) {
193
197
  proxyDetails.construct = function(target, args) {
194
198
  return handler(proxyApplyFn.CtorContext.factory(target, args));
195
199
  };
@@ -112,6 +112,10 @@ function proxyApplyFn(
112
112
  : new proxyApplyFn.ApplyContext(...args);
113
113
  }
114
114
  };
115
+ proxyApplyFn.isCtor = new Map();
116
+ }
117
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
118
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
115
119
  }
116
120
  const fnStr = fn.toString();
117
121
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -124,7 +128,7 @@ function proxyApplyFn(
124
128
  return Reflect.get(target, prop);
125
129
  },
126
130
  };
127
- if ( fn.prototype?.constructor === fn ) {
131
+ if ( proxyApplyFn.isCtor.get(target) ) {
128
132
  proxyDetails.construct = function(target, args) {
129
133
  return handler(proxyApplyFn.CtorContext.factory(target, args));
130
134
  };
@@ -118,6 +118,10 @@ function proxyApplyFn(
118
118
  : new proxyApplyFn.ApplyContext(...args);
119
119
  }
120
120
  };
121
+ proxyApplyFn.isCtor = new Map();
122
+ }
123
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
124
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
121
125
  }
122
126
  const fnStr = fn.toString();
123
127
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -130,7 +134,7 @@ function proxyApplyFn(
130
134
  return Reflect.get(target, prop);
131
135
  },
132
136
  };
133
- if ( fn.prototype?.constructor === fn ) {
137
+ if ( proxyApplyFn.isCtor.get(target) ) {
134
138
  proxyDetails.construct = function(target, args) {
135
139
  return handler(proxyApplyFn.CtorContext.factory(target, args));
136
140
  };
@@ -118,6 +118,10 @@ function proxyApplyFn(
118
118
  : new proxyApplyFn.ApplyContext(...args);
119
119
  }
120
120
  };
121
+ proxyApplyFn.isCtor = new Map();
122
+ }
123
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
124
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
121
125
  }
122
126
  const fnStr = fn.toString();
123
127
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -130,7 +134,7 @@ function proxyApplyFn(
130
134
  return Reflect.get(target, prop);
131
135
  },
132
136
  };
133
- if ( fn.prototype?.constructor === fn ) {
137
+ if ( proxyApplyFn.isCtor.get(target) ) {
134
138
  proxyDetails.construct = function(target, args) {
135
139
  return handler(proxyApplyFn.CtorContext.factory(target, args));
136
140
  };
@@ -177,6 +177,10 @@ function proxyApplyFn(
177
177
  : new proxyApplyFn.ApplyContext(...args);
178
178
  }
179
179
  };
180
+ proxyApplyFn.isCtor = new Map();
181
+ }
182
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
183
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
180
184
  }
181
185
  const fnStr = fn.toString();
182
186
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -189,7 +193,7 @@ function proxyApplyFn(
189
193
  return Reflect.get(target, prop);
190
194
  },
191
195
  };
192
- if ( fn.prototype?.constructor === fn ) {
196
+ if ( proxyApplyFn.isCtor.get(target) ) {
193
197
  proxyDetails.construct = function(target, args) {
194
198
  return handler(proxyApplyFn.CtorContext.factory(target, args));
195
199
  };
@@ -340,8 +340,8 @@ function getRandomTokenFn() {
340
340
  /******************************************************************************/
341
341
 
342
342
  const scriptletGlobals = {}; // eslint-disable-line
343
- const argsList = [["Object.prototype.autoplay","assets"],["Object.prototype.dispatcher","/feed|set/"],["Object.prototype.loadAdvertScriptMode","/yastatic\\.net/"],["document.createElement","checkAboba"],["document.getElementById","/723-|ai-2-/"],["fetch","eval"],["Object.prototype.parallax","window.onload"],["Object.prototype.crossDomain","ecbrStart"]];
344
- const hostnamesMap = new Map([["tvzvezda.ru",0],["vk.com",1],["vk.ru",1],["ya.ru",2],["shadowcore.ru",3],["ai-next.ru",4],["forums.rusmedserv.com",5],["porno365.*",6],["www.ukr.net",7]]);
343
+ const argsList = [["Object.prototype.autoplay","assets"],["Object.prototype.loadAdvertScriptMode","/yastatic\\.net/"],["document.createElement","checkAboba"],["document.getElementById","/723-|ai-2-/"],["fetch","eval"],["Object.prototype.parallax","window.onload"],["HTMLVideoElement.prototype.play","onCanPlay"],["Object.prototype.crossDomain","ecbrStart"]];
344
+ const hostnamesMap = new Map([["tvzvezda.ru",0],["ya.ru",1],["shadowcore.ru",2],["ai-next.ru",3],["forums.rusmedserv.com",4],["porno365.*",5],["tass.ru",6],["www.ukr.net",7]]);
345
345
  const exceptionsMap = new Map([]);
346
346
  const hasEntities = true;
347
347
  const hasAncestors = false;
@@ -170,6 +170,10 @@ function proxyApplyFn(
170
170
  : new proxyApplyFn.ApplyContext(...args);
171
171
  }
172
172
  };
173
+ proxyApplyFn.isCtor = new Map();
174
+ }
175
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
176
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
173
177
  }
174
178
  const fnStr = fn.toString();
175
179
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -182,7 +186,7 @@ function proxyApplyFn(
182
186
  return Reflect.get(target, prop);
183
187
  },
184
188
  };
185
- if ( fn.prototype?.constructor === fn ) {
189
+ if ( proxyApplyFn.isCtor.get(target) ) {
186
190
  proxyDetails.construct = function(target, args) {
187
191
  return handler(proxyApplyFn.CtorContext.factory(target, args));
188
192
  };
@@ -417,9 +421,9 @@ function shouldDebug(details) {
417
421
  /******************************************************************************/
418
422
 
419
423
  const scriptletGlobals = {}; // eslint-disable-line
420
- const argsList = [["/^(?:contextmenu|keydown)$/"],["/beforeunload|pagehide/","0x"],["/click|load/","popMagic"],["/click|mousedown/","popunder"],["/click|mousedown/","setClickedUrl"],["/mouse/","cursorVisible"],["DOMContentLoaded","fullscreen-ad"],["DOMContentLoaded",".j-mini-player__video"],["DOMContentLoaded","/EventTracker|utm_campaign/"],["DOMContentLoaded","0x"],["DOMContentLoaded","StrategyHandler"],["DOMContentLoaded","_Modal"],["DOMContentLoaded","encodedUrl"],["DOMContentLoaded","exo_tracker"],["DOMContentLoaded","feedback"],["click","","elements","a[href*=\"?from=\"]"],["click","","elements","a[href*=\"utm_campaign\"]"],["click","","elements","[class^=\"plotsLine_\"] > div"],["click","[native code]"],["click","current","elements","[data-testid=\"embed-wrapper\"]"],["click","matches"],["click","pop"],["copy","extra"],["copy","getSelection"],["copy","pagelink"],["download","isMonetized"],["error","","elements","[data-status=\"loading\"]"],["error","removeChild"],["getexoloader"],["load","AdBlock"],["load","detect-modal"],["load","mamydirect"],["loadstart","isImmediatePropagationStopped"],["mousedown","pop.doEvent"],["scroll","getBoundingClientRect"],["scroll","players"],["scroll","window.history.pushState"],["visibilitychange","document.hidden"],["/contextmenu|copy|keydown|selectstart/"],["DOMContentLoaded","click_time"],["/click|destroy|mousedown/","","elements",".html-fishing"],["visibilitychange","captureContext"]];
421
- const hostnamesMap = new Map([["7days.ru",[0,41]],["drive2.ru",1],["shedevrum.ai",1],["fastpic.org",[2,28]],["biqle.org",3],["biqle.ru",3],["lrepacks.net",[4,21]],["fm-app.ru",5],["tvapp.su",5],["yootv.ru",5],["cq.ru",6],["rambler.ru",[7,22]],["sibnet.ru",8],["sports.ru",9],["buhplatforma.com.ua",10],["dzplatforma.com.ua",10],["medplatforma.com.ua",10],["oblikbudget.com.ua",10],["oplatforma.com.ua",10],["pro-op.com.ua",10],["prokadry.com.ua",10],["doramaland.plus",11],["1progs.me",12],["xv-ru.com",13],["litnet.com",14],["vedomosti.ru",15],["regnum.news",16],["regnum.ru",16],["tproger.ru",16],["116.ru",17],["14.ru",17],["161.ru",17],["164.ru",17],["173.ru",17],["178.ru",17],["26.ru",17],["29.ru",17],["35.ru",17],["43.ru",17],["45.ru",17],["48.ru",17],["51.ru",17],["53.ru",17],["56.ru",17],["59.ru",17],["60.ru",17],["63.ru",17],["68.ru",17],["71.ru",17],["72.ru",17],["74.ru",17],["76.ru",17],["86.ru",17],["89.ru",17],["93.ru",17],["chita.ru",17],["e1.ru",17],["ircity.ru",17],["izh1.ru",17],["mgorsk.ru",17],["msk1.ru",17],["ngs.ru",17],["ngs22.ru",17],["ngs24.ru",17],["ngs42.ru",17],["ngs55.ru",17],["ngs70.ru",17],["nn.ru",17],["sochi1.ru",17],["sterlitamak1.ru",17],["tolyatty.ru",17],["ufa1.ru",17],["v1.ru",17],["vladivostok1.ru",17],["voronezh1.ru",17],["www.fontanka.ru",[17,41]],["ya62.ru",17],["softonic.ru",18],["rutube.ru",[19,37]],["smotrim.ru",20],["kp.kg",[23,41]],["kp.kz",[23,41]],["kp.md",[23,41]],["kp.ru",[23,41]],["rbc.ru",23],["sportrbc.ru",23],["carservic.ru",24],["iptv.org.ua",24],["newxboxone.ru",24],["tva.org.ua",24],["ufchgu.ru",24],["megaprogz.ru",25],["programhub.ru",25],["trychatgpt.ru",26],["dtf.ru",27],["romakatya.ru",29],["blackwot.ru",30],["overclockers.ru",31],["bonus-tv.ru",32],["kinoblin.ru",33],["pornoakt.info",33],["serialai.ru",33],["m.lenta.ru",34],["www.vesti.ru",35],["lenta.ru",36],["autonews.co.ua",38],["in-poland.com",38],["liveball.*",38],["ukrainianwall.com",38],["fap-guru.*",39],["seks-studentki.*",39],["sex-studentki.*",39],["e.mail.ru",40],["octavius.mail.ru",40],["cdn.viqeo.tv",41],["kinonews.ru",41],["mk.ru",41],["ohotniki.ru",41],["portalvirtualreality.ru",41],["radiokp.ru",41],["sportkp.ru",41],["the-day.ru",41],["woman.ru",41]]);
422
- const exceptionsMap = new Map([["new.fastpic.org",[2,28]],["id.rambler.ru",[7,22]],["vp.rambler.ru",[7,22]],["player.smotrim.ru",[20]],["mail.rambler.ru",[22]]]);
424
+ const argsList = [["/^(?:contextmenu|keydown)$/"],["/beforeunload|pagehide/","0x"],["/click|load/","popMagic"],["/click|mousedown/","popunder"],["/click|mousedown/","setClickedUrl"],["/mouse/","cursorVisible"],["DOMContentLoaded","fullscreen-ad"],["DOMContentLoaded",".j-mini-player__video"],["DOMContentLoaded","/EventTracker|utm_campaign/"],["DOMContentLoaded","0x"],["DOMContentLoaded","StrategyHandler"],["DOMContentLoaded","_Modal"],["DOMContentLoaded","encodedUrl"],["DOMContentLoaded","exo_tracker"],["DOMContentLoaded","feedback"],["click","","elements","a[href*=\"?from=\"]"],["click","","elements","a[href*=\"utm_campaign\"]"],["click","","elements","a[href*=\"utm_campaign=\"]"],["click","","elements","[class^=\"plotsLine_\"] > div"],["click","[native code]"],["click","current","elements","[data-testid=\"embed-wrapper\"]"],["click","matches"],["click","pop"],["copy","extra"],["copy","getSelection"],["copy","pagelink"],["download","isMonetized"],["error","","elements","[data-status=\"loading\"]"],["getexoloader"],["load","AdBlock"],["load","detect-modal"],["load","mamydirect"],["loadstart","isImmediatePropagationStopped"],["message","__messagesAtom"],["mousedown","pop.doEvent"],["scroll","getBoundingClientRect"],["scroll","players"],["scroll","window.history.pushState"],["visibilitychange","document.hidden"],["/contextmenu|copy|keydown|selectstart/"],["DOMContentLoaded","click_time"],["/click|destroy|mousedown/","","elements",".html-fishing"],["pause","","elements","video[class*=\"HLSPlayback_player\"]"],["visibilitychange","captureContext"]];
425
+ const hostnamesMap = new Map([["7days.ru",[0,43]],["drive2.ru",1],["shedevrum.ai",1],["fastpic.org",[2,28]],["biqle.org",3],["biqle.ru",3],["lrepacks.net",[4,22]],["fm-app.ru",5],["tvapp.su",5],["yootv.ru",5],["cq.ru",6],["rambler.ru",[7,23]],["sibnet.ru",8],["sports.ru",9],["buhplatforma.com.ua",10],["dzplatforma.com.ua",10],["medplatforma.com.ua",10],["oblikbudget.com.ua",10],["oplatforma.com.ua",10],["pro-op.com.ua",10],["prokadry.com.ua",10],["doramaland.plus",11],["1progs.me",12],["xv-ru.com",13],["litnet.com",14],["vedomosti.ru",15],["regnum.news",16],["regnum.ru",16],["tproger.ru",16],["forbes.ru",17],["116.ru",18],["14.ru",18],["161.ru",18],["164.ru",18],["173.ru",18],["178.ru",18],["26.ru",18],["29.ru",18],["35.ru",18],["43.ru",18],["45.ru",18],["48.ru",18],["51.ru",18],["53.ru",18],["56.ru",18],["59.ru",18],["60.ru",18],["63.ru",18],["68.ru",18],["71.ru",18],["72.ru",18],["74.ru",18],["76.ru",18],["86.ru",18],["89.ru",18],["93.ru",18],["chita.ru",18],["e1.ru",18],["ircity.ru",18],["izh1.ru",18],["mgorsk.ru",18],["msk1.ru",18],["ngs.ru",18],["ngs22.ru",18],["ngs24.ru",18],["ngs42.ru",18],["ngs55.ru",18],["ngs70.ru",18],["nn.ru",18],["sochi1.ru",18],["sterlitamak1.ru",18],["tolyatty.ru",18],["ufa1.ru",18],["v1.ru",18],["vladivostok1.ru",18],["voronezh1.ru",18],["www.fontanka.ru",[18,43]],["ya62.ru",18],["softonic.ru",19],["rutube.ru",[20,33,38]],["smotrim.ru",21],["kp.kg",[24,43]],["kp.kz",[24,43]],["kp.md",[24,43]],["kp.ru",[24,43]],["rbc.ru",24],["sportrbc.ru",24],["carservic.ru",25],["iptv.org.ua",25],["newxboxone.ru",25],["tva.org.ua",25],["ufchgu.ru",25],["megaprogz.ru",26],["programhub.ru",26],["trychatgpt.ru",27],["romakatya.ru",29],["blackwot.ru",30],["overclockers.ru",31],["bonus-tv.ru",32],["kinoblin.ru",34],["pornoakt.info",34],["serialai.ru",34],["m.lenta.ru",35],["www.vesti.ru",36],["lenta.ru",37],["autonews.co.ua",39],["in-poland.com",39],["liveball.*",39],["ukrainianwall.com",39],["fap-guru.*",40],["seks-studentki.*",40],["sex-studentki.*",40],["e.mail.ru",41],["octavius.mail.ru",41],["tass.ru",42],["cdn.viqeo.tv",43],["kinonews.ru",43],["mk.ru",43],["ohotniki.ru",43],["portalvirtualreality.ru",43],["radiokp.ru",43],["sportkp.ru",43],["the-day.ru",43],["woman.ru",43]]);
426
+ const exceptionsMap = new Map([["new.fastpic.org",[2,28]],["id.rambler.ru",[7,23]],["vp.rambler.ru",[7,23]],["player.smotrim.ru",[21]],["mail.rambler.ru",[23]]]);
423
427
  const hasEntities = true;
424
428
  const hasAncestors = false;
425
429
 
@@ -112,6 +112,10 @@ function proxyApplyFn(
112
112
  : new proxyApplyFn.ApplyContext(...args);
113
113
  }
114
114
  };
115
+ proxyApplyFn.isCtor = new Map();
116
+ }
117
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
118
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
115
119
  }
116
120
  const fnStr = fn.toString();
117
121
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -124,7 +128,7 @@ function proxyApplyFn(
124
128
  return Reflect.get(target, prop);
125
129
  },
126
130
  };
127
- if ( fn.prototype?.constructor === fn ) {
131
+ if ( proxyApplyFn.isCtor.get(target) ) {
128
132
  proxyDetails.construct = function(target, args) {
129
133
  return handler(proxyApplyFn.CtorContext.factory(target, args));
130
134
  };
@@ -266,6 +266,10 @@ function proxyApplyFn(
266
266
  : new proxyApplyFn.ApplyContext(...args);
267
267
  }
268
268
  };
269
+ proxyApplyFn.isCtor = new Map();
270
+ }
271
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
272
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
269
273
  }
270
274
  const fnStr = fn.toString();
271
275
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -278,7 +282,7 @@ function proxyApplyFn(
278
282
  return Reflect.get(target, prop);
279
283
  },
280
284
  };
281
- if ( fn.prototype?.constructor === fn ) {
285
+ if ( proxyApplyFn.isCtor.get(target) ) {
282
286
  proxyDetails.construct = function(target, args) {
283
287
  return handler(proxyApplyFn.CtorContext.factory(target, args));
284
288
  };
@@ -118,6 +118,10 @@ function proxyApplyFn(
118
118
  : new proxyApplyFn.ApplyContext(...args);
119
119
  }
120
120
  };
121
+ proxyApplyFn.isCtor = new Map();
122
+ }
123
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
124
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
121
125
  }
122
126
  const fnStr = fn.toString();
123
127
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -130,7 +134,7 @@ function proxyApplyFn(
130
134
  return Reflect.get(target, prop);
131
135
  },
132
136
  };
133
- if ( fn.prototype?.constructor === fn ) {
137
+ if ( proxyApplyFn.isCtor.get(target) ) {
134
138
  proxyDetails.construct = function(target, args) {
135
139
  return handler(proxyApplyFn.CtorContext.factory(target, args));
136
140
  };
@@ -118,6 +118,10 @@ function proxyApplyFn(
118
118
  : new proxyApplyFn.ApplyContext(...args);
119
119
  }
120
120
  };
121
+ proxyApplyFn.isCtor = new Map();
122
+ }
123
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
124
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
121
125
  }
122
126
  const fnStr = fn.toString();
123
127
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -130,7 +134,7 @@ function proxyApplyFn(
130
134
  return Reflect.get(target, prop);
131
135
  },
132
136
  };
133
- if ( fn.prototype?.constructor === fn ) {
137
+ if ( proxyApplyFn.isCtor.get(target) ) {
134
138
  proxyDetails.construct = function(target, args) {
135
139
  return handler(proxyApplyFn.CtorContext.factory(target, args));
136
140
  };
@@ -177,6 +177,10 @@ function proxyApplyFn(
177
177
  : new proxyApplyFn.ApplyContext(...args);
178
178
  }
179
179
  };
180
+ proxyApplyFn.isCtor = new Map();
181
+ }
182
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
183
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
180
184
  }
181
185
  const fnStr = fn.toString();
182
186
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -189,7 +193,7 @@ function proxyApplyFn(
189
193
  return Reflect.get(target, prop);
190
194
  },
191
195
  };
192
- if ( fn.prototype?.constructor === fn ) {
196
+ if ( proxyApplyFn.isCtor.get(target) ) {
193
197
  proxyDetails.construct = function(target, args) {
194
198
  return handler(proxyApplyFn.CtorContext.factory(target, args));
195
199
  };
@@ -368,9 +368,9 @@ function safeSelf() {
368
368
  /******************************************************************************/
369
369
 
370
370
  const scriptletGlobals = {}; // eslint-disable-line
371
- const argsList = [["#text","РЕКЛАМНЫЙ БЛОК:"],["#text","Реклама"],["#text","Реклама:"],["div","ad-mark__b-unit-wrapper"],["div","мый посетитель!"],["script","decodeURIComponent(escape"],["script","/adBlock|adblock-warning/"],["script","/checkCookie|potapinasty|s_script|tick/"],["script","/document.head.appendChild|document.referrer/"],["script","/gtag\\('event'/"],["script","AdBlocker"],["script","addPlaceholder"],["script","clickedOnContent"],["script","error-report.com"],["script","getComputedStyle"],["script","message_ads"],["script","/initTeasers|initVads/"],["script","violatedDirective"],["script","\"Shadow"]];
372
- const hostnamesMap = new Map([["online-fix.me",0],["farposst.ru",1],["filmitorrent.net",2],["utorr.cc",2],["ya.ru",3],["game4you.top",[4,7]],["innal.top",[4,7]],["naylo.top",[4,7]],["rustorka.com",[4,7]],["rustorka.net",[4,7]],["rustorka.top",[4,7]],["rustorkacom.lib",[4,7]],["nullcms.ru",5],["ritsatv.ru",6],["tapochek.net",8],["inforesist.org",[9,18]],["sports.ru",10],["pikabu.ru",11],["agronews.ua",12],["agroreview.com",12],["newsyou.info",13],["fapvdo.ru",14],["gsm.in.ua",15],["cosplay-porn.*",16],["fap-guru.*",16],["mult-porno.*",16],["sex-studentki.*",16],["mail.ru",17],["24boxing.com.ua",18],["avtovod.com.ua",18],["bigmir.net",18],["bilshe.com",18],["buhgalter.com.ua",18],["buhgalter911.com",18],["businessua.com",18],["censor.net",18],["dengi.ua",18],["ditey.com",18],["epravda.com.ua",18],["f1analytic.com",18],["facenews.ua",18],["factor.ua",18],["football-ukraine.com",18],["football24.ua",18],["footballgazeta.com",18],["footballtransfer.com.ua",18],["gazeta.ua",18],["glianec.com",18],["gorod.dp.ua",18],["hvylya.net",18],["i.ua",18],["isport.ua",18],["ivona.ua",18],["kolobok.ua",18],["kriminal.tv",18],["liga.net",18],["meteo.ua",18],["meteofor.com.ua",18],["nnovosti.info",18],["nv.ua",18],["panno4ka.net",18],["pogodaua.com",18],["pravda.com.ua",18],["real-vin.com",18],["sportanalytic.com",18],["stravy.net",18],["tochka.net",18],["tv.ua",18],["viva.ua",18],["vsetv.com",18],["www.ukr.net",18],["zdorovia.com.ua",18]]);
373
- const exceptionsMap = new Map([["3igames.mail.ru",[17]],["account.mail.ru",[17]],["auto.mail.ru",[17]],["biz.mail.ru",[17]],["blog.mail.ru",[17]],["bonus.mail.ru",[17]],["calendar.mail.ru",[17]],["calls.mail.ru",[17]],["cloud.mail.ru",[17]],["connect.mail.ru",[17]],["deti.mail.ru",[17]],["dobro.mail.ru",[17]],["e.mail.ru",[17]],["finance.mail.ru",[17]],["gibdd.mail.ru",[17]],["health.mail.ru",[17]],["help.mail.ru",[17]],["hi-tech.mail.ru",[17]],["horo.mail.ru",[17]],["kino.mail.ru",[17]],["lady.mail.ru",[17]],["love.mail.ru",[17]],["mcs.mail.ru",[17]],["minigames.mail.ru",[17]],["my.mail.ru",[17]],["news.mail.ru",[17]],["o2.mail.ru",[17]],["octavius.mail.ru",[17]],["okminigames.mail.ru",[17]],["otvet.mail.ru",[17]],["pets.mail.ru",[17]],["player-smotri.mail.ru",[17]],["pogoda.mail.ru",[17]],["top.mail.ru",[17]],["touch.mail.ru",[17]],["tv.mail.ru",[17]],["vfokuse.mail.ru",[17]],["widgets.mail.ru",[17]]]);
371
+ const argsList = [["#text","РЕКЛАМНЫЙ БЛОК:"],["#text","Реклама"],["#text","Реклама:"],["div","ad-mark__b-unit-wrapper"],["div","мый посетитель!"],["script","decodeURIComponent(escape"],["script","/adBlock|adblock-warning/"],["script","/checkCookie|potapinasty|s_script|tick/"],["script","/document.head.appendChild|document.referrer/"],["script","/gtag\\('event'/"],["script","AdBlocker"],["script","addPlaceholder"],["script","clickedOnContent"],["script","createAdblockBlock"],["script","error-report.com"],["script","getComputedStyle"],["script","message_ads"],["script","/initTeasers|initVads/"],["script","violatedDirective"],["script","\"Shadow"]];
372
+ const hostnamesMap = new Map([["online-fix.me",0],["farposst.ru",1],["filmitorrent.net",2],["utorr.cc",2],["ya.ru",3],["game4you.top",[4,7]],["innal.top",[4,7]],["naylo.top",[4,7]],["rustorka.com",[4,7]],["rustorka.net",[4,7]],["rustorka.top",[4,7]],["rustorkacom.lib",[4,7]],["nullcms.ru",5],["ritsatv.ru",6],["tapochek.net",8],["inforesist.org",[9,19]],["sports.ru",10],["pikabu.ru",11],["agronews.ua",12],["agroreview.com",12],["ahen.me",13],["newsyou.info",14],["fapvdo.ru",15],["gsm.in.ua",16],["cosplay-porn.*",17],["fap-guru.*",17],["mult-porno.*",17],["sex-studentki.*",17],["mail.ru",18],["24boxing.com.ua",19],["avtovod.com.ua",19],["bigmir.net",19],["bilshe.com",19],["buhgalter.com.ua",19],["buhgalter911.com",19],["businessua.com",19],["censor.net",19],["dengi.ua",19],["ditey.com",19],["epravda.com.ua",19],["f1analytic.com",19],["facenews.ua",19],["factor.ua",19],["football-ukraine.com",19],["football24.ua",19],["footballgazeta.com",19],["footballtransfer.com.ua",19],["gazeta.ua",19],["glianec.com",19],["gorod.dp.ua",19],["hvylya.net",19],["i.ua",19],["isport.ua",19],["ivona.ua",19],["kolobok.ua",19],["kriminal.tv",19],["liga.net",19],["meteo.ua",19],["meteofor.com.ua",19],["nnovosti.info",19],["nv.ua",19],["panno4ka.net",19],["pogodaua.com",19],["pravda.com.ua",19],["real-vin.com",19],["sportanalytic.com",19],["stravy.net",19],["tochka.net",19],["tv.ua",19],["viva.ua",19],["vsetv.com",19],["www.ukr.net",19],["zdorovia.com.ua",19]]);
373
+ const exceptionsMap = new Map([["3igames.mail.ru",[18]],["account.mail.ru",[18]],["auto.mail.ru",[18]],["biz.mail.ru",[18]],["blog.mail.ru",[18]],["bonus.mail.ru",[18]],["calendar.mail.ru",[18]],["calls.mail.ru",[18]],["cloud.mail.ru",[18]],["connect.mail.ru",[18]],["deti.mail.ru",[18]],["dobro.mail.ru",[18]],["e.mail.ru",[18]],["finance.mail.ru",[18]],["gibdd.mail.ru",[18]],["health.mail.ru",[18]],["help.mail.ru",[18]],["hi-tech.mail.ru",[18]],["horo.mail.ru",[18]],["kino.mail.ru",[18]],["lady.mail.ru",[18]],["love.mail.ru",[18]],["mcs.mail.ru",[18]],["minigames.mail.ru",[18]],["my.mail.ru",[18]],["news.mail.ru",[18]],["o2.mail.ru",[18]],["octavius.mail.ru",[18]],["okminigames.mail.ru",[18]],["otvet.mail.ru",[18]],["pets.mail.ru",[18]],["player-smotri.mail.ru",[18]],["pogoda.mail.ru",[18]],["top.mail.ru",[18]],["touch.mail.ru",[18]],["tv.mail.ru",[18]],["vfokuse.mail.ru",[18]],["widgets.mail.ru",[18]]]);
374
374
  const hasEntities = true;
375
375
  const hasAncestors = false;
376
376
 
@@ -344,8 +344,8 @@ function runAt(fn, when) {
344
344
  /******************************************************************************/
345
345
 
346
346
  const scriptletGlobals = {}; // eslint-disable-line
347
- const argsList = [["._1z_ ._21_","style",""],[".comment-media .andropov-video video","controls","true"],[".cycle-carousel-wrap > a.bottom_slide__item > img","src","[data-src]"],[".media .andropov-video video","controls","true"],[".owl-item > a > img","src","[data-src]"],["[class^=\"articleBlockVideo_\"] video","controls","true"],["img[src=\"https://overclockers.ru/assets/logo_gray_stub.gif\"]","src","[data-src]"],["video","controls","true"],["video[controls=\"controls\"]","controls","true"],["#progress-value","data-timer","25"]];
348
- const hostnamesMap = new Map([["playvillage.ru",0],["dtf.ru",[1,3]],["vc.ru",[1,3]],["fishki.net",2],["eneyida.tv",4],["fontanka.ru",5],["overclockers.ru",6],["joyreactor.cc",7],["reactor.cc",7],["3dnews.ru",8],["howdyho.*",9]]);
347
+ const argsList = [["._1z_ ._21_","style",""],[".comment-media .andropov-video video","controls","true"],[".cycle-carousel-wrap > a.bottom_slide__item > img","src","[data-src]"],[".media .andropov-video video","controls","true"],[".owl-item > a > img","src","[data-src]"],["[class^=\"articleBlockVideo_\"] video","controls","true"],["img[src=\"https://overclockers.ru/assets/logo_gray_stub.gif\"]","src","[data-src]"],["video","controls","true"],["video[controls=\"controls\"]","controls","true"],["#progress-value","data-timer","25"],["video[class*=\"HLSPlayback_player\"]","controls","true"]];
348
+ const hostnamesMap = new Map([["playvillage.ru",0],["dtf.ru",[1,3]],["vc.ru",[1,3]],["fishki.net",2],["eneyida.tv",4],["fontanka.ru",5],["overclockers.ru",6],["joyreactor.cc",7],["reactor.cc",7],["3dnews.ru",8],["howdyho.*",9],["tass.ru",10]]);
349
349
  const exceptionsMap = new Map([]);
350
350
  const hasEntities = true;
351
351
  const hasAncestors = false;
@@ -460,9 +460,9 @@ function validateConstantFn(trusted, raw, extraArgs = {}) {
460
460
  /******************************************************************************/
461
461
 
462
462
  const scriptletGlobals = {}; // eslint-disable-line
463
- const argsList = [["ADV_DISABLED","true"],["Clicks._test_meta_referer","null"],["HTMLVideoElement.prototype.play","{}"],["Object.prototype.AdvObject","noopFunc"],["Object.prototype.AdvertisementManager","undefined"],["Object.prototype.IS_CHECK_REGISTRATION","false"],["Object.prototype.MediaReady","noopFunc"],["Object.prototype.PLAYED","null"],["Object.prototype._currentAgeRestriction","null"],["Object.prototype.adblockSettings","undefined"],["Object.prototype.advert","null"],["Object.prototype.advert","undefined"],["Object.prototype.advertObject","null"],["Object.prototype.afg","true"],["Object.prototype.amp","noopFunc"],["Object.prototype.autoPlay","false"],["Object.prototype.autoPlay","null"],["Object.prototype.autoPopups","undefined"],["Object.prototype.autoplay","false"],["Object.prototype.autoplay","null"],["Object.prototype.autostart","noopFunc"],["Object.prototype.branding","undefined"],["Object.prototype.changeVisible","noopFunc"],["Object.prototype.createBannerItem","null"],["Object.prototype.detect","noopFunc"],["Object.prototype.detectAdblock","noopFunc"],["Object.prototype.detectAdblock","undefined"],["Object.prototype.detectBlockAds","noopFunc"],["Object.prototype.disableAutoplay","true"],["Object.prototype.disablePaste","false"],["Object.prototype.disableSeek","noopFunc"],["Object.prototype.disableSelection","noopFunc"],["Object.prototype.erid","false"],["Object.prototype.getAutoplay","noopFunc"],["Object.prototype.getPlacement","undefined"],["Object.prototype.getUaasConfig","undefined"],["Object.prototype.initialAutoplay","null"],["Object.prototype.isCustomBannerType","undefined"],["Object.prototype.isTurboPage","undefined"],["Object.prototype.livetv-state","true"],["Object.prototype.manualAutoplay_","null"],["Object.prototype.minPlayingVisibleHeight","noopFunc"],["Object.prototype.partnerId","{}"],["Object.prototype.playVideo","noopFunc"],["Object.prototype.utm","false"],["Object.prototype.utm_campaign","false"],["Object.prototype.utm_medium","false"],["Object.prototype.utm_source","false"],["Object.prototype.utm_space","false"],["Object.prototype.utm_term","false"],["PageBottomBanners","undefined"],["String.fromCharCode","trueFunc"],["Unauthorized2","undefined"],["adBlock","false"],["adsenseIsLoaded","true"],["app.book.external","null"],["cadb","false"],["clicks","2"],["countdownNum","0"],["frames.innerWidth","{}"],["g_GazetaNoExchange","true"],["history.replaceState","noopFunc"],["isAdFree","noopFunc"],["localStorage.localstorageGameData",""],["main_air_closed","true"],["navigator.sendBeacon","noopFunc"],["noAdsAtAll","{}"],["pl.getParams.isPlay","null"],["player.options.scroll","false"],["playerOptions.behaviour.autoPlay","false"],["player_options.autoplay","false"],["portal.isRedirectToYandexSearchAfterDownloadEnabled","false"],["timeEnd","1"],["top100Counter","false"],["window.EUMP.plugins.antiblock","noopFunc"],["window.ab","false"],["window.c","4"],["Object.prototype.preroll","undefined"],["flashvars.protect_block",""],["NO_ADV","1"],["Object.prototype.autoPlayParams","false"],["Object.prototype.detectAdBlock","undefined"],["Object.prototype.enableMimic","noopFunc"],["Object.prototype.mimic","undefined"],["Object.prototype.obfuscateParams","undefined"],["Object.prototype.runMimic","noopFunc"],["Object.prototype.useMimic","noopFunc"],["__PHS._.props.html","{}"],["document.title","null"],["mr._mimic.locator.transform","undefined"],["Object.prototype.hasAdBlock","null"],["Object.prototype.AdvertisingManager","noopFunc"],["Object.prototype.autoplay","noopFunc"],["Object.prototype.hasAdBlock","false"]];
464
- const hostnamesMap = new Map([["peers.tv",0],["www.ukr.net",1],["dtf.ru",[2,26]],["vc.ru",2],["ivi.ru",[3,12]],["ictv.ua",4],["inter.ua",4],["k1.ua",4],["novy.tv",4],["ntn.ua",4],["starlight.digital",4],["stb.ua",4],["teleportal.ua",4],["player.vgtrk.com",5],["tv-gubernia.ru",[6,64]],["xsport.ua",7],["1tv.ru",[8,30,74]],["api-video.khl.ru",9],["razlozhi.ru",[10,56]],["ren.tv",11],["rutube.ru",11],["igroutka.ru",13],["kinonews.ru",14],["cdnvideo.ru",15],["eda.ru",15],["mania.gcdn.co",15],["tass.ru",[15,59]],["vp.rambler.ru",[15,41]],["www.rambler.ru",15],["afisha.ru",16],["partnerkin.com",17],["frontend.vh.yandex.ru",[18,33,36,42]],["eagleplatform.com",[19,68]],["embed.dugout.com",20],["sports.ru",21],["dni.expert",22],["dni.ru",22],["kp.kg",22],["kp.kz",22],["kp.md",22],["kp.ru",22],["ladys.media",22],["lifehacker.ru",22],["mk.ru",22],["ohotniki.ru",22],["portalvirtualreality.ru",22],["radiokp.ru",22],["russian.rt.com",22],["sportkp.ru",22],["the-day.ru",22],["woman.ru",22],["womanhit.ru",22],["ati.su",23],["24smi.org",24],["examenpdd.com",25],["retail.ru",27],["embed.twitch.tv",28],["player.twitch.tv",28],["www.mos.ru",29],["kinokong.sk",31],["forbes.ru",[32,44,45,46,47,48,49]],["dzen.ru",[33,34,37,38,42]],["shedevrum.ai",35],["rbc.ru",39],["sportrbc.ru",39],["tenews.org.ua",40],["naydex.net",42],["widgets.kinopoisk.ru",42],["www.kinopoisk.ru",42],["yastatic.net",42],["3dnews.ru",43],["vm.ru",43],["vk.com",[50,52,66]],["vk.ru",[50,52,66]],["free-tor.info",51],["korsars.info",51],["hentai-share.one",53],["in-poland.com",54],["gdz-putina.fun",55],["gdz.ninja",55],["gdz.ru",55],["gdzotputina.club",55],["gdzputina.net",55],["megaresheba.com",55],["megaresheba.ru",55],["resheba.me",55],["spishi.fun",55],["zoobrilka.net",55],["audioportal.su",57],["pb.wtf",58],["pirat.one",58],["piratbit.fun",58],["piratbit.org",58],["piratbit.top",58],["gazeta.ru",[60,61,62]],["playground.ru",63],["116.ru",[65,92]],["14.ru",[65,92]],["161.ru",[65,92]],["164.ru",[65,92]],["173.ru",[65,92]],["178.ru",[65,92]],["26.ru",[65,92]],["29.ru",[65,92]],["35.ru",[65,92]],["43.ru",[65,92]],["45.ru",[65,92]],["48.ru",[65,92]],["51.ru",[65,92]],["53.ru",[65,92]],["56.ru",[65,92]],["59.ru",[65,92]],["60.ru",[65,92]],["63.ru",[65,92]],["68.ru",[65,92]],["71.ru",[65,92]],["72.ru",[65,92]],["74.ru",[65,92]],["76.ru",[65,92]],["86.ru",[65,92]],["89.ru",[65,92]],["93.ru",[65,92]],["chita.ru",[65,92]],["e1.ru",[65,92]],["ircity.ru",[65,92]],["izh1.ru",[65,92]],["mgorsk.ru",[65,92]],["msk1.ru",[65,92]],["ngs.ru",[65,92]],["ngs22.ru",[65,92]],["ngs24.ru",[65,92]],["ngs42.ru",[65,92]],["ngs55.ru",[65,92]],["ngs70.ru",[65,92]],["nn.ru",[65,92]],["sochi1.ru",[65,92]],["sterlitamak1.ru",[65,92]],["tolyatty.ru",[65,92]],["ufa1.ru",[65,92]],["v1.ru",[65,92]],["vladivostok1.ru",[65,92]],["voronezh1.ru",[65,92]],["www.fontanka.ru",[65,92]],["ya62.ru",[65,92]],["player.smotrim.ru",67],["kinescope.io",69],["m24.ru",70],["megaprogz.ru",71],["programhub.ru",71],["softportal.com",72],["rambler.ru",73],["remont-aud.net",75],["wdho.ru",76],["fanserial.*",77],["fanserialstv.net",77],["hdrezka.*",77],["rezka.*",77],["smaxim.*",78],["okminigames.mail.ru",79],["player-smotri.mail.ru",80],["ok.ru",[81,84]],["finance.mail.ru",82],["news.mail.ru",[82,87]],["sportmail.ru",82],["vfokuse.mail.ru",82],["mail.ru",[83,88,89]],["my.mail.ru",85],["pogoda.mail.ru",86],["e.mail.ru",[90,93]],["octavius.mail.ru",90],["mail.ukr.net",91]]);
465
- const exceptionsMap = new Map([["spec.tass.ru",[59]],["calls.mail.ru",[83,88,89]],["e.mail.ru",[83,88,89]],["finance.mail.ru",[83,88,89]],["my.mail.ru",[83,88,89]],["news.mail.ru",[83,88,89]],["o2.mail.ru",[83,88,89]],["octavius.mail.ru",[83,88,89]],["sportmail.ru",[83]],["touch.mail.ru",[83,88,89]],["vfokuse.mail.ru",[83,88,89]],["3igames.mail.ru",[88,89]],["account.mail.ru",[88,89]],["auto.mail.ru",[88,89]],["biz.mail.ru",[88,89]],["bonus.mail.ru",[88,89]],["calendar.mail.ru",[88,89]],["cloud.mail.ru",[88,89]],["connect.mail.ru",[88,89]],["deti.mail.ru",[88,89]],["dobro.mail.ru",[88,89]],["gibdd.mail.ru",[88,89]],["health.mail.ru",[88,89]],["help.mail.ru",[88,89]],["hi-tech.mail.ru",[88,89]],["horo.mail.ru",[88,89]],["kino.mail.ru",[88,89]],["lady.mail.ru",[88,89]],["love.mail.ru",[88,89]],["mcs.mail.ru",[88,89]],["minigames.mail.ru",[88,89]],["okminigames.mail.ru",[88,89]],["otvet.mail.ru",[88,89]],["pets.mail.ru",[88,89]],["player-smotri.mail.ru",[88,89]],["pogoda.mail.ru",[88,89]],["top.mail.ru",[88,89]],["tv.mail.ru",[88,89]],["widgets.mail.ru",[88,89]],["blog.mail.ru",[89]]]);
463
+ const argsList = [["ADV_DISABLED","true"],["Clicks._test_meta_referer","null"],["HTMLVideoElement.prototype.play","{}"],["Object.prototype.AdChoices","undefined"],["Object.prototype.AdvObject","noopFunc"],["Object.prototype.AdvertisementManager","undefined"],["Object.prototype.IS_CHECK_REGISTRATION","false"],["Object.prototype.MediaReady","noopFunc"],["Object.prototype.PLAYED","null"],["Object.prototype._currentAgeRestriction","null"],["Object.prototype.adblockSettings","undefined"],["Object.prototype.advert","null"],["Object.prototype.advert","undefined"],["Object.prototype.advertObject","null"],["Object.prototype.afg","true"],["Object.prototype.amp","noopFunc"],["Object.prototype.autoPlay","false"],["Object.prototype.autoPlay","null"],["Object.prototype.autoPopups","undefined"],["Object.prototype.autoplay","false"],["Object.prototype.autoplay","null"],["Object.prototype.autostart","noopFunc"],["Object.prototype.branding","undefined"],["Object.prototype.changeVisible","noopFunc"],["Object.prototype.createBannerItem","null"],["Object.prototype.detect","noopFunc"],["Object.prototype.detectAdblock","noopFunc"],["Object.prototype.detectAdblock","undefined"],["Object.prototype.detectBlockAds","noopFunc"],["Object.prototype.disableAutoplay","true"],["Object.prototype.disablePaste","false"],["Object.prototype.disableSeek","noopFunc"],["Object.prototype.disableSelection","noopFunc"],["Object.prototype.getAutoplay","noopFunc"],["Object.prototype.getPlacement","undefined"],["Object.prototype.getUaasConfig","undefined"],["Object.prototype.initialAutoplay","null"],["Object.prototype.isCustomBannerType","undefined"],["Object.prototype.isTurboPage","undefined"],["Object.prototype.livetv-state","true"],["Object.prototype.manualAutoplay_","null"],["Object.prototype.minPlayingVisibleHeight","noopFunc"],["Object.prototype.partnerId","{}"],["Object.prototype.playVideo","noopFunc"],["PageBottomBanners","undefined"],["String.fromCharCode","trueFunc"],["Unauthorized2","undefined"],["adBlock","false"],["adsenseIsLoaded","true"],["app.book.external","null"],["cadb","false"],["clicks","2"],["countdownNum","0"],["g_GazetaNoExchange","true"],["history.replaceState","noopFunc"],["isAdFree","noopFunc"],["localStorage.localstorageGameData",""],["main_air_closed","true"],["navigator.sendBeacon","noopFunc"],["noAdsAtAll","{}"],["pl.getParams.isPlay","null"],["player.options.scroll","false"],["playerOptions.behaviour.autoPlay","false"],["player_options.autoplay","false"],["portal.isRedirectToYandexSearchAfterDownloadEnabled","false"],["timeEnd","1"],["top100Counter","false"],["window.EUMP.plugins.antiblock","noopFunc"],["window.ab","false"],["window.c","4"],["Object.prototype.preroll","undefined"],["flashvars.protect_block",""],["NO_ADV","1"],["Object.prototype.autoPlayParams","false"],["Object.prototype.detectAdBlock","undefined"],["Object.prototype.enableMimic","noopFunc"],["Object.prototype.mimic","undefined"],["Object.prototype.obfuscateParams","undefined"],["Object.prototype.runMimic","noopFunc"],["Object.prototype.useMimic","noopFunc"],["__PHS._.props.html","{}"],["document.title","null"],["mr._mimic.locator.transform","undefined"],["Object.prototype.hasAdBlock","null"],["Object.prototype.autoPlay","{}"],["Object.prototype.AdvertisingManager","noopFunc"],["Object.prototype.autoplay","noopFunc"],["Object.prototype.hasAdBlock","false"]];
464
+ const hostnamesMap = new Map([["peers.tv",0],["www.ukr.net",1],["dtf.ru",[2,27]],["vc.ru",2],["vk.com",[3,44,46,59]],["vk.ru",[3,44,46,59]],["ivi.ru",[4,13]],["ictv.ua",5],["inter.ua",5],["k1.ua",5],["novy.tv",5],["ntn.ua",5],["starlight.digital",5],["stb.ua",5],["teleportal.ua",5],["player.vgtrk.com",6],["tv-gubernia.ru",[7,57]],["xsport.ua",8],["1tv.ru",[9,31,67]],["api-video.khl.ru",10],["razlozhi.ru",[11,50]],["ren.tv",12],["rutube.ru",12],["igroutka.ru",14],["kinonews.ru",15],["cdnvideo.ru",16],["eda.ru",16],["mania.gcdn.co",16],["vp.rambler.ru",[16,41]],["www.rambler.ru",16],["afisha.ru",17],["partnerkin.com",18],["frontend.vh.yandex.ru",[19,33,36,42]],["eagleplatform.com",[20,61]],["embed.dugout.com",21],["sports.ru",22],["dni.expert",23],["dni.ru",23],["kp.kg",23],["kp.kz",23],["kp.md",23],["kp.ru",23],["ladys.media",23],["lifehacker.ru",23],["mk.ru",23],["ohotniki.ru",23],["portalvirtualreality.ru",23],["radiokp.ru",23],["russian.rt.com",23],["sportkp.ru",23],["the-day.ru",23],["woman.ru",23],["womanhit.ru",23],["ati.su",24],["24smi.org",25],["examenpdd.com",26],["retail.ru",28],["embed.twitch.tv",29],["player.twitch.tv",29],["www.mos.ru",30],["kinokong.sk",32],["dzen.ru",[33,34,37,38,42]],["shedevrum.ai",35],["rbc.ru",39],["sportrbc.ru",39],["tenews.org.ua",40],["naydex.net",42],["widgets.kinopoisk.ru",42],["www.kinopoisk.ru",42],["yastatic.net",42],["3dnews.ru",43],["vm.ru",43],["free-tor.info",45],["korsars.info",45],["hentai-share.one",47],["in-poland.com",48],["gdz-putina.fun",49],["gdz.ninja",49],["gdz.ru",49],["gdzotputina.club",49],["gdzputina.net",49],["megaresheba.com",49],["megaresheba.ru",49],["resheba.me",49],["spishi.fun",49],["zoobrilka.net",49],["audioportal.su",51],["pb.wtf",52],["pirat.one",52],["piratbit.fun",52],["piratbit.org",52],["piratbit.top",52],["gazeta.ru",[53,54,55]],["playground.ru",56],["116.ru",[58,86]],["14.ru",[58,86]],["161.ru",[58,86]],["164.ru",[58,86]],["173.ru",[58,86]],["178.ru",[58,86]],["26.ru",[58,86]],["29.ru",[58,86]],["35.ru",[58,86]],["43.ru",[58,86]],["45.ru",[58,86]],["48.ru",[58,86]],["51.ru",[58,86]],["53.ru",[58,86]],["56.ru",[58,86]],["59.ru",[58,86]],["60.ru",[58,86]],["63.ru",[58,86]],["68.ru",[58,86]],["71.ru",[58,86]],["72.ru",[58,86]],["74.ru",[58,86]],["76.ru",[58,86]],["86.ru",[58,86]],["89.ru",[58,86]],["93.ru",[58,86]],["chita.ru",[58,86]],["e1.ru",[58,86]],["ircity.ru",[58,86]],["izh1.ru",[58,86]],["mgorsk.ru",[58,86]],["msk1.ru",[58,86]],["ngs.ru",[58,86]],["ngs22.ru",[58,86]],["ngs24.ru",[58,86]],["ngs42.ru",[58,86]],["ngs55.ru",[58,86]],["ngs70.ru",[58,86]],["nn.ru",[58,86]],["sochi1.ru",[58,86]],["sterlitamak1.ru",[58,86]],["tolyatty.ru",[58,86]],["ufa1.ru",[58,86]],["v1.ru",[58,86]],["vladivostok1.ru",[58,86]],["voronezh1.ru",[58,86]],["www.fontanka.ru",[58,86]],["ya62.ru",[58,86]],["player.smotrim.ru",60],["kinescope.io",62],["m24.ru",63],["megaprogz.ru",64],["programhub.ru",64],["softportal.com",65],["rambler.ru",66],["remont-aud.net",68],["wdho.ru",69],["fanserial.*",70],["fanserialstv.net",70],["hdrezka.*",70],["rezka.*",70],["smaxim.*",71],["okminigames.mail.ru",72],["player-smotri.mail.ru",73],["ok.ru",[74,77]],["finance.mail.ru",75],["news.mail.ru",[75,80]],["sportmail.ru",75],["vfokuse.mail.ru",75],["mail.ru",[76,81,82]],["my.mail.ru",78],["pogoda.mail.ru",79],["e.mail.ru",[83,87]],["octavius.mail.ru",83],["tass.ru",84],["mail.ukr.net",85]]);
465
+ const exceptionsMap = new Map([["calls.mail.ru",[76,81,82]],["e.mail.ru",[76,81,82]],["finance.mail.ru",[76,81,82]],["my.mail.ru",[76,81,82]],["news.mail.ru",[76,81,82]],["o2.mail.ru",[76,81,82]],["octavius.mail.ru",[76,81,82]],["sportmail.ru",[76]],["touch.mail.ru",[76,81,82]],["vfokuse.mail.ru",[76,81,82]],["3igames.mail.ru",[81,82]],["account.mail.ru",[81,82]],["auto.mail.ru",[81,82]],["biz.mail.ru",[81,82]],["bonus.mail.ru",[81,82]],["calendar.mail.ru",[81,82]],["cloud.mail.ru",[81,82]],["connect.mail.ru",[81,82]],["deti.mail.ru",[81,82]],["dobro.mail.ru",[81,82]],["gibdd.mail.ru",[81,82]],["health.mail.ru",[81,82]],["help.mail.ru",[81,82]],["hi-tech.mail.ru",[81,82]],["horo.mail.ru",[81,82]],["kino.mail.ru",[81,82]],["lady.mail.ru",[81,82]],["love.mail.ru",[81,82]],["mcs.mail.ru",[81,82]],["minigames.mail.ru",[81,82]],["okminigames.mail.ru",[81,82]],["otvet.mail.ru",[81,82]],["pets.mail.ru",[81,82]],["player-smotri.mail.ru",[81,82]],["pogoda.mail.ru",[81,82]],["top.mail.ru",[81,82]],["tv.mail.ru",[81,82]],["widgets.mail.ru",[81,82]],["blog.mail.ru",[82]]]);
466
466
  const hasEntities = true;
467
467
  const hasAncestors = false;
468
468
 
@@ -170,6 +170,10 @@ function proxyApplyFn(
170
170
  : new proxyApplyFn.ApplyContext(...args);
171
171
  }
172
172
  };
173
+ proxyApplyFn.isCtor = new Map();
174
+ }
175
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
176
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
173
177
  }
174
178
  const fnStr = fn.toString();
175
179
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -182,7 +186,7 @@ function proxyApplyFn(
182
186
  return Reflect.get(target, prop);
183
187
  },
184
188
  };
185
- if ( fn.prototype?.constructor === fn ) {
189
+ if ( proxyApplyFn.isCtor.get(target) ) {
186
190
  proxyDetails.construct = function(target, args) {
187
191
  return handler(proxyApplyFn.CtorContext.factory(target, args));
188
192
  };
@@ -266,6 +266,10 @@ function proxyApplyFn(
266
266
  : new proxyApplyFn.ApplyContext(...args);
267
267
  }
268
268
  };
269
+ proxyApplyFn.isCtor = new Map();
270
+ }
271
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
272
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
269
273
  }
270
274
  const fnStr = fn.toString();
271
275
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -278,7 +282,7 @@ function proxyApplyFn(
278
282
  return Reflect.get(target, prop);
279
283
  },
280
284
  };
281
- if ( fn.prototype?.constructor === fn ) {
285
+ if ( proxyApplyFn.isCtor.get(target) ) {
282
286
  proxyDetails.construct = function(target, args) {
283
287
  return handler(proxyApplyFn.CtorContext.factory(target, args));
284
288
  };
@@ -118,6 +118,10 @@ function proxyApplyFn(
118
118
  : new proxyApplyFn.ApplyContext(...args);
119
119
  }
120
120
  };
121
+ proxyApplyFn.isCtor = new Map();
122
+ }
123
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
124
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
121
125
  }
122
126
  const fnStr = fn.toString();
123
127
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -130,7 +134,7 @@ function proxyApplyFn(
130
134
  return Reflect.get(target, prop);
131
135
  },
132
136
  };
133
- if ( fn.prototype?.constructor === fn ) {
137
+ if ( proxyApplyFn.isCtor.get(target) ) {
134
138
  proxyDetails.construct = function(target, args) {
135
139
  return handler(proxyApplyFn.CtorContext.factory(target, args));
136
140
  };
@@ -170,6 +170,10 @@ function proxyApplyFn(
170
170
  : new proxyApplyFn.ApplyContext(...args);
171
171
  }
172
172
  };
173
+ proxyApplyFn.isCtor = new Map();
174
+ }
175
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
176
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
173
177
  }
174
178
  const fnStr = fn.toString();
175
179
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -182,7 +186,7 @@ function proxyApplyFn(
182
186
  return Reflect.get(target, prop);
183
187
  },
184
188
  };
185
- if ( fn.prototype?.constructor === fn ) {
189
+ if ( proxyApplyFn.isCtor.get(target) ) {
186
190
  proxyDetails.construct = function(target, args) {
187
191
  return handler(proxyApplyFn.CtorContext.factory(target, args));
188
192
  };
@@ -425,8 +425,8 @@ function getRandomTokenFn() {
425
425
  /******************************************************************************/
426
426
 
427
427
  const scriptletGlobals = {}; // eslint-disable-line
428
- const argsList = [["*","*.media.*.advertisement_id"],["ads breaks cuepoints times","ads"],["rot_url pop_type"],["adn_placement components.player.playbackContext.ads"]];
429
- const hostnamesMap = new Map([["sub100.com.br",0],["app.prende.tv",1],["animeblix.com",2],["play.mercadolibre.cl",3],["play.mercadolivre.com.br",3],["play.mercadolibre.com.ar",3]]);
428
+ const argsList = [["vmap_ad_breaks interstitials"],["*","*.media.*.advertisement_id"],["ads breaks cuepoints times","ads"],["rot_url pop_type"],["adn_placement components.player.playbackContext.ads"]];
429
+ const hostnamesMap = new Map([["vix.com",0],["sub100.com.br",1],["app.prende.tv",2],["animeblix.com",3],["play.mercadolibre.cl",4],["play.mercadolivre.com.br",4],["play.mercadolibre.com.ar",4]]);
430
430
  const exceptionsMap = new Map([]);
431
431
  const hasEntities = false;
432
432
  const hasAncestors = false;
@@ -112,6 +112,10 @@ function proxyApplyFn(
112
112
  : new proxyApplyFn.ApplyContext(...args);
113
113
  }
114
114
  };
115
+ proxyApplyFn.isCtor = new Map();
116
+ }
117
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
118
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
115
119
  }
116
120
  const fnStr = fn.toString();
117
121
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -124,7 +128,7 @@ function proxyApplyFn(
124
128
  return Reflect.get(target, prop);
125
129
  },
126
130
  };
127
- if ( fn.prototype?.constructor === fn ) {
131
+ if ( proxyApplyFn.isCtor.get(target) ) {
128
132
  proxyDetails.construct = function(target, args) {
129
133
  return handler(proxyApplyFn.CtorContext.factory(target, args));
130
134
  };
@@ -266,6 +266,10 @@ function proxyApplyFn(
266
266
  : new proxyApplyFn.ApplyContext(...args);
267
267
  }
268
268
  };
269
+ proxyApplyFn.isCtor = new Map();
270
+ }
271
+ if ( proxyApplyFn.isCtor.has(target) === false ) {
272
+ proxyApplyFn.isCtor.set(target, fn.prototype?.constructor === fn);
269
273
  }
270
274
  const fnStr = fn.toString();
271
275
  const toString = (function toString() { return fnStr; }).bind(null);
@@ -278,7 +282,7 @@ function proxyApplyFn(
278
282
  return Reflect.get(target, prop);
279
283
  },
280
284
  };
281
- if ( fn.prototype?.constructor === fn ) {
285
+ if ( proxyApplyFn.isCtor.get(target) ) {
282
286
  proxyDetails.construct = function(target, args) {
283
287
  return handler(proxyApplyFn.CtorContext.factory(target, args));
284
288
  };