@browserless.io/browserless 2.31.1 → 2.32.0-beta-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/build/routes/chrome/http/content.post.body.json +8 -8
  2. package/build/routes/chrome/http/pdf.post.body.json +8 -8
  3. package/build/routes/chrome/http/scrape.post.body.json +8 -8
  4. package/build/routes/chrome/http/screenshot.post.body.json +8 -8
  5. package/build/routes/chromium/http/content.post.body.json +8 -8
  6. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  7. package/build/routes/chromium/http/scrape.post.body.json +8 -8
  8. package/build/routes/chromium/http/screenshot.post.body.json +8 -8
  9. package/build/routes/edge/http/content.post.body.json +8 -8
  10. package/build/routes/edge/http/pdf.post.body.json +8 -8
  11. package/build/routes/edge/http/scrape.post.body.json +8 -8
  12. package/build/routes/edge/http/screenshot.post.body.json +8 -8
  13. package/build/routes/management/tests/management.spec.js +14 -0
  14. package/build/server.js +4 -5
  15. package/build/shared/utils/enjoi-resolver.d.ts +77 -0
  16. package/build/shared/utils/enjoi-resolver.js +399 -0
  17. package/docker/base/Dockerfile +2 -2
  18. package/extensions/ublocklite/README.md +4 -2
  19. package/extensions/ublocklite/_locales/ar/messages.json +34 -10
  20. package/extensions/ublocklite/_locales/az/messages.json +26 -2
  21. package/extensions/ublocklite/_locales/be/messages.json +26 -2
  22. package/extensions/ublocklite/_locales/bg/messages.json +26 -2
  23. package/extensions/ublocklite/_locales/bn/messages.json +26 -2
  24. package/extensions/ublocklite/_locales/br_FR/messages.json +26 -2
  25. package/extensions/ublocklite/_locales/bs/messages.json +26 -2
  26. package/extensions/ublocklite/_locales/ca/messages.json +26 -2
  27. package/extensions/ublocklite/_locales/cs/messages.json +26 -2
  28. package/extensions/ublocklite/_locales/cv/messages.json +26 -2
  29. package/extensions/ublocklite/_locales/cy/messages.json +37 -13
  30. package/extensions/ublocklite/_locales/da/messages.json +26 -2
  31. package/extensions/ublocklite/_locales/de/messages.json +26 -2
  32. package/extensions/ublocklite/_locales/el/messages.json +29 -5
  33. package/extensions/ublocklite/_locales/en/messages.json +26 -2
  34. package/extensions/ublocklite/_locales/en_GB/messages.json +26 -2
  35. package/extensions/ublocklite/_locales/eo/messages.json +26 -2
  36. package/extensions/ublocklite/_locales/es/messages.json +26 -2
  37. package/extensions/ublocklite/_locales/et/messages.json +26 -2
  38. package/extensions/ublocklite/_locales/eu/messages.json +26 -2
  39. package/extensions/ublocklite/_locales/fa/messages.json +26 -2
  40. package/extensions/ublocklite/_locales/fi/messages.json +26 -2
  41. package/extensions/ublocklite/_locales/fil/messages.json +68 -44
  42. package/extensions/ublocklite/_locales/fr/messages.json +26 -2
  43. package/extensions/ublocklite/_locales/fy/messages.json +26 -2
  44. package/extensions/ublocklite/_locales/gl/messages.json +27 -3
  45. package/extensions/ublocklite/_locales/gu/messages.json +26 -2
  46. package/extensions/ublocklite/_locales/he/messages.json +26 -2
  47. package/extensions/ublocklite/_locales/hi/messages.json +26 -2
  48. package/extensions/ublocklite/_locales/hr/messages.json +26 -2
  49. package/extensions/ublocklite/_locales/hu/messages.json +26 -2
  50. package/extensions/ublocklite/_locales/hy/messages.json +26 -2
  51. package/extensions/ublocklite/_locales/id/messages.json +37 -13
  52. package/extensions/ublocklite/_locales/it/messages.json +26 -2
  53. package/extensions/ublocklite/_locales/ja/messages.json +26 -2
  54. package/extensions/ublocklite/_locales/ka/messages.json +26 -2
  55. package/extensions/ublocklite/_locales/kk/messages.json +26 -2
  56. package/extensions/ublocklite/_locales/kn/messages.json +26 -2
  57. package/extensions/ublocklite/_locales/ko/messages.json +26 -2
  58. package/extensions/ublocklite/_locales/lt/messages.json +26 -2
  59. package/extensions/ublocklite/_locales/lv/messages.json +26 -2
  60. package/extensions/ublocklite/_locales/mk/messages.json +26 -2
  61. package/extensions/ublocklite/_locales/ml/messages.json +26 -2
  62. package/extensions/ublocklite/_locales/mr/messages.json +26 -2
  63. package/extensions/ublocklite/_locales/ms/messages.json +26 -2
  64. package/extensions/ublocklite/_locales/nb/messages.json +26 -2
  65. package/extensions/ublocklite/_locales/nl/messages.json +26 -2
  66. package/extensions/ublocklite/_locales/oc/messages.json +26 -2
  67. package/extensions/ublocklite/_locales/pa/messages.json +26 -2
  68. package/extensions/ublocklite/_locales/pl/messages.json +26 -2
  69. package/extensions/ublocklite/_locales/pt_BR/messages.json +26 -2
  70. package/extensions/ublocklite/_locales/pt_PT/messages.json +29 -5
  71. package/extensions/ublocklite/_locales/ro/messages.json +26 -2
  72. package/extensions/ublocklite/_locales/ru/messages.json +26 -2
  73. package/extensions/ublocklite/_locales/si/messages.json +26 -2
  74. package/extensions/ublocklite/_locales/sk/messages.json +26 -2
  75. package/extensions/ublocklite/_locales/sl/messages.json +26 -2
  76. package/extensions/ublocklite/_locales/so/messages.json +26 -2
  77. package/extensions/ublocklite/_locales/sq/messages.json +26 -2
  78. package/extensions/ublocklite/_locales/sr/messages.json +26 -2
  79. package/extensions/ublocklite/_locales/sv/messages.json +26 -2
  80. package/extensions/ublocklite/_locales/sw/messages.json +26 -2
  81. package/extensions/ublocklite/_locales/ta/messages.json +26 -2
  82. package/extensions/ublocklite/_locales/te/messages.json +26 -2
  83. package/extensions/ublocklite/_locales/th/messages.json +26 -2
  84. package/extensions/ublocklite/_locales/tr/messages.json +26 -2
  85. package/extensions/ublocklite/_locales/uk/messages.json +26 -2
  86. package/extensions/ublocklite/_locales/ur/messages.json +26 -2
  87. package/extensions/ublocklite/_locales/vi/messages.json +33 -9
  88. package/extensions/ublocklite/_locales/zh_CN/messages.json +33 -9
  89. package/extensions/ublocklite/_locales/zh_TW/messages.json +26 -2
  90. package/extensions/ublocklite/css/develop.css +59 -25
  91. package/extensions/ublocklite/css/line-hor-dashed.png +0 -0
  92. package/extensions/ublocklite/dashboard.html +25 -16
  93. package/extensions/ublocklite/js/admin.js +7 -8
  94. package/extensions/ublocklite/js/background.js +38 -19
  95. package/extensions/ublocklite/js/dashboard.js +3 -3
  96. package/extensions/ublocklite/js/develop.js +533 -798
  97. package/extensions/ublocklite/js/dnr-editor.js +180 -0
  98. package/extensions/ublocklite/js/dnr-parser.js +30 -10
  99. package/extensions/ublocklite/js/i18n.js +5 -0
  100. package/extensions/ublocklite/js/mode-editor.js +87 -0
  101. package/extensions/ublocklite/js/mode-manager.js +11 -48
  102. package/extensions/ublocklite/js/mode-parser.js +211 -0
  103. package/extensions/ublocklite/js/ro-dnr-editor.js +95 -0
  104. package/extensions/ublocklite/js/ruleset-manager.js +42 -16
  105. package/extensions/ublocklite/js/rw-dnr-editor.js +391 -0
  106. package/extensions/ublocklite/js/settings.js +7 -71
  107. package/extensions/ublocklite/lib/codemirror/cm6.bundle.ubol.min.js +1 -1
  108. package/extensions/ublocklite/lib/codemirror/codemirror.LICENSE +21 -0
  109. package/extensions/ublocklite/manifest.json +1 -1
  110. package/extensions/ublocklite/rulesets/generic-details.json +3 -24
  111. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +7 -18
  112. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +12 -6
  113. package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -2
  114. package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +2 -1
  115. package/extensions/ublocklite/rulesets/main/annoyances-social.json +4 -2
  116. package/extensions/ublocklite/rulesets/main/block-lan.json +6 -0
  117. package/extensions/ublocklite/rulesets/main/chn-0.json +26 -64
  118. package/extensions/ublocklite/rulesets/main/cze-0.json +2 -1
  119. package/extensions/ublocklite/rulesets/main/deu-0.json +3 -1
  120. package/extensions/ublocklite/rulesets/main/dpollock-0.json +2 -0
  121. package/extensions/ublocklite/rulesets/main/easylist.json +23 -9
  122. package/extensions/ublocklite/rulesets/main/easyprivacy.json +40 -11
  123. package/extensions/ublocklite/rulesets/main/fin-0.json +11 -2
  124. package/extensions/ublocklite/rulesets/main/fra-0.json +22 -41
  125. package/extensions/ublocklite/rulesets/main/grc-0.json +1 -1
  126. package/extensions/ublocklite/rulesets/main/hun-0.json +9 -2
  127. package/extensions/ublocklite/rulesets/main/idn-0.json +8 -38
  128. package/extensions/ublocklite/rulesets/main/ind-0.json +35 -6
  129. package/extensions/ublocklite/rulesets/main/irn-0.json +1 -0
  130. package/extensions/ublocklite/rulesets/main/isr-0.json +11 -1
  131. package/extensions/ublocklite/rulesets/main/ita-0.json +1 -1
  132. package/extensions/ublocklite/rulesets/main/jpn-1.json +24 -18
  133. package/extensions/ublocklite/rulesets/main/kor-1.json +6 -4
  134. package/extensions/ublocklite/rulesets/main/nld-0.json +3 -2
  135. package/extensions/ublocklite/rulesets/main/nor-0.json +8 -2
  136. package/extensions/ublocklite/rulesets/main/pgl.json +10 -7
  137. package/extensions/ublocklite/rulesets/main/pol-0.json +5 -0
  138. package/extensions/ublocklite/rulesets/main/rus-0.json +30 -28
  139. package/extensions/ublocklite/rulesets/main/spa-1.json +18 -61
  140. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +7223 -999
  141. package/extensions/ublocklite/rulesets/main/swe-1.json +40 -28
  142. package/extensions/ublocklite/rulesets/main/tur-0.json +17 -38
  143. package/extensions/ublocklite/rulesets/main/ublock-badware.json +28 -63
  144. package/extensions/ublocklite/rulesets/main/ublock-filters.json +173 -28
  145. package/extensions/ublocklite/rulesets/main/ukr-0.json +8 -26
  146. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +339 -766
  147. package/extensions/ublocklite/rulesets/main/vie-1.json +33 -30
  148. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +4 -1
  149. package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +0 -3
  150. package/extensions/ublocklite/rulesets/modify-headers/rus-0.json +2 -1
  151. package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +1 -1
  152. package/extensions/ublocklite/rulesets/redirect/adguard-mobile.json +1 -1
  153. package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +1 -0
  154. package/extensions/ublocklite/rulesets/redirect/spa-1.json +3 -4
  155. package/extensions/ublocklite/rulesets/redirect/swe-1.json +2 -1
  156. package/extensions/ublocklite/rulesets/redirect/tur-0.json +1 -1
  157. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +15 -5
  158. package/extensions/ublocklite/rulesets/redirect/vie-1.json +2 -2
  159. package/extensions/ublocklite/rulesets/regex/adguard-mobile.json +13 -0
  160. package/extensions/ublocklite/rulesets/regex/chn-0.json +2 -3
  161. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  162. package/extensions/ublocklite/rulesets/regex/kor-1.json +1 -0
  163. package/extensions/ublocklite/rulesets/regex/nor-0.json +10 -0
  164. package/extensions/ublocklite/rulesets/regex/spa-0.json +0 -1
  165. package/extensions/ublocklite/rulesets/regex/spa-1.json +0 -13
  166. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +5 -6
  167. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +14 -6
  168. package/extensions/ublocklite/rulesets/regex/ukr-0.json +2 -2
  169. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +10 -5
  170. package/extensions/ublocklite/rulesets/removeparam/rus-0.json +1 -1
  171. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +3 -2
  172. package/extensions/ublocklite/rulesets/ruleset-details.json +246 -246
  173. package/extensions/ublocklite/rulesets/scripting/declarative/adguard-mobile.js +3 -3
  174. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-cookies.js +1 -1
  175. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-others.js +3 -3
  176. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-overlays.js +1 -1
  177. package/extensions/ublocklite/rulesets/scripting/declarative/chn-0.js +3 -3
  178. package/extensions/ublocklite/rulesets/scripting/declarative/easylist.js +3 -3
  179. package/extensions/ublocklite/rulesets/scripting/declarative/fin-0.js +3 -3
  180. package/extensions/ublocklite/rulesets/scripting/declarative/fra-0.js +3 -3
  181. package/extensions/ublocklite/rulesets/scripting/declarative/idn-0.js +3 -3
  182. package/extensions/ublocklite/rulesets/scripting/declarative/jpn-1.js +3 -3
  183. package/extensions/ublocklite/rulesets/scripting/declarative/kor-1.js +3 -3
  184. package/extensions/ublocklite/rulesets/scripting/declarative/rus-0.js +3 -3
  185. package/extensions/ublocklite/rulesets/scripting/declarative/spa-1.js +3 -3
  186. package/extensions/ublocklite/rulesets/scripting/declarative/swe-1.js +3 -3
  187. package/extensions/ublocklite/rulesets/scripting/declarative/tur-0.js +3 -3
  188. package/extensions/ublocklite/rulesets/scripting/declarative/ublock-filters.js +3 -3
  189. package/extensions/ublocklite/rulesets/scripting/declarative/ukr-0.js +3 -3
  190. package/extensions/ublocklite/rulesets/scripting/declarative/vie-1.js +1 -1
  191. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  192. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +3 -3
  193. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +3 -3
  194. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  195. package/extensions/ublocklite/rulesets/scripting/generic/fin-0.js +2 -2
  196. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +2 -2
  197. package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +1 -1
  198. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
  199. package/extensions/ublocklite/rulesets/scripting/generic/ind-0.js +2 -2
  200. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +3 -3
  201. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
  202. package/extensions/ublocklite/rulesets/scripting/generic/rus-0.js +2 -2
  203. package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +2 -2
  204. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +2 -2
  205. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  206. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +3 -3
  207. package/extensions/ublocklite/rulesets/scripting/generichigh/annoyances-cookies.css +0 -1
  208. package/extensions/ublocklite/rulesets/scripting/generichigh/annoyances-social.css +0 -1
  209. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +0 -4
  210. package/extensions/ublocklite/rulesets/scripting/generichigh/cze-0.css +0 -1
  211. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +5 -9
  212. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +11 -0
  213. package/extensions/ublocklite/rulesets/scripting/generichigh/kor-1.css +0 -2
  214. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  215. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +1 -1
  216. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  217. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +2 -2
  218. package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +3 -3
  219. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  220. package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +3 -3
  221. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +3 -3
  222. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  223. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  224. package/extensions/ublocklite/rulesets/scripting/procedural/nor-0.js +3 -3
  225. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  226. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  227. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +1 -1
  228. package/extensions/ublocklite/rulesets/scripting/procedural/spa-0.js +3 -3
  229. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
  230. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  231. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  232. package/extensions/ublocklite/rulesets/scripting/procedural/ukr-0.js +3 -3
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-current-script.js +2 -2
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie-reload.js +11 -2
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie.js +10 -1
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +12 -3
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie-reload.js +10 -1
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +12 -3
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.remove-cookie.js +17 -7
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.set-cookie.js +10 -1
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +1 -1
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-property-read.js +1 -1
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-attr.js +2 -2
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-class.js +1 -1
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-cookie.js +17 -7
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +1 -1
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +12 -3
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-local-storage-item.js +2 -2
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-set-cookie.js +10 -1
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-set-local-storage-item.js +2 -2
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-social.set-cookie.js +10 -1
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +2 -2
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-on-property-read.js +2 -2
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.evaldata-prune.js +1 -1
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +3 -3
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +1 -1
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +1 -1
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.json-prune-xhr-response.js +597 -0
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.remove-cookie.js +17 -7
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-cookie.js +10 -1
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.set-cookie.js +10 -1
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.abort-on-property-read.js +2 -2
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.adjust-setTimeout.js +2 -2
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +2 -2
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.set-constant.js +1 -1
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.set-cookie.js +10 -1
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-fetch.js +2 -2
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.remove-cookie.js +17 -7
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-constant.js +1 -1
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-cookie.js +10 -1
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-cookie.js +17 -7
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-current-script.js +2 -2
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +1 -1
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.adjust-setTimeout.js +1 -1
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +1 -1
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setTimeout.js +2 -2
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-window-open.js +1 -1
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-node-text.js +1 -1
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-constant.js +2 -2
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-cookie-reload.js +10 -1
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +2 -2
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-cookie.js +10 -1
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-stack-trace.js +1 -1
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +1 -1
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.href-sanitizer.js +1 -1
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +1 -1
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-xhr.js +1 -1
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-cookie.js +19 -9
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +1 -1
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-cookie-reload.js +11 -2
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-cookie.js +10 -1
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +17 -7
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +2 -2
  301. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
  302. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-stack-trace.js +1 -1
  303. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +2 -2
  304. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setInterval.js +2 -2
  305. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setTimeout.js +2 -2
  306. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +2 -2
  307. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +1 -1
  308. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +2 -2
  309. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-xhr.js +1 -1
  310. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-attr.js +2 -2
  311. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-class.js +2 -2
  312. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
  313. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-cookie-reload.js +10 -1
  314. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-cookie.js +12 -3
  315. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-local-storage-item.js +1 -1
  316. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.remove-cookie.js +17 -7
  317. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.set-cookie.js +10 -1
  318. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-current-script.js +2 -2
  319. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +2 -2
  320. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +1 -1
  321. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setInterval.js +2 -2
  322. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +2 -2
  323. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  324. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
  325. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  326. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-cookie.js +10 -1
  327. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.abort-current-script.js +2 -2
  328. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  329. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +2 -2
  330. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +1 -1
  331. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +2 -2
  332. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  333. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +3 -3
  334. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  335. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit.js +30 -7
  336. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
  337. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +3 -3
  338. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +19 -2
  339. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +3 -3
  340. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +1 -1
  341. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-refresh.js +1 -1
  342. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +2 -2
  343. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
  344. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
  345. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  346. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +19 -9
  347. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
  348. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  349. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +12 -3
  350. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  351. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
  352. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  353. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
  354. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +2 -2
  355. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie-reload.js +10 -1
  356. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +13 -4
  357. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +399 -0
  358. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +2 -2
  359. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-fetch-response.js +19 -2
  360. package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-xhr-response.js +19 -2
  361. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-current-script.js +2 -2
  362. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-on-property-read.js +1 -1
  363. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-on-property-write.js +1 -1
  364. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.remove-class.js +1 -1
  365. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.set-constant.js +2 -2
  366. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +1 -1
  367. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  368. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +2 -2
  369. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  370. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  371. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  372. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  373. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  374. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  375. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  376. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  377. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  378. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  379. package/extensions/ublocklite/rulesets/scripting/specific/grc-0.js +3 -3
  380. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  381. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  382. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  383. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +1 -1
  384. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  385. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  386. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  387. package/extensions/ublocklite/rulesets/scripting/specific/ltu-0.js +3 -3
  388. package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
  389. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  390. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  391. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  392. package/extensions/ublocklite/rulesets/scripting/specific/spa-0.js +3 -3
  393. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  394. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  395. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  396. package/extensions/ublocklite/rulesets/scripting/specific/ublock-badware.js +3 -3
  397. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  398. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  399. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  400. package/extensions/ublocklite/rulesets/scriptlet-details.json +157 -153
  401. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +1 -34
  402. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +198 -248
  403. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +2 -0
  404. package/extensions/ublocklite/rulesets/strictblock/easylist.json +3 -2
  405. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +37 -1
  406. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +304 -62
  407. package/extensions/ublocklite/rulesets/strictblock/grc-0.json +1 -7
  408. package/extensions/ublocklite/rulesets/strictblock/idn-0.json +1 -0
  409. package/extensions/ublocklite/rulesets/strictblock/ita-0.json +1 -0
  410. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +159 -155
  411. package/extensions/ublocklite/rulesets/strictblock/kor-1.json +1 -0
  412. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  413. package/extensions/ublocklite/rulesets/strictblock/pgl.json +10 -7
  414. package/extensions/ublocklite/rulesets/strictblock/spa-1.json +0 -11
  415. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +7223 -999
  416. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +0 -13
  417. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +569 -570
  418. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
  419. package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +0 -75
  420. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +339 -766
  421. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +3 -2
  422. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +13 -0
  423. package/extensions/ublocklite/ublock.zip +0 -0
  424. package/package.json +24 -19
  425. package/src/routes/management/tests/management.spec.ts +25 -0
  426. package/src/server.ts +4 -5
  427. package/src/shared/utils/enjoi-resolver.ts +565 -0
  428. package/static/docs/swagger.json +9 -9
  429. package/static/docs/swagger.min.json +9 -9
  430. package/static/function/client.js +86 -39
  431. package/static/function/index.html +86 -39
  432. /package/extensions/ublocklite/lib/codemirror/{LICENSE → codemirror-quickstart.LICENSE} +0 -0
