@browserless.io/browserless 2.37.0 → 2.38.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 (492) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/build/browsers/index.js +15 -0
  3. package/build/routes/chrome/http/content.post.query.json +3 -0
  4. package/build/routes/chrome/http/download.post.query.json +3 -0
  5. package/build/routes/chrome/http/function.post.query.json +3 -0
  6. package/build/routes/chrome/http/pdf.post.query.json +3 -0
  7. package/build/routes/chrome/http/performance.post.query.json +3 -0
  8. package/build/routes/chrome/http/scrape.post.query.json +3 -0
  9. package/build/routes/chrome/http/screenshot.post.query.json +3 -0
  10. package/build/routes/chrome/tests/content.spec.js +21 -0
  11. package/build/routes/chrome/tests/json.spec.js +100 -0
  12. package/build/routes/chrome/ws/browser.query.json +3 -0
  13. package/build/routes/chrome/ws/cdp.query.json +3 -0
  14. package/build/routes/chrome/ws/function-connect.query.json +3 -0
  15. package/build/routes/chrome/ws/page.query.json +3 -0
  16. package/build/routes/chromium/http/content.post.query.json +3 -0
  17. package/build/routes/chromium/http/download.post.query.json +3 -0
  18. package/build/routes/chromium/http/function.post.query.json +3 -0
  19. package/build/routes/chromium/http/pdf.post.query.json +3 -0
  20. package/build/routes/chromium/http/performance.post.query.json +3 -0
  21. package/build/routes/chromium/http/scrape.post.query.json +3 -0
  22. package/build/routes/chromium/http/screenshot.post.query.json +3 -0
  23. package/build/routes/chromium/tests/content.spec.js +21 -0
  24. package/build/routes/chromium/tests/function.spec.js +27 -0
  25. package/build/routes/chromium/tests/json.spec.js +100 -0
  26. package/build/routes/chromium/ws/browser.query.json +3 -0
  27. package/build/routes/chromium/ws/cdp.query.json +3 -0
  28. package/build/routes/chromium/ws/function-connect.query.json +3 -0
  29. package/build/routes/chromium/ws/page.query.json +3 -0
  30. package/build/routes/edge/http/content.post.query.json +3 -0
  31. package/build/routes/edge/http/download.post.query.json +3 -0
  32. package/build/routes/edge/http/function.post.query.json +3 -0
  33. package/build/routes/edge/http/pdf.post.query.json +3 -0
  34. package/build/routes/edge/http/performance.post.query.json +3 -0
  35. package/build/routes/edge/http/scrape.post.query.json +3 -0
  36. package/build/routes/edge/http/screenshot.post.query.json +3 -0
  37. package/build/routes/edge/tests/content.spec.js +21 -0
  38. package/build/routes/edge/tests/json.spec.js +100 -0
  39. package/build/routes/edge/ws/browser.query.json +3 -0
  40. package/build/routes/edge/ws/cdp.query.json +3 -0
  41. package/build/routes/edge/ws/function-connect.query.json +3 -0
  42. package/build/routes/edge/ws/page.query.json +3 -0
  43. package/build/routes/management/http/kill.get.query.json +3 -0
  44. package/build/routes/management/http/sessions.get.query.json +3 -0
  45. package/build/routes/management/tests/management.spec.js +44 -0
  46. package/build/server.js +1 -1
  47. package/build/shim.js +11 -1
  48. package/build/shim.spec.js +14 -0
  49. package/build/types.d.ts +2 -0
  50. package/extensions/ublocklite/_locales/ar/messages.json +5 -5
  51. package/extensions/ublocklite/_locales/br_FR/messages.json +2 -2
  52. package/extensions/ublocklite/_locales/cs/messages.json +8 -8
  53. package/extensions/ublocklite/_locales/da/messages.json +5 -5
  54. package/extensions/ublocklite/_locales/de/messages.json +1 -1
  55. package/extensions/ublocklite/_locales/es/messages.json +4 -4
  56. package/extensions/ublocklite/_locales/fa/messages.json +8 -8
  57. package/extensions/ublocklite/_locales/gl/messages.json +5 -5
  58. package/extensions/ublocklite/_locales/hu/messages.json +5 -5
  59. package/extensions/ublocklite/_locales/ka/messages.json +5 -5
  60. package/extensions/ublocklite/_locales/nb/messages.json +7 -7
  61. package/extensions/ublocklite/_locales/pt_PT/messages.json +9 -9
  62. package/extensions/ublocklite/_locales/ro/messages.json +32 -32
  63. package/extensions/ublocklite/_locales/ru/messages.json +3 -3
  64. package/extensions/ublocklite/_locales/sq/messages.json +5 -5
  65. package/extensions/ublocklite/_locales/sv/messages.json +5 -5
  66. package/extensions/ublocklite/_locales/zh_CN/messages.json +5 -5
  67. package/extensions/ublocklite/css/settings.css +6 -0
  68. package/extensions/ublocklite/dashboard.html +1 -1
  69. package/extensions/ublocklite/js/background.js +29 -8
  70. package/extensions/ublocklite/js/dashboard.js +4 -5
  71. package/extensions/ublocklite/js/jsonpath.js +25 -10
  72. package/extensions/ublocklite/js/mode-manager.js +7 -9
  73. package/extensions/ublocklite/js/report.js +2 -4
  74. package/extensions/ublocklite/js/scripting/css-api.js +33 -0
  75. package/extensions/ublocklite/js/scripting/css-generic.js +3 -13
  76. package/extensions/ublocklite/js/scripting/css-procedural-api.js +1 -9
  77. package/extensions/ublocklite/js/scripting/css-procedural.js +1 -5
  78. package/extensions/ublocklite/js/scripting/css-specific.js +1 -5
  79. package/extensions/ublocklite/js/scripting-manager.js +11 -8
  80. package/extensions/ublocklite/js/troubleshooting.js +33 -18
  81. package/extensions/ublocklite/js/utils.js +15 -13
  82. package/extensions/ublocklite/manifest.json +3 -2
  83. package/extensions/ublocklite/rulesets/generic-details.json +4 -2
  84. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +4 -5
  85. package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +13 -8
  86. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +24 -18
  87. package/extensions/ublocklite/rulesets/main/annoyances-notifications.json +2 -1
  88. package/extensions/ublocklite/rulesets/main/annoyances-others.json +3 -2
  89. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +5 -3
  90. package/extensions/ublocklite/rulesets/main/chn-0.json +26 -16
  91. package/extensions/ublocklite/rulesets/main/deu-0.json +4 -4
  92. package/extensions/ublocklite/rulesets/main/dpollock-0.json +2 -1
  93. package/extensions/ublocklite/rulesets/main/easylist.json +44 -101
  94. package/extensions/ublocklite/rulesets/main/easyprivacy.json +28 -15
  95. package/extensions/ublocklite/rulesets/main/est-0.json +2 -1
  96. package/extensions/ublocklite/rulesets/main/fin-0.json +3 -1
  97. package/extensions/ublocklite/rulesets/main/fra-0.json +6 -4
  98. package/extensions/ublocklite/rulesets/main/hrv-0.json +6 -3
  99. package/extensions/ublocklite/rulesets/main/hun-0.json +5 -2
  100. package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
  101. package/extensions/ublocklite/rulesets/main/ind-0.json +36 -34
  102. package/extensions/ublocklite/rulesets/main/isr-0.json +1 -1
  103. package/extensions/ublocklite/rulesets/main/ita-0.json +6 -3
  104. package/extensions/ublocklite/rulesets/main/jpn-1.json +31 -24
  105. package/extensions/ublocklite/rulesets/main/kor-1.json +5 -3
  106. package/extensions/ublocklite/rulesets/main/mkd-0.json +2 -1
  107. package/extensions/ublocklite/rulesets/main/nld-0.json +3 -1
  108. package/extensions/ublocklite/rulesets/main/nor-0.json +17 -3
  109. package/extensions/ublocklite/rulesets/main/pgl.json +16 -20
  110. package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
  111. package/extensions/ublocklite/rulesets/main/rus-0.json +14 -13
  112. package/extensions/ublocklite/rulesets/main/rus-1.json +5 -2
  113. package/extensions/ublocklite/rulesets/main/spa-1.json +13 -3
  114. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +11287 -12041
  115. package/extensions/ublocklite/rulesets/main/swe-1.json +24 -22
  116. package/extensions/ublocklite/rulesets/main/tur-0.json +15 -6
  117. package/extensions/ublocklite/rulesets/main/ublock-badware.json +30 -3
  118. package/extensions/ublocklite/rulesets/main/ublock-filters.json +91 -88
  119. package/extensions/ublocklite/rulesets/main/ukr-0.json +3 -3
  120. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +4063 -328
  121. package/extensions/ublocklite/rulesets/main/vie-1.json +62 -51
  122. package/extensions/ublocklite/rulesets/regex/block-lan.json +16 -0
  123. package/extensions/ublocklite/rulesets/regex/chn-0.json +3 -2
  124. package/extensions/ublocklite/rulesets/regex/easylist.json +1 -6
  125. package/extensions/ublocklite/rulesets/regex/jpn-1.json +2 -3
  126. package/extensions/ublocklite/rulesets/regex/rus-0.json +2 -1
  127. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +5 -5
  128. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +23 -14
  129. package/extensions/ublocklite/rulesets/ruleset-details.json +239 -239
  130. package/extensions/ublocklite/rulesets/scripting/generic/adguard-mobile.js +2 -2
  131. package/extensions/ublocklite/rulesets/scripting/generic/alb-0.js +1 -1
  132. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  133. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +2 -2
  134. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-others.js +2 -2
  135. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +2 -2
  136. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +3 -3
  137. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-widgets.js +1 -1
  138. package/extensions/ublocklite/rulesets/scripting/generic/bgr-0.js +2 -2
  139. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +2 -2
  140. package/extensions/ublocklite/rulesets/scripting/generic/cze-0.js +2 -2
  141. package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +2 -2
  142. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  143. package/extensions/ublocklite/rulesets/scripting/generic/easyprivacy.js +1 -1
  144. package/extensions/ublocklite/rulesets/scripting/generic/est-0.js +2 -2
  145. package/extensions/ublocklite/rulesets/scripting/generic/fin-0.js +2 -2
  146. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +2 -2
  147. package/extensions/ublocklite/rulesets/scripting/generic/grc-0.js +2 -2
  148. package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +2 -2
  149. package/extensions/ublocklite/rulesets/scripting/generic/hun-0.js +2 -2
  150. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
  151. package/extensions/ublocklite/rulesets/scripting/generic/ind-0.js +1 -1
  152. package/extensions/ublocklite/rulesets/scripting/generic/irn-0.js +2 -2
  153. package/extensions/ublocklite/rulesets/scripting/generic/isr-0.js +2 -2
  154. package/extensions/ublocklite/rulesets/scripting/generic/ita-0.js +2 -2
  155. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +2 -2
  156. package/extensions/ublocklite/rulesets/scripting/generic/kor-1.js +2 -2
  157. package/extensions/ublocklite/rulesets/scripting/generic/ltu-0.js +1 -1
  158. package/extensions/ublocklite/rulesets/scripting/generic/lva-0.js +1 -1
  159. package/extensions/ublocklite/rulesets/scripting/generic/mkd-0.js +2 -2
  160. package/extensions/ublocklite/rulesets/scripting/generic/nld-0.js +2 -2
  161. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +2 -2
  162. package/extensions/ublocklite/rulesets/scripting/generic/pol-0.js +2 -2
  163. package/extensions/ublocklite/rulesets/scripting/generic/rou-1.js +2 -2
  164. package/extensions/ublocklite/rulesets/scripting/generic/rus-0.js +2 -2
  165. package/extensions/ublocklite/rulesets/scripting/generic/rus-1.js +2 -2
  166. package/extensions/ublocklite/rulesets/scripting/generic/spa-0.js +2 -2
  167. package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +2 -2
  168. package/extensions/ublocklite/rulesets/scripting/generic/svn-0.js +1 -1
  169. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +2 -2
  170. package/extensions/ublocklite/rulesets/scripting/generic/tha-0.js +1 -1
  171. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +2 -2
  172. package/extensions/ublocklite/rulesets/scripting/generic/ublock-badware.js +1 -1
  173. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  174. package/extensions/ublocklite/rulesets/scripting/generic/ubol-tests.js +2 -2
  175. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +3 -3
  176. package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +3 -3
  177. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +3 -5
  178. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +4 -0
  179. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +4 -0
  180. package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +1 -1
  181. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  182. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
  183. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +2 -2
  184. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  185. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
  186. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  187. package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +1 -1
  188. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +1 -1
  189. package/extensions/ublocklite/rulesets/scripting/procedural/grc-0.js +3 -3
  190. package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +3 -3
  191. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  192. package/extensions/ublocklite/rulesets/scripting/procedural/isr-0.js +3 -3
  193. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  194. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  195. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  196. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  197. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  198. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
  199. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  200. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-experimental.js +42 -0
  201. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  202. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.addEventListener-defuser.js +7 -3
  203. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.prevent-setTimeout.js +5 -1
  204. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.addEventListener-defuser.js +5 -1
  205. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +5 -1
  206. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-setTimeout.js +5 -1
  207. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
  208. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  209. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  210. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-session-storage-item.js +2 -2
  211. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +5 -2
  212. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-replace-node-text.js +2 -2
  213. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  214. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.addEventListener-defuser.js +5 -1
  215. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-constant.js +2 -2
  216. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +5 -1
  217. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.json-prune.js +2 -2
  218. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setInterval.js +5 -1
  219. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setTimeout.js +5 -1
  220. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.set-cookie.js +2 -2
  221. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +2 -2
  222. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-stack-trace.js +2 -2
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +6 -2
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.noeval-if.js +5 -1
  225. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +5 -1
  226. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +5 -1
  227. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +6 -2
  228. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +5 -1
  229. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-attr.js +2 -2
  230. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-class.js +2 -2
  231. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
  232. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-click-element.js +3 -0
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-argument.js +19 -8
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-outbound-text.js +5 -1
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-suppress-native-method.js +5 -1
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +5 -1
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.evaldata-prune.js +5 -1
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.noeval-if.js +5 -1
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +7 -3
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setInterval.js +5 -1
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +6 -2
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +5 -1
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +1 -1
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/{nld-0.json-prune-fetch-response.js → chn-0.set-cookie.js} +120 -266
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.addEventListener-defuser.js +5 -1
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setInterval.js +5 -1
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setTimeout.js +5 -1
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +5 -1
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/est-0.addEventListener-defuser.js +5 -1
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.prevent-setTimeout.js +5 -1
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/{vie-1.addEventListener-defuser.js → fin-0.remove-node-text.js} +105 -154
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +5 -1
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +5 -1
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-requestAnimationFrame.js +5 -1
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setInterval.js +5 -1
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +5 -1
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +5 -1
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.addEventListener-defuser.js +5 -1
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-setTimeout.js +5 -1
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-window-open.js +5 -1
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-constant.js +2 -2
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +5 -1
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.noeval-if.js +5 -1
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +5 -1
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-setTimeout.js +5 -1
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-window-open.js +5 -1
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +5 -1
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +4 -22
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +5 -1
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-setTimeout.js +5 -1
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +5 -1
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.addEventListener-defuser.js +5 -1
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +6 -2
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-setTimeout.js +5 -1
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-window-open.js +5 -1
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +5 -1
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.adjust-setInterval.js +2 -2
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +6 -24
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.noeval-if.js +5 -1
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +5 -1
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setInterval.js +5 -1
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setTimeout.js +5 -1
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-window-open.js +5 -1
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +2 -2
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.addEventListener-defuser.js +7 -3
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +7 -3
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setInterval.js +5 -1
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +7 -3
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-window-open.js +5 -1
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-xhr.js +2 -2
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.remove-cookie.js +2 -2
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.remove-node-text.js +2 -2
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-local-storage-item.js +399 -0
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.prevent-setTimeout.js +5 -1
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.prevent-window-open.js +5 -1
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.addEventListener-defuser.js +5 -1
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +5 -1
  301. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-setTimeout.js +5 -1
  302. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.addEventListener-defuser.js +5 -1
  303. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +5 -1
  304. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-setTimeout.js +5 -1
  305. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.addEventListener-defuser.js +5 -1
  306. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.noeval-if.js +5 -1
  307. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setInterval.js +5 -1
  308. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setTimeout.js +5 -1
  309. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-window-open.js +5 -1
  310. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.noeval-if.js +5 -1
  311. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setInterval.js +5 -1
  312. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setTimeout.js +5 -1
  313. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-window-open.js +5 -1
  314. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-write.js +2 -2
  315. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-stack-trace.js +2 -2
  316. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +8 -4
  317. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.href-sanitizer.js +6 -24
  318. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.noeval-if.js +5 -1
  319. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +5 -1
  320. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setInterval.js +5 -1
  321. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +5 -1
  322. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-window-open.js +5 -1
  323. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
  324. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
  325. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  326. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-cookie.js +2 -2
  327. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +5 -1
  328. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +5 -1
  329. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-setTimeout.js +5 -1
  330. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-local-storage-item.js +399 -0
  331. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +5 -1
  332. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.href-sanitizer.js +4 -22
  333. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
  334. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +6 -2
  335. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +5 -1
  336. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +5 -1
  337. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setInterval.js +5 -1
  338. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +7 -3
  339. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +5 -1
  340. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-node-text.js +2 -2
  341. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +5 -1
  342. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +4 -22
  343. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +5 -1
  344. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setInterval.js +5 -1
  345. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +5 -1
  346. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +5 -1
  347. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +5 -1
  348. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setInterval.js +5 -1
  349. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +5 -1
  350. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +6 -2
  351. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  352. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.addEventListener-defuser.js +5 -1
  353. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.noeval-if.js +5 -1
  354. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.trusted-replace-argument.js +19 -8
  355. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +848 -0
  356. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +1 -1
  357. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  358. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +1 -1
  359. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +1 -1
  360. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  361. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +7 -3
  362. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +1 -1
  363. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  364. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +5 -23
  365. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-fetch-response.js +29 -11
  366. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +24 -10
  367. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit.js +29 -11
  368. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
  369. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
  370. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +2 -2
  371. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +24 -10
  372. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +7 -3
  373. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +7 -3
  374. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +6 -2
  375. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +8 -4
  376. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +8 -4
  377. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +7 -3
  378. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
  379. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  380. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  381. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
  382. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  383. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
  384. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +3 -0
  385. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
  386. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +29 -11
  387. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit.js +29 -11
  388. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +5 -1
  389. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-dom-bypass.js +5 -1
  390. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -3
  391. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +21 -10
  392. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  393. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +5 -1
  394. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-attr.js +2 -2
  395. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +7 -3
  396. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-fetch-response.js +29 -11
  397. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-xhr-response.js +24 -10
  398. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.prevent-setTimeout.js +5 -1
  399. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.trusted-prevent-dom-bypass.js +5 -1
  400. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +5 -1
  401. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-window-open.js +5 -1
  402. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
  403. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  404. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +5 -1
  405. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-setTimeout.js +5 -1
  406. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +2 -2
  407. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  408. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  409. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
  410. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  411. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  412. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  413. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  414. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  415. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  416. package/extensions/ublocklite/rulesets/scripting/specific/est-0.js +3 -3
  417. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  418. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  419. package/extensions/ublocklite/rulesets/scripting/specific/grc-0.js +3 -3
  420. package/extensions/ublocklite/rulesets/scripting/specific/hrv-0.js +3 -3
  421. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  422. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  423. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  424. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  425. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  426. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  427. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  428. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  429. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  430. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  431. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  432. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  433. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  434. package/extensions/ublocklite/rulesets/scripting/specific/ublock-badware.js +1 -1
  435. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  436. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  437. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  438. package/extensions/ublocklite/rulesets/scriptlet-details.json +205 -117
  439. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +18 -28
  440. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +1 -0
  441. package/extensions/ublocklite/rulesets/strictblock/annoyances-widgets.json +1 -0
  442. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +267 -247
  443. package/extensions/ublocklite/rulesets/strictblock/deu-0.json +1 -0
  444. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +2 -1
  445. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  446. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +47 -3
  447. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +102 -41
  448. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +208 -198
  449. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  450. package/extensions/ublocklite/rulesets/strictblock/pgl.json +16 -20
  451. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +5 -1
  452. package/extensions/ublocklite/rulesets/strictblock/spa-1.json +1 -0
  453. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +11287 -12041
  454. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +0 -1
  455. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +1 -0
  456. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +671 -653
  457. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +23 -19
  458. package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +3 -0
  459. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +4063 -328
  460. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +5 -1
  461. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +59 -1
  462. package/extensions/ublocklite/ublock.zip +0 -0
  463. package/package.json +23 -22
  464. package/scripts/install-debugger.js +2 -2
  465. package/src/browsers/index.ts +20 -0
  466. package/src/routes/chrome/tests/content.spec.ts +24 -0
  467. package/src/routes/chrome/tests/json.spec.ts +134 -0
  468. package/src/routes/chromium/tests/content.spec.ts +24 -0
  469. package/src/routes/chromium/tests/function.spec.ts +33 -0
  470. package/src/routes/chromium/tests/json.spec.ts +134 -0
  471. package/src/routes/chromium/tests/scrape.spec.ts +3 -1
  472. package/src/routes/edge/tests/content.spec.ts +24 -0
  473. package/src/routes/edge/tests/json.spec.ts +134 -0
  474. package/src/routes/management/tests/management.spec.ts +66 -0
  475. package/src/server.ts +1 -1
  476. package/src/shared/screenshot.http.ts +1 -1
  477. package/src/shim.spec.ts +18 -0
  478. package/src/shim.ts +15 -1
  479. package/src/types.ts +2 -0
  480. package/static/docs/swagger.json +5 -2
  481. package/static/docs/swagger.min.json +4 -1
  482. package/static/function/client.js +143 -105
  483. package/static/function/index.html +143 -105
  484. package/build/routes/chrome/tests/json-version.spec.js +0 -37
  485. package/build/routes/chromium/tests/json-version.spec.js +0 -37
  486. package/build/routes/edge/tests/json-version.spec.js +0 -37
  487. package/src/routes/chrome/tests/json-version.spec.ts +0 -52
  488. package/src/routes/chromium/tests/json-version.spec.ts +0 -52
  489. package/src/routes/edge/tests/json-version.spec.ts +0 -52
  490. /package/build/routes/chrome/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
  491. /package/build/routes/chromium/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
  492. /package/build/routes/edge/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
