@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
@@ -16,6 +16,7 @@
16
16
  "adtima-static.zascdn.me",
17
17
  "adtimaserver.vn",
18
18
  "ae.carnelbawrel.com",
19
+ "afzamltca.com",
19
20
  "aiactiv.io",
20
21
  "aj1047.online",
21
22
  "aj2393.online",
@@ -26,7 +27,6 @@
26
27
  "bidgear-syndication.com",
27
28
  "cdn.adop.asia",
28
29
  "cdn.adxcontent.com",
29
- "cdn.dtadnetwork.com",
30
30
  "cdn.tpmedia.online",
31
31
  "cdnv.tpmedia.online",
32
32
  "click.advertnative.com",
@@ -34,25 +34,28 @@
34
34
  "contineljs.com",
35
35
  "cpt.geniee.jp",
36
36
  "cv.bentsdiorism.com",
37
+ "deemsunways.com",
37
38
  "delivery.yomedia.vn",
38
39
  "distinctrobin.com",
40
+ "ds.recrampwiped.com",
39
41
  "fv.togataurnfuls.com",
40
42
  "fx.gearmanswings.com",
41
43
  "genmonet.com",
42
44
  "gullyending.com",
43
- "i9zk5f8szj4x8saj5wcks8acja5sk1dz8stjs2g8isdcn6ejxn8zsr5xjs5h.com",
44
45
  "iads.staticscdn.net",
45
46
  "iads.vision",
46
47
  "img.yeuketqua.net",
47
48
  "immaculate-suspect.com",
48
49
  "js.aiservice.vn",
49
50
  "jsc.yodimedia.com",
51
+ "lepidpomps.com",
52
+ "ligheechoagool.com",
50
53
  "media.yomedia.vn",
51
54
  "midgetmaying.com",
52
55
  "mneydirec.com",
53
56
  "mt.deimosfestuca.com",
54
- "nb.passuplums.com",
55
57
  "ny.foonerne.com",
58
+ "ob.joyrodetoment.com",
56
59
  "oursty.com",
57
60
  "platform.adlinknetwork.vn",
58
61
  "player.gliacloud.com",
@@ -66,17 +69,13 @@
66
69
  "ss.yomedia.vn",
67
70
  "static.adconnect.vn",
68
71
  "static.dable.io",
69
- "static.eclick.vn",
70
72
  "static.philacct.com",
71
- "syphonseity.com",
72
73
  "tags.fly-ads.net",
73
74
  "tags.native-ad.net",
74
- "urgerrebasis.com",
75
75
  "ut.uranininnage.com",
76
76
  "v9banners.com",
77
77
  "vads.net.vn",
78
- "wr.brandonketting.com",
79
- "zr.mezcalumlaut.com"
78
+ "wr.brandonketting.com"
80
79
  ],
81
80
  "resourceTypes": [
82
81
  "main_frame"
@@ -221,6 +221,12 @@
221
221
  "-base64"
222
222
  ]
223
223
  },
224
+ {
225
+ "re": "^[a-z-]+://(?:[^/?#]+\\.)?link\\.onlinekosh\\.com(?:[^%.0-9a-z_-]|$)",
226
+ "steps": [
227
+ "?url"
228
+ ]
229
+ },
224
230
  {
225
231
  "re": "^[a-z-]+://(?:[^/?#]+\\.)?rd\\.remove\\.bg/cl0/http",
226
232
  "steps": [
@@ -1068,6 +1074,24 @@
1068
1074
  "?url"
1069
1075
  ]
1070
1076
  },
