@browserless.io/browserless 2.33.0 → 2.34.0-beta-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 (503) hide show
  1. package/README.md +1 -1
  2. package/build/config.d.ts +1 -1
  3. package/build/config.js +1 -1
  4. package/build/http.d.ts +10 -0
  5. package/build/http.js +5 -0
  6. package/build/limiter.spec.js +1 -1
  7. package/build/routes/chrome/http/content.post.body.json +8 -8
  8. package/build/routes/chrome/http/pdf.post.body.json +8 -8
  9. package/build/routes/chrome/http/scrape.post.body.json +8 -8
  10. package/build/routes/chrome/http/screenshot.post.body.json +8 -8
  11. package/build/routes/chrome/tests/content.spec.js +12 -12
  12. package/build/routes/chrome/tests/page-websocket.spec.js +3 -3
  13. package/build/routes/chrome/tests/pdf.spec.js +13 -13
  14. package/build/routes/chrome/tests/performance.spec.js +4 -4
  15. package/build/routes/chrome/tests/scrape.spec.js +13 -13
  16. package/build/routes/chrome/tests/screenshot.spec.js +14 -14
  17. package/build/routes/chromium/http/content.post.body.json +8 -8
  18. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  19. package/build/routes/chromium/http/scrape.post.body.json +8 -8
  20. package/build/routes/chromium/http/screenshot.post.body.json +8 -8
  21. package/build/routes/chromium/tests/content.spec.js +13 -13
  22. package/build/routes/chromium/tests/page-websocket.spec.js +3 -3
  23. package/build/routes/chromium/tests/pdf.spec.js +13 -13
  24. package/build/routes/chromium/tests/performance.spec.js +4 -4
  25. package/build/routes/chromium/tests/scrape.spec.js +13 -13
  26. package/build/routes/chromium/tests/screenshot.spec.js +14 -14
  27. package/build/routes/edge/http/content.post.body.json +8 -8
  28. package/build/routes/edge/http/pdf.post.body.json +8 -8
  29. package/build/routes/edge/http/scrape.post.body.json +8 -8
  30. package/build/routes/edge/http/screenshot.post.body.json +8 -8
  31. package/build/routes/edge/tests/content.spec.js +12 -12
  32. package/build/routes/edge/tests/page-websocket.spec.js +3 -3
  33. package/build/routes/edge/tests/pdf.spec.js +13 -13
  34. package/build/routes/edge/tests/performance.spec.js +4 -4
  35. package/build/routes/edge/tests/scrape.spec.js +13 -13
  36. package/build/routes/edge/tests/screenshot.spec.js +14 -14
  37. package/build/routes/management/http/kill.get.d.ts +1 -1
  38. package/build/routes/management/http/kill.get.query.json +0 -3
  39. package/build/routes/management/http/pressure.get.d.ts +1 -1
  40. package/build/routes/management/http/pressure.get.js +12 -4
  41. package/build/routes/management/http/sessions.get.d.ts +1 -1
  42. package/build/routes/management/http/sessions.get.query.json +0 -3
  43. package/build/routes/management/tests/management.spec.js +13 -13
  44. package/build/server.js +12 -4
  45. package/build/shim.d.ts +5 -0
  46. package/build/shim.js +13 -0
  47. package/build/shim.spec.js +28 -1
  48. package/build/types.d.ts +14 -0
  49. package/build/types.js +14 -0
  50. package/build/utils.js +1 -1
  51. package/extensions/ublocklite/_locales/ar/messages.json +8 -8
  52. package/extensions/ublocklite/_locales/be/messages.json +8 -8
  53. package/extensions/ublocklite/_locales/fi/messages.json +18 -18
  54. package/extensions/ublocklite/_locales/hi/messages.json +21 -21
  55. package/extensions/ublocklite/_locales/hu/messages.json +8 -8
  56. package/extensions/ublocklite/_locales/id/messages.json +15 -15
  57. package/extensions/ublocklite/_locales/ja/messages.json +23 -23
  58. package/extensions/ublocklite/_locales/nl/messages.json +1 -1
  59. package/extensions/ublocklite/_locales/pt_BR/messages.json +15 -15
  60. package/extensions/ublocklite/_locales/pt_PT/messages.json +18 -18
  61. package/extensions/ublocklite/_locales/th/messages.json +30 -30
  62. package/extensions/ublocklite/_locales/tr/messages.json +1 -1
  63. package/extensions/ublocklite/_locales/uk/messages.json +10 -10
  64. package/extensions/ublocklite/_locales/vi/messages.json +8 -8
  65. package/extensions/ublocklite/css/picker-ui.css +1 -1
  66. package/extensions/ublocklite/css/report.css +0 -8
  67. package/extensions/ublocklite/js/background.js +30 -6
  68. package/extensions/ublocklite/js/debug.js +8 -4
  69. package/extensions/ublocklite/js/develop.js +1 -1
  70. package/extensions/ublocklite/js/ext-compat.js +9 -2
  71. package/extensions/ublocklite/js/filter-lists.js +1 -2
  72. package/extensions/ublocklite/js/filter-manager.js +57 -23
  73. package/extensions/ublocklite/js/picker-ui.js +32 -41
  74. package/extensions/ublocklite/js/popup.js +10 -10
  75. package/extensions/ublocklite/js/redirect-resources.js +1 -0
  76. package/extensions/ublocklite/js/ro-dnr-editor.js +6 -1
  77. package/extensions/ublocklite/js/scripting/css-procedural-api.js +821 -0
  78. package/extensions/ublocklite/js/scripting/css-procedural.js +62 -718
  79. package/extensions/ublocklite/{rulesets/scripting/declarative/isr-0.js → js/scripting/css-user-terminate.js} +16 -13
  80. package/extensions/ublocklite/js/scripting/css-user.js +12 -1
  81. package/extensions/ublocklite/js/scripting/picker.js +46 -13
  82. package/extensions/ublocklite/js/scripting/tool-overlay.js +14 -8
  83. package/extensions/ublocklite/js/scripting/unpicker.js +5 -9
  84. package/extensions/ublocklite/js/scripting/zapper.js +1 -1
  85. package/extensions/ublocklite/js/scripting-manager.js +0 -65
  86. package/extensions/ublocklite/js/static-filtering-parser.js +2 -2
  87. package/extensions/ublocklite/js/tool-overlay-ui.js +1 -1
  88. package/extensions/ublocklite/js/unpicker-ui.js +16 -9
  89. package/extensions/ublocklite/js/zapper-ui.js +3 -2
  90. package/extensions/ublocklite/manifest.json +7 -2
  91. package/extensions/ublocklite/picker-ui.html +1 -1
  92. package/extensions/ublocklite/report.html +0 -1
  93. package/extensions/ublocklite/rulesets/generic-details.json +10 -14
  94. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +3 -2
  95. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +19 -10
  96. package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -3
  97. package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +4 -4
  98. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
  99. package/extensions/ublocklite/rulesets/main/block-lan.json +2 -1
  100. package/extensions/ublocklite/rulesets/main/chn-0.json +22 -21
  101. package/extensions/ublocklite/rulesets/main/deu-0.json +6 -5
  102. package/extensions/ublocklite/rulesets/main/dpollock-0.json +5 -41
  103. package/extensions/ublocklite/rulesets/main/easylist.json +59 -35
  104. package/extensions/ublocklite/rulesets/main/easyprivacy.json +65 -12
  105. package/extensions/ublocklite/rulesets/main/fra-0.json +9 -11
  106. package/extensions/ublocklite/rulesets/main/hrv-0.json +5 -5
  107. package/extensions/ublocklite/rulesets/main/hun-0.json +1 -1
  108. package/extensions/ublocklite/rulesets/main/idn-0.json +8 -2
  109. package/extensions/ublocklite/rulesets/main/ind-0.json +30 -24
  110. package/extensions/ublocklite/rulesets/main/irn-0.json +44 -635
  111. package/extensions/ublocklite/rulesets/main/isr-0.json +1 -0
  112. package/extensions/ublocklite/rulesets/main/jpn-1.json +42 -26
  113. package/extensions/ublocklite/rulesets/main/kor-1.json +9 -4
  114. package/extensions/ublocklite/rulesets/main/mkd-0.json +1 -1
  115. package/extensions/ublocklite/rulesets/main/nld-0.json +2 -1
  116. package/extensions/ublocklite/rulesets/main/nor-0.json +14 -12
  117. package/extensions/ublocklite/rulesets/main/pgl.json +29 -12
  118. package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
  119. package/extensions/ublocklite/rulesets/main/rus-0.json +23 -30
  120. package/extensions/ublocklite/rulesets/main/rus-1.json +4 -2
  121. package/extensions/ublocklite/rulesets/main/spa-1.json +9 -32
  122. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +13773 -14561
  123. package/extensions/ublocklite/rulesets/main/swe-1.json +39 -29
  124. package/extensions/ublocklite/rulesets/main/tur-0.json +39 -27
  125. package/extensions/ublocklite/rulesets/main/ublock-badware.json +63 -65
  126. package/extensions/ublocklite/rulesets/main/ublock-experimental.json +3 -0
  127. package/extensions/ublocklite/rulesets/main/ublock-filters.json +99 -41
  128. package/extensions/ublocklite/rulesets/main/ukr-0.json +5 -7
  129. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +432 -1025
  130. package/extensions/ublocklite/rulesets/main/vie-1.json +50 -50
  131. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +3 -0
  132. package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +1 -1
  133. package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +3 -7
  134. package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +1 -1
  135. package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +1 -0
  136. package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +16 -0
  137. package/extensions/ublocklite/rulesets/redirect/rus-0.json +2 -1
  138. package/extensions/ublocklite/rulesets/redirect/spa-1.json +1 -2
  139. package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -2
  140. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +17 -10
  141. package/extensions/ublocklite/rulesets/redirect/vie-1.json +5 -22
  142. package/extensions/ublocklite/rulesets/regex/chn-0.json +1 -1
  143. package/extensions/ublocklite/rulesets/regex/ita-0.json +1 -0
  144. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  145. package/extensions/ublocklite/rulesets/regex/tur-0.json +3 -1
  146. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +1 -4
  147. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +12 -9
  148. package/extensions/ublocklite/rulesets/regex/ukr-0.json +2 -2
  149. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +22 -11
  150. package/extensions/ublocklite/rulesets/removeparam/irn-0.json +27 -15
  151. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +1 -1
  152. package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +1 -2
  153. package/extensions/ublocklite/rulesets/ruleset-details.json +281 -304
  154. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  155. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +2 -2
  156. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +2 -2
  157. package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +1 -1
  158. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  159. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +2 -2
  160. package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +1 -1
  161. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
  162. package/extensions/ublocklite/rulesets/scripting/generic/ind-0.js +2 -2
  163. package/extensions/ublocklite/rulesets/scripting/generic/irn-0.js +3 -3
  164. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +2 -2
  165. package/extensions/ublocklite/rulesets/scripting/generic/kor-1.js +2 -2
  166. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
  167. package/extensions/ublocklite/rulesets/scripting/generic/rou-1.js +2 -2
  168. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
  169. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +1 -1
  170. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  171. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +3 -3
  172. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -0
  173. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +3 -0
  174. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +26 -0
  175. package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +2 -0
  176. package/extensions/ublocklite/rulesets/scripting/generichigh/tur-0.css +1 -0
  177. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
  178. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  179. package/extensions/ublocklite/rulesets/scripting/procedural/alb-0.js +4 -4
  180. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +4 -4
  181. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
  182. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  183. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
  184. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
  185. package/extensions/ublocklite/rulesets/scripting/procedural/cze-0.js +3 -3
  186. package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +1 -1
  187. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  188. package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/easyprivacy.js +5 -5
  189. package/extensions/ublocklite/rulesets/scripting/procedural/est-0.js +3 -3
  190. package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +3 -3
  191. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +4 -4
  192. package/extensions/ublocklite/rulesets/scripting/procedural/grc-0.js +3 -3
  193. package/extensions/ublocklite/rulesets/scripting/procedural/hrv-0.js +3 -3
  194. package/extensions/ublocklite/rulesets/scripting/procedural/hun-0.js +3 -3
  195. package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
  196. package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +3 -3
  197. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  198. package/extensions/ublocklite/rulesets/scripting/procedural/isl-0.js +1 -1
  199. package/extensions/ublocklite/rulesets/scripting/procedural/isr-0.js +3 -3
  200. package/extensions/ublocklite/rulesets/scripting/procedural/ita-0.js +1 -1
  201. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  202. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  203. package/extensions/ublocklite/rulesets/scripting/procedural/ltu-0.js +3 -3
  204. package/extensions/ublocklite/rulesets/scripting/procedural/lva-0.js +1 -1
  205. package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/mkd-0.js +4 -4
  206. package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
  207. package/extensions/ublocklite/rulesets/scripting/procedural/nor-0.js +4 -4
  208. package/extensions/ublocklite/rulesets/scripting/procedural/pol-0.js +3 -3
  209. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  210. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  211. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  212. package/extensions/ublocklite/rulesets/scripting/procedural/spa-0.js +1 -1
  213. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +4 -4
  214. package/extensions/ublocklite/rulesets/scripting/procedural/svn-0.js +1 -1
  215. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  216. package/extensions/ublocklite/rulesets/scripting/procedural/tha-0.js +1 -1
  217. package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +4 -4
  218. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-badware.js +3 -3
  219. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  220. package/extensions/ublocklite/rulesets/scripting/procedural/ubol-tests.js +1 -1
  221. package/extensions/ublocklite/rulesets/scripting/procedural/ukr-0.js +3 -3
  222. package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +3 -3
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-current-script.js +4 -3
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.abort-current-script.js +4 -3
  225. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.set-attr.js → annoyances-cookies.set-cookie-reload.js} +129 -108
  226. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  227. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  228. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  229. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  230. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  231. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +5 -4
  232. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +1 -1
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +6 -5
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +1 -1
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +3 -3
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +2 -2
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.abort-current-script.js +4 -3
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +5 -4
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-local-storage-item.js +1 -1
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.abort-current-script.js +4 -3
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.abort-current-script.js +4 -3
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-setTimeout.js → fra-0.prevent-requestAnimationFrame.js} +13 -49
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +1 -1
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.remove-node-text.js → fra-0.remove-node-text.js} +3 -3
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.abort-current-script.js +6 -5
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.abort-on-property-read.js → hun-0.set-local-storage-item.js} +92 -62
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-current-script.js +7 -6
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-on-property-read.js +3 -3
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +2 -2
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-local-storage-item.js +2 -2
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.abort-current-script.js +4 -3
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-current-script.js +6 -5
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +2 -2
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.adjust-setTimeout.js +1 -1
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +2 -2
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +2 -2
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-node-text.js +2 -2
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-constant.js +2 -2
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +4 -3
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.abort-on-stack-trace.js → kor-1.spoof-css.js} +113 -112
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.abort-current-script.js +4 -3
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.abort-current-script.js +4 -3
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-setTimeout.js +2 -2
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-xhr.js → nld-0.prevent-xhr.js} +3 -3
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.abort-current-script.js +4 -3
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.abort-current-script.js +4 -3
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +4 -3
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setInterval.js +2 -2
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setTimeout.js +2 -2
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-window-open.js +2 -2
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-current-script.js +5 -4
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.adjust-setInterval.js +1 -1
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.json-prune-fetch-response.js +2 -2
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +3 -3
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +2 -2
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-xhr.js +1 -1
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +6 -5
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-write.js +2 -2
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +2 -2
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setTimeout.js +2 -2
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +2 -2
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-attr.js +2 -2
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-local-storage-item.js +1 -1
  301. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.abort-current-script.js +5 -4
  302. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +1 -1
  303. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.set-constant.js +1 -1
  304. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-current-script.js +4 -3
  305. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +1 -1
  306. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +2 -2
  307. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setInterval.js +1 -1
  308. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.adjust-setTimeout.js → tur-0.adjust-setTimeout.js} +4 -4
  309. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.m3u-prune.js +2 -2
  310. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  311. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
  312. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  313. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.abort-current-script.js +4 -3
  314. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +795 -0
  315. package/extensions/ublocklite/rulesets/scripting/scriptlet/{tur-0.set-attr.js → ublock-experimental.trusted-replace-node-text.js} +144 -119
  316. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +7 -6
  317. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +2 -2
  318. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
  319. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  320. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  321. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +3 -3
  322. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  323. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.close-window.js +3 -3
  324. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
  325. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +1 -1
  326. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +2 -2
  327. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +2 -2
  328. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +2 -2
  329. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +1 -1
  330. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.close-window.js → ublock-filters.prevent-canvas.js} +14 -21
  331. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +2 -2
  332. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
  333. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +3 -3
  334. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +2 -2
  335. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
  336. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +2 -2
  337. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  338. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  339. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
  340. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  341. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  342. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-session-storage-item.js +2 -2
  343. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +2 -2
  344. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-request.js +884 -0
  345. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +887 -0
  346. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +3 -3
  347. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-fetch.js → ublock-filters.trusted-prevent-fetch.js} +7 -7
  348. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
  349. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-fetch-response.js +2 -2
  350. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  351. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +3 -3
  352. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-attr.js +2 -2
  353. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +4 -4
  354. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
  355. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +1 -1
  356. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +2 -2
  357. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-current-script.js +4 -3
  358. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-on-property-read.js +1 -1
  359. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +6 -5
  360. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  361. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +1 -1
  362. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  363. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  364. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  365. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  366. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  367. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  368. package/extensions/ublocklite/rulesets/scripting/specific/cze-0.js +1 -1
  369. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  370. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  371. package/extensions/ublocklite/rulesets/scripting/{declarative/ubol-tests.js → specific/easyprivacy.js} +7 -7
  372. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  373. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  374. package/extensions/ublocklite/rulesets/scripting/specific/hrv-0.js +3 -3
  375. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  376. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  377. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  378. package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
  379. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  380. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  381. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  382. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  383. package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
  384. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  385. package/extensions/ublocklite/rulesets/scripting/specific/pol-0.js +3 -3
  386. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  387. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  388. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  389. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  390. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  391. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  392. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  393. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  394. package/extensions/ublocklite/rulesets/scriptlet-details.json +265 -553
  395. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +6 -1
  396. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +0 -1
  397. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +235 -1
  398. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +5 -41
  399. package/extensions/ublocklite/rulesets/strictblock/easylist.json +13 -14
  400. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +53 -3
  401. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +236 -31
  402. package/extensions/ublocklite/rulesets/strictblock/hun-0.json +1 -0
  403. package/extensions/ublocklite/rulesets/strictblock/irn-0.json +8 -251
  404. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +174 -166
  405. package/extensions/ublocklite/rulesets/strictblock/kor-1.json +4 -0
  406. package/extensions/ublocklite/rulesets/strictblock/mkd-0.json +1 -0
  407. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  408. package/extensions/ublocklite/rulesets/strictblock/pgl.json +29 -12
  409. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
  410. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +13773 -14561
  411. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +3 -55
  412. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +0 -1
  413. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +646 -641
  414. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
  415. package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +1 -4
  416. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +432 -1025
  417. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +2 -2
  418. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +60 -2
  419. package/extensions/ublocklite/ublock.zip +0 -0
  420. package/extensions/ublocklite/web_accessible_resources/fingerprint2.js +1 -1
  421. package/package.json +12 -12
  422. package/src/config.ts +1 -1
  423. package/src/http.ts +5 -0
  424. package/src/limiter.spec.ts +1 -1
  425. package/src/routes/chrome/tests/content.spec.ts +12 -12
  426. package/src/routes/chrome/tests/page-websocket.spec.ts +3 -3
  427. package/src/routes/chrome/tests/pdf.spec.ts +13 -13
  428. package/src/routes/chrome/tests/performance.spec.ts +4 -4
  429. package/src/routes/chrome/tests/scrape.spec.ts +13 -13
  430. package/src/routes/chrome/tests/screenshot.spec.ts +14 -14
  431. package/src/routes/chromium/tests/content.spec.ts +13 -13
  432. package/src/routes/chromium/tests/page-websocket.spec.ts +3 -3
  433. package/src/routes/chromium/tests/pdf.spec.ts +13 -13
  434. package/src/routes/chromium/tests/performance.spec.ts +4 -4
  435. package/src/routes/chromium/tests/scrape.spec.ts +13 -13
  436. package/src/routes/chromium/tests/screenshot.spec.ts +14 -14
  437. package/src/routes/edge/tests/content.spec.ts +12 -12
  438. package/src/routes/edge/tests/page-websocket.spec.ts +3 -3
  439. package/src/routes/edge/tests/pdf.spec.ts +13 -13
  440. package/src/routes/edge/tests/performance.spec.ts +4 -4
  441. package/src/routes/edge/tests/scrape.spec.ts +13 -13
  442. package/src/routes/edge/tests/screenshot.spec.ts +14 -14
  443. package/src/routes/management/http/kill.get.ts +1 -1
  444. package/src/routes/management/http/pressure.get.ts +15 -3
  445. package/src/routes/management/http/sessions.get.ts +1 -1
  446. package/src/routes/management/tests/management.spec.ts +13 -13
  447. package/src/server.ts +17 -3
  448. package/src/shim.spec.ts +40 -1
  449. package/src/shim.ts +17 -0
  450. package/src/types.ts +25 -0
  451. package/src/utils.ts +1 -1
  452. package/static/docs/swagger.json +247 -38
  453. package/static/docs/swagger.min.json +246 -37
  454. package/static/function/client.js +46 -8
  455. package/static/function/index.html +46 -8
  456. package/extensions/ublocklite/js/scripting/css-declarative.js +0 -116
  457. package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
  458. package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
  459. package/extensions/ublocklite/rulesets/regex/irn-0.json +0 -22
  460. package/extensions/ublocklite/rulesets/scripting/declarative/adguard-mobile.js +0 -42
  461. package/extensions/ublocklite/rulesets/scripting/declarative/alb-0.js +0 -42
  462. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-cookies.js +0 -42
  463. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-others.js +0 -42
  464. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-overlays.js +0 -42
  465. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-social.js +0 -42
  466. package/extensions/ublocklite/rulesets/scripting/declarative/chn-0.js +0 -42
  467. package/extensions/ublocklite/rulesets/scripting/declarative/cze-0.js +0 -42
  468. package/extensions/ublocklite/rulesets/scripting/declarative/easylist.js +0 -42
  469. package/extensions/ublocklite/rulesets/scripting/declarative/est-0.js +0 -42
  470. package/extensions/ublocklite/rulesets/scripting/declarative/fin-0.js +0 -42
  471. package/extensions/ublocklite/rulesets/scripting/declarative/fra-0.js +0 -42
  472. package/extensions/ublocklite/rulesets/scripting/declarative/grc-0.js +0 -42
  473. package/extensions/ublocklite/rulesets/scripting/declarative/hrv-0.js +0 -42
  474. package/extensions/ublocklite/rulesets/scripting/declarative/hun-0.js +0 -42
  475. package/extensions/ublocklite/rulesets/scripting/declarative/idn-0.js +0 -42
  476. package/extensions/ublocklite/rulesets/scripting/declarative/irn-0.js +0 -42
  477. package/extensions/ublocklite/rulesets/scripting/declarative/jpn-1.js +0 -42
  478. package/extensions/ublocklite/rulesets/scripting/declarative/kor-1.js +0 -42
  479. package/extensions/ublocklite/rulesets/scripting/declarative/ltu-0.js +0 -42
  480. package/extensions/ublocklite/rulesets/scripting/declarative/nld-0.js +0 -42
  481. package/extensions/ublocklite/rulesets/scripting/declarative/nor-0.js +0 -42
  482. package/extensions/ublocklite/rulesets/scripting/declarative/pol-0.js +0 -42
  483. package/extensions/ublocklite/rulesets/scripting/declarative/rou-1.js +0 -42
  484. package/extensions/ublocklite/rulesets/scripting/declarative/rus-0.js +0 -42
  485. package/extensions/ublocklite/rulesets/scripting/declarative/rus-1.js +0 -42
  486. package/extensions/ublocklite/rulesets/scripting/declarative/spa-1.js +0 -42
  487. package/extensions/ublocklite/rulesets/scripting/declarative/swe-1.js +0 -42
  488. package/extensions/ublocklite/rulesets/scripting/declarative/tur-0.js +0 -42
  489. package/extensions/ublocklite/rulesets/scripting/declarative/ublock-badware.js +0 -42
  490. package/extensions/ublocklite/rulesets/scripting/declarative/ublock-filters.js +0 -42
  491. package/extensions/ublocklite/rulesets/scripting/declarative/ukr-0.js +0 -42
  492. package/extensions/ublocklite/rulesets/scripting/declarative/vie-1.js +0 -42
  493. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-fetch.js +0 -553
  494. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +0 -451
  495. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-on-property-write.js +0 -347
  496. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +0 -498
  497. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.adjust-setInterval.js +0 -332
  498. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +0 -541
  499. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.json-prune.js +0 -506
  500. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +0 -471
  501. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-attr.js +0 -405
  502. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-cookie.js +0 -376
  503. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +0 -541
