@browserless.io/browserless 2.32.0-beta-1 → 2.32.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 (165) 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/scrape.post.body.json +8 -8
  5. package/build/routes/chrome/http/screenshot.post.body.json +8 -8
  6. package/build/routes/chromium/http/content.post.body.json +8 -8
  7. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  8. package/build/routes/chromium/http/scrape.post.body.json +8 -8
  9. package/build/routes/chromium/http/screenshot.post.body.json +8 -8
  10. package/build/routes/edge/http/content.post.body.json +8 -8
  11. package/build/routes/edge/http/pdf.post.body.json +8 -8
  12. package/build/routes/edge/http/scrape.post.body.json +8 -8
  13. package/build/routes/edge/http/screenshot.post.body.json +8 -8
  14. package/extensions/ublocklite/_locales/be/messages.json +9 -9
  15. package/extensions/ublocklite/_locales/cs/messages.json +7 -7
  16. package/extensions/ublocklite/_locales/hi/messages.json +1 -1
  17. package/extensions/ublocklite/_locales/ko/messages.json +7 -7
  18. package/extensions/ublocklite/_locales/vi/messages.json +8 -8
  19. package/extensions/ublocklite/_locales/zh_TW/messages.json +7 -7
  20. package/extensions/ublocklite/css/develop.css +1 -2
  21. package/extensions/ublocklite/js/arglist-parser.js +116 -0
  22. package/extensions/ublocklite/js/develop.js +18 -11
  23. package/extensions/ublocklite/js/jsonpath.js +470 -0
  24. package/extensions/ublocklite/js/redirect-resources.js +192 -0
  25. package/extensions/ublocklite/js/rw-dnr-editor.js +17 -3
  26. package/extensions/ublocklite/js/static-filtering-parser.js +4413 -0
  27. package/extensions/ublocklite/js/ubo-parser.js +461 -0
  28. package/extensions/ublocklite/lib/codemirror/cm6.bundle.ubol.min.js +1 -1
  29. package/extensions/ublocklite/lib/csstree/LICENSE +19 -0
  30. package/extensions/ublocklite/lib/csstree/css-tree.js +17 -0
  31. package/extensions/ublocklite/manifest.json +1 -1
  32. package/extensions/ublocklite/rulesets/generic-details.json +3 -8
  33. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +7 -5
  34. package/extensions/ublocklite/rulesets/main/annoyances-others.json +2 -1
  35. package/extensions/ublocklite/rulesets/main/chn-0.json +11 -7
  36. package/extensions/ublocklite/rulesets/main/deu-0.json +0 -3
  37. package/extensions/ublocklite/rulesets/main/easylist.json +13 -9
  38. package/extensions/ublocklite/rulesets/main/easyprivacy.json +17 -4
  39. package/extensions/ublocklite/rulesets/main/fra-0.json +4 -6
  40. package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
  41. package/extensions/ublocklite/rulesets/main/ind-0.json +13 -6
  42. package/extensions/ublocklite/rulesets/main/nld-0.json +1 -0
  43. package/extensions/ublocklite/rulesets/main/pgl.json +2 -11
  44. package/extensions/ublocklite/rulesets/main/rus-0.json +7 -4
  45. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +2092 -363
  46. package/extensions/ublocklite/rulesets/main/swe-1.json +8 -7
  47. package/extensions/ublocklite/rulesets/main/tur-0.json +3 -0
  48. package/extensions/ublocklite/rulesets/main/ublock-badware.json +48 -49
  49. package/extensions/ublocklite/rulesets/main/ublock-filters.json +21 -17
  50. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +272 -234
  51. package/extensions/ublocklite/rulesets/main/vie-1.json +18 -15
  52. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +1 -0
  53. package/extensions/ublocklite/rulesets/redirect/nld-0.json +19 -0
  54. package/extensions/ublocklite/rulesets/redirect/swe-1.json +1 -1
  55. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +5 -6
  56. package/extensions/ublocklite/rulesets/redirect/vie-1.json +2 -2
  57. package/extensions/ublocklite/rulesets/regex/chn-0.json +1 -1
  58. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +5 -4
  59. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +1 -1
  60. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +3 -4
  61. package/extensions/ublocklite/rulesets/ruleset-details.json +111 -111
  62. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-overlays.js +1 -1
  63. package/extensions/ublocklite/rulesets/scripting/declarative/fra-0.js +3 -3
  64. package/extensions/ublocklite/rulesets/scripting/declarative/rus-0.js +1 -1
  65. package/extensions/ublocklite/rulesets/scripting/declarative/rus-1.js +3 -3
  66. package/extensions/ublocklite/rulesets/scripting/declarative/tur-0.js +3 -3
  67. package/extensions/ublocklite/rulesets/scripting/declarative/ublock-filters.js +3 -3
  68. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +1 -1
  69. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +1 -1
  70. package/extensions/ublocklite/rulesets/scripting/generic/rus-0.js +1 -1
  71. package/extensions/ublocklite/rulesets/scripting/generic/ublock-badware.js +1 -1
  72. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +1 -1
  73. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +1 -0
  74. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +1 -0
  75. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -4
  76. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
  77. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  78. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +1 -1
  79. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  80. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  81. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  82. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +1 -1
  83. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  84. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  85. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  86. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.remove-cookie.js +2 -2
  87. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +1 -1
  88. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +2 -2
  89. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
  90. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +2 -2
  91. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-fetch.js +2 -2
  92. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +2 -2
  93. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +1 -1
  94. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +1 -1
  95. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +1 -1
  96. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-cookie.js +2 -2
  97. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +1 -1
  98. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +2 -2
  99. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  100. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +2 -2
  101. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  102. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-node-text.js +2 -2
  103. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  104. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +1 -1
  105. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +2 -2
  106. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  107. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +2 -2
  108. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  109. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.alert-buster.js +1 -1
  110. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +1 -1
  111. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +1 -1
  112. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +2 -2
  113. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +2 -2
  114. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +1 -1
  115. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +1 -1
  116. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  117. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
  118. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  119. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  120. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-session-storage-item.js +2 -2
  121. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +1 -1
  122. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +2 -2
  123. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +1 -1
  124. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +2 -2
  125. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +1 -1
  126. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +1 -1
  127. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +1 -1
  128. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +1 -1
  129. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +2 -2
  130. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  131. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  132. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +2 -2
  133. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  134. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  135. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  136. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  137. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  138. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  139. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  140. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  141. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  142. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  143. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  144. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  145. package/extensions/ublocklite/rulesets/scripting/specific/spa-0.js +3 -3
  146. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  147. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  148. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  149. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  150. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  151. package/extensions/ublocklite/rulesets/scriptlet-details.json +82 -70
  152. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +64 -0
  153. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  154. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +7 -1
  155. package/extensions/ublocklite/rulesets/strictblock/idn-0.json +0 -1
  156. package/extensions/ublocklite/rulesets/strictblock/pgl.json +2 -11
  157. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +2092 -363
  158. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +633 -632
  159. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
  160. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +272 -234
  161. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +6 -0
  162. package/extensions/ublocklite/ublock.zip +0 -0
  163. package/package.json +3 -3
  164. package/static/docs/swagger.json +10 -10
  165. package/static/docs/swagger.min.json +9 -9