1077
+ {
1078
+ "re": "^[a-z-]+://(?:[^/?#]+\\.)?hb\\.afl\\.rakuten\\.co\\.jp/hgc/\\S*?(?:[^%.0-9a-z_-]|$)pc=http",
1079
+ "steps": [
1080
+ "?pc"
1081
+ ]
1082
+ },
1083
+ {
1084
+ "re": "^[a-z-]+://(?:[^/?#]+\\.)?atmedia\\.link/product\\?url=http",
1085
+ "steps": [
1086
+ "?url"
1087
+ ]
1088
+ },
1089
+ {
1090
+ "re": "^[a-z-]+://(?:[^/?#]+\\.)?f\\.gdeslon\\.ru/cf/\\S*?(?:[^%.0-9a-z_-]|$)goto=http",
1091
+ "steps": [
1092
+ "?goto"
1093
+ ]
1094
+ },
1071
1095
  {
1072
1096
  "re": "/vp/player/to/\\?u=http",
1073
1097
  "steps": [
@@ -1086,6 +1110,12 @@
1086
1110
  "?url"
1087
1111
  ]
1088
1112
  },
1113
+ {
1114
+ "re": "^[a-z-]+://(?:[^/?#]+\\.)?donanimhaber\\.com/externallinkredirect\\?\\S*?(?:[^%.0-9a-z_-]|$)url=http",
1115
+ "steps": [
1116
+ "?url"
1117
+ ]
1118
+ },
1089
1119
  {
1090
1120
  "re": "^[a-z-]+://(?:[^/?#]+\\.)?email\\.stripe\\.com/cl0/",
1091
1121
  "steps": [
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@browserless.io/browserless",
3
- "version": "2.34.0",
3
+ "version": "2.36.0",
4
4
  "license": "SSPL",
5
5
  "description": "The browserless platform",
6
6
  "author": "browserless.io",
@@ -31,6 +31,7 @@
31
31
  "prepack": "npm run build:dev",
32
32
  "prettier": "prettier '{src,functions,scripts,bin,external,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write",
33
33
  "test": "npm run build:ts && cross-env DEBUG=quiet mocha",
34
+ "coverage": "npm run build:ts && c8 --reporter=text --reporter=html --reporter=lcov cross-env DEBUG=quiet mocha",
34
35
  "start": "env-cmd -f .env node build"
35
36
  },
36
37
  "files": [
@@ -51,25 +52,25 @@
51
52
  "@hapi/bourne": "^3.0.0",
52
53
  "@hapi/hoek": "^11.0.4",
53
54
  "debug": "^4.4.1",
54
- "del": "^8.0.0",
55
+ "del": "^8.0.1",
55
56
  "file-type": "^21.0.0",
56
57
  "get-port": "^7.1.0",
57
58
  "gradient-string": "^3.0.0",
58
59
  "http-proxy": "^1.18.1",
59
- "joi": "^18.0.0",
60
- "lighthouse": "^12.8.1",
60
+ "joi": "^18.0.1",
61
+ "lighthouse": "^12.8.2",
61
62
  "micromatch": "^4.0.8",
62
- "playwright-1.50": "npm:playwright-core@1.50.1",
63
63
  "playwright-1.51": "npm:playwright-core@1.51.1",
64
64
  "playwright-1.52": "npm:playwright-core@1.52.0",
65
65
  "playwright-1.53": "npm:playwright-core@1.53.2",
66
- "playwright-core": "1.54.2",
67
- "puppeteer-core": "24.16.1",
66
+ "playwright-1.54": "npm:playwright-core@1.54.2",
67
+ "playwright-core": "1.55.0",
68
+ "puppeteer-core": "24.22.0",
68
69
  "puppeteer-extra": "^3.3.6",
69
70
  "puppeteer-extra-plugin-stealth": "^2.11.2",
70
71
  "queue": "^7.0.0",
71
- "systeminformation": "^5.27.7",
72
- "tar-fs": "^3.1.0"
72
+ "systeminformation": "^5.27.10",
73
+ "tar-fs": "^3.1.1"
73
74
  },
74
75
  "optionalDependencies": {
75
76
  "@types/chai": "^5.2.2",
@@ -78,21 +79,22 @@
78
79
  "@types/http-proxy": "^1.17.16",
79
80
  "@types/micromatch": "^4.0.9",
80
81
  "@types/mocha": "^10.0.10",
81
- "@types/node": "^24.2.1",
82
+ "@types/node": "^24.5.2",
82
83
  "@types/sinon": "^17.0.4",
83
- "@typescript-eslint/eslint-plugin": "^8.39.1",
84
- "@typescript-eslint/parser": "^8.38.0",
84
+ "@typescript-eslint/eslint-plugin": "^8.44.0",
85
+ "@typescript-eslint/parser": "^8.42.0",
85
86
  "assert": "^2.0.0",
86
- "chai": "^5.2.1",
87
+ "c8": "^10.1.3",
88
+ "chai": "^6.0.1",
87
89
  "cross-env": "^10.0.0",
88
- "env-cmd": "^10.1.0",
89
- "esbuild": "^0.25.8",
90
+ "env-cmd": "^11.0.0",
91
+ "esbuild": "^0.25.10",
90
92
  "esbuild-plugin-polyfill-node": "^0.3.0",
91
- "eslint": "^9.33.0",
93
+ "eslint": "^9.35.0",
92
94
  "extract-zip": "^2.0.1",
93
95
  "gunzip-maybe": "^1.4.2",
94
- "marked": "^16.1.2",
95
- "mocha": "^11.7.1",
96
+ "marked": "^16.3.0",
97
+ "mocha": "^11.7.2",
96
98
  "move-file": "^3.1.0",
97
99
  "prettier": "^3.6.2",
98
100
  "sinon": "^21.0.0",
@@ -102,11 +104,11 @@
102
104
  },
103
105
  "playwrightVersions": {
104
106
  "default": "playwright-core",
105
- "1.54": "playwright-core",
107
+ "1.55": "playwright-core",
108
+ "1.54": "playwright-1.54",
106
109
  "1.53": "playwright-1.53",
107
110
  "1.52": "playwright-1.52",
108
- "1.51": "playwright-1.51",
109
- "1.50": "playwright-1.50"
111
+ "1.51": "playwright-1.51"
110
112
  },
111
113
  "engines": {
112
114
  "node": ">= 24 < 25"
@@ -46,6 +46,17 @@ const sortSwaggerRequiredAlpha = (prop, otherProp) => {
46
46
  return Number(otherProp.required) - Number(prop.required);
47
47
  };
48
48
 
49
+ const cleanupAbsolutePaths = (swaggerJSON) => {
50
+ const jsonString = JSON.stringify(swaggerJSON);
51
+
52
+ const cleanedString = jsonString.replace(
53
+ /"\$ref":\s*"#\/definitions\/import\([^)]+\)\.([^"]+)"/g,
54
+ '"$ref": "#/definitions/$1"'
55
+ );
56
+
57
+ return JSON.parse(cleanedString);
58
+ };
59
+
49
60
  const buildOpenAPI = async (
50
61
  externalHTTPRoutes = [],
51
62
  externalWebSocketRoutes = [],
@@ -298,7 +309,10 @@ const buildOpenAPI = async (
298
309
  JSON.stringify(swaggerJSON, null, ' '),
299
310
  );
300
311
  swaggerJSON.info.description = readme + `\n# Changelog\n` + changelog;
301
- await fs.writeFile(swaggerJSONPath, JSON.stringify(swaggerJSON, null, ' '));
312
+
313
+ const cleanedSwaggerJSON = cleanupAbsolutePaths(swaggerJSON);
314
+
315
+ await fs.writeFile(swaggerJSONPath, JSON.stringify(cleanedSwaggerJSON, null, ' '));
302
316
  };