@@ -97,6 +97,9 @@
97
97
  "ignoreHTTPSErrors": {
98
98
  "type": "boolean"
99
99
  },
100
+ "acceptInsecureCerts": {
101
+ "type": "boolean"
102
+ },
100
103
  "slowMo": {
101
104
  "type": "number"
102
105
  },
@@ -309,4 +309,25 @@ describe('/edge/content API', function () {
309
309
  expect(res.status).to.equal(200);
310
310
  });
311
311
  });
312
+ it('can accept insecure certs', async () => {
313
+ const config = new Config();
314
+ config.setToken('browserless');
315
+ const metrics = new Metrics();
316
+ await start({ config, metrics });
317
+ const body = {
318
+ gotoOptions: {
319
+ waitUntil: `networkidle2`,
320
+ },
321
+ url: 'https://self-signed.badssl.com',
322
+ };
323
+ await fetch('http://localhost:3000/edge/content?token=browserless&launch={"acceptInsecureCerts":true}', {
324
+ body: JSON.stringify(body),
325
+ headers: {
326
+ 'content-type': 'application/json',
327
+ },
328
+ method: 'POST',
329
+ }).then(async (res) => {
330
+ expect(res.status).to.equal(200);
331
+ });
332
+ });
312
333
  });
@@ -0,0 +1,100 @@
1
+ import { Browserless, Config, Metrics } from '@browserless.io/browserless';
2
+ import { expect } from 'chai';
3
+ describe('/json/ API', function () {
4
+ let browserless;
5
+ const start = ({ config = new Config(), metrics = new Metrics(), } = {}) => {
6
+ browserless = new Browserless({ config, metrics });
7
+ return browserless.start();
8
+ };
9
+ afterEach(async () => {
10
+ await browserless.stop();
11
+ });
12
+ it('allows requests to /json/version', async () => {
13
+ const config = new Config();
14
+ config.setToken('browserless');
15
+ const metrics = new Metrics();
16
+ await start({ config, metrics });
17
+ const res = await fetch('http://localhost:3000/json/version?token=browserless');
18
+ const resJSON = await res.json();
19
+ [
20
+ 'Browser',
21
+ 'Protocol-Version',
22
+ 'User-Agent',
23
+ 'V8-Version',
24
+ 'WebKit-Version',
25
+ 'webSocketDebuggerUrl',
26
+ 'Debugger-Version',
27
+ ].forEach((k) => expect(resJSON).to.haveOwnProperty(k));
28
+ });
29
+ it('rejects unauthorized requests to /json/version', async () => {
30
+ const config = new Config();
31
+ config.setToken('browserless');
32
+ const metrics = new Metrics();
33
+ await start({ config, metrics });
34
+ const res = await fetch('http://localhost:3000/json/version?token=imabadboi');
35
+ expect(res.status).to.equal(401);
36
+ });
37
+ it('rejects unauthorized requests to /json/list', async () => {
38
+ const config = new Config();
39
+ config.setToken('browserless');
40
+ const metrics = new Metrics();
41
+ await start({ config, metrics });
42
+ const res = await fetch('http://localhost:3000/json/list?token=imabadboi');
43
+ expect(res.status).to.equal(401);
44
+ });
45
+ it('allows requests to /json/protocol', async () => {
46
+ const config = new Config();
47
+ config.setToken('browserless');
48
+ const metrics = new Metrics();
49
+ await start({ config, metrics });
50
+ const res = await fetch('http://localhost:3000/json/protocol?token=browserless');
51
+ expect(res.status).to.equal(200);
52
+ const resJSON = await res.json();
53
+ expect(resJSON).to.be.an('object');
54
+ expect(resJSON).to.haveOwnProperty('version');
55
+ expect(resJSON).to.haveOwnProperty('domains');
56
+ });
57
+ it('rejects unauthorized requests to /json/protocol', async () => {
58
+ const config = new Config();
59
+ config.setToken('browserless');
60
+ const metrics = new Metrics();
61
+ await start({ config, metrics });
62
+ const res = await fetch('http://localhost:3000/json/protocol?token=imabadboi');
63
+ expect(res.status).to.equal(401);
64
+ });
65
+ it('allows requests to PUT /json/new', async () => {
66
+ const config = new Config();
67
+ config.setToken('browserless');
68
+ const metrics = new Metrics();
69
+ await start({ config, metrics });
70
+ const res = await fetch('http://localhost:3000/json/new?token=browserless', {
71
+ method: 'PUT',
72
+ });
73
+ expect(res.status).to.equal(200);
74
+ const resJSON = await res.json();
75
+ const keys = [
76
+ 'description',
77
+ 'devtoolsFrontendUrl',
78
+ 'id',
79
+ 'title',
80
+ 'type',
81
+ 'url',
82
+ 'webSocketDebuggerUrl',
83
+ ];
84
+ keys.forEach((k) => expect(resJSON).to.haveOwnProperty(k));
85
+ expect(resJSON.type).to.equal('page');
86
+ expect(resJSON.title).to.equal('New Tab');
87
+ expect(resJSON.url).to.equal('about:blank');
88
+ expect(resJSON.description).to.equal('');
89
+ });
90
+ it('rejects unauthorized requests to PUT /json/new', async () => {
91
+ const config = new Config();
92
+ config.setToken('browserless');
93
+ const metrics = new Metrics();
94
+ await start({ config, metrics });
95
+ const res = await fetch('http://localhost:3000/json/new?token=imabadboi', {
96
+ method: 'PUT',
97
+ });
98
+ expect(res.status).to.equal(401);
99
+ });
100
+ });
@@ -97,6 +97,9 @@
97
97
  "ignoreHTTPSErrors": {
98
98
  "type": "boolean"
99
99
  },