@@ -14,16 +14,16 @@ describe('Management APIs', function () {
14
14
  it('allows Single Origin OPTIONS requests', async () => {
15
15
  const config = new Config();
16
16
  config.enableCORS(true);
17
- config.setCORSOrigin('https://example.com');
17
+ config.setCORSOrigin('https://one.one.one.one');
18
18
  await start({ config });
19
19
  const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
20
20
  method: 'OPTIONS',
21
21
  headers: {
22
- Origin: 'https://example.com',
22
+ Origin: 'https://one.one.one.one',
23
23
  },
24
24
  });
25
25
  expect(r.status).to.equal(204);
26
- expect(r.headers.get('access-control-allow-origin')).to.equal('https://example.com');
26
+ expect(r.headers.get('access-control-allow-origin')).to.equal('https://one.one.one.one');
27
27
  });
28
28
  it('allows wildcard orign OPTIONS requests', async () => {
29
29
  const config = new Config();
@@ -33,44 +33,44 @@ describe('Management APIs', function () {
33
33
  const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
34
34
  method: 'OPTIONS',
35
35
  headers: {
36
- Origin: 'https://example.com',
36
+ Origin: 'https://one.one.one.one',
37
37
  },
38
38
  });
39
39
  expect(r.status).to.equal(204);
40
- expect(r.headers.get('access-control-allow-origin')).to.equal('https://example.com');
40
+ expect(r.headers.get('access-control-allow-origin')).to.equal('https://one.one.one.one');
41
41
  });