@@ -20,7 +20,7 @@
20
20
  "description": "appears as tab name in dashboard"
21
21
  },
22
22
  "developPageName": {
23
- "message": "Develop",
23
+ "message": "Phát triển",
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": {
@@ -240,11 +240,11 @@
240
240
  "description": "Short description for a checkbox in the options page"
241
241
  },
242
242
  "developerModeLabel": {
243
- "message": "Developer mode",
243
+ "message": "Chế độ nhà phát triển",
244
244
  "description": "Label for a checkbox in the options page"
245
245
  },
246
246
  "developerModeLegend": {
247
- "message": "Enables access to features suitable for technical users.",
247
+ "message": "Cho phép truy cập các tính năng dành cho người dùng nâng cao",
248
248
  "description": "Short description for a checkbox in the options page"
249
249
  },
250
250
  "findListsPlaceholder": {
@@ -295,24 +295,48 @@
295
295
  "message": "Thoát khỏi chế độ chặn phần tử tạm thời",
296
296
  "description": "Tooltip for the button used to exit zapper mode"
297
297
  },
298
+ "developDropdownLabel": {
299
+ "message": "View:",
300
+ "description": "A label of a dropdown list"
301
+ },
302
+ "developOptionFilteringModeDetails": {
303
+ "message": "Filtering mode details",
304
+ "description": "An option in a dropdown list"
305
+ },
306
+ "developOptionCustomDnrRules": {
307
+ "message": "Custom DNR rules",
308
+ "description": "An option in a dropdown list"
309
+ },
310
+ "developOptionDnrRulesOf": {
311
+ "message": "DNR rules of …",
312
+ "description": "A section header in a dropdown list"
313
+ },
314
+ "developOptionDynamicRuleset": {
315
+ "message": "Dynamic ruleset",
316
+ "description": "An option in a dropdown list"
317
+ },
318
+ "developOptionSessionRuleset": {
319
+ "message": "Session ruleset",
320
+ "description": "An option in a dropdown list"
321
+ },
298
322
  "saveButton": {
299
- "message": "Save",
323
+ "message": "Lưu",
300
324
  "description": "Text for buttons used to save changes"
301
325
  },
