@browserless.io/browserless 2.32.0-beta-1 → 2.32.1-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 (168) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/build/routes/chrome/http/content.post.body.json +8 -8
  3. package/build/routes/chrome/http/pdf.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/shim.js +1 -1
  14. package/build/shim.spec.js +14 -0
  15. package/extensions/ublocklite/_locales/be/messages.json +9 -9
  16. package/extensions/ublocklite/_locales/cs/messages.json +7 -7
  17. package/extensions/ublocklite/_locales/hi/messages.json +1 -1
  18. package/extensions/ublocklite/_locales/ko/messages.json +7 -7
  19. package/extensions/ublocklite/_locales/vi/messages.json +8 -8
  20. package/extensions/ublocklite/_locales/zh_TW/messages.json +7 -7
  21. package/extensions/ublocklite/css/develop.css +1 -2
  22. package/extensions/ublocklite/js/arglist-parser.js +116 -0
  23. package/extensions/ublocklite/js/develop.js +18 -11
  24. package/extensions/ublocklite/js/jsonpath.js +470 -0
  25. package/extensions/ublocklite/js/redirect-resources.js +192 -0
  26. package/extensions/ublocklite/js/rw-dnr-editor.js +17 -3
  27. package/extensions/ublocklite/js/static-filtering-parser.js +4413 -0
  28. package/extensions/ublocklite/js/ubo-parser.js +461 -0
  29. package/extensions/ublocklite/lib/codemirror/cm6.bundle.ubol.min.js +1 -1
  30. package/extensions/ublocklite/lib/csstree/LICENSE +19 -0
  31. package/extensions/ublocklite/lib/csstree/css-tree.js +17 -0
  32. package/extensions/ublocklite/manifest.json +1 -1
  33. package/extensions/ublocklite/rulesets/generic-details.json +3 -8
  34. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +7 -5
  35. package/extensions/ublocklite/rulesets/main/annoyances-others.json +2 -1
  36. package/extensions/ublocklite/rulesets/main/chn-0.json +11 -7
  37. package/extensions/ublocklite/rulesets/main/deu-0.json +0 -3
  38. package/extensions/ublocklite/rulesets/main/easylist.json +13 -9
  39. package/extensions/ublocklite/rulesets/main/easyprivacy.json +17 -4
  40. package/extensions/ublocklite/rulesets/main/fra-0.json +4 -6
  41. package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
  42. package/extensions/ublocklite/rulesets/main/ind-0.json +13 -6
  43. package/extensions/ublocklite/rulesets/main/nld-0.json +1 -0
  44. package/extensions/ublocklite/rulesets/main/pgl.json +2 -11
  45. package/extensions/ublocklite/rulesets/main/rus-0.json +7 -4
  46. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +2092 -363
  47. package/extensions/ublocklite/rulesets/main/swe-1.json +8 -7
  48. package/extensions/ublocklite/rulesets/main/tur-0.json +3 -0
  49. package/extensions/ublocklite/rulesets/main/ublock-badware.json +48 -49
  50. package/extensions/ublocklite/rulesets/main/ublock-filters.json +21 -17
  51. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +272 -234
  52. package/extensions/ublocklite/rulesets/main/vie-1.json +18 -15
  53. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +1 -0
  54. package/extensions/ublocklite/rulesets/redirect/nld-0.json +19 -0
  55. package/extensions/ublocklite/rulesets/redirect/swe-1.json +1 -1
  56. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +5 -6
  57. package/extensions/ublocklite/rulesets/redirect/vie-1.json +2 -2
  58. package/extensions/ublocklite/rulesets/regex/chn-0.json +1 -1
  59. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +5 -4
  60. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +1 -1
  61. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +3 -4
  62. package/extensions/ublocklite/rulesets/ruleset-details.json +111 -111
  63. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-overlays.js +1 -1
  64. package/extensions/ublocklite/rulesets/scripting/declarative/fra-0.js +3 -3
  65. package/extensions/ublocklite/rulesets/scripting/declarative/rus-0.js +1 -1
  66. package/extensions/ublocklite/rulesets/scripting/declarative/rus-1.js +3 -3
  67. package/extensions/ublocklite/rulesets/scripting/declarative/tur-0.js +3 -3
  68. package/extensions/ublocklite/rulesets/scripting/declarative/ublock-filters.js +3 -3
  69. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +1 -1
  70. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +1 -1
  71. package/extensions/ublocklite/rulesets/scripting/generic/rus-0.js +1 -1
  72. package/extensions/ublocklite/rulesets/scripting/generic/ublock-badware.js +1 -1
  73. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +1 -1
  74. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +1 -0
  75. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +1 -0
  76. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -4
  77. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
  78. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  79. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +1 -1
  80. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  81. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  82. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  83. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +1 -1
  84. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  85. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  86. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  87. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.remove-cookie.js +2 -2
  88. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +1 -1
  89. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +2 -2
  90. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
  91. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +2 -2
  92. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-fetch.js +2 -2
  93. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +2 -2
  94. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +1 -1
  95. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +1 -1
  96. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +1 -1
  97. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-cookie.js +2 -2
  98. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +1 -1
  99. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +2 -2
  100. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  101. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +2 -2
  102. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  103. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-node-text.js +2 -2
  104. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  105. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +1 -1
  106. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +2 -2
  107. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  108. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +2 -2
  109. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  110. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.alert-buster.js +1 -1
  111. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +1 -1
  112. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +1 -1
  113. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +2 -2
  114. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +2 -2
  115. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +1 -1
  116. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +1 -1
  117. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  118. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
  119. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  120. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  121. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-session-storage-item.js +2 -2
  122. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +1 -1
  123. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +2 -2
  124. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +1 -1
  125. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +2 -2
  126. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +1 -1
  127. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +1 -1
  128. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +1 -1
  129. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +1 -1
  130. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +2 -2
  131. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  132. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  133. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +2 -2
  134. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  135. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  136. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  137. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  138. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  139. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  140. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  141. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  142. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  143. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  144. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  145. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  146. package/extensions/ublocklite/rulesets/scripting/specific/spa-0.js +3 -3
  147. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  148. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  149. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  150. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  151. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  152. package/extensions/ublocklite/rulesets/scriptlet-details.json +82 -70
  153. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +64 -0
  154. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  155. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +7 -1
  156. package/extensions/ublocklite/rulesets/strictblock/idn-0.json +0 -1
  157. package/extensions/ublocklite/rulesets/strictblock/pgl.json +2 -11
  158. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +2092 -363
  159. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +633 -632
  160. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
  161. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +272 -234
  162. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +6 -0
  163. package/extensions/ublocklite/ublock.zip +0 -0
  164. package/package.json +4 -4
  165. package/src/shim.spec.ts +18 -0
  166. package/src/shim.ts +1 -1
  167. package/static/docs/swagger.json +10 -10
  168. package/static/docs/swagger.min.json +9 -9