303
317
 
304
318
  export default buildOpenAPI;
@@ -2,11 +2,11 @@
2
2
  /* global fetch, console, process */
3
3
  'use strict';
4
4
 
5
- import { createWriteStream, existsSync, mkdirSync } from 'fs';
5
+ import { createWriteStream, existsSync, mkdirSync, readdirSync, statSync } from 'fs';
6
6
  import path, { join } from 'path';
7
7
  import { Readable } from 'stream';
8
8
  import { deleteAsync } from 'del';
9
- import { moveFile } from 'move-file';
9
+ import { cp } from 'fs/promises';
10
10
  import os from 'os';
11
11
  import unzip from 'extract-zip';
12
12
 
@@ -19,7 +19,6 @@ import unzip from 'extract-zip';
19
19
  }
20
20
 
21
21
  const zipFile = tmpDir + '/ublock.zip';
22
- const tmpUblockLitePath = path.join(tmpDir);
23
22
  const extensionsDir = join(process.cwd(), 'extensions');
24
23
  const uBlockLiteDir = join(extensionsDir, 'ublocklite');
25
24
 
@@ -45,7 +44,29 @@ import unzip from 'extract-zip';
45
44
 
46
45
  await downloadUrlToDirectory(json.assets[0].browser_download_url, zipFile);
47
46
  await unzip(zipFile, { dir: tmpDir });
48
- await moveFile(join(tmpUblockLitePath), join(extensionsDir, 'ublocklite'));
47
+
48
+ const findExtensionDir = (dir) => {
49
+ const items = readdirSync(dir);
50
+ if (items.includes('manifest.json')) {
51
+ return dir;
52
+ }
53
+ for (const item of items) {
54
+ if (item === 'ublock.zip') continue;
55
+ const itemPath = join(dir, item);
56
+ if (existsSync(itemPath) && statSync(itemPath).isDirectory()) {
57
+ const foundDir = findExtensionDir(itemPath);
58
+ if (foundDir) return foundDir;
59
+ }
60
+ }
61
+ return null;
62
+ };
63
+
64
+ const extensionSourceDir = findExtensionDir(tmpDir);
65
+ if (!extensionSourceDir) {
66
+ throw new Error('Could not find uBlock Lite extension directory with manifest.json');
67
+ }
68
+
69
+ await cp(extensionSourceDir, join(extensionsDir, 'ublocklite'), { recursive: true });
49
70
  await deleteAsync(zipFile, { force: true }).catch((err) => {
50
71
  console.warn('Could not delete temporary download file: ' + err.message);
51
72
  });
package/scripts/start.sh CHANGED
@@ -15,7 +15,7 @@ trap _kill_procs SIGTERM SIGINT
15
15
 
16
16
  if [ -z "$DISPLAY" ]
17
17
  then
18
- Xvfb :99 -screen 0 1024x768x16 -nolisten tcp -nolisten unix &
18
+ Xvfb :99 -screen 0 1024x768x16 -nolisten tcp -nolisten unix >/dev/null 2>&1 &
19
19
  xvfb=$!
20
20
  export DISPLAY=:99
21
21
  fi
package/scripts/test.sh CHANGED
@@ -2,7 +2,7 @@
2
2
  set -e
3
3
 
4
4
  # Install all dependencies for tests
5
- npm i --production=false
5
+ npm clean-install
6
6
 
7
7
  # Setup Env Variables
8
8
  export DEBUG=-*
@@ -11,7 +11,7 @@ export NODE_OPTIONS="--loader ts-node/esm"
11
11
 
12
12
  if [ -z "$DISPLAY" ]
13
13
  then
14
- Xvfb :99 -screen 0 1024x768x16 -nolisten tcp -nolisten unix &
14
+ Xvfb :99 -screen 0 1024x768x16 -nolisten tcp -nolisten unix >/dev/null 2>&1 &
15
15
  xvfb=$!
16
16
  export DISPLAY=:99
17
17
  fi
package/src/limiter.ts CHANGED
@@ -207,7 +207,7 @@ export class Limiter extends q {
207
207
  const queueLimit = this.queued;
208
208
  return rej(
209
209
  new TooManyRequests(
210
- `Concurrency limit of ${concurrencyLimit} and queue limit of ${queueLimit} reached. Possible causes: 1) Your token has reached maximum capacity, 2) Your token may not have access to this version, 3) Your requests are coming too quickly.`,
210
+ `Your plan allows ${concurrencyLimit} concurrent sessions and ${queueLimit} queued requests, but both limits have been reached. Possible causes: 1) Your plan has reached maximum capacity, 2) Your token may not have access to this version, 3) Your requests are coming too quickly.`,
211
211
  ),
212
212
  );
213
213
  }
@@ -414,4 +414,52 @@ describe('/chromium/scrape API', function () {
414
414
  expect(res.status).to.equal(200);
415
415
  });
416
416
  });
417
+
418
+ it('handles bestAttempt with failing selectors', async () => {
419
+ const config = new Config();
420
+ config.setToken('browserless');
421
+ const metrics = new Metrics();
422
+ await start({ config, metrics });
423
+ const body = {
424
+ bestAttempt: true,
425
+ elements: [
426
+ {
427
+ selector: 'a',
428
+ },
429
+ {
430
+ selector: 'nonexistent-element',
431
+ timeout: 1000,
432
+ },
433
+ {
434
+ selector: 'h1',
435
+ },
436
+ ],
437
+ url: 'https://one.one.one.one',
438
+ };
439
+
440
+ await fetch('http://localhost:3000/chromium/scrape?token=browserless', {
441
+ body: JSON.stringify(body),
442
+ headers: {
443
+ 'content-type': 'application/json',
444
+ },
445
+ method: 'POST',
446
+ }).then(async (res) => {
447
+ expect(res.status).to.equal(200);
448
+ expect(res.headers.get('content-type')).to.equal(
449
+ 'application/json; charset=UTF-8',
450
+ );
451
+
452
+ const json = await res.json();
453
+ expect(json.data).to.be.an('array');
454
+ expect(json.data).to.have.length(3);
455
+
456
+ const aResults = json.data.find((item: any) => item.selector === 'a');
457
+ const nonexistentResults = json.data.find((item: any) => item.selector === 'nonexistent-element');
458
+ const h1Results = json.data.find((item: any) => item.selector === 'h1');
459
+
460
+ expect(aResults.results).to.be.an('array');
461
+ expect(nonexistentResults.results).to.be.an('array').that.is.empty;
462
+ expect(h1Results.results).to.be.an('array');
463
+ });
464
+ });
417
465
  });
package/src/sdk-utils.ts CHANGED
@@ -118,7 +118,7 @@ export const prompt = async (question: string) => {
118
118
  export const installDependencies = async (
119
119
  workingDirectory: string,
120
120
  ): Promise<void> => {
121
- await waitForCommand('npm install', workingDirectory);
121
+ await waitForCommand('npm clean-install', workingDirectory);
122
122
  await installBrowsers(workingDirectory);
123
123
  };
124
124
 
@@ -157,7 +157,7 @@ export interface ResponseSchema {
157
157
  } | null;
158
158
  }
159
159
 
160
- const scrape = async (elements: ScrapeElementSelector[]) => {
160
+ const scrape = async (elements: ScrapeElementSelector[], bestAttempt = false) => {
161
161
  const wait = (selector: string, timeout = 30000) => {
162
162
  return new Promise<void>((resolve, reject) => {
163
163
  const timeoutId = setTimeout(() => {
@@ -175,9 +175,21 @@ const scrape = async (elements: ScrapeElementSelector[]) => {
175
175
  });
176
176
  };
177
177
 
178
- await Promise.all(
179
- elements.map(({ selector, timeout }) => wait(selector, timeout)),
180
- );
178
+ if (bestAttempt) {
179
+ const results = await Promise.allSettled(
180
+ elements.map(({ selector, timeout }) => wait(selector, timeout)),
181
+ );
182
+
183
+ results.forEach((result, index) => {
184
+ if (result.status === 'rejected') {
185
+ console.warn(`Selector "${elements[index].selector}" failed: ${result.reason.message}`);
186
+ }
187
+ });
188
+ } else {
189
+ await Promise.all(
190
+ elements.map(({ selector, timeout }) => wait(selector, timeout)),
191
+ );
192
+ }
181
193
 
182
194
  return elements.map(({ selector }) => {
183
195
  const $els = [...document.querySelectorAll(selector)] as HTMLElement[];
@@ -410,7 +422,7 @@ export default class ChromiumScrapePostRoute extends BrowserHTTPRoute {
410
422
  }
411
423
  }
412
424
 
413
- const data = await page.evaluate(scrape, elements).catch((e) => {
425
+ const data = await page.evaluate(scrape, elements, bestAttempt).catch((e) => {
414
426
  if (e.message.includes('Timed out')) {
415
427
  throw new Timeout(e);
416
428
  }