302
326
  "revertButton": {
303
- "message": "Revert",
327
+ "message": "Đặt lại",
304
328
  "description": "Text for buttons used to revert changes"
305
329
  },
306
330
  "importAndAppendButton": {
307
- "message": "Import and append…",
331
+ "message": "Nhập thêm vào",
308
332
  "description": "Text for buttons used to import and append content"
309
333
  },
310
334
  "exportButton": {
311
- "message": "Export…",
335
+ "message": "Xuất...",
312
336
  "description": "Text for buttons used to export content"
313
337
  },
314
- "dnrRulesSummary": {
315
- "message": "Enter your own DNR rules below. <b>Do not add content from untrusted sources.</b>",
338
+ "dnrRulesWarning": {
339
+ "message": "Do not add content from untrusted sources",
316
340
  "description": "Short description of the DNR rules editor pane"
317
341
  },
318
342
  "dnrRulesCountInfo": {
@@ -20,7 +20,7 @@
20
20
  "description": "appears as tab name in dashboard"
21
21
  },
22
22
  "developPageName": {
23
- "message": "Develop",
23
+ "message": "开发",
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": {
@@ -240,11 +240,11 @@
240
240
  "description": "Short description for a checkbox in the options page"
241
241
  },
242
242
  "developerModeLabel": {
243
- "message": "Developer mode",
243
+ "message": "开发者模式",
244
244
  "description": "Label for a checkbox in the options page"
245
245
  },
246
246
  "developerModeLegend": {
247
- "message": "Enables access to features suitable for technical users.",
247
+ "message": "启用访问适合技术用户的功能。",
248
248
  "description": "Short description for a checkbox in the options page"
249
249
  },
250
250
  "findListsPlaceholder": {
@@ -295,24 +295,48 @@
295
295
  "message": "退出临时元素移除模式",
296
296
  "description": "Tooltip for the button used to exit zapper mode"
297
297
  },
298
+ "developDropdownLabel": {
299
+ "message": "View:",
300
+ "description": "A label of a dropdown list"
301
+ },
302
+ "developOptionFilteringModeDetails": {
303
+ "message": "Filtering mode details",
304
+ "description": "An option in a dropdown list"
305
+ },
306
+ "developOptionCustomDnrRules": {
307
+ "message": "Custom DNR rules",
308
+ "description": "An option in a dropdown list"
309
+ },
310
+ "developOptionDnrRulesOf": {
311
+ "message": "DNR rules of …",
312
+ "description": "A section header in a dropdown list"
313
+ },
314
+ "developOptionDynamicRuleset": {
315
+ "message": "Dynamic ruleset",
316
+ "description": "An option in a dropdown list"
317
+ },
318
+ "developOptionSessionRuleset": {
319
+ "message": "Session ruleset",
320
+ "description": "An option in a dropdown list"
321
+ },
298
322
  "saveButton": {
299
- "message": "Save",
323
+ "message": "保存",
300
324
  "description": "Text for buttons used to save changes"
301
325
  },
302
326
  "revertButton": {
303
- "message": "Revert",
327
+ "message": "还原",
304
328
  "description": "Text for buttons used to revert changes"
305
329
  },
306
330
  "importAndAppendButton": {
307
- "message": "Import and append…",
331
+ "message": "导入并添加…",
308
332
  "description": "Text for buttons used to import and append content"
309
333
  },
310
334
  "exportButton": {
311
- "message": "Export…",
335
+ "message": "导出…",
312
336
  "description": "Text for buttons used to export content"
313
337
  },
314
- "dnrRulesSummary": {
315
- "message": "在下面输入您自己的DNR规则<b> 不要添加来自不可信来源的内容。</b>",
338
+ "dnrRulesWarning": {
339
+ "message": "Do not add content from untrusted sources",
316
340
  "description": "Short description of the DNR rules editor pane"
317
341
  },
318
342
  "dnrRulesCountInfo": {
@@ -295,6 +295,30 @@
295
295
  "message": "離開元素臨時移除模式",
296
296
  "description": "Tooltip for the button used to exit zapper mode"
297
297
  },
298
+ "developDropdownLabel": {
299
+ "message": "View:",
300
+ "description": "A label of a dropdown list"
301
+ },
302
+ "developOptionFilteringModeDetails": {
303
+ "message": "Filtering mode details",
304
+ "description": "An option in a dropdown list"
305
+ },
306
+ "developOptionCustomDnrRules": {
307
+ "message": "Custom DNR rules",
308
+ "description": "An option in a dropdown list"
309
+ },
310
+ "developOptionDnrRulesOf": {
311
+ "message": "DNR rules of …",
312
+ "description": "A section header in a dropdown list"
313
+ },
314
+ "developOptionDynamicRuleset": {
315
+ "message": "Dynamic ruleset",
316
+ "description": "An option in a dropdown list"
317
+ },
318
+ "developOptionSessionRuleset": {
319
+ "message": "Session ruleset",
320
+ "description": "An option in a dropdown list"
321
+ },
298
322
  "saveButton": {
299
323
  "message": "儲存",
300
324
  "description": "Text for buttons used to save changes"
@@ -311,8 +335,8 @@
311
335
  "message": "匯出…",
312
336
  "description": "Text for buttons used to export content"
313
337
  },
314
- "dnrRulesSummary": {
315
- "message": "請在下方輸入您的 DNR 規則。<b>請勿新增來自不受信任來源的內容。</b>",
338
+ "dnrRulesWarning": {
339
+ "message": "Do not add content from untrusted sources",
316
340
  "description": "Short description of the DNR rules editor pane"
317
341
  },
318
342
  "dnrRulesCountInfo": {
@@ -19,38 +19,35 @@ section[data-pane="develop"] > div > * {
19
19
  margin-top: 1em;
20
20
  }
21
21
 
22
- #cm-dnrRules {
22
+ #cm-container {
23
23
  flex-grow: 1;
24
24
  font-size: var(--monospace-size);
25
25
  overflow: hidden;
26
26
  }
27
27
 
28
28
  /* https://discuss.codemirror.net/t/how-to-set-max-height-of-the-editor/2882/2 */
29
- #cm-dnrRules .cm-editor {
29
+ #cm-container .cm-editor {
30
30
  background-color: var(--surface-0);
31
31
  height: 100%;
32
32
  }
33
33
 
34
- #cm-dnrRules .cm-editor .cm-line {
35
- border-bottom: 1px dotted transparent;
36
- border-top: 1px dotted transparent;
34
+ #cm-container .cm-editor .cm-line:has(.ͼ5),
35
+ #cm-container .cm-editor .cm-line:has(.ͼw) {
36
+ background-image: url('line-hor-dashed.png'), url('line-hor-dashed.png');
37
+ background-position: left 3px, left calc(100% - 3px);
38
+ background-repeat: repeat-x;
37
39
  }
38
40
 
39
- #cm-dnrRules .cm-editor .cm-line:has(.ͼc) {
40
- border-bottom: 1px dotted var(--border-1);
41
- border-top: 1px dotted var(--border-1);
42
- }
43
-
44
- #cm-dnrRules .cm-editor .cm-line.badline:not(.cm-activeLine) {
41
+ #cm-container .cm-editor .cm-line.badline:not(.cm-activeLine) {
45
42
  background-color: color-mix(in srgb, var(--info3-ink) 15%, transparent 85%);