100
+ "acceptInsecureCerts": {
101
+ "type": "boolean"
102
+ },
100
103
  "slowMo": {
101
104
  "type": "number"
102
105
  },
@@ -97,6 +97,9 @@
97
97
  "ignoreHTTPSErrors": {
98
98
  "type": "boolean"
99
99
  },
100
+ "acceptInsecureCerts": {
101
+ "type": "boolean"
102
+ },
100
103
  "slowMo": {
101
104
  "type": "number"
102
105
  },
@@ -97,6 +97,9 @@
97
97
  "ignoreHTTPSErrors": {
98
98
  "type": "boolean"
99
99
  },
100
+ "acceptInsecureCerts": {
101
+ "type": "boolean"
102
+ },
100
103
  "slowMo": {
101
104
  "type": "number"
102
105
  },
@@ -97,6 +97,9 @@
97
97
  "ignoreHTTPSErrors": {
98
98
  "type": "boolean"
99
99
  },
100
+ "acceptInsecureCerts": {
101
+ "type": "boolean"
102
+ },
100
103
  "slowMo": {
101
104
  "type": "number"
102
105
  },
@@ -103,6 +103,9 @@
103
103
  "ignoreHTTPSErrors": {
104
104
  "type": "boolean"
105
105
  },
106
+ "acceptInsecureCerts": {
107
+ "type": "boolean"
108
+ },
106
109
  "slowMo": {
107
110
  "type": "number"
108
111
  },