@@ -244,7 +244,7 @@
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": {
@@ -296,27 +296,27 @@
296
296
  "description": "Tooltip for the button used to exit zapper mode"
297
297
  },
298
298
  "developDropdownLabel": {
299
- "message": "View:",
299
+ "message": "Выгляд",
300
300
  "description": "A label of a dropdown list"
301
301
  },
302
302
  "developOptionFilteringModeDetails": {
303
- "message": "Filtering mode details",
303
+ "message": "Падрабязныя звесткі аб рэжыме фільтрацыі",
304
304
  "description": "An option in a dropdown list"
305
305
  },
306
306
  "developOptionCustomDnrRules": {
307
- "message": "Custom DNR rules",
307
+ "message": "Кастомныя правілы DNR",
308
308
  "description": "An option in a dropdown list"
309
309
  },
310
310
  "developOptionDnrRulesOf": {
311
- "message": "DNR rules of …",
311
+ "message": "Правілы у DNR",
312
312
  "description": "A section header in a dropdown list"
313
313
  },
314
314
  "developOptionDynamicRuleset": {
315
- "message": "Dynamic ruleset",
315
+ "message": "Дынамічны набор правілаў",
316
316
  "description": "An option in a dropdown list"
317
317
  },
318
318
  "developOptionSessionRuleset": {
319
- "message": "Session ruleset",
319
+ "message": "Набор правілаў сеансу",
320
320
  "description": "An option in a dropdown list"
321
321
  },
322
322
  "saveButton": {
@@ -336,11 +336,11 @@
336
336
  "description": "Text for buttons used to export content"
337
337
  },
338
338
  "dnrRulesWarning": {
339
- "message": "Do not add content from untrusted sources",
339
+ "message": "Не дадавайце кантэнт з ненадзейных крыніц",
340
340
  "description": "Short description of the DNR rules editor pane"
341
341
  },
342
342
  "dnrRulesCountInfo": {
343
- "message": "Number of registered rules: {count}",
343
+ "message": "Колькасць зарэгістраваных правілаў: {count}",
344
344
  "description": "Short sentence to report the number of currently registered DNR rules"
345
345
  }
346
346
  }
@@ -296,27 +296,27 @@
296
296
  "description": "Tooltip for the button used to exit zapper mode"
297
297
  },
298
298
  "developDropdownLabel": {
299
- "message": "View:",
299
+ "message": "Zobrazit:",
300
300
  "description": "A label of a dropdown list"
301
301
  },
302
302
  "developOptionFilteringModeDetails": {
303
- "message": "Filtering mode details",
303
+ "message": "Detaily filtovacího módu",
304
304
  "description": "An option in a dropdown list"
305
305
  },
306
306
  "developOptionCustomDnrRules": {
307
- "message": "Custom DNR rules",
307
+ "message": "Vlastní pravidla DNR",
308
308
  "description": "An option in a dropdown list"
309
309
  },
310
310
  "developOptionDnrRulesOf": {
311
- "message": "DNR rules of …",
311
+ "message": "DNR pravidla …",
312
312
  "description": "A section header in a dropdown list"
313
313
  },
314
314
  "developOptionDynamicRuleset": {
315
- "message": "Dynamic ruleset",
315
+ "message": "Dynamický seznam pravidel",
316
316
  "description": "An option in a dropdown list"
317
317
  },
318
318
  "developOptionSessionRuleset": {
319
- "message": "Session ruleset",
319
+ "message": "",
320
320
  "description": "An option in a dropdown list"
321
321
  },
322
322
  "saveButton": {
@@ -336,7 +336,7 @@
336
336
  "description": "Text for buttons used to export content"
337
337
  },
338
338
  "dnrRulesWarning": {
339
- "message": "Do not add content from untrusted sources",
339
+ "message": "Nepřidávat filtry z nedůvěryhodných zdrojů",
340
340
  "description": "Short description of the DNR rules editor pane"
341
341
  },
342
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": {
@@ -296,27 +296,27 @@
296
296
  "description": "Tooltip for the button used to exit zapper mode"
297
297
  },
298
298
  "developDropdownLabel": {
299
- "message": "View:",
299
+ "message": "보기:",
300
300
  "description": "A label of a dropdown list"
301
301
  },
302
302
  "developOptionFilteringModeDetails": {
303
- "message": "Filtering mode details",
303
+ "message": "필터링 모드 상세정보",
304
304
  "description": "An option in a dropdown list"
305
305
  },
306
306
  "developOptionCustomDnrRules": {
307
- "message": "Custom DNR rules",
307
+ "message": "사용자 지정 DNR 규칙",
308
308
  "description": "An option in a dropdown list"
309
309
  },
310
310
  "developOptionDnrRulesOf": {
311
- "message": "DNR rules of …",
311
+ "message": "DNR 규칙…",
312
312
  "description": "A section header in a dropdown list"
313
313
  },
314
314
  "developOptionDynamicRuleset": {
315
- "message": "Dynamic ruleset",
315
+ "message": "동적 규칙 목록",
316
316
  "description": "An option in a dropdown list"
317
317
  },
318
318
  "developOptionSessionRuleset": {
319
- "message": "Session ruleset",
319
+ "message": "세션 규칙 목록",
320
320
  "description": "An option in a dropdown list"
321
321
  },
322
322
  "saveButton": {
@@ -336,7 +336,7 @@
336
336
  "description": "Text for buttons used to export content"
337
337
  },
338
338
  "dnrRulesWarning": {
339
- "message": "Do not add content from untrusted sources",
339
+ "message": "신뢰할 없는 출처의 콘텐츠를 추가하지 마십시오",
340
340
  "description": "Short description of the DNR rules editor pane"
341
341
  },
342
342
  "dnrRulesCountInfo": {
@@ -296,27 +296,27 @@
296
296
  "description": "Tooltip for the button used to exit zapper mode"
297
297
  },
298
298
  "developDropdownLabel": {
299
- "message": "View:",
299
+ "message": "Xem:",
300
300
  "description": "A label of a dropdown list"
301
301
  },
302
302
  "developOptionFilteringModeDetails": {
303
- "message": "Filtering mode details",
303
+ "message": "Chi tiết chế độ chặn",
304
304
  "description": "An option in a dropdown list"
305
305
  },
306
306
  "developOptionCustomDnrRules": {
307
- "message": "Custom DNR rules",
307
+ "message": "Quy tắc DRN tùy chỉnh",
308
308
  "description": "An option in a dropdown list"
309
309
  },
310
310
  "developOptionDnrRulesOf": {
311
- "message": "DNR rules of ",
311
+ "message": "Quy tắc DRN cho ...",
312
312
  "description": "A section header in a dropdown list"
313
313
  },
314
314
  "developOptionDynamicRuleset": {
315
- "message": "Dynamic ruleset",
315
+ "message": "Danh sách quy tắc động",
316
316
  "description": "An option in a dropdown list"
317
317
  },
318
318
  "developOptionSessionRuleset": {
319
- "message": "Session ruleset",
319
+ "message": "Danh sách quy tắc phiên",
320
320
  "description": "An option in a dropdown list"
321
321
  },
322
322
  "saveButton": {
@@ -336,11 +336,11 @@
336
336
  "description": "Text for buttons used to export content"
337
337
  },
338
338
  "dnrRulesWarning": {
339
- "message": "Do not add content from untrusted sources",
339
+ "message": "Không thêm các bộ lọc từ các nguồn không đáng tin cậy",
340
340
  "description": "Short description of the DNR rules editor pane"
341
341
  },
342
342
  "dnrRulesCountInfo": {
343
- "message": "Number of registered rules: {count}",
343
+ "message": "Số quy tắc đã đăng ký: {count}",
344
344
  "description": "Short sentence to report the number of currently registered DNR rules"
345
345
  }
346
346
  }
@@ -296,27 +296,27 @@
296
296
  "description": "Tooltip for the button used to exit zapper mode"
297
297
  },
298
298
  "developDropdownLabel": {
299
- "message": "View:",
299
+ "message": "檢視:",
300
300
  "description": "A label of a dropdown list"
301
301
  },
302
302
  "developOptionFilteringModeDetails": {
303
- "message": "Filtering mode details",
303
+ "message": "過濾模式詳細資訊",
304
304
  "description": "An option in a dropdown list"
305
305
  },
306
306
  "developOptionCustomDnrRules": {
307
- "message": "Custom DNR rules",
307
+ "message": "自訂 DNR 規則",
308
308
  "description": "An option in a dropdown list"
309
309
  },
310
310
  "developOptionDnrRulesOf": {
311
- "message": "DNR rules of …",
311
+ "message": "DNR 規則……",
312
312
  "description": "A section header in a dropdown list"
313
313
  },
314
314
  "developOptionDynamicRuleset": {
315
- "message": "Dynamic ruleset",
315
+ "message": "動態規則集",
316
316
  "description": "An option in a dropdown list"
317
317
  },
318
318
  "developOptionSessionRuleset": {
319
- "message": "Session ruleset",
319
+ "message": "工作階段規則集",
320
320
  "description": "An option in a dropdown list"
321
321
  },
322
322
  "saveButton": {
@@ -336,7 +336,7 @@
336
336
  "description": "Text for buttons used to export content"
337
337
  },
338
338
  "dnrRulesWarning": {
339
- "message": "Do not add content from untrusted sources",
339
+ "message": "切勿新增來自不受信任來源的內容",
340
340
  "description": "Short description of the DNR rules editor pane"
341
341
  },