46
43
  }
47
44
 
48
- #cm-dnrRules .cm-editor .cm-line .badmark {
45
+ #cm-container .cm-editor .cm-line .badmark {
49
46
  text-decoration: underline var(--cm-negative) wavy;
50
47
  text-decoration-skip-ink: none;
51
48
  }
52
49
 
53
- #cm-dnrRules .cm-editor .cm-panel.cm-search {
50
+ #cm-container .cm-editor .cm-panel.cm-search {
54
51
  display: flex;
55
52
  flex-wrap: wrap;
56
53
  font-family: sans-serif;
@@ -59,13 +56,13 @@ section[data-pane="develop"] > div > * {
59
56
  padding: 0.5em 1.5em 0.5em 0.5em;
60
57
  }
61
58
 
62
- #cm-dnrRules .cm-editor .cm-panel.cm-search > * {
59
+ #cm-container .cm-editor .cm-panel.cm-search > * {
63
60
  margin: 0;
64
61
  }
65
62
 
66
- #cm-dnrRules .cm-editor .cm-panel.cm-search .cm-textfield,
67
- #cm-dnrRules .cm-editor .cm-panel.cm-search .cm-button,
68
- #cm-dnrRules .cm-editor .cm-panel.cm-search label {
63
+ #cm-container .cm-editor .cm-panel.cm-search .cm-textfield,
64
+ #cm-container .cm-editor .cm-panel.cm-search .cm-button,
65
+ #cm-container .cm-editor .cm-panel.cm-search label {
69
66
  background-image: inherit;