42
42
  it('allows glob-matched OPTIONS requests', async () => {
43
43
  const config = new Config();
44
44
  config.enableCORS(true);
45
- config.setCORSOrigin('*.example.com');
45
+ config.setCORSOrigin('*.one.one.one.one');
46
46
  await start({ config });
47
47
  const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
48
48
  method: 'OPTIONS',
49
49
  headers: {
50
- Origin: 'https://subdomain.example.com',
50
+ Origin: 'https://subdomain.one.one.one.one',
51
51
  },
52
52
  });
53
53
  expect(r.status).to.equal(204);
54
- expect(r.headers.get('access-control-allow-origin')).to.equal('https://subdomain.example.com');
54
+ expect(r.headers.get('access-control-allow-origin')).to.equal('https://subdomain.one.one.one.one');
55
55
  });
56
56
  it('allows glob-matched OPTIONS requests with OR patterns', async () => {
57
57
  const config = new Config();
58
58
  config.enableCORS(true);
59
- config.setCORSOrigin('https://(abc|xyz).example.com');
59
+ config.setCORSOrigin('https://(abc|xyz).one.one.one.one');
60
60
  await start({ config });
61
61
  const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
62
62
  method: 'OPTIONS',
63
63
  headers: {
64
- Origin: 'https://abc.example.com',
64
+ Origin: 'https://abc.one.one.one.one',
65
65
  },
66
66
  });