342
342
  "dnrRulesCountInfo": {
@@ -31,8 +31,7 @@ section[data-pane="develop"] > div > * {
31
31
  height: 100%;
32
32
  }
33
33
 
34
- #cm-container .cm-editor .cm-line:has(.ͼ5),
35
- #cm-container .cm-editor .cm-line:has(.ͼw) {
34
+ #cm-container .cm-editor .cm-line:has(.yamlboundary) {
36
35
  background-image: url('line-hor-dashed.png'), url('line-hor-dashed.png');
37
36
  background-position: left 3px, left calc(100% - 3px);
38
37
  background-repeat: repeat-x;
@@ -0,0 +1,116 @@
1
+ /*******************************************************************************
2
+
3
+ uBlock Origin - a comprehensive, efficient content blocker
4
+ Copyright (C) 2020-present Raymond Hill
5
+
6
+ This program is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation, either version 3 of the License, or
9
+ (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program. If not, see {http://www.gnu.org/licenses/}.
18
+
19
+ Home: https://github.com/gorhill/uBlock
20
+ */
21
+
22
+ /******************************************************************************/
23
+
24
+ export class ArglistParser {
25
+ constructor(separatorChar = ',', mustQuote = false) {
26
+ this.separatorChar = this.actualSeparatorChar = separatorChar;
27
+ this.separatorCode = this.actualSeparatorCode = separatorChar.charCodeAt(0);
28
+ this.mustQuote = mustQuote;
29
+ this.quoteBeg = 0; this.quoteEnd = 0;
30
+ this.argBeg = 0; this.argEnd = 0;
31
+ this.separatorBeg = 0; this.separatorEnd = 0;
32
+ this.transform = false;
33
+ this.failed = false;
34
+ this.reWhitespaceStart = /^\s+/;
35
+ this.reWhitespaceEnd = /(?:^|\S)(\s+)$/;
36
+ this.reOddTrailingEscape = /(?:^|[^\\])(?:\\\\)*\\$/;
37
+ this.reTrailingEscapeChars = /\\+$/;
38
+ }
39
+ nextArg(pattern, beg = 0) {
40
+ const len = pattern.length;
41
+ this.quoteBeg = beg + this.leftWhitespaceCount(pattern.slice(beg));
42
+ this.failed = false;
43
+ const qc = pattern.charCodeAt(this.quoteBeg);
44
+ if ( qc === 0x22 /* " */ || qc === 0x27 /* ' */ || qc === 0x60 /* ` */ ) {
45
+ this.indexOfNextArgSeparator(pattern, qc);
46
+ if ( this.argEnd !== len ) {
47
+ this.quoteEnd = this.argEnd + 1;
48
+ this.separatorBeg = this.separatorEnd = this.quoteEnd;
49
+ this.separatorEnd += this.leftWhitespaceCount(pattern.slice(this.quoteEnd));
50
+ if ( this.separatorEnd === len ) { return this; }
51
+ if ( pattern.charCodeAt(this.separatorEnd) === this.separatorCode ) {
52
+ this.separatorEnd += 1;
53
+ return this;
54
+ }
55
+ }
56
+ }
57
+ this.indexOfNextArgSeparator(pattern, this.separatorCode);
58
+ this.separatorBeg = this.separatorEnd = this.argEnd;
59
+ if ( this.separatorBeg < len ) {
60
+ this.separatorEnd += 1;
61
+ }
62
+ this.argEnd -= this.rightWhitespaceCount(pattern.slice(0, this.separatorBeg));
63
+ this.quoteEnd = this.argEnd;
64
+ if ( this.mustQuote ) {
65
+ this.failed = true;
66
+ }
67
+ return this;
68
+ }
69
+ normalizeArg(s, char = '') {
70
+ if ( char === '' ) { char = this.actualSeparatorChar; }
71
+ let out = '';
72
+ let pos = 0;
73
+ while ( (pos = s.lastIndexOf(char)) !== -1 ) {
74
+ out = s.slice(pos) + out;
75
+ s = s.slice(0, pos);
76
+ const match = this.reTrailingEscapeChars.exec(s);
77
+ if ( match === null ) { continue; }
78
+ const tail = (match[0].length & 1) !== 0
79
+ ? match[0].slice(0, -1)
80
+ : match[0];
81
+ out = tail + out;
82
+ s = s.slice(0, -match[0].length);
83
+ }
84
+ if ( out === '' ) { return s; }
85
+ return s + out;
86
+ }
87
+ leftWhitespaceCount(s) {
88
+ const match = this.reWhitespaceStart.exec(s);
89
+ return match === null ? 0 : match[0].length;
90
+ }
91
+ rightWhitespaceCount(s) {
92
+ const match = this.reWhitespaceEnd.exec(s);
93
+ return match === null ? 0 : match[1].length;
94
+ }
95
+ indexOfNextArgSeparator(pattern, separatorCode) {
96
+ this.argBeg = this.argEnd = separatorCode !== this.separatorCode
97
+ ? this.quoteBeg + 1
98
+ : this.quoteBeg;
99
+ this.transform = false;
100
+ if ( separatorCode !== this.actualSeparatorCode ) {
101
+ this.actualSeparatorCode = separatorCode;
102
+ this.actualSeparatorChar = String.fromCharCode(separatorCode);
103
+ }
104
+ while ( this.argEnd < pattern.length ) {
105
+ const pos = pattern.indexOf(this.actualSeparatorChar, this.argEnd);
106
+ if ( pos === -1 ) {
107
+ return (this.argEnd = pattern.length);
108
+ }
109
+ if ( this.reOddTrailingEscape.test(pattern.slice(0, pos)) === false ) {
110
+ return (this.argEnd = pos);
111
+ }
112
+ this.transform = true;
113
+ this.argEnd = pos + 1;
114
+ }
115
+ }
116
+ }
@@ -21,9 +21,6 @@
21
21
 
22
22
  import { dom, qs$, qsa$ } from './dom.js';
23
23
  import { localRead, localWrite, sendMessage } from './ext.js';
24
- import { ModeEditor } from './mode-editor.js';
25
- import { ReadOnlyDNREditor } from './ro-dnr-editor.js';
26
- import { ReadWriteDNREditor } from './rw-dnr-editor.js';
27
24
  import { faIconsInit } from './fa-icons.js';
28
25
  import { i18n } from './i18n.js';
29
26
 
@@ -39,14 +36,21 @@ class Editor {
39
36
  this.ioPanel = self.cm6.createViewPanel();
40
37
  this.summaryPanel = self.cm6.createViewPanel();
41
38
  this.panels = [];
39
+ this.editors = {};
42
40
  }
43
41
 
44
42
  async init() {
45
- this.editors = {
46
- 'modes': new ModeEditor(this),
47
- 'dnr.rw': new ReadWriteDNREditor(this),
48
- 'dnr.ro': new ReadOnlyDNREditor(this),
49
- };
43
+ await Promise.all([
44
+ import('./mode-editor.js').then(module => {
45
+ this.editors['modes'] = new module.ModeEditor(this);
46
+ }),
47
+ import('./ro-dnr-editor.js').then(module => {
48
+ this.editors['dnr.ro'] = new module.ReadOnlyDNREditor(this);
49
+ }),
50
+ import('./rw-dnr-editor.js').then(module => {
51
+ this.editors['dnr.rw'] = new module.ReadWriteDNREditor(this);
52
+ }),
53
+ ]);
50
54
  const rulesetDetails = await sendMessage({ what: 'getRulesetDetails' });
51
55
  const parent = qs$('#editors optgroup');
52
56
  for ( const details of rulesetDetails ) {
@@ -553,9 +557,9 @@ class Editor {
553
557
  },
554
558
  token: (stream, state) => {
555
559
  if ( stream.sol() ) {
556
- if ( stream.match(/^---\s*$/) ) { return 'meta'; }
557
- if ( stream.match(/^# ---\s*$/) ) { return 'meta comment'; }
558
- if ( stream.match(/\.\.\.\s*$/) ) { return 'meta'; }
560
+ if ( stream.match(/^---\s*$/) ) { return 'yamlboundary'; }
561
+ if ( stream.match(/^# ---\s*$/) ) { return 'yamlboundary comment'; }
562
+ if ( stream.match(/\.\.\.\s*$/) ) { return 'yamlboundary'; }
559
563
  }
560
564
  const c = stream.peek();
561
565
  if ( c === '#' ) {
@@ -593,6 +597,9 @@ class Editor {
593
597
  languageData: {
594
598
  commentTokens: { line: '#' },
595
599
  },
600
+ tokenTable: [
601
+ 'yamlboundary',
602
+ ],
596
603
  };
597
604
  }
598
605