70
67
  border: inherit;
71
68
  flex-grow: 0;
@@ -73,40 +70,77 @@ section[data-pane="develop"] > div > * {
73
70
  min-height: calc(var(--button-font-size) * 1.8);
74
71
  }
75
72
 
76
- #cm-dnrRules .cm-editor .cm-panel.info-panel {
73
+ #cm-container .cm-editor .cm-panel .warning {
74
+ color: var(--info3-ink);
75
+ }
76
+
77
+ #cm-container .cm-editor .cm-panel.io-panel {
78
+ background-color: var(--surface-1);
79
+ box-sizing: border-box;
80
+ display: inline-flex;
81
+ gap: 0.25em;
82
+ padding: 0.25em;
83
+ padding-inline-start: 0;
84
+ width: 100%;
85
+ }
86
+ #cm-container .cm-editor .cm-panel.io-panel button {
87
+ min-height: 30px;
88
+ }
89
+ #cm-container .cm-editor .cm-panel.io-panel button#revert {
90
+ margin-inline-end: 1em;
91
+ }
92
+ #cm-container .cm-editor .cm-panel.io-panel:not([data-io~="apply"]) button#apply {
93
+ display: none;
94
+ }
95
+ #cm-container .cm-editor .cm-panel.io-panel:not([data-io~="revert"]) button#revert {
96
+ display: none;
97
+ }
98
+ #cm-container .cm-editor .cm-panel.io-panel:not([data-io~="import"]) button#import {
99
+ display: none;
100
+ }
101
+ #cm-container .cm-editor .cm-panel.io-panel:not([data-io~="export"]) button#export {
102
+ display: none;
103
+ }
104
+
105
+ #cm-container .cm-editor .cm-panel.info-panel {
77
106
  display: flex;
78
107
  flex-wrap: nowrap;
79
108
  font-size: var(--font-size);
80
109
  padding: var(--default-gap-xxsmall) var(--default-gap-xsmall);
81
110
  }
82
- #cm-dnrRules .cm-editor .cm-panel.info-panel .info {
111
+ #cm-container .cm-editor .cm-panel.info-panel .info {
83
112
  flex-grow: 1;
84
113
  overflow: auto;
85
114
  }
86
- #cm-dnrRules .cm-editor .cm-panel.info-panel .close {
115
+ #cm-container .cm-editor .cm-panel.info-panel .close {
87
116
  cursor: default;
88
117
  flex-shrink: 0;
89
118
  padding-inline-start: 1em;
90
119
  }
91
- #cm-dnrRules .cm-editor .cm-panel.info-panel .close::after {
120
+ #cm-container .cm-editor .cm-panel.info-panel .close::after {
92
121
  content: '\2715';
93
122
  }
94
- #cm-dnrRules .cm-editor .cm-panel.summary-panel {
123
+
124
+ #cm-container .cm-editor .cm-panel.summary-panel {
95
125
  background-color: color-mix(in srgb, var(--info1-ink) 15%, transparent 85%);
126
+ gap: 1em;
127
+ }
128
+ #cm-container .cm-editor .cm-panel.summary-panel .info {
129
+ flex-shrink: 0;
96
130
  }
97
131
 
98
- #cm-dnrRules .cm-editor .cm-panel.feedback-panel {
132
+ #cm-container .cm-editor .cm-panel.feedback-panel {
99
133
  background-color: color-mix(in srgb, var(--info3-ink) 15%, transparent 85%);
100
134
  white-space: pre;
101
135
  max-height: 10cqh;
102
136
  }
103
137
 
104
- #cm-dnrRules .cm-editor .cm-gutterElement {
138
+ #cm-container .cm-editor .cm-gutterElement {
105
139
  cursor: default;
106
140
  user-select: none;
107
141
  }
108
142
 
109
- #cm-dnrRules .cm-editor .cm-tooltip .badmark-tooltip {
143
+ #cm-container .cm-editor .cm-tooltip .badmark-tooltip {
110
144
  background-color: color-mix(in srgb, var(--info3-ink) 15%, transparent 85%);
111
145
  padding: var(--default-gap-xxsmall) var(--default-gap-xsmall);
112
146
  }
@@ -89,12 +89,6 @@
89
89
  <p><label id="strictBlockMode" data-i18n="enableStrictBlockLabel"><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span>_</label><legend data-i18n="enableStrictBlockLegend"></legend>
90
90
  <p id="developerMode"><label data-i18n="developerModeLabel"><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span>_</label><legend data-i18n="developerModeLegend"></legend>
91
91
  </div>
92
-
93
- <div>
94
- <h3 data-i18n="filteringMode0Name"></h3>
95
- <p data-i18n="noFilteringModeDescription">_</p>
96
- <div id="trustedSites"></div>
97
- </div>
98
92
  </section>
99
93
  <!-- -------- -->
100
94
  <section data-pane="rulesets">
@@ -108,14 +102,17 @@
108
102
  <section data-pane="develop">
109
103
  <div>
110
104
  <p>
111
- <button id="dnrRulesApply" class="preferred iconified" type="button" disabled><span class="fa-icon">save</span><span data-i18n="saveButton">_</span><span class="hover"></span></button>
112
- <button id="dnrRulesRevert" class="iconified" type="button" disabled><span class="fa-icon">undo</span><span data-i18n="revertButton">_</span><span class="hover"></span></button>
113
- &emsp;
114
- <button id="dnrRulesImport" class="iconified" type="button"><span class="fa-icon">download-alt</span><span data-i18n="importAndAppendButton">_</span><span class="hover"></span></button>
115
- <button id="dnrRulesExport" class="iconified" type="button"><span class="fa-icon">upload-alt</span><span data-i18n="exportButton">_</span><span class="hover"></span></button><input type="file" accept="json/application">
105
+ <label for="editors" data-i18n="developDropdownLabel"></label> <select id="editors">
106
+ <option value="modes" selected data-i18n="developOptionFilteringModeDetails"></option>
107
+ <option value="dnr.rw.user" data-i18n="developOptionCustomDnrRules"></option>
108
+ <hr>
109
+ <optgroup label="" data-i18n-label="developOptionDnrRulesOf">
110
+ <option value="dnr.ro.dynamic" data-i18n="developOptionDynamicRuleset"></option>
111
+ <option value="dnr.ro.session" data-i18n="developOptionSessionRuleset"></option>
112
+ </optgroup>
113
+ </select>&nbsp;
116
114
  </p>
117
- <p data-i18n="dnrRulesSummary"></p>
118
- <div id="cm-dnrRules"></div>
115
+ <div id="cm-container"></div>
119
116
  </div>
120
117
  </section>
121
118
  <!-- -------- -->
@@ -165,16 +162,24 @@
165
162
  </span>
166
163
  </div>
167
164
  <div class="listEntry expandable" data-role="rootnode">
168
- <span class="detailbar">
165
+ <div class="detailbar">
169
166
  <h3 class="listname"></h3>
170
167
  <span class="count"></span>
171
168
  <span class="fa-icon listExpander">angle-up</span>
172
- </span>
169
+ </div>
173
170
  </div>
174
171
  </div>
172
+ <template class="io-panel">
173
+ <span class="io-panel">
174
+ <button id="apply" class="preferred iconified" type="button" disabled><span class="fa-icon">save</span><span data-i18n="saveButton">_</span><span class="hover"></span></button>
175
+ <button id="revert" class="iconified" type="button" disabled><span class="fa-icon">undo</span><span data-i18n="revertButton">_</span><span class="hover"></span></button>
176
+ <button id="import" class="iconified" type="button"><span class="fa-icon">download-alt</span><span data-i18n="importAndAppendButton">_</span><span class="hover"></span></button>
177
+ <button id="export" class="iconified" type="button"><span class="fa-icon">upload-alt</span><span data-i18n="exportButton">_</span><span class="hover"></span></button><input type="file" accept="json/application">
178
+ </span>
179
+ </template>
175
180
  <template class="summary-panel">
176
181
  <div class="info-panel summary-panel">
177
- <div class="info"></div>
182
+ <span class="info"></span><span class="warning" data-i18n="dnrRulesWarning"></span>
178
183
  </div>
179
184
  </template>
180
185
  <template class="feedback-panel">
@@ -183,6 +188,10 @@
183
188
  <div class="close"></div>
184
189
  </div>
185
190
  </template>
191
+ <template class="ro-summary-panel">
192
+ <div class="info-panel summary-panel">
193
+ </div>
194
+ </template>
186
195
  <template class="badmark-tooltip">
187
196
  <div class="badmark-tooltip">
188
197
  </div>
@@ -21,7 +21,7 @@
21
21
 
22
22
  import {
23
23
  adminRead,
24
- localRead, localWrite,
24
+ localRead, localRemove, localWrite,
25
25
  sessionRead, sessionWrite,
26
26
  } from './ext.js';
27
27
 
@@ -33,7 +33,6 @@ import {
33
33
 
34
34
  import {
35
35
  getDefaultFilteringMode,
36
- getTrustedSites,
37
36
  readFilteringModeDetails,
38
37
  } from './mode-manager.js';
39
38
 
@@ -132,9 +131,8 @@ const adminSettings = {
132
131
  }
133
132
  if ( this.keys.has('noFiltering') ) {
134
133
  ubolLog('admin setting "noFiltering" changed');
135
- await readFilteringModeDetails(true);
136
- const trustedSites = await getTrustedSites();
137
- broadcastMessage({ trustedSites: Array.from(trustedSites) });
134
+ const filteringModeDetails = await readFilteringModeDetails(true);
135
+ broadcastMessage({ filteringModeDetails });
138
136
  }
139
137
  if ( this.keys.has('showBlockedCount') ) {
140
138
  ubolLog('admin setting "showBlockedCount" changed');
@@ -192,17 +190,18 @@ export async function getAdminRulesets() {
192
190
 
193
191
  export async function adminReadEx(key) {
194
192
  let cacheValue;
195
- const session = await sessionRead(`admin_${key}`);
193
+ const session = await sessionRead(`admin.${key}`);
196
194
  if ( session ) {
197
195
  cacheValue = session.data;
198
196
  } else {
199
- const local = await localRead(`admin_${key}`);
197
+ const local = await localRead(`admin.${key}`);
200
198
  if ( local ) {
201
199
  cacheValue = local.data;
202
200
  }
201
+ localRemove(`admin_${key}`); // TODO: remove eventually
203
202
  }
204
203
  adminRead(key).then(async value => {
205
- const adminKey = `admin_${key}`;
204
+ const adminKey = `admin.${key}`;
206
205
  await Promise.all([
207
206
  sessionWrite(adminKey, { data: value }),
208
207
  localWrite(adminKey, { data: value }),
@@ -24,10 +24,10 @@ import {
24
24
  MODE_OPTIMAL,
25
25
  getDefaultFilteringMode,
26
26
  getFilteringMode,
27
- getTrustedSites,
27
+ getFilteringModeDetails,
28
28
  setDefaultFilteringMode,
29
29
  setFilteringMode,
30
- setTrustedSites,
30
+ setFilteringModeDetails,
31
31
  syncWithBrowserPermissions,
32
32
  } from './mode-manager.js';
33
33
 
@@ -53,6 +53,8 @@ import {
53
53
  import {
54
54
  enableRulesets,
55
55
  excludeFromStrictBlock,
56
+ getEffectiveDynamicRules,
57
+ getEffectiveSessionRules,
56
58
  getEffectiveUserRules,
57
59
  getEnabledRulesetsDetails,
58
60
  getRulesetDetails,
@@ -140,6 +142,7 @@ async function onPermissionsAdded(permissions) {
140
142
  function setDeveloperMode(state) {
141
143
  rulesetConfig.developerMode = state === true;
142
144
  toggleDeveloperMode(rulesetConfig.developerMode);
145
+ broadcastMessage({ developerMode: rulesetConfig.developerMode });
143
146
  return Promise.all([
144
147
  updateUserRules(),
145
148
  saveRulesetConfig(),
@@ -218,11 +221,10 @@ function onMessage(request, sender, callback) {
218
221
  return true;
219
222
  }
220
223
 
221
- case 'getOptionsPageData': {
224
+ case 'getOptionsPageData':
222
225
  Promise.all([
223
226
  hasBroadHostPermissions(),
224
227
  getDefaultFilteringMode(),
225
- getTrustedSites(),
226
228
  getRulesetDetails(),
227
229
  dnr.getEnabledRulesets(),
228
230
  getAdminRulesets(),
@@ -231,7 +233,6 @@ function onMessage(request, sender, callback) {
231
233
  const [
232
234
  hasOmnipotence,
233
235
  defaultFilteringMode,
234
- trustedSites,
235
236
  rulesetDetails,
236
237
  enabledRulesets,
237
238
  adminRulesets,
@@ -240,7 +241,6 @@ function onMessage(request, sender, callback) {
240
241
  callback({
241
242
  hasOmnipotence,
242
243
  defaultFilteringMode,
243
- trustedSites: Array.from(trustedSites),
244
244
  enabledRulesets,
245
245
  adminRulesets,
246
246
  maxNumberOfEnabledRulesets: dnr.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS,
@@ -257,7 +257,12 @@ function onMessage(request, sender, callback) {
257
257
  process.firstRun = false;
258
258
  });
259
259
  return true;
260
- }
260
+
261
+ case 'getRulesetDetails':
262
+ getRulesetDetails().then(rulesetDetails => {
263
+ callback(Array.from(rulesetDetails.values()));
264
+ });
265
+ return true;
261
266
 
262
267
  case 'setAutoReload':
263
268
  rulesetConfig.autoReload = request.state && true || false;
@@ -352,7 +357,7 @@ function onMessage(request, sender, callback) {
352
357
  return true;
353
358
  }
354
359
 
355
- case 'setDefaultFilteringMode': {
360
+ case 'setDefaultFilteringMode':
356
361
  getDefaultFilteringMode().then(beforeLevel =>
357
362
  setDefaultFilteringMode(request.level).then(afterLevel =>
358
363
  ({ beforeLevel, afterLevel })
@@ -364,19 +369,21 @@ function onMessage(request, sender, callback) {
364
369
  callback(afterLevel);
365
370
  });
366
371
  return true;
367
- }
368
372
 
369
- case 'setTrustedSites':
370
- setTrustedSites(request.hostnames).then(( ) => {
373
+ case 'getFilteringModeDetails':
374
+ getFilteringModeDetails(true).then(details => {
375
+ callback(details);
376
+ });
377
+ return true;
378
+
379
+ case 'setFilteringModeDetails':
380
+ setFilteringModeDetails(request.modes).then(( ) => {
371
381
  registerInjectables();
372
- return Promise.all([
373
- getDefaultFilteringMode(),
374
- getTrustedSites(),
375
- ]);
376
- }).then(results => {
377
- callback({
378
- defaultFilteringMode: results[0],
379
- trustedSites: Array.from(results[1]),
382
+ getDefaultFilteringMode().then(defaultFilteringMode => {
383
+ broadcastMessage({ defaultFilteringMode });
384
+ });
385
+ getFilteringModeDetails(true).then(details => {
386
+ callback(details);
380
387
  });
381
388
  });
382
389
  return true;
@@ -401,6 +408,18 @@ function onMessage(request, sender, callback) {
401
408
  });
402
409
  break;
403
410
 
411
+ case 'getEffectiveDynamicRules':
412
+ getEffectiveDynamicRules().then(result => {
413
+ callback(result);
414
+ });
415
+ return true;
416
+
417
+ case 'getEffectiveSessionRules':
418
+ getEffectiveSessionRules().then(result => {
419
+ callback(result);
420
+ });
421
+ return true;
422
+
404
423
  case 'getEffectiveUserRules':
405
424
  getEffectiveUserRules().then(result => {
406
425
  callback(result);
@@ -41,13 +41,13 @@ dom.on('#dashboard-nav', 'click', '.tabButton', ev => {
41
41
  const { pane } = ev.target.dataset;
42
42
  dom.body.dataset.pane = pane;
43
43
  if ( pane === 'settings' ) {
44
- localRemove('activeDashboardPane');
44
+ localRemove('dashboard.activePane');
45
45
  } else {
46
- localWrite('activeDashboardPane', pane);
46
+ localWrite('dashboard.activePane', pane);
47
47
  }
48
48
  });
49
49
 
50
- localRead('activeDashboardPane').then(pane => {
50
+ localRead('dashboard.activePane').then(pane => {
51
51
  if ( typeof pane !== 'string' ) { return; }
52
52
  dom.body.dataset.pane = pane;
53
53
  });