67
67
  expect(r.status).to.equal(204);
68
- expect(r.headers.get('access-control-allow-origin')).to.equal('https://abc.example.com');
68
+ expect(r.headers.get('access-control-allow-origin')).to.equal('https://abc.one.one.one.one');
69
69
  });
70
70
  it('allows glob-matched OPTIONS requests with OR patterns across two domains', async () => {
71
71
  const config = new Config();
72
72
  config.enableCORS(true);
73
- config.setCORSOrigin('(https://(abc|xyz).example.com|https://deploy-preview-*.netlify.app)');
73
+ config.setCORSOrigin('(https://(abc|xyz).one.one.one.one|https://deploy-preview-*.netlify.app)');
74
74
  await start({ config });
75
75
  const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
76
76
  method: 'OPTIONS',
@@ -89,7 +89,7 @@ describe('Management APIs', function () {
89
89
  const r = await fetch('http://localhost:3000/config?token=6R0W53R135510', {
90
90
  method: 'OPTIONS',
91
91
  headers: {
92
- Origin: 'https://subdomain.example.com',
92
+ Origin: 'https://subdomain.one.one.one.one',
93
93
  },
94
94
  });
95
95
  expect(r.status).to.equal(404);
package/build/server.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as http from 'http';
2
- import { BadRequest, Logger as BlessLogger, NotFound, Timeout, TooManyRequests, Unauthorized, contentTypes, convertPathToURL, isMatch, queryParamsToObject, readBody, shimLegacyRequests, writeResponse, } from '@browserless.io/browserless';
2
+ import { BadRequest, Logger as BlessLogger, NotFound, Timeout, TooManyRequests, Unauthorized, contentTypes, convertPathToURL, isMatch, moveTokenToHeader, queryParamsToObject, readBody, shimLegacyRequests, writeResponse, } from '@browserless.io/browserless';
3
3
  import { EventEmitter } from 'events';
4
4
  import EnjoiResolver from './shared/utils/enjoi-resolver.js';
5
5
  export class HTTPServer extends EventEmitter {
@@ -73,7 +73,8 @@ export class HTTPServer extends EventEmitter {
73
73
  });
74
74
  }
75
75
  async handleRequest(request, res) {
76
- this.logger.trace(`Handling inbound HTTP request on "${request.method}: ${request.url}"`);
76
+ request.url = moveTokenToHeader(request);
77
+ this.logger.trace(`Handling inbound HTTP request on "${request.method}: ${request.url || ''}"`);
77
78
  const req = request;
78
79
  const proceed = await this.hooks.before({ req, res });
79
80
  req.parsed = convertPathToURL(request.url || '', this.config);
@@ -114,8 +115,11 @@ export class HTTPServer extends EventEmitter {
114
115
  return Promise.resolve();
115
116
  }
116
117
  this.logger.trace(`Found matching HTTP route handler "${route.path}"`);
118
+ if (route.before && !(await route.before(req, res))) {
119
+ return;
120
+ }
117
121
  if (route?.auth) {
118
- this.logger.trace(`Authorizing HTTP request to "${request.url}"`);
122
+ this.logger.trace(`Authorizing HTTP request to "${request.url || ''}"`);
119
123
  const isPermitted = await this.token.isAuthorized(req, route);
120
124
  if (!isPermitted) {
121
125
  return this.onHTTPUnauthorized(req, res);
@@ -182,7 +186,8 @@ export class HTTPServer extends EventEmitter {
182
186
  .catch((e) => this.handleErrorRequest(e, res));
183
187
  }
184
188
  async handleWebSocket(request, socket, head) {
185
- this.logger.trace(`Handling inbound WebSocket request on "${request.url}"`);
189
+ request.url = moveTokenToHeader(request);
190
+ this.logger.trace(`Handling inbound WebSocket request on "${request.url || ''}"`);
186
191
  const req = request;
187
192
  const proceed = await this.hooks.before({ head, req, socket });
188
193
  req.parsed = convertPathToURL(request.url || '', this.config);
@@ -193,6 +198,9 @@ export class HTTPServer extends EventEmitter {
193
198
  const route = await this.router.getRouteForWebSocketRequest(req);
194
199
  if (route) {
195
200
  this.logger.trace(`Found matching WebSocket route handler "${route.path}"`);
201
+ if (route.before && !(await route.before(req, socket, head))) {
202
+ return;
203
+ }
196
204
  if (route?.auth) {
197
205
  this.logger.trace(`Authorizing WebSocket request to "${req.parsed.href}"`);
198
206
  const isPermitted = await this.token.isAuthorized(req, route);
package/build/shim.d.ts CHANGED
@@ -1,3 +1,8 @@
1
+ import * as http from 'http';
2
+ /**
3
+ * Obfuscates the ?token parameter by shifting it to a header instead of a query-parameter.
4
+ */
5
+ export declare function moveTokenToHeader(req: http.IncomingMessage): string;
1
6
  /**
2
7
  * Given a legacy connect or API call, this shim will
3
8
  * re-order the arguments to make them valid in the 2.0
package/build/shim.js CHANGED
@@ -1,5 +1,18 @@
1
1
  import { convertIfBase64, safeParse, } from '@browserless.io/browserless';
2
2
  const shimParam = ['headless', 'stealth', 'ignoreDefaultArgs', 'slowMo'];
3
+ /**
4
+ * Obfuscates the ?token parameter by shifting it to a header instead of a query-parameter.
5
+ */
6
+ export function moveTokenToHeader(req) {
7
+ const parsed = new URL(req.url || '', 'http://localhost');
8
+ const token = parsed.searchParams.get('token');
9
+ if (token) {
10
+ parsed.searchParams.delete('token');
11
+ req.headers.authorization = req.headers.authorization ?? `Bearer ${token}`;
12
+ req.url = parsed.pathname + parsed.search;
13
+ }
14
+ return req.url;
15
+ }
3
16
  /**
4
17
  * Given a legacy connect or API call, this shim will
5
18
  * re-order the arguments to make them valid in the 2.0
@@ -1,5 +1,5 @@
1
1
  import { expect } from 'chai';
2
- import { shimLegacyRequests } from '@browserless.io/browserless';
2
+ import { shimLegacyRequests, moveTokenToHeader, } from '@browserless.io/browserless';
3
3
  describe('Request Shimming', () => {
4
4
  describe('headless', () => {
5
5
  it('converts headless true', () => {
@@ -125,4 +125,31 @@ describe('Request Shimming', () => {
125
125
  expect(decodeURIComponent(shimmed.href)).to.equal(final);
126
126
  });
127
127
  });
128
+ describe('token shimming', () => {
129
+ it('converts token query parameters to an authorization header', () => {
130
+ const url = 'wss://localhost?token=12345';
131
+ const shimmed = moveTokenToHeader({
132
+ url,
133
+ headers: {},
134
+ });
135
+ expect(shimmed).not.to.include('?token=');
136
+ });
137
+ it('converts the token to a proper header', () => {
138
+ const url = 'wss://localhost?token=12345';
139
+ const request = { url, headers: {} };
140
+ moveTokenToHeader(request);
141
+ expect(request.headers.authorization).to.eql('Bearer 12345');
142
+ });
143
+ it('does no conversion if an authorization header is already present', () => {
144
+ const oldAuth = 'Bearer foo-bar';
145
+ const url = 'wss://localhost?token=12345';
146
+ const request = {
147
+ url,
148
+ headers: { authorization: oldAuth },
149
+ };
150
+ const shimmed = moveTokenToHeader(request);
151
+ expect(shimmed).not.to.include('?token=');
152
+ expect(request.headers.authorization).to.eql(oldAuth);
153
+ });
154
+ });
128
155
  });
package/build/types.d.ts CHANGED
@@ -171,6 +171,12 @@ declare abstract class BasicHTTPRoute extends Route {
171
171
  * The allowed methods ("GET", "POST", etc) this route can utilize and match against.
172
172
  */
173
173
  abstract method: Methods;
174
+ /**
175
+ * A function that can run before the requests is parsed and any query or body validation is run.
176
+ * Useful if you need to alter something about the request to conform it or otherwise. This
177
+ * hook is ran after any "global" hooks have run.
178
+ */
179
+ before?: (req: Request, res: http.ServerResponse) => Promise<boolean>;
174
180
  }
175
181
  /**
176
182
  * A HTTP-based route, with a handler, that can fulfill requests without
@@ -211,6 +217,10 @@ export declare abstract class WebSocketRoute extends Route {
211
217
  * Handles an inbound Websocket request, and handles the connection
212
218
  */
213
219
  abstract handler(req: Request, socket: stream.Duplex, head: Buffer, logger: Logger): Promise<unknown>;
220
+ /**
221
+ * Handles an inbound HTTP request, and supplies the Request and Response objects from node's HTTP request event
222
+ */
223
+ before?: (req: Request, socket: stream.Duplex, head: Buffer) => Promise<boolean>;
214
224
  }
215
225
  /**
216
226
  * A WebSocket-based route, with a handler, that can fulfill requests
@@ -230,6 +240,10 @@ export declare abstract class BrowserWebsocketRoute extends Route {
230
240
  * creation. Useful for injecting behaviors or other functionality.
231
241
  */
232
242
  onNewPage?: (url: URL, page: Page) => Promise<void>;
243
+ /**
244
+ * Handles an inbound HTTP request, and supplies the Request and Response objects from node's HTTP request event
245
+ */
246
+ before?: (req: Request, socket: stream.Duplex, head: Buffer) => Promise<boolean>;
233
247
  }
234
248
  interface BrowserlessLaunch {
235
249
  stealth?: boolean;
package/build/types.js CHANGED
@@ -101,6 +101,12 @@ class Route {
101
101
  * and WebSocketRoute
102
102
  */
103
103
  class BasicHTTPRoute extends Route {
104
+ /**
105
+ * A function that can run before the requests is parsed and any query or body validation is run.
106
+ * Useful if you need to alter something about the request to conform it or otherwise. This
107
+ * hook is ran after any "global" hooks have run.
108
+ */
109
+ before;
104
110
  }
105
111
  /**
106
112
  * A HTTP-based route, with a handler, that can fulfill requests without
@@ -127,6 +133,10 @@ export class BrowserHTTPRoute extends BasicHTTPRoute {
127
133
  */
128
134
  export class WebSocketRoute extends Route {
129
135
  browser = null;
136
+ /**
137
+ * Handles an inbound HTTP request, and supplies the Request and Response objects from node's HTTP request event
138
+ */
139
+ before;
130
140
  }
131
141
  /**
132
142
  * A WebSocket-based route, with a handler, that can fulfill requests
@@ -140,6 +150,10 @@ export class BrowserWebsocketRoute extends Route {
140
150
  * creation. Useful for injecting behaviors or other functionality.
141
151
  */
142
152
  onNewPage;
153
+ /**
154
+ * Handles an inbound HTTP request, and supplies the Request and Response objects from node's HTTP request event
155
+ */
156
+ before;
143
157
  }
144
158
  export const debugScreenshotOpts = {
145
159
  encoding: 'base64',
package/build/utils.js CHANGED
@@ -156,7 +156,7 @@ export const fetchJson = (url, init) => fetch(url, init).then((res) => {
156
156
  return res.json();
157
157
  });
158
158
  export const getTokenFromRequest = (req) => {
159
- const authHeader = req.headers['authorization'];
159
+ const authHeader = req.headers.authorization;
160
160
  const tokenParam = req.parsed.searchParams.get('token');
161
161
  return tokenParam ?? getAuthHeaderToken(authHeader || '');
162
162
  };
@@ -36,7 +36,7 @@
36
36
  "description": "Label in the popup panel for the current filtering mode"
37
37
  },
38
38
  "popupLocalToolsLabel": {
39
- "message": "On this website",
39
+ "message": "على هذا الموقع",
40
40
  "description": "Label in the popup panel for the local tools section"
41
41
  },
42
42
  "popupTipReport": {
@@ -300,11 +300,11 @@
300
300
  "description": "Tooltip for the button used to exit zapper mode"
301
301
  },
302
302
  "pickerTipEnter": {
303
- "message": "Create a custom filter",
303
+ "message": "أنشئ تصفية مخصّصة",
304
304
  "description": "Label for the menu entry to create cosmetic filters"
305
305
  },
306
306
  "unpickerTipEnter": {
307
- "message": "Remove a custom filter",
307
+ "message": "أزِل التصفية المخصّصة",
308
308
  "description": "Label for the menu entry to delete cosmetic filters"
309
309
  },
310
310
  "developDropdownLabel": {
@@ -356,23 +356,23 @@
356
356
  "description": "Short sentence to report the number of currently registered DNR rules"
357
357
  },
358
358
  "pickerSliderLabel": {
359
- "message": "Move the slider to select the best match",
359
+ "message": "حرك الشريط لتحديد أفضل تطابق",
360
360
  "description": "Label to describe the purpose of the slider"
361
361
  },
362
362
  "pickerPick": {
363
- "message": "Pick",
363
+ "message": "اختيار",
364
364
  "description": "Text for the button to re-enter element-picking mode"
365
365
  },
366
366
  "pickerPreview": {
367
- "message": "Preview",
367
+ "message": "معاينة",
368
368
  "description": "Text for the button to activate preview mode"
369
369
  },
370
370
  "pickerCreate": {
371
- "message": "Create",
371
+ "message": "إنشاء",
372
372
  "description": "Text for the button to create the filter"
373
373
  },
374
374
  "unpickerUsage": {
375
- "message": "Select a filter below to highlight matching elements in the webpage. Click the trash can to remove a filter.",
375
+ "message": "اختر تصفية أدناه لتمييز العناصر المطابقة في صفحة الويب. انقر على سلة المهملات لإزالة التصفية.",
376
376
  "description": "Summary description on how to use the tool to remove custom filters"
377
377
  }
378
378
  }
@@ -36,7 +36,7 @@
36
36
  "description": "Label in the popup panel for the current filtering mode"
37
37
  },
38
38
  "popupLocalToolsLabel": {
39
- "message": "On this website",
39
+ "message": "На гэтым сайце",
40
40
  "description": "Label in the popup panel for the local tools section"
41
41
  },
42
42
  "popupTipReport": {
@@ -300,11 +300,11 @@
300
300
  "description": "Tooltip for the button used to exit zapper mode"
301
301
  },
302
302
  "pickerTipEnter": {
303
- "message": "Create a custom filter",
303
+ "message": "Стварыць уласны фільтр",
304
304
  "description": "Label for the menu entry to create cosmetic filters"
305
305
  },
306
306
  "unpickerTipEnter": {
307
- "message": "Remove a custom filter",
307
+ "message": "Выдаліць уласны фільтр",
308
308
  "description": "Label for the menu entry to delete cosmetic filters"
309
309
  },
310
310
  "developDropdownLabel": {
@@ -356,23 +356,23 @@
356
356
  "description": "Short sentence to report the number of currently registered DNR rules"
357
357
  },
358
358
  "pickerSliderLabel": {
359
- "message": "Move the slider to select the best match",
359
+ "message": "Перасуньце паўзунок, каб выбраць найлепшы варыянт",
360
360
  "description": "Label to describe the purpose of the slider"
361
361
  },
362
362
  "pickerPick": {
363
- "message": "Pick",
363
+ "message": "Выбраць",
364
364
  "description": "Text for the button to re-enter element-picking mode"
365
365
  },
366
366
  "pickerPreview": {
367
- "message": "Preview",
367
+ "message": "Папярэдні прагляд",
368
368
  "description": "Text for the button to activate preview mode"
369
369
  },
370
370
  "pickerCreate": {
371
- "message": "Create",
371
+ "message": "Стварыць",
372
372
  "description": "Text for the button to create the filter"
373
373
  },
374
374
  "unpickerUsage": {
375
- "message": "Select a filter below to highlight matching elements in the webpage. Click the trash can to remove a filter.",
375
+ "message": "Выберыце фільтр ніжэй, каб вылучыць адпаведныя элементы на старонцы. Націсніце на кошык, каб выдаліць фільтр.",
376
376
  "description": "Summary description on how to use the tool to remove custom filters"
377
377
  }
378
378
  }
@@ -20,7 +20,7 @@
20
20
  "description": "appears as tab name in dashboard"
21
21
  },
22
22
  "developPageName": {
23
- "message": "Kehittäjille",
23
+ "message": "Kehitys",
24
24
  "description": "appears as tab name in dashboard. Inspired from 'Develop' menu in Safari, see https://developer.apple.com/documentation/safari-developer-tools/develop-menu"
25
25
  },
26
26
  "aboutPageName": {
@@ -36,11 +36,11 @@
36
36
  "description": "Label in the popup panel for the current filtering mode"
37
37
  },
38
38
  "popupLocalToolsLabel": {
39
- "message": "On this website",
39
+ "message": "Tällä sivustolla",
40
40
  "description": "Label in the popup panel for the local tools section"
41
41
  },
42
42
  "popupTipReport": {
43
- "message": "Ilmoita ongelmasta tällä verkkosivustolla",
43
+ "message": "Ilmoita ongelmasta",
44
44
  "description": "Tooltip used for the 'chat' icon in the panel"
45
45
  },
46
46
  "popupTipDashboard": {
@@ -292,7 +292,7 @@
292
292
  "description": "A button to navigate to the blocked page"
293
293
  },
294
294
  "zapperTipEnter": {
295
- "message": "Avaa elementtien piilotustila",
295
+ "message": "Poista elementti",
296
296
  "description": "Tooltip for the button used to enter zapper mode"
297
297
  },
298
298
  "zapperTipQuit": {
@@ -300,35 +300,35 @@
300
300
  "description": "Tooltip for the button used to exit zapper mode"
301
301
  },
302
302
  "pickerTipEnter": {
303
- "message": "Create a custom filter",
303
+ "message": "Luo uusi suodatin",
304
304
  "description": "Label for the menu entry to create cosmetic filters"
305
305
  },
306
306
  "unpickerTipEnter": {
307
- "message": "Remove a custom filter",
307
+ "message": "Poista oma suodatin",
308
308
  "description": "Label for the menu entry to delete cosmetic filters"
309
309
  },
310
310
  "developDropdownLabel": {
311
- "message": "View:",
311
+ "message": "Näytä:",
312
312
  "description": "A label of a dropdown list"
313
313
  },
314
314
  "developOptionFilteringModeDetails": {
315
- "message": "Filtering mode details",
315
+ "message": "Suodatustilan tiedot",
316
316
  "description": "An option in a dropdown list"
317
317
  },
318
318
  "developOptionCustomDnrRules": {
319
- "message": "Custom DNR rules",
319
+ "message": "Omat DNR-säännöt",
320
320
  "description": "An option in a dropdown list"
321
321
  },
322
322
  "developOptionDnrRulesOf": {
323
- "message": "DNR rules of …",
323
+ "message": "DNR-säännöt lähteestä…",
324
324
  "description": "A section header in a dropdown list"
325
325
  },
326
326
  "developOptionDynamicRuleset": {
327
- "message": "Dynamic ruleset",
327
+ "message": "Dynaaminen sääntöryhmä",
328
328
  "description": "An option in a dropdown list"
329
329
  },
330
330
  "developOptionSessionRuleset": {
331
- "message": "Session ruleset",
331
+ "message": "Istunnon sääntöryhmä",
332
332
  "description": "An option in a dropdown list"
333
333
  },
334
334
  "saveButton": {
@@ -348,7 +348,7 @@
348
348
  "description": "Text for buttons used to export content"
349
349
  },
350
350
  "dnrRulesWarning": {
351
- "message": "Do not add content from untrusted sources",
351
+ "message": "Älä lisää sisältöä lähteistä, joihin et luota.",
352
352
  "description": "Short description of the DNR rules editor pane"
353
353
  },
354
354
  "dnrRulesCountInfo": {
@@ -356,23 +356,23 @@
356
356
  "description": "Short sentence to report the number of currently registered DNR rules"
357
357
  },
358
358
  "pickerSliderLabel": {
359
- "message": "Move the slider to select the best match",
359
+ "message": "Valitse sopivin vaihtoehto siirtämällä säädintä",
360
360
  "description": "Label to describe the purpose of the slider"
361
361
  },
362
362
  "pickerPick": {
363
- "message": "Pick",
363
+ "message": "Valitse",
364
364
  "description": "Text for the button to re-enter element-picking mode"
365
365
  },
366
366
  "pickerPreview": {
367
- "message": "Preview",
367
+ "message": "Esikatsele",
368
368
  "description": "Text for the button to activate preview mode"
369
369
  },
370
370
  "pickerCreate": {
371
- "message": "Create",
371
+ "message": "Luo",
372
372
  "description": "Text for the button to create the filter"
373
373
  },
374
374
  "unpickerUsage": {
375
- "message": "Select a filter below to highlight matching elements in the webpage. Click the trash can to remove a filter.",
375
+ "message": "Valitse alta suodatin korostaaksesi verkkosivulta sitä vastaavat elementit. Poista suodatin klikkamalla roskakoria.",
376
376
  "description": "Summary description on how to use the tool to remove custom filters"
377
377
  }
378
378
  }
@@ -36,7 +36,7 @@
36
36
  "description": "Label in the popup panel for the current filtering mode"
37
37
  },
38
38
  "popupLocalToolsLabel": {
39
- "message": "On this website",
39
+ "message": "इस वेबसाइट पर",
40
40
  "description": "Label in the popup panel for the local tools section"
41
41
  },
42
42
  "popupTipReport": {
@@ -112,15 +112,15 @@
112
112
  "description": "Shown in the About pane"
113
113
  },
114
114
  "supportS6H": {
115
- "message": "Report a filter issue",
115
+ "message": "फ़िल्टर समस्या को रिपोर्ट करें",
116
116
  "description": "Header of 'Report a filter issue' section in Support pane"
117
117
  },
118
118
  "supportS3P1": {
119
- "message": "Report filter issues with specific websites to the <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\"><code>uBlockOrigin/uAssets</code> issue tracker</span>. <u>Requires a GitHub account.</u>",
119
+ "message": "विशिष्ट वेबसाइट पर फ़िल्टर समस्या को <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\"><code>uBlockOrigin/uAssets</code> समस्या ट्रैकर</span> पर रिपोर्ट करें. <u>इसके लिए एक GitHub खाते की आवश्यकता होगी.</u>",
120
120
  "description": "First paragraph of 'Filter issues' section in Support pane"
121
121
  },
122
122
  "supportS5H": {
123
- "message": "Troubleshooting information",
123
+ "message": "समस्या निवारक जानकारी",
124
124
  "description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
125
125
  },
126
126
  "supportS6P1S1": {
@@ -128,47 +128,47 @@
128
128
  "description": "A paragraph in the filter issue reporter section"
129
129
  },
130
130
  "supportFindSpecificButton": {
131
- "message": "Find similar reports on GitHub",
131
+ "message": "GitHub पर मिलती-जुलती रिपोर्ट खोजें",
132
132
  "description": "A clickable link in the filter issue reporter section"
133
133
  },
134
134
  "supportS6URL": {
135
- "message": "Address of the webpage:",
135
+ "message": "वेब पेज का पता:",
136
136
  "description": "Label for the URL of the page"
137
137
  },
138
138
  "supportS6Select1": {
139
- "message": "The webpage…",
139
+ "message": "वेब पेज…",
140
140
  "description": "Label for widget to select type of issue"
141
141
  },
142
142
  "supportS6Select1Option0": {
143
- "message": "-- Pick an entry --",
143
+ "message": "-- एक प्रविष्टि चुनें --",
144
144
  "description": "An entry in the widget used to select the type of issue"
145
145
  },
146
146
  "supportS6Select1Option1": {
147
- "message": "Shows ads or ad leftovers",
147
+ "message": "विज्ञापनों को या शेष बचे विज्ञापन को दिखाता है",
148
148
  "description": "An entry in the widget used to select the type of issue"
149
149
  },
150
150
  "supportS6Select1Option2": {
151
- "message": "Has overlays or other nuisances",
151
+ "message": "ओवरले या कोई अन्य दिक्कतें हैं",
152
152
  "description": "An entry in the widget used to select the type of issue"
153
153
  },
154
154
  "supportS6Select1Option3": {
155
- "message": "Detects uBO Lite",
155
+ "message": "यह uBO Lite की पहचान करता है",
156
156
  "description": "An entry in the widget used to select the type of issue"
157
157
  },
158
158
  "supportS6Select1Option4": {
159
- "message": "Has privacy-related issues",
159
+ "message": "गोपनीयता से संबंधित समस्याएं हैं",
160
160
  "description": "An entry in the widget used to select the type of issue"
161
161
  },
162
162
  "supportS6Select1Option5": {
163
- "message": "Malfunctions when uBO Lite is enabled",
163
+ "message": "यह uBO Lite सक्षम होने पर ठीक से काम नहीं करता",
164
164
  "description": "An entry in the widget used to select the type of issue"
165
165
  },
166
166
  "supportS6Select1Option6": {
167
- "message": "Opens unwanted tabs or windows",
167
+ "message": "अवांछित टैब या विंडो खोलता है",
168
168
  "description": "An entry in the widget used to select the type of issue"
169
169
  },
170
170
  "supportS6Select1Option7": {
171
- "message": "Leads to badware, phishing",
171
+ "message": "बैडवेयर, फ़िशिंग की ओर ले जाता है",
172
172
  "description": "An entry in the widget used to select the type of issue"
173
173
  },
174
174
  "supportS6Checkbox1": {
@@ -308,7 +308,7 @@
308
308
  "description": "Label for the menu entry to delete cosmetic filters"
309
309
  },
310
310
  "developDropdownLabel": {
311
- "message": "View:",
311
+ "message": "देखें:",
312
312
  "description": "A label of a dropdown list"
313
313
  },
314
314
  "developOptionFilteringModeDetails": {
@@ -332,23 +332,23 @@
332
332
  "description": "An option in a dropdown list"
333
333
  },
334
334
  "saveButton": {
335
- "message": "Save",
335
+ "message": "सहेजें",
336
336
  "description": "Text for buttons used to save changes"
337
337
  },
338
338
  "revertButton": {
339
- "message": "Revert",
339
+ "message": "पूर्ववत",
340
340
  "description": "Text for buttons used to revert changes"
341
341
  },
342
342
  "importAndAppendButton": {
343
- "message": "Import and append…",
343
+ "message": "इम्पोर्ट करें और जोड़ें…",
344
344
  "description": "Text for buttons used to import and append content"
345
345
  },
346
346
  "exportButton": {
347
- "message": "Export…",
347
+ "message": "निर्यात…",
348
348
  "description": "Text for buttons used to export content"
349
349
  },
350
350
  "dnrRulesWarning": {
351
- "message": "Do not add content from untrusted sources",
351
+ "message": "अविश्वसनीय स्रोतों से सामग्री जोड़ें",
352
352
  "description": "Short description of the DNR rules editor pane"
353
353
  },
354
354
  "dnrRulesCountInfo": {