@@ -100,6 +100,9 @@
100
100
  "ignoreHTTPSErrors": {
101
101
  "type": "boolean"
102
102
  },
103
+ "acceptInsecureCerts": {
104
+ "type": "boolean"
105
+ },
103
106
  "slowMo": {
104
107
  "type": "number"
105
108
  },
@@ -95,6 +95,50 @@ describe('Management APIs', function () {
95
95
  expect(r.status).to.equal(404);
96
96
  });
97
97
  });
98
+ describe('Static Files Serving', () => {
99
+ it('serves docs pages', async () => {
100
+ await start();
101
+ await fetch('http://localhost:3000/docs/index.html?token=6R0W53R135510').then(async (res) => {
102
+ expect(res.status).to.equal(200);
103
+ expect(res.headers.get('content-type')).to.equal('text/html');
104
+ const content = await res.text();
105
+ expect(content).to.include('<title>Browserless Docs</title>');
106
+ });
107
+ await fetch('http://localhost:3000/docs/docs.js?token=6R0W53R135510').then(async (res) => {
108
+ expect(res.status).to.equal(200);
109
+ expect(res.headers.get('content-type')).to.equal('application/javascript');
110
+ const content = await res.text();
111
+ expect(content).to.be.an('string');
112
+ });
113
+ });
114
+ it('serves swagger.json', async () => {
115
+ await start();
116
+ await fetch('http://localhost:3000/docs/swagger.json?token=6R0W53R135510').then(async (res) => {
117
+ expect(res.status).to.equal(200);
118
+ expect(res.headers.get('content-type')).to.equal('application/json');
119
+ const content = await res.json();
120
+ expect(content).to.be.an('object');
121
+ });
122
+ });
123
+ it('returns 404 if debugger is disabled', async () => {
124
+ process.env.ENABLE_DEBUGGER = 'false';
125
+ const config = new Config();
126
+ config.setToken('6R0W53R135510');
127
+ // Ensure debugger is not available
128
+ await start({ config });
129
+ await fetch('http://localhost:3000/debugger/some-file.html?token=6R0W53R135510').then(async (res) => {
130
+ expect(res.status).to.equal(404);
131
+ expect(res.headers.get('content-type')).to.equal('text/plain; charset=UTF-8');
132
+ });
133
+ });
134
+ it('handles requests without authentication token for static files', async () => {
135
+ await start();
136
+ await fetch('http://localhost:3000/docs/index.html').then(async (res) => {
137
+ expect(res.status).to.equal(200);
138
+ expect(res.headers.get('content-type')).to.equal('text/html');
139
+ });
140
+ });
141
+ });
98
142
  it('allows requests to /config', async () => {
99
143
  await start();
100
144
  await fetch('http://localhost:3000/config?token=6R0W53R135510').then(async (res) => {
package/build/server.js CHANGED
@@ -242,7 +242,7 @@ export class HTTPServer extends EventEmitter {
242
242
  }
243
243
  async shutdown() {
244
244
  this.logger.info(`HTTP Server is shutting down`);
245
- await new Promise((r) => this.server.close(r));
245
+ await new Promise((r) => this.server?.close(r));
246
246
  if (this.server) {
247
247
  this.server.removeAllListeners();
248
248
  }
package/build/shim.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { convertIfBase64, safeParse, } from '@browserless.io/browserless';
2
- const shimParam = ['headless', 'stealth', 'ignoreDefaultArgs', 'slowMo'];
2
+ const shimParam = ['headless', 'stealth', 'ignoreDefaultArgs', 'slowMo', 'ignoreHTTPSErrors'];
3
3
  /**
4
4
  * Obfuscates the ?token parameter by shifting it to a header instead of a query-parameter.
5
5
  */
@@ -49,6 +49,16 @@ export function shimLegacyRequests(url) {
49
49
  launchParams.ignoreHTTPSErrors === undefined) {
50
50
  launchParams.ignoreHTTPSErrors = ignoreHTTPSErrors !== 'false';
51
51
  }
52
+ // When acceptInsecureCerts is set, ignoreHTTPSErrors is ignored
53
+ if (launchParams.acceptInsecureCerts !== undefined) {
54
+ launchParams.ignoreHTTPSErrors = undefined;
55
+ }
56
+ // When ignoreHTTPSErrors sent, convert it to acceptInsecureCerts
57
+ if (typeof ignoreHTTPSErrors !== 'undefined' &&
58
+ launchParams.acceptInsecureCerts === undefined) {
59
+ launchParams.acceptInsecureCerts = ignoreHTTPSErrors !== 'false';
60
+ launchParams.ignoreHTTPSErrors = undefined;
61
+ }
52
62
  if (typeof ignoreDefaultArgs !== 'undefined' &&
53
63
  launchParams.ignoreDefaultArgs === undefined) {
54
64
  const parsed = typeof ignoreDefaultArgs === 'string' && ignoreDefaultArgs.includes(',')
@@ -125,6 +125,20 @@ describe('Request Shimming', () => {
125
125
  expect(decodeURIComponent(shimmed.href)).to.equal(final);
126
126
  });
127
127
  });
128
+ describe('insecure certs', () => {
129
+ it('converts ignoreHTTPSErrors to acceptInsecureCerts', () => {
130
+ const url = 'wss://localhost?ignoreHTTPSErrors';
131
+ const final = 'wss://localhost/?launch={"acceptInsecureCerts":true}';
132
+ const shimmed = shimLegacyRequests(new URL(url));
133
+ expect(decodeURIComponent(shimmed.href)).to.equal(final);
134
+ });
135
+ it('acceptInsecureCerts takes precedence over ignoreHTTPSErrors', () => {
136
+ const url = 'wss://localhost?ignoreHTTPSErrors&launch={"acceptInsecureCerts":false}';
137
+ const final = 'wss://localhost/?launch={"acceptInsecureCerts":false}';
138
+ const shimmed = shimLegacyRequests(new URL(url));
139
+ expect(decodeURIComponent(shimmed.href)).to.equal(final);
140
+ });
141
+ });
128
142
  describe('token shimming', () => {
129
143
  it('converts token query parameters to an authorization header', () => {
130
144
  const url = 'wss://localhost?token=12345';
package/build/types.d.ts CHANGED
@@ -262,7 +262,9 @@ export interface CDPLaunchOptions extends BrowserlessLaunch {
262
262
  dumpio?: boolean;
263
263
  headless?: boolean | 'shell';
264
264
  ignoreDefaultArgs?: boolean | string[];
265
+ /** @deprecated use acceptInsecureCerts field instead */
265
266
  ignoreHTTPSErrors?: boolean;
267
+ acceptInsecureCerts?: boolean;
266
268
  slowMo?: number;
267
269
  stealth?: boolean;
268
270
  timeout?: number;
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "النسخ الاحتياطي",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "قم بنسخ الإعدادات المخصصة احتياطيًا إلى ملف، أو استعادة الإعدادات المخصصة من ملف.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "ستؤدي عملية الاستعادة إلى استبدال جميع إعداداتك المخصصة الحالية.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -376,11 +376,11 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "نسخ احتياطي…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "استعادة…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
@@ -264,7 +264,7 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "Gwared",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
@@ -376,7 +376,7 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "Gwarediñ…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
@@ -20,7 +20,7 @@
20
20
  "description": "appears as tab name in dashboard"
21
21
  },
22
22
  "customFiltersPageName": {
23
- "message": "Custom filters",
23
+ "message": "Vlastní filtry",
24
24
  "description": "appears as tab name in dashboard"
25
25
  },
26
26
  "developPageName": {
@@ -92,7 +92,7 @@
92
92
  "description": "Text label heading the import/export area of custom filters"
93
93
  },
94
94
  "customFiltersImportTextareaPlaceholder": {
95
- "message": "Paste here specific cosmetic filters to add",
95
+ "message": "Vložte sem konkrétní kosmetické filtry, které chcete přidat",
96
96
  "description": "Placeholder text which describes the purpose of the textarea widget"
97
97
  },
98
98
  "aboutChangelog": {
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "Záloha",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "Zálohování vlastních nastavení do souboru nebo obnovení vlastních nastavení ze souboru.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "Obnovení přepíše všechna vaše aktuální vlastní nastavení.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -364,7 +364,7 @@
364
364
  "description": "Text for buttons used to revert changes"
365
365
  },
366
366
  "addButton": {
367
- "message": "Add",
367
+ "message": "Přidat",
368
368
  "description": "Text for buttons used to add content"
369
369
  },
370
370
  "importAndAppendButton": {
@@ -376,11 +376,11 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "Zálohovat…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "Obnovit…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "Sikkerhedskopiér",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "Sikkerhedskopiér tilpassede indstillinger til en fil, eller gendan tilpassede indstillinger fra en fil.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "Gendannelse overskriver alle nuværende tilpassede indstillinger.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -376,11 +376,11 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "Sikkerhedskopiér…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "Gendan…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
@@ -264,7 +264,7 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Sichern und wiederherstellen",
267
+ "message": "Sicherung",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Copia de seg.",
267
+ "message": "Respaldar",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Haz una copia de seguridad de tus ajustes personalizados en un archivo o restaura tus ajustes personalizados desde uno.",
271
+ "message": "Haz un respaldo de tu configuración personalizada en un archivo o restaura tu configuración personalizada desde uno.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Al restaurar se sobrescribirán todos tus ajustes personalizados actuales.",
275
+ "message": "La restauración sobrescribirá toda tu configuración personalizada actual.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -376,7 +376,7 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Hacer copia…",
379
+ "message": "Respaldar…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
@@ -132,7 +132,7 @@
132
132
  "description": "First paragraph of 'Filter issues' section in Support pane"
133
133
  },
134
134
  "supportS5H": {
135
- "message": "Troubleshooting information",
135
+ "message": "اطلاعات مشکل‌گشایی",
136
136
  "description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
137
137
  },
138
138
  "supportS6P1S1": {
@@ -144,7 +144,7 @@
144
144
  "description": "A clickable link in the filter issue reporter section"
145
145
  },
146
146
  "supportS6URL": {
147
- "message": "Address of the webpage:",
147
+ "message": "آدرس صفحه‌ی وب:",
148
148
  "description": "Label for the URL of the page"
149
149
  },
150
150
  "supportS6Select1": {
@@ -152,15 +152,15 @@
152
152
  "description": "Label for widget to select type of issue"
153
153
  },
154
154
  "supportS6Select1Option0": {
155
- "message": "-- Pick an entry --",
155
+ "message": "-- یک گزینه را انتخاب کنید --",
156
156
  "description": "An entry in the widget used to select the type of issue"
157
157
  },
158
158
  "supportS6Select1Option1": {
159
- "message": "Shows ads or ad leftovers",
159
+ "message": "تبلیغات یا باقی‌مانده‌هایی از آن نشان می‌دهد",
160
160
  "description": "An entry in the widget used to select the type of issue"
161
161
  },
162
162
  "supportS6Select1Option2": {
163
- "message": "Has overlays or other nuisances",
163
+ "message": "دارای لایه‌های اضافی یا مشکلات مزاحم دیگر",
164
164
  "description": "An entry in the widget used to select the type of issue"
165
165
  },
166
166
  "supportS6Select1Option3": {
@@ -168,7 +168,7 @@
168
168
  "description": "An entry in the widget used to select the type of issue"
169
169
  },
170
170
  "supportS6Select1Option4": {
171
- "message": "Has privacy-related issues",
171
+ "message": "دارای ایراد مربوط به حریم خصوصی است",
172
172
  "description": "An entry in the widget used to select the type of issue"
173
173
  },
174
174
  "supportS6Select1Option5": {
@@ -176,11 +176,11 @@
176
176
  "description": "An entry in the widget used to select the type of issue"
177
177
  },
178
178
  "supportS6Select1Option6": {
179
- "message": "Opens unwanted tabs or windows",
179
+ "message": "تب یا پنجره‌ی ناخواسته باز می‌کند",
180
180
  "description": "An entry in the widget used to select the type of issue"
181
181
  },
182
182
  "supportS6Select1Option7": {
183
- "message": "Leads to badware, phishing",
183
+ "message": "منجر به بدافزار یا فیشینگ می‌شود",
184
184
  "description": "An entry in the widget used to select the type of issue"
185
185
  },
186
186
  "supportS6Checkbox1": {
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "Copia de apoio",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "Garda nun ficheiro a túa configuración ou restablece os axustes desde un ficheiro.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "Ao restablecer vas sobrescribir a configuración actual.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -376,11 +376,11 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "Gardar axustes…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "Restablecer…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "Biztonsági mentés",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "Egyéni beállítások fájlbamentése, vagy az egyéni beállítások helyreállítása egy fájlból.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "A helyreállítás felülírja a jelenlegi egyéni beállításokat.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -376,11 +376,11 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "Biztonsági mentés…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "Helyreállítás…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {