@browserless.io/browserless 2.34.1 → 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 (425) hide show
  1. package/CHANGELOG.md +25 -3
  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/_locales/br_FR/messages.json +1 -1
  30. package/extensions/ublocklite/_locales/he/messages.json +2 -2
  31. package/extensions/ublocklite/_locales/hu/messages.json +1 -1
  32. package/extensions/ublocklite/_locales/pt_BR/messages.json +1 -1
  33. package/extensions/ublocklite/_locales/pt_PT/messages.json +1 -1
  34. package/extensions/ublocklite/_locales/sk/messages.json +6 -6
  35. package/extensions/ublocklite/_locales/sq/messages.json +17 -17
  36. package/extensions/ublocklite/_locales/th/messages.json +1 -1
  37. package/extensions/ublocklite/_locales/tr/messages.json +1 -1
  38. package/extensions/ublocklite/_locales/vi/messages.json +1 -1
  39. package/extensions/ublocklite/css/common.css +5 -3
  40. package/extensions/ublocklite/css/default.css +10 -0
  41. package/extensions/ublocklite/js/dnr-parser.js +1 -1
  42. package/extensions/ublocklite/js/filter-lists.js +1 -4
  43. package/extensions/ublocklite/js/popup.js +2 -2
  44. package/extensions/ublocklite/js/ruleset-manager.js +5 -121
  45. package/extensions/ublocklite/js/rw-dnr-editor.js +8 -4
  46. package/extensions/ublocklite/js/scripting/tool-overlay.js +1 -0
  47. package/extensions/ublocklite/js/settings.js +2 -1
  48. package/extensions/ublocklite/js/static-filtering-parser.js +8 -8
  49. package/extensions/ublocklite/js/ubo-parser.js +181 -65
  50. package/extensions/ublocklite/manifest.json +3 -3
  51. package/extensions/ublocklite/rulesets/generic-details.json +6 -16
  52. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +25 -4
  53. package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +615 -1
  54. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +19 -7
  55. package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -2
  56. package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +22 -2
  57. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
  58. package/extensions/ublocklite/rulesets/main/chn-0.json +93 -28
  59. package/extensions/ublocklite/rulesets/main/cze-0.json +6 -1
  60. package/extensions/ublocklite/rulesets/main/deu-0.json +11 -5
  61. package/extensions/ublocklite/rulesets/main/dpollock-0.json +2 -0
  62. package/extensions/ublocklite/rulesets/main/easylist.json +135 -29
  63. package/extensions/ublocklite/rulesets/main/easyprivacy.json +132 -27
  64. package/extensions/ublocklite/rulesets/main/est-0.json +1 -1
  65. package/extensions/ublocklite/rulesets/main/fin-0.json +9 -0
  66. package/extensions/ublocklite/rulesets/main/fra-0.json +48 -10
  67. package/extensions/ublocklite/rulesets/main/hun-0.json +4 -1
  68. package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
  69. package/extensions/ublocklite/rulesets/main/ind-0.json +93 -150
  70. package/extensions/ublocklite/rulesets/main/irn-0.json +33 -7
  71. package/extensions/ublocklite/rulesets/main/isr-0.json +20 -2
  72. package/extensions/ublocklite/rulesets/main/ita-0.json +3 -1
  73. package/extensions/ublocklite/rulesets/main/jpn-1.json +60 -13
  74. package/extensions/ublocklite/rulesets/main/kor-1.json +38 -6
  75. package/extensions/ublocklite/rulesets/main/ltu-0.json +3 -1
  76. package/extensions/ublocklite/rulesets/main/lva-0.json +2 -1
  77. package/extensions/ublocklite/rulesets/main/nld-0.json +6 -1
  78. package/extensions/ublocklite/rulesets/main/nor-0.json +13 -4
  79. package/extensions/ublocklite/rulesets/main/pgl.json +8 -9
  80. package/extensions/ublocklite/rulesets/main/pol-0.json +13 -1
  81. package/extensions/ublocklite/rulesets/main/rou-1.json +17 -1
  82. package/extensions/ublocklite/rulesets/main/rus-0.json +101 -24
  83. package/extensions/ublocklite/rulesets/main/rus-1.json +112 -4
  84. package/extensions/ublocklite/rulesets/main/spa-1.json +38 -14
  85. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +13076 -6934
  86. package/extensions/ublocklite/rulesets/main/swe-1.json +77 -43
  87. package/extensions/ublocklite/rulesets/main/tha-0.json +7 -1
  88. package/extensions/ublocklite/rulesets/main/tur-0.json +45 -5
  89. package/extensions/ublocklite/rulesets/main/ublock-badware.json +76 -102
  90. package/extensions/ublocklite/rulesets/main/ublock-filters.json +770 -99
  91. package/extensions/ublocklite/rulesets/main/ubol-tests.json +43 -0
  92. package/extensions/ublocklite/rulesets/main/ukr-0.json +20 -1
  93. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +503 -614
  94. package/extensions/ublocklite/rulesets/main/vie-1.json +61 -52
  95. package/extensions/ublocklite/rulesets/regex/chn-0.json +6 -3
  96. package/extensions/ublocklite/rulesets/regex/deu-0.json +0 -1
  97. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  98. package/extensions/ublocklite/rulesets/regex/kor-1.json +1 -0
  99. package/extensions/ublocklite/rulesets/regex/pol-0.json +1 -0
  100. package/extensions/ublocklite/rulesets/regex/rus-0.json +1 -0
  101. package/extensions/ublocklite/rulesets/regex/rus-1.json +24 -0
  102. package/extensions/ublocklite/rulesets/regex/tur-0.json +2 -1
  103. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +10 -8
  104. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +26 -9
  105. package/extensions/ublocklite/rulesets/ruleset-details.json +238 -458
  106. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  107. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +1 -1
  108. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +1 -1
  109. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +1 -1
  110. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +3 -3
  111. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  112. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +1 -1
  113. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +1 -1
  114. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +1 -1
  115. package/extensions/ublocklite/rulesets/scripting/generic/nld-0.js +1 -1
  116. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
  117. package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +3 -3
  118. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
  119. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +3 -3
  120. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  121. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +1 -1
  122. package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +2 -2
  123. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -9
  124. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +1 -1
  125. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +1 -0
  126. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
  127. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  128. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
  129. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-notifications.js +3 -3
  130. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
  131. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  132. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
  133. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +1 -1
  134. package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +3 -3
  135. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  136. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +3 -3
  137. package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
  138. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  139. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  140. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  141. package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
  142. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  143. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  144. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  145. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
  146. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  147. package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +3 -3
  148. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  149. package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +2 -2
  150. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-on-property-read.js +2 -2
  151. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-constant.js +2 -2
  152. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie.js +2 -2
  153. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.trusted-replace-node-text.js +450 -0
  154. package/extensions/ublocklite/rulesets/scripting/scriptlet/{jpn-1.abort-on-property-write.js → adguard-mobile.trusted-set-attr.js} +107 -41
  155. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +407 -0
  156. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
  157. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  158. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  159. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  160. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-replace-node-text.js +2 -2
  161. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  162. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  163. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +1 -1
  164. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +1 -1
  165. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-stack-trace.js +2 -2
  166. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
  167. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +9 -2
  168. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +2 -2
  169. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
  170. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-xhr.js +2 -2
  171. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-cookie.js +2 -2
  172. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  173. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +2 -2
  174. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +2 -2
  175. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +2 -2
  176. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +1 -1
  177. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +9 -2
  178. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
  179. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +1 -1
  180. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
  181. package/extensions/ublocklite/rulesets/scripting/scriptlet/{vie-1.m3u-prune.js → chn-0.spoof-css.js} +109 -148
  182. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +1 -1
  183. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +7 -0
  184. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-constant.js +1 -1
  185. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +2 -2
  186. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.adjust-setTimeout.js +2 -2
  187. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +7 -0
  188. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
  189. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.set-constant.js +1 -1
  190. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-local-storage-item.js +2 -2
  191. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +7 -0
  192. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +2 -2
  193. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +7 -0
  194. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +2 -2
  195. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
  196. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +7 -0
  197. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
  198. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +7 -0
  199. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +1 -1
  200. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-cookie.js +442 -0
  201. package/extensions/ublocklite/rulesets/scripting/scriptlet/{chn-0.json-prune-fetch-response.js → kor-1.json-prune-xhr-response.js} +71 -62
  202. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.json-prune.js +2 -2
  203. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +7 -0
  204. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +2 -2
  205. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  206. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +7 -0
  207. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +7 -0
  208. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +2 -2
  209. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.remove-node-text.js +1 -1
  210. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
  211. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
  212. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +10 -3
  213. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +2 -2
  214. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-xhr.js +1 -1
  215. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-cookie.js +3 -3
  216. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
  217. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
  218. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  219. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-local-storage-item.js +2 -2
  220. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.abort-on-property-read.js +3 -3
  221. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +1 -1
  222. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.json-prune.js +2 -2
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +7 -0
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +4 -4
  225. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +3 -3
  226. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +2 -2
  227. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +1 -1
  228. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +1 -1
  229. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setInterval.js +1 -1
  230. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
  231. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +1 -1
  232. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +9 -2
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +2 -2
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +2 -2
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +2 -2
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +2 -2
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +2 -2
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +1 -1
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +2 -2
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +7 -0
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +2 -2
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-node-text.js +2 -2
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-cookie.js +2 -2
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/{ublock-filters.evaldata-prune.js → ublock-badware.addEventListener-defuser.js} +103 -173
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +450 -0
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +3 -3
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +2 -2
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.disable-newtab-links.js +1 -1
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +851 -0
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +3 -3
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.m3u-prune.js +2 -2
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +2 -2
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +2 -2
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +9 -2
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +2 -2
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +3 -3
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +2 -2
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-attr.js +2 -2
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.spoof-css.js +2 -2
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +1 -1
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +1 -1
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -0
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-xhr.js +1 -1
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-xhr-response.js +1 -1
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +1 -1
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +2 -2
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +1 -1
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.xml-prune.js +2 -2
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +7 -0
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.json-prune.js +1 -1
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +7 -0
  301. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  302. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  303. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
  304. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  305. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  306. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  307. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  308. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  309. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  310. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  311. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  312. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  313. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  314. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  315. package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
  316. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  317. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  318. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  319. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  320. package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
  321. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  322. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  323. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  324. package/extensions/ublocklite/rulesets/scripting/specific/rus-1.js +3 -3
  325. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  326. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  327. package/extensions/ublocklite/rulesets/scripting/specific/tha-0.js +3 -3
  328. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  329. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  330. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  331. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  332. package/extensions/ublocklite/rulesets/scriptlet-details.json +271 -174
  333. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +3 -2
  334. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +1 -0
  335. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +329 -791
  336. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +2 -0
  337. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  338. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +62 -4
  339. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +429 -49
  340. package/extensions/ublocklite/rulesets/strictblock/irn-0.json +2 -0
  341. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +183 -176
  342. package/extensions/ublocklite/rulesets/strictblock/kor-1.json +6 -1
  343. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  344. package/extensions/ublocklite/rulesets/strictblock/pgl.json +8 -9
  345. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
  346. package/extensions/ublocklite/rulesets/strictblock/rus-1.json +1 -0
  347. package/extensions/ublocklite/rulesets/strictblock/spa-1.json +0 -2
  348. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +13076 -6934
  349. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +2 -0
  350. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +4 -0
  351. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +580 -577
  352. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +3 -2
  353. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +503 -614
  354. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +6 -7
  355. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +30 -0
  356. package/extensions/ublocklite/ublock.zip +0 -0
  357. package/package.json +23 -21
  358. package/scripts/install-adblock.js +25 -4
  359. package/scripts/start.sh +1 -1
  360. package/scripts/test.sh +2 -2
  361. package/src/limiter.ts +1 -1
  362. package/src/routes/chromium/tests/scrape.spec.ts +48 -0
  363. package/src/sdk-utils.ts +1 -1
  364. package/src/shared/scrape.http.ts +17 -5
  365. package/static/docs/swagger.json +330 -102
  366. package/static/docs/swagger.min.json +329 -101
  367. package/static/function/client.js +203 -104
  368. package/static/function/index.html +203 -104
  369. package/extensions/ublocklite/rulesets/modify-headers/annoyances-overlays.json +0 -108
  370. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +0 -316
  371. package/extensions/ublocklite/rulesets/modify-headers/cze-0.json +0 -25
  372. package/extensions/ublocklite/rulesets/modify-headers/deu-0.json +0 -24
  373. package/extensions/ublocklite/rulesets/modify-headers/easylist.json +0 -14
  374. package/extensions/ublocklite/rulesets/modify-headers/easyprivacy.json +0 -48
  375. package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +0 -215
  376. package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
  377. package/extensions/ublocklite/rulesets/modify-headers/isr-0.json +0 -50
  378. package/extensions/ublocklite/rulesets/modify-headers/rus-0.json +0 -40
  379. package/extensions/ublocklite/rulesets/modify-headers/rus-1.json +0 -22
  380. package/extensions/ublocklite/rulesets/modify-headers/swe-1.json +0 -46
  381. package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +0 -54
  382. package/extensions/ublocklite/rulesets/modify-headers/ubol-tests.json +0 -25
  383. package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +0 -162
  384. package/extensions/ublocklite/rulesets/redirect/adguard-mobile.json +0 -20
  385. package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +0 -15
  386. package/extensions/ublocklite/rulesets/redirect/chn-0.json +0 -40
  387. package/extensions/ublocklite/rulesets/redirect/cze-0.json +0 -76
  388. package/extensions/ublocklite/rulesets/redirect/deu-0.json +0 -79
  389. package/extensions/ublocklite/rulesets/redirect/easylist.json +0 -103
  390. package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +0 -137
  391. package/extensions/ublocklite/rulesets/redirect/fin-0.json +0 -121
  392. package/extensions/ublocklite/rulesets/redirect/fra-0.json +0 -35
  393. package/extensions/ublocklite/rulesets/redirect/hun-0.json +0 -38
  394. package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
  395. package/extensions/ublocklite/rulesets/redirect/isr-0.json +0 -17
  396. package/extensions/ublocklite/rulesets/redirect/jpn-1.json +0 -29
  397. package/extensions/ublocklite/rulesets/redirect/kor-1.json +0 -25
  398. package/extensions/ublocklite/rulesets/redirect/ltu-0.json +0 -33
  399. package/extensions/ublocklite/rulesets/redirect/nld-0.json +0 -79
  400. package/extensions/ublocklite/rulesets/redirect/nor-0.json +0 -132
  401. package/extensions/ublocklite/rulesets/redirect/pol-0.json +0 -15
  402. package/extensions/ublocklite/rulesets/redirect/rou-1.json +0 -53
  403. package/extensions/ublocklite/rulesets/redirect/rus-0.json +0 -21
  404. package/extensions/ublocklite/rulesets/redirect/rus-1.json +0 -118
  405. package/extensions/ublocklite/rulesets/redirect/spa-1.json +0 -27
  406. package/extensions/ublocklite/rulesets/redirect/swe-1.json +0 -14
  407. package/extensions/ublocklite/rulesets/redirect/tha-0.json +0 -78
  408. package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -24
  409. package/extensions/ublocklite/rulesets/redirect/ublock-badware.json +0 -18
  410. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +0 -548
  411. package/extensions/ublocklite/rulesets/redirect/ubol-tests.json +0 -22
  412. package/extensions/ublocklite/rulesets/redirect/ukr-0.json +0 -18
  413. package/extensions/ublocklite/rulesets/redirect/vie-1.json +0 -117
  414. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +0 -612
  415. package/extensions/ublocklite/rulesets/removeparam/annoyances-overlays.json +0 -27
  416. package/extensions/ublocklite/rulesets/removeparam/chn-0.json +0 -48
  417. package/extensions/ublocklite/rulesets/removeparam/est-0.json +0 -26
  418. package/extensions/ublocklite/rulesets/removeparam/fin-0.json +0 -52
  419. package/extensions/ublocklite/rulesets/removeparam/irn-0.json +0 -18
  420. package/extensions/ublocklite/rulesets/removeparam/kor-1.json +0 -26
  421. package/extensions/ublocklite/rulesets/removeparam/rus-0.json +0 -19
  422. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +0 -99
  423. package/extensions/ublocklite/rulesets/removeparam/swe-1.json +0 -125
  424. package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +0 -64
  425. package/extensions/ublocklite/rulesets/removeparam/ukr-0.json +0 -49
@@ -132,7 +132,20 @@
132
132
  "type": "string"
133
133
  },
134
134
  "userAgent": {
135
- "type": "string"
135
+ "type": "object",
136
+ "properties": {
137
+ "userAgent": {
138
+ "type": "string"
139
+ },
140
+ "userAgentMetadata": {
141
+ "description": "Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints\nMissing optional values will be filled in by the target with what it would normally use.",
142
+ "$ref": "#/definitions/Protocol.Emulation.UserAgentMetadata"
143
+ },
144
+ "platform": {
145
+ "type": "string"
146
+ }
147
+ },
148
+ "additionalProperties": false
136
149
  },
137
150
  "viewport": {
138
151
  "anyOf": [
@@ -497,6 +510,82 @@
497
510
  "type": "object",
498
511
  "additionalProperties": false
499
512
  },
513
+ "Protocol.Emulation.UserAgentMetadata": {
514
+ "description": "Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints\nMissing optional values will be filled in by the target with what it would normally use.",
515
+ "type": "object",
516
+ "properties": {
517
+ "brands": {
518
+ "description": "Brands appearing in Sec-CH-UA.",
519
+ "type": "array",
520
+ "items": {
521
+ "$ref": "#/definitions/Protocol.Emulation.UserAgentBrandVersion"
522
+ }
523
+ },
524
+ "fullVersionList": {
525
+ "description": "Brands appearing in Sec-CH-UA-Full-Version-List.",
526
+ "type": "array",
527
+ "items": {
528
+ "$ref": "#/definitions/Protocol.Emulation.UserAgentBrandVersion"
529
+ }
530
+ },
531
+ "fullVersion": {
532
+ "type": "string"
533
+ },
534
+ "platform": {
535
+ "type": "string"
536
+ },
537
+ "platformVersion": {
538
+ "type": "string"
539
+ },
540
+ "architecture": {
541
+ "type": "string"
542
+ },
543
+ "model": {
544
+ "type": "string"
545
+ },
546
+ "mobile": {
547
+ "type": "boolean"
548
+ },
549
+ "bitness": {
550
+ "type": "string"
551
+ },
552
+ "wow64": {
553
+ "type": "boolean"
554
+ },
555
+ "formFactors": {
556
+ "description": "Used to specify User Agent form-factor values.\nSee https://wicg.github.io/ua-client-hints/#sec-ch-ua-form-factors",
557
+ "type": "array",
558
+ "items": {
559
+ "type": "string"
560
+ }
561
+ }
562
+ },
563
+ "additionalProperties": false,
564
+ "required": [
565
+ "architecture",
566
+ "mobile",
567
+ "model",
568
+ "platform",
569
+ "platformVersion"
570
+ ]
571
+ },
572
+ "Protocol.Emulation.UserAgentBrandVersion": {
573
+ "description": "Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints",
574
+ "type": "object",
575
+ "properties": {
576
+ "brand": {
577
+ "type": "string"
578
+ },
579
+ "version": {
580
+ "type": "string"
581
+ }
582
+ },
583
+ "additionalProperties": false,
584
+ "required": [
585
+ "brand",
586
+ "version"
587
+ ]
588
+ },
500
589
  "Viewport": {
501
590
  "type": "object",
502
591
  "properties": {
@@ -179,18 +179,6 @@
179
179
  "description": "Represents a cookie object.",
180
180
  "type": "object",
181
181
  "properties": {
182
- "name": {
183
- "description": "Cookie name.",
184
- "type": "string"
185
- },
186
- "value": {
187
- "description": "Cookie value.",
188
- "type": "string"
189
- },
190
- "domain": {
191
- "description": "Cookie domain.",
192
- "type": "string"
193
- },
194
182
  "path": {
195
183
  "description": "Cookie path.",
196
184
  "type": "string"
@@ -203,10 +191,6 @@
203
191
  "description": "Cookie size.",
204
192
  "type": "number"
205
193
  },
206
- "httpOnly": {
207
- "description": "True if cookie is http-only.",
208
- "type": "boolean"
209
- },
210
194
  "secure": {
211
195
  "description": "True if cookie is secure.",
212
196
  "type": "boolean"
@@ -215,6 +199,26 @@
215
199
  "description": "True in case of session cookie.",
216
200
  "type": "boolean"
217
201
  },
202
+ "partitionKeyOpaque": {
203
+ "description": "True if cookie partition key is opaque. Supported only in Chrome.",
204
+ "type": "boolean"
205
+ },
206
+ "name": {
207
+ "description": "Cookie name.",
208
+ "type": "string"
209
+ },
210
+ "value": {
211
+ "description": "Cookie value.",
212
+ "type": "string"
213
+ },
214
+ "domain": {
215
+ "description": "Cookie domain.",
216
+ "type": "string"
217
+ },
218
+ "httpOnly": {
219
+ "description": "True if cookie is http-only.",
220
+ "type": "boolean"
221
+ },
218
222
  "sameSite": {
219
223
  "description": "Cookie SameSite type.",
220
224
  "enum": [
@@ -247,7 +251,7 @@
247
251
  "type": "string"
248
252
  },
249
253
  "partitionKey": {
250
- "description": "Cookie partition key. In Chrome, it is the top-level site the\npartitioned cookie is available in. In Firefox, it matches the\nsource origin in the\n{@link https://w3c.github.io/webdriver-bidi/#type-storage-PartitionKey PartitionKey}.",
254
+ "description": "Cookie partition key. In Chrome, it matches the top-level site the\npartitioned cookie is available in. In Firefox, it matches the\nsource origin in the\n{@link https://w3c.github.io/webdriver-bidi/#type-storage-PartitionKey PartitionKey}.",
251
255
  "anyOf": [
252
256
  {
253
257
  "$ref": "#/definitions/CookiePartitionKey"
@@ -256,17 +260,12 @@
256
260
  "type": "string"
257
261
  }
258
262
  ]
259
- },
260
- "partitionKeyOpaque": {
261
- "description": "True if cookie partition key is opaque. Supported only in Chrome.",
262
- "type": "boolean"
263
263
  }
264
264
  },
265
265
  "additionalProperties": false,
266
266
  "required": [
267
267
  "domain",
268
268
  "expires",
269
- "httpOnly",
270
269
  "name",
271
270
  "path",
272
271
  "secure",
@@ -132,7 +132,20 @@
132
132
  "type": "string"
133
133
  },
134
134
  "userAgent": {
135
- "type": "string"
135
+ "type": "object",
136
+ "properties": {
137
+ "userAgent": {
138
+ "type": "string"
139
+ },
140
+ "userAgentMetadata": {
141
+ "description": "Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints\nMissing optional values will be filled in by the target with what it would normally use.",
142
+ "$ref": "#/definitions/Protocol.Emulation.UserAgentMetadata"
143
+ },
144
+ "platform": {
145
+ "type": "string"
146
+ }
147
+ },
148
+ "additionalProperties": false
136
149
  },
137
150
  "viewport": {
138
151
  "anyOf": [
@@ -553,6 +566,82 @@
553
566
  "type": "object",
554
567
  "additionalProperties": false
555
568
  },
569
+ "Protocol.Emulation.UserAgentMetadata": {
570
+ "description": "Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints\nMissing optional values will be filled in by the target with what it would normally use.",
571
+ "type": "object",
572
+ "properties": {
573
+ "brands": {
574
+ "description": "Brands appearing in Sec-CH-UA.",
575
+ "type": "array",
576
+ "items": {
577
+ "$ref": "#/definitions/Protocol.Emulation.UserAgentBrandVersion"
578
+ }
579
+ },
580
+ "fullVersionList": {
581
+ "description": "Brands appearing in Sec-CH-UA-Full-Version-List.",
582
+ "type": "array",
583
+ "items": {
584
+ "$ref": "#/definitions/Protocol.Emulation.UserAgentBrandVersion"
585
+ }
586
+ },
587
+ "fullVersion": {
588
+ "type": "string"
589
+ },
590
+ "platform": {
591
+ "type": "string"
592
+ },
593
+ "platformVersion": {
594
+ "type": "string"
595
+ },
596
+ "architecture": {
597
+ "type": "string"
598
+ },
599
+ "model": {
600
+ "type": "string"
601
+ },
602
+ "mobile": {
603
+ "type": "boolean"
604
+ },
605
+ "bitness": {
606
+ "type": "string"
607
+ },
608
+ "wow64": {
609
+ "type": "boolean"
610
+ },
611
+ "formFactors": {
612
+ "description": "Used to specify User Agent form-factor values.\nSee https://wicg.github.io/ua-client-hints/#sec-ch-ua-form-factors",
613
+ "type": "array",
614
+ "items": {
615
+ "type": "string"
616
+ }
617
+ }
618
+ },
619
+ "additionalProperties": false,
620
+ "required": [
621
+ "architecture",
622
+ "mobile",
623
+ "model",
624
+ "platform",
625
+ "platformVersion"
626
+ ]
627
+ },
628
+ "Protocol.Emulation.UserAgentBrandVersion": {
629
+ "description": "Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints",
630
+ "type": "object",
631
+ "properties": {
632
+ "brand": {
633
+ "type": "string"
634
+ },
635
+ "version": {
636
+ "type": "string"
637
+ }
638
+ },
639
+ "additionalProperties": false,
640
+ "required": [
641
+ "brand",
642
+ "version"
643
+ ]
644
+ },
556
645
  "Viewport": {
557
646
  "type": "object",
558
647
  "properties": {
@@ -81,7 +81,7 @@ export const prompt = async (question) => {
81
81
  };
82
82
  // Exceptions are not caught, since any error would result in a crash regardless
83
83
  export const installDependencies = async (workingDirectory) => {
84
- await waitForCommand('npm install', workingDirectory);
84
+ await waitForCommand('npm clean-install', workingDirectory);
85
85
  await installBrowsers(workingDirectory);
86
86
  };
87
87
  export const installBrowsers = async (workingDirectory) => {
@@ -1,5 +1,5 @@
1
1
  import { APITags, BadRequest, BrowserHTTPRoute, BrowserlessRoutes, ChromiumCDP, HTTPRoutes, Methods, Timeout, bestAttemptCatch, contentTypes, debugScreenshotOpts, dedent, isBase64Encoded, jsonResponse, noop, sleep, waitForEvent as waitForEvt, waitForFunction as waitForFn, } from '@browserless.io/browserless';
2
- const scrape = async (elements) => {
2
+ const scrape = async (elements, bestAttempt = false) => {
3
3
  const wait = (selector, timeout = 30000) => {
4
4
  return new Promise((resolve, reject) => {
5
5
  const timeoutId = setTimeout(() => {
@@ -16,7 +16,17 @@ const scrape = async (elements) => {
16
16
  }, 100);
17
17
  });
18
18
  };
19
- await Promise.all(elements.map(({ selector, timeout }) => wait(selector, timeout)));
19
+ if (bestAttempt) {
20
+ const results = await Promise.allSettled(elements.map(({ selector, timeout }) => wait(selector, timeout)));
21
+ results.forEach((result, index) => {
22
+ if (result.status === 'rejected') {
23
+ console.warn(`Selector "${elements[index].selector}" failed: ${result.reason.message}`);
24
+ }
25
+ });
26
+ }
27
+ else {
28
+ await Promise.all(elements.map(({ selector, timeout }) => wait(selector, timeout)));
29
+ }
20
30
  return elements.map(({ selector }) => {
21
31
  const $els = [...document.querySelectorAll(selector)];
22
32
  return {
@@ -177,7 +187,7 @@ export default class ChromiumScrapePostRoute extends BrowserHTTPRoute {
177
187
  res.setHeader(key, value);
178
188
  }
179
189
  }
180
- const data = await page.evaluate(scrape, elements).catch((e) => {
190
+ const data = await page.evaluate(scrape, elements, bestAttempt).catch((e) => {
181
191
  if (e.message.includes('Timed out')) {
182
192
  throw new Timeout(e);
183
193
  }
@@ -1,17 +1,17 @@
1
- FROM ubuntu:20.04
1
+ FROM ubuntu:24.04
2
2
 
3
- LABEL org.opencontainers.image.source https://github.com/browserless/browserless
3
+ LABEL org.opencontainers.image.source=https://github.com/browserless/browserless
4
4
 
5
5
  ARG DEBIAN_FRONTEND=noninteractive
6
6
  ARG TZ=America/Los_Angeles
7
7
  ARG BLESS_USER_ID=999
8
8
  ARG APP_DIR=/usr/src/app
9
- ARG NODE_VERSION=v24.2.0
9
+ ARG NODE_VERSION=v24.8.0
10
10
 
11
11
  ENV NODE_VERSION=$NODE_VERSION
12
- ENV NVM_DIR /usr/src/.nvm
13
- ENV NODE_PATH $NVM_DIR/versions/node/$NODE_VERSION/bin
14
- ENV PATH $NODE_PATH:$PATH
12
+ ENV NVM_DIR=/usr/src/.nvm
13
+ ENV NODE_PATH=$NVM_DIR/versions/node/$NODE_VERSION/bin
14
+ ENV PATH=$NODE_PATH:$PATH
15
15
  ENV APP_DIR=$APP_DIR
16
16
  ENV TZ=$TZ
17
17
  ENV DEBIAN_FRONTEND=$DEBIAN_FRONTEND
@@ -59,7 +59,7 @@ RUN curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | b
59
59
  nvm install $NODE_VERSION
60
60
 
61
61
  RUN add-apt-repository universe && apt-get update && \
62
- apt-get install -y python3.10 python3-pip && \
62
+ apt-get install -y python3 python3-pip python3-setuptools && \
63
63
  update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 && \
64
64
  update-alternatives --install /usr/bin/python python /usr/bin/python3 1
65
65
 
@@ -67,4 +67,4 @@ RUN groupadd -r blessuser && useradd --uid ${BLESS_USER_ID} -r -g blessuser -G a
67
67
  mkdir -p /home/blessuser/Downloads && \
68
68
  chown -R blessuser:blessuser /home/blessuser
69
69
 
70
- RUN npm i --production=false
70
+ RUN npm clean-install
@@ -1,6 +1,6 @@
1
1
  ARG VERSION=latest
2
2
  FROM ghcr.io/browserless/base:$VERSION
3
- LABEL org.opencontainers.image.source https://github.com/browserless/browserless
3
+ LABEL org.opencontainers.image.source=https://github.com/browserless/browserless
4
4
 
5
5
  COPY fonts/* /usr/share/fonts/truetype/
6
6
  COPY src src/
@@ -10,7 +10,7 @@ COPY src/routes/chrome src/routes/chrome/
10
10
 
11
11
  RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections && \
12
12
  apt-get -y -qq install software-properties-common &&\
13
- apt-add-repository "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
13
+ apt-add-repository "deb https://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
14
14
  apt-get -y -qq --no-install-recommends install \
15
15
  fontconfig \
16
16
  fonts-freefont-ttf \
@@ -1,6 +1,6 @@
1
1
  ARG VERSION=latest
2
2
  FROM ghcr.io/browserless/base:$VERSION
3
- LABEL org.opencontainers.image.source https://github.com/browserless/browserless
3
+ LABEL org.opencontainers.image.source=https://github.com/browserless/browserless
4
4
 
5
5
  COPY fonts/* /usr/share/fonts/truetype/
6
6
  COPY src src/
@@ -10,7 +10,7 @@ COPY src/routes/chromium src/routes/chromium/
10
10
 
11
11
  RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections && \
12
12
  apt-get -y -qq install software-properties-common &&\
13
- apt-add-repository "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
13
+ apt-add-repository "deb https://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
14
14
  apt-get -y -qq --no-install-recommends install \
15
15
  fontconfig \
16
16
  fonts-freefont-ttf \
@@ -1,6 +1,6 @@
1
1
  ARG VERSION=latest
2
2
  FROM ghcr.io/browserless/base:$VERSION
3
- LABEL org.opencontainers.image.source https://github.com/browserless/browserless
3
+ LABEL org.opencontainers.image.source=https://github.com/browserless/browserless
4
4
 
5
5
  COPY fonts/* /usr/share/fonts/truetype/
6
6
  COPY src src/
@@ -10,7 +10,7 @@ COPY src/routes/edge src/routes/edge/
10
10
 
11
11
  RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections && \
12
12
  apt-get -y -qq install software-properties-common &&\
13
- apt-add-repository "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
13
+ apt-add-repository "deb https://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
14
14
  apt-get -y -qq --no-install-recommends install \
15
15
  fontconfig \
16
16
  fonts-freefont-ttf \
@@ -1,6 +1,6 @@
1
1
  ARG VERSION=latest
2
2
  FROM ghcr.io/browserless/base:$VERSION
3
- LABEL org.opencontainers.image.source https://github.com/browserless/browserless
3
+ LABEL org.opencontainers.image.source=https://github.com/browserless/browserless
4
4
 
5
5
  COPY fonts/* /usr/share/fonts/truetype/
6
6
  COPY src src/
@@ -10,7 +10,7 @@ COPY src/routes/firefox src/routes/firefox/
10
10
 
11
11
  RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections && \
12
12
  apt-get -y -qq install software-properties-common &&\
13
- apt-add-repository "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
13
+ apt-add-repository "deb https://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
14
14
  apt-get -y -qq --no-install-recommends install \
15
15
  fontconfig \
16
16
  fonts-freefont-ttf \
@@ -1,6 +1,6 @@
1
1
  ARG VERSION=latest
2
2
  FROM ghcr.io/browserless/base:$VERSION
3
- LABEL org.opencontainers.image.source https://github.com/browserless/browserless
3
+ LABEL org.opencontainers.image.source=https://github.com/browserless/browserless
4
4
 
5
5
  ARG TARGETPLATFORM
6
6
  ENV TARGETPLATFORM=${TARGETPLATFORM}
@@ -10,7 +10,7 @@ COPY src src/
10
10
 
11
11
  RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections &&\
12
12
  apt-get -y -qq install software-properties-common &&\
13
- apt-add-repository "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner" &&\
13
+ apt-add-repository "deb https://archive.canonical.com/ubuntu $(lsb_release -sc) partner" &&\
14
14
  apt-get -y -qq --no-install-recommends install \
15
15
  fontconfig \
16
16
  fonts-freefont-ttf \
@@ -27,7 +27,7 @@ COPY tsconfig.json .
27
27
  COPY *README.md .
28
28
 
29
29
  # Install dependencies
30
- RUN npm install
30
+ RUN npm clean-install
31
31
 
32
32
  # Build Source files
33
33
  RUN npm run build
@@ -1,6 +1,6 @@
1
1
  ARG VERSION=latest
2
2
  FROM ghcr.io/browserless/base:$VERSION
3
- LABEL org.opencontainers.image.source https://github.com/browserless/browserless
3
+ LABEL org.opencontainers.image.source=https://github.com/browserless/browserless
4
4
 
5
5
  # Install Fonts
6
6
  COPY fonts/* /usr/share/fonts/truetype/
@@ -11,7 +11,7 @@ COPY src/routes/webkit src/routes/webkit/
11
11
 
12
12
  RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections && \
13
13
  apt-get -y -qq install software-properties-common &&\
14
- apt-add-repository "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
14
+ apt-add-repository "deb https://archive.canonical.com/ubuntu $(lsb_release -sc) partner" && \
15
15
  apt-get -y -qq --no-install-recommends install \
16
16
  fontconfig \
17
17
  fonts-freefont-ttf \
@@ -68,7 +68,7 @@
68
68
  "description": "Header for a ruleset section in 'Filter lists pane'"
69
69
  },
70
70
  "3pGroupMalware": {
71
- "message": "Malware protection, security",
71
+ "message": "Gwarez a-enep ar malware ha surentez",
72
72
  "description": "Header for a ruleset section in 'Filter lists pane'"
73
73
  },
74
74
  "3pGroupAnnoyances": {
@@ -292,11 +292,11 @@
292
292
  "description": "A button to navigate to the blocked page"
293
293
  },
294
294
  "zapperTipEnter": {
295
- "message": "Remove an element",
295
+ "message": "הסר אלמנט",
296
296
  "description": "Tooltip for the button used to enter zapper mode"
297
297
  },
298
298
  "zapperTipQuit": {
299
- "message": "Exit element zapper mode",
299
+ "message": "צא ממצב מחיקת אלמנטים",
300
300
  "description": "Tooltip for the button used to exit zapper mode"
301
301
  },
302
302
  "pickerTipEnter": {
@@ -176,7 +176,7 @@
176
176
  "description": "A checkbox to use for NSFW sites"
177
177
  },
178
178
  "supportReportSpecificButton": {
179
- "message": "Új jelentés létrehozása",
179
+ "message": "Új jelentés létrehozása GitHub-ra",
180
180
  "description": "Text for button which open an external webpage in Support pane"
181
181
  },
182
182
  "defaultFilteringModeSectionLabel": {
@@ -68,7 +68,7 @@
68
68
  "description": "Header for a ruleset section in 'Filter lists pane'"
69
69
  },
70
70
  "3pGroupMalware": {
71
- "message": "Domínios de malware",
71
+ "message": "Proteção contra malware, segurança",
72
72
  "description": "Header for a ruleset section in 'Filter lists pane'"
73
73
  },
74
74
  "3pGroupAnnoyances": {
@@ -68,7 +68,7 @@
68
68
  "description": "Header for a ruleset section in 'Filter lists pane'"
69
69
  },
70
70
  "3pGroupMalware": {
71
- "message": "Domínios maliciosos",
71
+ "message": "Proteção contra malware, segurança",
72
72
  "description": "Header for a ruleset section in 'Filter lists pane'"
73
73
  },
74
74
  "3pGroupAnnoyances": {
@@ -40,7 +40,7 @@
40
40
  "description": "Label in the popup panel for the local tools section"
41
41
  },
42
42
  "popupTipReport": {
43
- "message": "Nahlásiť problém na tejto webovej stránke",
43
+ "message": "Nahlásiť problém",
44
44
  "description": "Tooltip used for the 'chat' icon in the panel"
45
45
  },
46
46
  "popupTipDashboard": {
@@ -68,7 +68,7 @@
68
68
  "description": "Header for a ruleset section in 'Filter lists pane'"
69
69
  },
70
70
  "3pGroupMalware": {
71
- "message": "Domény malvéru",
71
+ "message": "Ochrana pred škodlivým softvérom, bezpečnosť",
72
72
  "description": "Header for a ruleset section in 'Filter lists pane'"
73
73
  },
74
74
  "3pGroupAnnoyances": {
@@ -128,7 +128,7 @@
128
128
  "description": "A paragraph in the filter issue reporter section"
129
129
  },
130
130
  "supportFindSpecificButton": {
131
- "message": "Vyhľadať podobné hlásenia",
131
+ "message": "Vyhľadať podobné hlásenia na Githube",
132
132
  "description": "A clickable link in the filter issue reporter section"
133
133
  },
134
134
  "supportS6URL": {
@@ -176,7 +176,7 @@
176
176
  "description": "A checkbox to use for NSFW sites"
177
177
  },
178
178
  "supportReportSpecificButton": {
179
- "message": "Vytvoriť nové hlásenie",
179
+ "message": "Vytvoriť nové hlásenie na Githube",
180
180
  "description": "Text for button which open an external webpage in Support pane"
181
181
  },
182
182
  "defaultFilteringModeSectionLabel": {
@@ -248,7 +248,7 @@
248
248
  "description": "Label for a checkbox in the options page"
249
249
  },
250
250
  "developerModeLegend": {
251
- "message": "Povoliť prístup k funkciám vhodným pre technických používateľov.",
251
+ "message": "Umožňuje prístup k funkciám vhodným pre technických používateľov.",
252
252
  "description": "Short description for a checkbox in the options page"
253
253
  },
254
254
  "findListsPlaceholder": {
@@ -292,7 +292,7 @@
292
292
  "description": "A button to navigate to the blocked page"
293
293
  },
294
294
  "zapperTipEnter": {
295
- "message": "Prejsť do režimu dočasného skrytia prvkov",
295
+ "message": "Odstrániť prvok",
296
296
  "description": "Tooltip for the button used to enter zapper mode"
297
297
  },
298
298
  "zapperTipQuit": {