@@ -566,14 +566,14 @@
566
566
  "length": {
567
567
  "type": "number"
568
568
  },
569
- "__@toStringTag@526479": {
569
+ "__@toStringTag@496068": {
570
570
  "type": "string",
571
571
  "const": "Uint8Array"
572
572
  }
573
573
  },
574
574
  "required": [
575
575
  "BYTES_PER_ELEMENT",
576
- "__@toStringTag@526479",
576
+ "__@toStringTag@496068",
577
577
  "buffer",
578
578
  "byteLength",
579
579
  "byteOffset",
@@ -608,13 +608,13 @@
608
608
  "byteLength": {
609
609
  "type": "number"
610
610
  },
611
- "__@toStringTag@526479": {
611
+ "__@toStringTag@496068": {
612
612
  "type": "string"
613
613
  }
614
614
  },
615
615
  "additionalProperties": false,
616
616
  "required": [
617
- "__@toStringTag@526479",
617
+ "__@toStringTag@496068",
618
618
  "byteLength"
619
619
  ]
620
620
  },
@@ -624,18 +624,18 @@
624
624
  "byteLength": {
625
625
  "type": "number"
626
626
  },
627
- "__@species@535378": {
627
+ "__@species@504967": {
628
628
  "$ref": "#/definitions/SharedArrayBuffer"
629
629
  },
630
- "__@toStringTag@526479": {
630
+ "__@toStringTag@496068": {
631
631
  "type": "string",
632
632
  "const": "SharedArrayBuffer"
633
633
  }
634
634
  },
635
635
  "additionalProperties": false,
636
636
  "required": [
637
- "__@species@535378",
638
- "__@toStringTag@526479",
637
+ "__@species@504967",
638
+ "__@toStringTag@496068",
639
639
  "byteLength"
640
640
  ]
641
641
  },
@@ -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