@adguard/agtree 4.0.1 → 4.0.2

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 (284) hide show
  1. package/README.md +4 -3
  2. package/dist/ast-utils/clone.js +12 -8
  3. package/dist/ast-utils/modifiers.js +13 -11
  4. package/dist/ast-utils/network-rules.js +10 -9
  5. package/dist/ast-utils/scriptlets.js +20 -18
  6. package/dist/common/abp-snippet-injection-body-common.js +1 -1
  7. package/dist/common/agent-common.js +1 -1
  8. package/dist/common/ubo-html-filtering-body-common.js +1 -1
  9. package/dist/common/ubo-selector-common.js +1 -1
  10. package/dist/compatibility-tables/base.js +7 -6
  11. package/dist/compatibility-tables/compatibility-table-data.js +1 -1
  12. package/dist/compatibility-tables/modifiers.js +4 -3
  13. package/dist/compatibility-tables/platforms.js +1 -1
  14. package/dist/compatibility-tables/redirects.js +4 -4
  15. package/dist/compatibility-tables/schemas/base.js +2 -2
  16. package/dist/compatibility-tables/schemas/modifier.js +4 -4
  17. package/dist/compatibility-tables/schemas/platform.js +3 -2
  18. package/dist/compatibility-tables/schemas/redirect.js +1 -1
  19. package/dist/compatibility-tables/schemas/resource-type.js +1 -1
  20. package/dist/compatibility-tables/schemas/scriptlet.js +1 -1
  21. package/dist/compatibility-tables/scriptlets.js +2 -2
  22. package/dist/compatibility-tables/utils/platform-helpers.js +6 -4
  23. package/dist/compatibility-tables/utils/resource-type-helpers.js +1 -1
  24. package/dist/compatibility-tables/utils/zod-camelcase.js +3 -3
  25. package/dist/converter/base-interfaces/base-converter.js +22 -16
  26. package/dist/converter/base-interfaces/conversion-result.js +15 -11
  27. package/dist/converter/base-interfaces/rule-converter-base.js +19 -13
  28. package/dist/converter/comment/index.js +11 -9
  29. package/dist/converter/cosmetic/css.js +12 -10
  30. package/dist/converter/cosmetic/element-hiding.js +12 -10
  31. package/dist/converter/cosmetic/header-removal.js +16 -13
  32. package/dist/converter/cosmetic/html.js +18 -18
  33. package/dist/converter/cosmetic/index.js +28 -24
  34. package/dist/converter/cosmetic/rule-modifiers/adg.js +15 -12
  35. package/dist/converter/cosmetic/rule-modifiers/ubo.js +22 -19
  36. package/dist/converter/cosmetic/scriptlet.js +26 -22
  37. package/dist/converter/css/index.js +13 -11
  38. package/dist/converter/data/css.js +8 -8
  39. package/dist/converter/filter-list.js +12 -10
  40. package/dist/converter/index.js +1 -1
  41. package/dist/converter/misc/network-rule-modifier.js +20 -16
  42. package/dist/converter/network/index.js +16 -12
  43. package/dist/converter/raw-filter-list.js +12 -10
  44. package/dist/converter/raw-rule.js +14 -12
  45. package/dist/converter/rule.js +17 -13
  46. package/dist/errors/adblock-syntax-error.js +1 -1
  47. package/dist/errors/not-implemented-error.js +2 -2
  48. package/dist/errors/rule-conversion-error.js +2 -2
  49. package/dist/generator/base-generator.js +1 -1
  50. package/dist/generator/comment/agent-comment-generator.js +4 -3
  51. package/dist/generator/comment/agent-generator.js +5 -4
  52. package/dist/generator/comment/comment-rule-generator.js +6 -5
  53. package/dist/generator/comment/config-comment-generator.js +5 -4
  54. package/dist/generator/comment/hint-comment-generator.js +5 -4
  55. package/dist/generator/comment/hint-generator.js +4 -3
  56. package/dist/generator/comment/metadata-comment-generator.js +3 -2
  57. package/dist/generator/comment/pre-processor-comment-generator.js +6 -5
  58. package/dist/generator/comment/simple-comment-generator.js +3 -2
  59. package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +13 -11
  60. package/dist/generator/cosmetic/cosmetic-rule-generator.js +5 -4
  61. package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +7 -5
  62. package/dist/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.js +3 -3
  63. package/dist/generator/cosmetic/html-filtering-body/html-filtering-body-generator.js +1 -1
  64. package/dist/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.js +2 -2
  65. package/dist/generator/cosmetic/scriptlet-body/abp-snippet-injection-body-generator.js +7 -5
  66. package/dist/generator/cosmetic/scriptlet-body/adg-scriptlet-injection-body-generator.js +7 -5
  67. package/dist/generator/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-generator.js +8 -6
  68. package/dist/generator/cosmetic/selector/attribute-selector-generator.js +2 -2
  69. package/dist/generator/cosmetic/selector/class-selector-generator.js +1 -1
  70. package/dist/generator/cosmetic/selector/complex-selector-generator.js +4 -4
  71. package/dist/generator/cosmetic/selector/id-selector-generator.js +1 -1
  72. package/dist/generator/cosmetic/selector/pseudo-class-selector-generator.js +1 -1
  73. package/dist/generator/cosmetic/selector/selector-combinator-generator.js +1 -1
  74. package/dist/generator/cosmetic/selector/selector-list-generator.js +1 -1
  75. package/dist/generator/cosmetic/selector/type-selector-generator.js +1 -1
  76. package/dist/generator/css/adg-css-injection-generator.js +5 -1
  77. package/dist/generator/filterlist-generator.js +5 -4
  78. package/dist/generator/index.js +1 -1
  79. package/dist/generator/misc/domain-list-generator.js +1 -1
  80. package/dist/generator/misc/list-items-generator.js +5 -3
  81. package/dist/generator/misc/logical-expression-generator.js +5 -4
  82. package/dist/generator/misc/modifier-generator.js +4 -3
  83. package/dist/generator/misc/modifier-list-generator.js +5 -4
  84. package/dist/generator/misc/parameter-list-generator.js +6 -5
  85. package/dist/generator/misc/value-generator.js +2 -1
  86. package/dist/generator/network/host-rule-generator.js +2 -1
  87. package/dist/generator/network/network-rule-generator.js +2 -1
  88. package/dist/generator/rule-generator.js +6 -4
  89. package/dist/index.js +1 -2
  90. package/dist/nodes/index.js +1 -1
  91. package/dist/package.json.js +2 -2
  92. package/dist/parser/base-parser.js +1 -1
  93. package/dist/parser/comment/agent-comment-parser.js +11 -9
  94. package/dist/parser/comment/agent-parser.js +12 -9
  95. package/dist/parser/comment/comment-parser.js +8 -7
  96. package/dist/parser/comment/config-comment-parser.js +9 -6
  97. package/dist/parser/comment/hint-comment-parser.js +17 -12
  98. package/dist/parser/comment/hint-parser.js +10 -7
  99. package/dist/parser/comment/metadata-comment-parser.js +9 -7
  100. package/dist/parser/comment/preprocessor-parser.js +14 -11
  101. package/dist/parser/comment/simple-comment-parser.js +5 -2
  102. package/dist/parser/cosmetic/cosmetic-rule-parser.js +29 -25
  103. package/dist/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.js +3 -3
  104. package/dist/parser/cosmetic/html-filtering-body/html-filtering-body-parser.js +4 -4
  105. package/dist/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.js +7 -7
  106. package/dist/parser/cosmetic/scriptlet-body/abp-snippet-injection-body-parser.js +12 -9
  107. package/dist/parser/cosmetic/scriptlet-body/adg-scriptlet-injection-body-parser.js +12 -9
  108. package/dist/parser/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-parser.js +11 -8
  109. package/dist/parser/cosmetic/selector/handlers/attribute-selector-handler.js +1 -1
  110. package/dist/parser/cosmetic/selector/handlers/class-selector-handler.js +1 -1
  111. package/dist/parser/cosmetic/selector/handlers/complex-selector-handler.js +1 -1
  112. package/dist/parser/cosmetic/selector/handlers/compound-selector-handler.js +2 -2
  113. package/dist/parser/cosmetic/selector/handlers/id-selector-handler.js +1 -1
  114. package/dist/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.js +5 -3
  115. package/dist/parser/cosmetic/selector/handlers/type-selector-handler.js +1 -1
  116. package/dist/parser/cosmetic/selector/selector-list-parser.js +7 -7
  117. package/dist/parser/css/adg-css-injection-parser.js +4 -3
  118. package/dist/parser/css/balancing.js +22 -18
  119. package/dist/parser/css/constants.js +1 -1
  120. package/dist/parser/css/css-token-stream.js +15 -4
  121. package/dist/parser/css/ubo-selector-parser.js +8 -4
  122. package/dist/parser/filterlist-parser.js +8 -5
  123. package/dist/parser/index.js +1 -1
  124. package/dist/parser/misc/app-list-parser.js +4 -3
  125. package/dist/parser/misc/domain-list-parser.js +8 -6
  126. package/dist/parser/misc/list-items-parser.js +8 -6
  127. package/dist/parser/misc/logical-expression-parser.js +25 -18
  128. package/dist/parser/misc/method-list-parser.js +4 -3
  129. package/dist/parser/misc/modifier-list.js +3 -3
  130. package/dist/parser/misc/modifier-parser.js +5 -4
  131. package/dist/parser/misc/parameter-list-parser.js +6 -5
  132. package/dist/parser/misc/stealth-option-list-parser.js +4 -3
  133. package/dist/parser/misc/ubo-parameter-list-parser.js +10 -9
  134. package/dist/parser/misc/value-parser.js +2 -2
  135. package/dist/parser/network/host-rule-parser.js +15 -7
  136. package/dist/parser/network/network-rule-parser.js +11 -9
  137. package/dist/parser/options.js +1 -1
  138. package/dist/parser/rule-parser.js +11 -7
  139. package/dist/types/ast-utils/clone.d.ts +12 -8
  140. package/dist/types/ast-utils/filter-list.d.ts +5 -4
  141. package/dist/types/ast-utils/modifiers.d.ts +11 -9
  142. package/dist/types/ast-utils/network-rules.d.ts +8 -7
  143. package/dist/types/ast-utils/scriptlets.d.ts +19 -17
  144. package/dist/types/compatibility-tables/base.d.ts +6 -5
  145. package/dist/types/compatibility-tables/redirects.d.ts +1 -1
  146. package/dist/types/compatibility-tables/schemas/platform.d.ts +1 -0
  147. package/dist/types/compatibility-tables/utils/platform-helpers.d.ts +5 -3
  148. package/dist/types/compatibility-tables/utils/zod-camelcase.d.ts +3 -3
  149. package/dist/types/converter/base-interfaces/base-converter.d.ts +21 -15
  150. package/dist/types/converter/base-interfaces/conversion-result.d.ts +20 -16
  151. package/dist/types/converter/base-interfaces/rule-converter-base.d.ts +19 -13
  152. package/dist/types/converter/comment/index.d.ts +9 -7
  153. package/dist/types/converter/cosmetic/css.d.ts +9 -7
  154. package/dist/types/converter/cosmetic/element-hiding.d.ts +9 -7
  155. package/dist/types/converter/cosmetic/header-removal.d.ts +10 -7
  156. package/dist/types/converter/cosmetic/html.d.ts +9 -9
  157. package/dist/types/converter/cosmetic/index.d.ts +14 -10
  158. package/dist/types/converter/cosmetic/rule-modifiers/adg.d.ts +9 -6
  159. package/dist/types/converter/cosmetic/rule-modifiers/ubo.d.ts +9 -6
  160. package/dist/types/converter/cosmetic/scriptlet.d.ts +14 -10
  161. package/dist/types/converter/css/index.d.ts +9 -7
  162. package/dist/types/converter/data/css.d.ts +1 -1
  163. package/dist/types/converter/filter-list.d.ts +10 -8
  164. package/dist/types/converter/index.d.ts +1 -1
  165. package/dist/types/converter/misc/network-rule-modifier.d.ts +13 -9
  166. package/dist/types/converter/network/index.d.ts +15 -11
  167. package/dist/types/converter/raw-filter-list.d.ts +8 -6
  168. package/dist/types/converter/raw-rule.d.ts +8 -6
  169. package/dist/types/converter/rule.d.ts +14 -10
  170. package/dist/types/errors/not-implemented-error.d.ts +1 -1
  171. package/dist/types/errors/rule-conversion-error.d.ts +1 -1
  172. package/dist/types/generator/comment/agent-comment-generator.d.ts +3 -2
  173. package/dist/types/generator/comment/agent-generator.d.ts +4 -3
  174. package/dist/types/generator/comment/comment-rule-generator.d.ts +3 -2
  175. package/dist/types/generator/comment/config-comment-generator.d.ts +4 -3
  176. package/dist/types/generator/comment/hint-comment-generator.d.ts +4 -3
  177. package/dist/types/generator/comment/hint-generator.d.ts +3 -2
  178. package/dist/types/generator/comment/metadata-comment-generator.d.ts +1 -0
  179. package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +3 -2
  180. package/dist/types/generator/comment/simple-comment-generator.d.ts +2 -1
  181. package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +7 -5
  182. package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +3 -2
  183. package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +4 -2
  184. package/dist/types/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.d.ts +1 -1
  185. package/dist/types/generator/cosmetic/html-filtering-body/html-filtering-body-generator.d.ts +1 -1
  186. package/dist/types/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.d.ts +2 -2
  187. package/dist/types/generator/cosmetic/scriptlet-body/abp-snippet-injection-body-generator.d.ts +5 -3
  188. package/dist/types/generator/cosmetic/scriptlet-body/adg-scriptlet-injection-body-generator.d.ts +5 -3
  189. package/dist/types/generator/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-generator.d.ts +7 -5
  190. package/dist/types/generator/css/adg-css-injection-generator.d.ts +4 -0
  191. package/dist/types/generator/css/ubo-selector-generator.d.ts +4 -3
  192. package/dist/types/generator/filterlist-generator.d.ts +3 -2
  193. package/dist/types/generator/misc/list-items-generator.d.ts +4 -2
  194. package/dist/types/generator/misc/logical-expression-generator.d.ts +4 -3
  195. package/dist/types/generator/misc/modifier-generator.d.ts +3 -2
  196. package/dist/types/generator/misc/modifier-list-generator.d.ts +4 -3
  197. package/dist/types/generator/misc/parameter-list-generator.d.ts +5 -4
  198. package/dist/types/generator/misc/value-generator.d.ts +1 -0
  199. package/dist/types/generator/network/host-rule-generator.d.ts +1 -0
  200. package/dist/types/generator/network/network-rule-generator.d.ts +1 -0
  201. package/dist/types/generator/rule-generator.d.ts +5 -3
  202. package/dist/types/index.d.ts +1 -2
  203. package/dist/types/nodes/index.d.ts +55 -54
  204. package/dist/types/parser/comment/agent-comment-parser.d.ts +5 -3
  205. package/dist/types/parser/comment/agent-parser.d.ts +7 -4
  206. package/dist/types/parser/comment/comment-parser.d.ts +5 -3
  207. package/dist/types/parser/comment/config-comment-parser.d.ts +5 -2
  208. package/dist/types/parser/comment/hint-comment-parser.d.ts +11 -6
  209. package/dist/types/parser/comment/hint-parser.d.ts +6 -3
  210. package/dist/types/parser/comment/metadata-comment-parser.d.ts +5 -3
  211. package/dist/types/parser/comment/preprocessor-parser.d.ts +9 -6
  212. package/dist/types/parser/comment/simple-comment-parser.d.ts +3 -0
  213. package/dist/types/parser/cosmetic/cosmetic-rule-parser.d.ts +9 -6
  214. package/dist/types/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.d.ts +3 -3
  215. package/dist/types/parser/cosmetic/html-filtering-body/html-filtering-body-parser.d.ts +4 -4
  216. package/dist/types/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.d.ts +4 -4
  217. package/dist/types/parser/cosmetic/scriptlet-body/abp-snippet-injection-body-parser.d.ts +8 -5
  218. package/dist/types/parser/cosmetic/scriptlet-body/adg-scriptlet-injection-body-parser.d.ts +9 -6
  219. package/dist/types/parser/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-parser.d.ts +8 -5
  220. package/dist/types/parser/cosmetic/selector/context.d.ts +2 -2
  221. package/dist/types/parser/cosmetic/selector/selector-list-parser.d.ts +2 -2
  222. package/dist/types/parser/css/adg-css-injection-parser.d.ts +1 -0
  223. package/dist/types/parser/css/balancing.d.ts +17 -12
  224. package/dist/types/parser/css/css-token-stream.d.ts +11 -0
  225. package/dist/types/parser/css/ubo-selector-parser.d.ts +3 -0
  226. package/dist/types/parser/filterlist-parser.d.ts +5 -2
  227. package/dist/types/parser/misc/app-list-parser.d.ts +1 -0
  228. package/dist/types/parser/misc/domain-list-parser.d.ts +5 -3
  229. package/dist/types/parser/misc/list-items-parser.d.ts +5 -3
  230. package/dist/types/parser/misc/logical-expression-parser.d.ts +9 -5
  231. package/dist/types/parser/misc/method-list-parser.d.ts +1 -0
  232. package/dist/types/parser/misc/modifier-list.d.ts +2 -1
  233. package/dist/types/parser/misc/modifier-parser.d.ts +2 -1
  234. package/dist/types/parser/misc/parameter-list-parser.d.ts +3 -2
  235. package/dist/types/parser/misc/stealth-option-list-parser.d.ts +1 -0
  236. package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +2 -1
  237. package/dist/types/parser/misc/value-parser.d.ts +1 -1
  238. package/dist/types/parser/network/host-rule-parser.d.ts +10 -2
  239. package/dist/types/parser/network/network-rule-parser.d.ts +5 -3
  240. package/dist/types/parser/options.d.ts +1 -1
  241. package/dist/types/parser/rule-parser.d.ts +6 -2
  242. package/dist/types/tokenizer/tokenizer.d.ts +2 -2
  243. package/dist/types/utils/adblockers.d.ts +9 -6
  244. package/dist/types/utils/clone.d.ts +4 -3
  245. package/dist/types/utils/constants.d.ts +1 -1
  246. package/dist/types/utils/cosmetic-rule-separator.d.ts +13 -10
  247. package/dist/types/utils/deep-freeze.d.ts +4 -4
  248. package/dist/types/utils/domain.d.ts +3 -2
  249. package/dist/types/utils/logical-expression.d.ts +9 -5
  250. package/dist/types/utils/multi-value-map.d.ts +3 -3
  251. package/dist/types/utils/position-provider.d.ts +3 -2
  252. package/dist/types/utils/quotes.d.ts +48 -42
  253. package/dist/types/utils/regexp.d.ts +24 -17
  254. package/dist/types/utils/string.d.ts +135 -103
  255. package/dist/types/utils/type-guards.d.ts +1 -0
  256. package/dist/types/validator/helpers.d.ts +1 -1
  257. package/dist/types/validator/index.d.ts +3 -3
  258. package/dist/types/version.d.ts +1 -1
  259. package/dist/utils/adblockers.js +10 -7
  260. package/dist/utils/bit-count.js +1 -1
  261. package/dist/utils/categorizer.js +2 -2
  262. package/dist/utils/clone.js +5 -4
  263. package/dist/utils/constants.js +2 -2
  264. package/dist/utils/cosmetic-rule-separator.js +15 -11
  265. package/dist/utils/deep-freeze.js +5 -5
  266. package/dist/utils/domain.js +4 -3
  267. package/dist/utils/error.js +3 -1
  268. package/dist/utils/index.js +1 -1
  269. package/dist/utils/logical-expression.js +10 -6
  270. package/dist/utils/multi-value-map.js +4 -4
  271. package/dist/utils/noop-modifier.js +1 -1
  272. package/dist/utils/position-provider.js +2 -1
  273. package/dist/utils/quotes.js +49 -43
  274. package/dist/utils/regexp.js +25 -18
  275. package/dist/utils/string.js +136 -104
  276. package/dist/utils/type-guards.js +2 -1
  277. package/dist/validator/constants.js +1 -1
  278. package/dist/validator/helpers.js +1 -1
  279. package/dist/validator/index.js +8 -8
  280. package/dist/validator/value.js +6 -6
  281. package/dist/version.js +2 -2
  282. package/package.json +3 -1
  283. package/dist/errors/binary-schema-mismatch-error.js +0 -37
  284. package/dist/types/errors/binary-schema-mismatch-error.d.ts +0 -23
@@ -1,42 +1,48 @@
1
1
  /**
2
- * @file Base class for converters
2
+ * @file Base class for converters.
3
3
  *
4
4
  * TS doesn't support abstract static methods, so we should use
5
- * a workaround and extend this class instead of implementing it
5
+ * a workaround and extend this class instead of implementing it.
6
6
  */
7
7
  import { type ConversionResult } from './conversion-result.js';
8
8
  /**
9
- * Basic class for rule converters
9
+ * Basic class for rule converters.
10
10
  */
11
11
  export declare class BaseConverter {
12
12
  /**
13
- * Converts some data to AdGuard format
13
+ * Converts some data to AdGuard format.
14
+ *
15
+ * @param data Data to convert.
14
16
  *
15
- * @param data Data to convert
16
17
  * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
17
18
  * the converted node, and its `isConverted` flag indicates whether the original node was converted.
18
- * If the node was not converted, the result will contain the original node with the same object reference
19
- * @throws If the data is invalid or incompatible
19
+ * If the node was not converted, the result will contain the original node with the same object reference.
20
+ *
21
+ * @throws If the data is invalid or incompatible.
20
22
  */
21
23
  static convertToAdg(data: unknown): ConversionResult<unknown>;
22
24
  /**
23
- * Converts some data to Adblock Plus format
25
+ * Converts some data to Adblock Plus format.
26
+ *
27
+ * @param data Data to convert.
24
28
  *
25
- * @param data Data to convert
26
29
  * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
27
30
  * the converted node, and its `isConverted` flag indicates whether the original node was converted.
28
- * If the node was not converted, the result will contain the original node with the same object reference
29
- * @throws If the data is invalid or incompatible
31
+ * If the node was not converted, the result will contain the original node with the same object reference.
32
+ *
33
+ * @throws If the data is invalid or incompatible.
30
34
  */
31
35
  static convertToAbp(data: unknown): ConversionResult<unknown>;
32
36
  /**
33
- * Converts some data to uBlock Origin format
37
+ * Converts some data to uBlock Origin format.
38
+ *
39
+ * @param data Data to convert.
34
40
  *
35
- * @param data Data to convert
36
41
  * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
37
42
  * the converted node, and its `isConverted` flag indicates whether the original node was converted.
38
- * If the node was not converted, the result will contain the original node with the same object reference
39
- * @throws If the data is invalid or incompatible
43
+ * If the node was not converted, the result will contain the original node with the same object reference.
44
+ *
45
+ * @throws If the data is invalid or incompatible.
40
46
  */
41
47
  static convertToUbo(data: unknown): ConversionResult<unknown>;
42
48
  }
@@ -1,43 +1,47 @@
1
1
  /**
2
- * @file Conversion result interface and helper functions
2
+ * @file Conversion result interface and helper functions.
3
3
  */
4
4
  import { type Node } from '../../nodes/index.js';
5
5
  /**
6
- * Common conversion result interface
6
+ * Common conversion result interface.
7
7
  *
8
- * @template T Type of the item to convert
9
- * @template U Type of the conversion result (defaults to `T`, but can be `T[]` as well)
8
+ * @template T Type of the item to convert.
9
+ * @template U Type of the conversion result (defaults to `T`, but can be `T[]` as well).
10
10
  */
11
11
  export interface ConversionResult<T, U extends T | T[] = T> {
12
12
  /**
13
- * Conversion result
13
+ * Conversion result.
14
14
  */
15
15
  result: U;
16
16
  /**
17
- * Indicates whether the input item was converted
17
+ * Indicates whether the input item was converted.
18
18
  */
19
19
  isConverted: boolean;
20
20
  }
21
21
  /**
22
- * Adblock rule node conversion result interface, where the conversion result is an array of rules
22
+ * Adblock rule node conversion result interface, where the conversion result is an array of rules.
23
23
  */
24
24
  export type NodeConversionResult<T extends Node> = ConversionResult<T, T[]>;
25
25
  /**
26
26
  * Helper function to create a generic conversion result.
27
27
  *
28
- * @param result Conversion result
29
- * @param isConverted Indicates whether the input item was converted
30
- * @template T Type of the item to convert
31
- * @template U Type of the conversion result (defaults to `T`, but can be `T[]` as well)
32
- * @returns Generic conversion result
28
+ * @template T Type of the item to convert.
29
+ * @template U Type of the conversion result (defaults to `T`, but can be `T[]` as well).
30
+ *
31
+ * @param result Conversion result.
32
+ * @param isConverted Indicates whether the input item was converted.
33
+ *
34
+ * @returns Generic conversion result.
33
35
  */
34
36
  export declare function createConversionResult<T, U extends T | T[] = T>(result: U, isConverted: boolean): ConversionResult<T, U>;
35
37
  /**
36
38
  * Helper function to create a node conversion result.
37
39
  *
38
- * @param nodes Array of nodes
39
- * @param isConverted Indicates whether the input item was converted
40
- * @template T Type of the node (extends `Node`)
41
- * @returns Node conversion result
40
+ * @template T Type of the node (extends `Node`).
41
+ *
42
+ * @param nodes Array of nodes.
43
+ * @param isConverted Indicates whether the input item was converted.
44
+ *
45
+ * @returns Node conversion result.
42
46
  */
43
47
  export declare function createNodeConversionResult<T extends Node>(nodes: T[], isConverted: boolean): NodeConversionResult<T>;
@@ -1,44 +1,50 @@
1
1
  /**
2
- * @file Base class for rule converters
2
+ * @file Base class for rule converters.
3
3
  *
4
4
  * TS doesn't support abstract static methods, so we should use
5
- * a workaround and extend this class instead of implementing it
5
+ * a workaround and extend this class instead of implementing it.
6
6
  */
7
7
  import { type Node } from '../../nodes/index.js';
8
- import { type NodeConversionResult } from './conversion-result.js';
9
8
  import { BaseConverter } from './base-converter.js';
9
+ import { type NodeConversionResult } from './conversion-result.js';
10
10
  /**
11
- * Basic class for rule converters
11
+ * Basic class for rule converters.
12
12
  */
13
13
  export declare class RuleConverterBase extends BaseConverter {
14
14
  /**
15
15
  * Converts an adblock filtering rule to AdGuard format, if possible.
16
16
  *
17
- * @param rule Rule node to convert
17
+ * @param rule Rule node to convert.
18
+ *
18
19
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
19
20
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
20
- * If the rule was not converted, the result array will contain the original node with the same object reference
21
- * @throws If the rule is invalid or cannot be converted
21
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
22
+ *
23
+ * @throws If the rule is invalid or cannot be converted.
22
24
  */
23
25
  static convertToAdg(rule: Node): NodeConversionResult<Node>;
24
26
  /**
25
27
  * Converts an adblock filtering rule to Adblock Plus format, if possible.
26
28
  *
27
- * @param rule Rule node to convert
29
+ * @param rule Rule node to convert.
30
+ *
28
31
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
29
32
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
30
- * If the rule was not converted, the result array will contain the original node with the same object reference
31
- * @throws If the rule is invalid or cannot be converted
33
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
34
+ *
35
+ * @throws If the rule is invalid or cannot be converted.
32
36
  */
33
37
  static convertToAbp(rule: Node): NodeConversionResult<Node>;
34
38
  /**
35
39
  * Converts an adblock filtering rule to uBlock Origin format, if possible.
36
40
  *
37
- * @param rule Rule node to convert
41
+ * @param rule Rule node to convert.
42
+ *
38
43
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
39
44
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
40
- * If the rule was not converted, the result array will contain the original node with the same object reference
41
- * @throws If the rule is invalid or cannot be converted
45
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
46
+ *
47
+ * @throws If the rule is invalid or cannot be converted.
42
48
  */
43
49
  static convertToUbo(rule: Node): NodeConversionResult<Node>;
44
50
  }
@@ -1,23 +1,25 @@
1
1
  /**
2
- * @file Comment rule converter
2
+ * @file Comment rule converter.
3
3
  */
4
4
  import { type AnyCommentRule } from '../../nodes/index.js';
5
- import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
6
5
  import { type NodeConversionResult } from '../base-interfaces/conversion-result.js';
6
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
7
7
  /**
8
- * Comment rule converter class
8
+ * Comment rule converter class.
9
9
  *
10
- * @todo Implement `convertToUbo` and `convertToAbp`
10
+ * @todo Implement `convertToUbo` and `convertToAbp`.
11
11
  */
12
12
  export declare class CommentRuleConverter extends RuleConverterBase {
13
13
  /**
14
14
  * Converts a comment rule to AdGuard format, if possible.
15
15
  *
16
- * @param rule Rule node to convert
16
+ * @param rule Rule node to convert.
17
+ *
17
18
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
18
19
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
19
- * If the rule was not converted, the result array will contain the original node with the same object reference
20
- * @throws If the rule is invalid or cannot be converted
20
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
21
+ *
22
+ * @throws If the rule is invalid or cannot be converted.
21
23
  */
22
24
  static convertToAdg(rule: AnyCommentRule): NodeConversionResult<AnyCommentRule>;
23
25
  }
@@ -1,23 +1,25 @@
1
1
  /**
2
- * @file CSS injection rule converter
2
+ * @file CSS injection rule converter.
3
3
  */
4
4
  import { type CssInjectionRule } from '../../nodes/index.js';
5
- import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
6
5
  import { type NodeConversionResult } from '../base-interfaces/conversion-result.js';
6
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
7
7
  /**
8
- * CSS injection rule converter class
8
+ * CSS injection rule converter class.
9
9
  *
10
- * @todo Implement `convertToUbo` and `convertToAbp`
10
+ * @todo Implement `convertToUbo` and `convertToAbp`.
11
11
  */
12
12
  export declare class CssInjectionRuleConverter extends RuleConverterBase {
13
13
  /**
14
14
  * Converts a CSS injection rule to AdGuard format, if possible.
15
15
  *
16
- * @param rule Rule node to convert
16
+ * @param rule Rule node to convert.
17
+ *
17
18
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
18
19
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
19
- * If the rule was not converted, the result array will contain the original node with the same object reference
20
- * @throws If the rule is invalid or cannot be converted
20
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
21
+ *
22
+ * @throws If the rule is invalid or cannot be converted.
21
23
  */
22
24
  static convertToAdg(rule: CssInjectionRule): NodeConversionResult<CssInjectionRule>;
23
25
  }
@@ -1,23 +1,25 @@
1
1
  /**
2
- * @file Element hiding rule converter
2
+ * @file Element hiding rule converter.
3
3
  */
4
4
  import { type ElementHidingRule } from '../../nodes/index.js';
5
- import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
6
5
  import { type NodeConversionResult } from '../base-interfaces/conversion-result.js';
6
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
7
7
  /**
8
- * Element hiding rule converter class
8
+ * Element hiding rule converter class.
9
9
  *
10
- * @todo Implement `convertToUbo` and `convertToAbp`
10
+ * @todo Implement `convertToUbo` and `convertToAbp`.
11
11
  */
12
12
  export declare class ElementHidingRuleConverter extends RuleConverterBase {
13
13
  /**
14
14
  * Converts an element hiding rule to AdGuard format, if possible.
15
15
  *
16
- * @param rule Rule node to convert
16
+ * @param rule Rule node to convert.
17
+ *
17
18
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
18
19
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
19
- * If the rule was not converted, the result array will contain the original node with the same object reference
20
- * @throws If the rule is invalid or cannot be converted
20
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
21
+ *
22
+ * @throws If the rule is invalid or cannot be converted.
21
23
  */
22
24
  static convertToAdg(rule: ElementHidingRule): NodeConversionResult<ElementHidingRule>;
23
25
  }
@@ -1,28 +1,31 @@
1
1
  /**
2
- * @file Converter for request header removal rules
2
+ * @file Converter for request header removal rules.
3
3
  */
4
4
  import { type AnyRule } from '../../nodes/index.js';
5
- import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
6
5
  import { type NodeConversionResult } from '../base-interfaces/conversion-result.js';
6
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
7
7
  export declare const ERROR_MESSAGES: {
8
8
  EMPTY_PARAMETER: string;
9
9
  EXPECTED_END_OF_RULE: string;
10
10
  MULTIPLE_DOMAINS_NOT_SUPPORTED: string;
11
11
  };
12
12
  /**
13
- * Converter for request header removal rules
13
+ * Converter for request header removal rules.
14
14
  *
15
- * @todo Implement `convertToUbo` (ABP currently doesn't support header removal rules)
15
+ * @todo Implement `convertToUbo` (ABP currently doesn't support header removal rules).
16
16
  */
17
17
  export declare class HeaderRemovalRuleConverter extends RuleConverterBase {
18
18
  /**
19
19
  * Converts a header removal rule to AdGuard syntax, if possible.
20
20
  *
21
- * @param rule Rule node to convert
21
+ * @param rule Rule node to convert.
22
+ *
22
23
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
23
24
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
24
- * If the rule was not converted, the result array will contain the original node with the same object reference
25
- * @throws If the rule is invalid or cannot be converted
25
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
26
+ *
27
+ * @throws If the rule is invalid or cannot be converted.
28
+ *
26
29
  * @example
27
30
  * If the input rule is:
28
31
  * ```adblock
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @file HTML filtering rule converter
2
+ * @file HTML filtering rule converter.
3
3
  */
4
4
  import { type HtmlFilteringRule } from '../../nodes/index.js';
5
- import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
6
5
  import { type NodeConversionResult } from '../base-interfaces/conversion-result.js';
6
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
7
7
  /**
8
8
  * Error messages used in HTML filtering rule conversion.
9
9
  */
@@ -27,9 +27,9 @@ export declare const ERROR_MESSAGES: {
27
27
  readonly SPECIAL_PSEUDO_CLASS_SELECTOR_NOT_SUPPORTED: "Special pseudo-class selector '%s' is not supported in conversion";
28
28
  };
29
29
  /**
30
- * HTML filtering rule converter class
30
+ * HTML filtering rule converter class.
31
31
  *
32
- * @todo Implement `convertToUbo` (ABP currently doesn't support HTML filtering rules)
32
+ * @todo Implement `convertToUbo` (ABP currently doesn't support HTML filtering rules).
33
33
  */
34
34
  export declare class HtmlRuleConverter extends RuleConverterBase {
35
35
  /**
@@ -65,9 +65,9 @@ export declare class HtmlRuleConverter extends RuleConverterBase {
65
65
  * - `[wildcard="*content*"]` -> `:contains(/*.content*./s)`
66
66
  * convert search pattern to regular expression
67
67
  * - `[min-length="min"]` -> `:contains(/^(?=.{min,}$).*\/s)`
68
- * converts to a length-matching regular expression
68
+ * converts to a length-matching regular expression.
69
69
  * - `[max-length="max"]` -> `:contains(/^(?=.{0,max}$).*\/s)`
70
- * converts to a length-matching regular expression
70
+ * converts to a length-matching regular expression.
71
71
  *
72
72
  * Note: This attribute selector to pseudo-class selector conversion
73
73
  * is needed because AdGuard special attribute selectors are going
@@ -102,7 +102,7 @@ export declare class HtmlRuleConverter extends RuleConverterBase {
102
102
  * - `:has-text(text)` -> `:contains(text)`
103
103
  * direct conversion, no changes to argument
104
104
  * - `:min-text-length(min)` -> `:contains(/^(?=.{min,MAX_CONVERSION_DEFAULT}$).*\/s)`
105
- * converts to a length-matching regular expression
105
+ * converts to a length-matching regular expression.
106
106
  *
107
107
  * @param name Name of the special pseudo-class selector.
108
108
  * @param argument Argument of the special pseudo-class selector.
@@ -120,7 +120,7 @@ export declare class HtmlRuleConverter extends RuleConverterBase {
120
120
  * convert search pattern to regular expression
121
121
  * - `[min-length="min"]` -> `:min-text-length(min)`
122
122
  * direct conversion, no changes to value
123
- * - `[max-length]` is skipped
123
+ * - `[max-length]` is skipped.
124
124
  *
125
125
  * @param name Name of the special attribute selector.
126
126
  * @param value Value of the special attribute selector.
@@ -131,7 +131,7 @@ export declare class HtmlRuleConverter extends RuleConverterBase {
131
131
  /**
132
132
  * Handles special pseudo-class selectors during AdGuard to uBlock conversion:
133
133
  * - `:contains(text)` -> `:has-text(text)`
134
- * direct conversion, no changes to argument
134
+ * direct conversion, no changes to argument.
135
135
  *
136
136
  * @param name Name of the special pseudo-class selector.
137
137
  * @param argument Argument of the special pseudo-class selector.
@@ -1,33 +1,37 @@
1
1
  /**
2
- * @file Cosmetic rule converter
2
+ * @file Cosmetic rule converter.
3
3
  */
4
4
  import { type AnyCosmeticRule, type AnyRule } from '../../nodes/index.js';
5
- import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
6
5
  import { type NodeConversionResult } from '../base-interfaces/conversion-result.js';
6
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
7
7
  /**
8
- * Cosmetic rule converter class (also known as "non-basic rule converter")
8
+ * Cosmetic rule converter class (also known as "non-basic rule converter").
9
9
  *
10
- * @todo Implement `convertToUbo` and `convertToAbp`
10
+ * @todo Implement `convertToUbo` and `convertToAbp`.
11
11
  */
12
12
  export declare class CosmeticRuleConverter extends RuleConverterBase {
13
13
  /**
14
14
  * Converts a cosmetic rule to AdGuard syntax, if possible.
15
15
  *
16
- * @param rule Rule node to convert
16
+ * @param rule Rule node to convert.
17
+ *
17
18
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
18
19
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
19
- * If the rule was not converted, the result array will contain the original node with the same object reference
20
- * @throws If the rule is invalid or cannot be converted
20
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
21
+ *
22
+ * @throws If the rule is invalid or cannot be converted.
21
23
  */
22
24
  static convertToAdg(rule: AnyCosmeticRule): NodeConversionResult<AnyRule>;
23
25
  /**
24
26
  * Converts a cosmetic rule to uBlock Origin syntax, if possible.
25
27
  *
26
- * @param rule Rule node to convert
28
+ * @param rule Rule node to convert.
29
+ *
27
30
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
28
31
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
29
- * If the rule was not converted, the result array will contain the original node with the same object reference
30
- * @throws If the rule is invalid or cannot be converted
32
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
33
+ *
34
+ * @throws If the rule is invalid or cannot be converted.
31
35
  */
32
36
  static convertToUbo(rule: AnyCosmeticRule): NodeConversionResult<AnyRule>;
33
37
  }
@@ -1,21 +1,24 @@
1
1
  /**
2
- * @file Cosmetic rule modifier converter from uBO to ADG
2
+ * @file Cosmetic rule modifier converter from uBO to ADG.
3
3
  */
4
4
  import { type ModifierList } from '../../../nodes/index.js';
5
5
  import { type ConversionResult } from '../../base-interfaces/conversion-result.js';
6
6
  /**
7
- * Helper class for converting cosmetic rule modifiers from uBO to ADG
7
+ * Helper class for converting cosmetic rule modifiers from uBO to ADG.
8
8
  */
9
9
  export declare class AdgCosmeticRuleModifierConverter {
10
10
  /**
11
11
  * Converts a uBO cosmetic rule modifier list to ADG, if possible.
12
12
  *
13
- * @param modifierList Cosmetic rule modifier list node to convert
13
+ * @see {@link https://github.com/gorhill/uBlock/wiki/Procedural-cosmetic-filters#cosmetic-filter-operators}
14
+ *
15
+ * @param modifierList Cosmetic rule modifier list node to convert.
16
+ *
14
17
  * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
15
18
  * the converted node, and its `isConverted` flag indicates whether the original node was converted.
16
- * If the node was not converted, the result will contain the original node with the same object reference
17
- * @throws If the modifier list cannot be converted
18
- * @see {@link https://github.com/gorhill/uBlock/wiki/Procedural-cosmetic-filters#cosmetic-filter-operators}
19
+ * If the node was not converted, the result will contain the original node with the same object reference.
20
+ *
21
+ * @throws If the modifier list cannot be converted.
19
22
  */
20
23
  static convertFromUbo(modifierList: ModifierList): ConversionResult<ModifierList>;
21
24
  }
@@ -1,21 +1,24 @@
1
1
  /**
2
- * @file Cosmetic rule modifier converter from ADG to uBO
2
+ * @file Cosmetic rule modifier converter from ADG to uBO.
3
3
  */
4
4
  import { type DomainList, type ModifierList } from '../../../nodes/index.js';
5
5
  import { type ConversionResult } from '../../base-interfaces/conversion-result.js';
6
6
  /**
7
- * Helper class for converting cosmetic rule modifiers from ADG to uBO
7
+ * Helper class for converting cosmetic rule modifiers from ADG to uBO.
8
8
  */
9
9
  export declare class UboCosmeticRuleModifierConverter {
10
10
  /**
11
11
  * Converts a ADG cosmetic rule modifier list to uBO, if possible.
12
12
  *
13
- * @param modifierList Cosmetic rule modifier list node to convert
13
+ * @see {@link https://github.com/gorhill/uBlock/wiki/Procedural-cosmetic-filters#cosmetic-filter-operators}
14
+ *
15
+ * @param modifierList Cosmetic rule modifier list node to convert.
16
+ *
14
17
  * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
15
18
  * the converted node, and its `isConverted` flag indicates whether the original node was converted.
16
- * If the node was not converted, the result will contain the original node with the same object reference
17
- * @throws If the modifier list cannot be converted
18
- * @see {@link https://github.com/gorhill/uBlock/wiki/Procedural-cosmetic-filters#cosmetic-filter-operators}
19
+ * If the node was not converted, the result will contain the original node with the same object reference.
20
+ *
21
+ * @throws If the modifier list cannot be converted.
19
22
  */
20
23
  static convertFromAdg(modifierList: ModifierList): ConversionResult<{
21
24
  modifierList: ModifierList;
@@ -1,33 +1,37 @@
1
1
  /**
2
- * @file Scriptlet injection rule converter
2
+ * @file Scriptlet injection rule converter.
3
3
  */
4
4
  import { type ScriptletInjectionRule } from '../../nodes/index.js';
5
- import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
6
5
  import { type NodeConversionResult } from '../base-interfaces/conversion-result.js';
6
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
7
7
  /**
8
- * Scriptlet injection rule converter class
8
+ * Scriptlet injection rule converter class.
9
9
  *
10
- * @todo Implement `convertToUbo` and `convertToAbp`
10
+ * @todo Implement `convertToUbo` and `convertToAbp`.
11
11
  */
12
12
  export declare class ScriptletRuleConverter extends RuleConverterBase {
13
13
  /**
14
14
  * Converts a scriptlet injection rule to AdGuard format, if possible.
15
15
  *
16
- * @param rule Rule node to convert
16
+ * @param rule Rule node to convert.
17
+ *
17
18
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
18
19
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
19
- * If the rule was not converted, the result array will contain the original node with the same object reference
20
- * @throws If the rule is invalid or cannot be converted
20
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
21
+ *
22
+ * @throws If the rule is invalid or cannot be converted.
21
23
  */
22
24
  static convertToAdg(rule: ScriptletInjectionRule): NodeConversionResult<ScriptletInjectionRule>;
23
25
  /**
24
26
  * Converts a scriptlet injection rule to uBlock format, if possible.
25
27
  *
26
- * @param rule Rule node to convert
28
+ * @param rule Rule node to convert.
29
+ *
27
30
  * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
28
31
  * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
29
- * If the rule was not converted, the result array will contain the original node with the same object reference
30
- * @throws If the rule is invalid or cannot be converted
32
+ * If the rule was not converted, the result array will contain the original node with the same object reference.
33
+ *
34
+ * @throws If the rule is invalid or cannot be converted.
31
35
  */
32
36
  static convertToUbo(rule: ScriptletInjectionRule): NodeConversionResult<ScriptletInjectionRule>;
33
37
  }
@@ -1,6 +1,6 @@
1
+ import { CssTokenStream } from '../../parser/css/css-token-stream.js';
1
2
  import { BaseConverter } from '../base-interfaces/base-converter.js';
2
3
  import { type ConversionResult } from '../base-interfaces/conversion-result.js';
3
- import { CssTokenStream } from '../../parser/css/css-token-stream.js';
4
4
  export declare const ERROR_MESSAGES: {
5
5
  INVALID_ATTRIBUTE_VALUE: string;
6
6
  };
@@ -22,19 +22,21 @@ export declare const PseudoElements: {
22
22
  };
23
23
  export type PseudoElements = typeof PseudoElements[keyof typeof PseudoElements];
24
24
  /**
25
- * CSS selector converter
25
+ * CSS selector converter.
26
26
  *
27
- * @todo Implement `convertToUbo` and `convertToAbp`
27
+ * @todo Implement `convertToUbo` and `convertToAbp`.
28
28
  */
29
29
  export declare class CssSelectorConverter extends BaseConverter {
30
30
  /**
31
- * Converts Extended CSS elements to AdGuard-compatible ones
31
+ * Converts Extended CSS elements to AdGuard-compatible ones.
32
+ *
33
+ * @param selectorList Selector list to convert.
32
34
  *
33
- * @param selectorList Selector list to convert
34
35
  * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
35
36
  * the converted node, and its `isConverted` flag indicates whether the original node was converted.
36
- * If the node was not converted, the result will contain the original node with the same object reference
37
- * @throws If the rule is invalid or incompatible
37
+ * If the node was not converted, the result will contain the original node with the same object reference.
38
+ *
39
+ * @throws If the rule is invalid or incompatible.
38
40
  */
39
41
  static convertToAdg(selectorList: string | CssTokenStream): ConversionResult<string>;
40
42
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @file Known CSS elements and attributes.
3
- * TODO: Implement a compatibility table for Extended CSS
3
+ * TODO: Implement a compatibility table for Extended CSS.
4
4
  */
5
5
  /**
6
6
  * Legacy Extended CSS attribute prefix.
@@ -1,31 +1,33 @@
1
1
  /**
2
- * @file Adblock filter list converter
2
+ * @file Adblock filter list converter.
3
3
  */
4
4
  import { type FilterList } from '../nodes/index.js';
5
- import { type ConversionResult } from './base-interfaces/conversion-result.js';
6
5
  import { BaseConverter } from './base-interfaces/base-converter.js';
6
+ import { type ConversionResult } from './base-interfaces/conversion-result.js';
7
7
  /**
8
- * Adblock filter list converter class
8
+ * Adblock filter list converter class.
9
9
  *
10
10
  * This class just provides an extra layer on top of the {@link RuleConverter}
11
11
  * and can be used to convert entire filter lists.
12
12
  *
13
- * @todo Implement `convertToUbo` and `convertToAbp`
13
+ * @todo Implement `convertToUbo` and `convertToAbp`.
14
14
  * @todo Implement tolerant mode, which will allow to convert a filter list
15
- * even if some of its rules are invalid
15
+ * even if some of its rules are invalid.
16
16
  */
17
17
  export declare class FilterListConverter extends BaseConverter {
18
18
  /**
19
19
  * Converts an adblock filter list to AdGuard format, if possible.
20
20
  *
21
- * @param filterListNode Filter list node to convert
21
+ * @param filterListNode Filter list node to convert.
22
22
  * @param tolerant Indicates whether the converter should be tolerant to invalid rules. If enabled and a rule is
23
23
  * invalid, it will be left as is. If disabled and a rule is invalid, the whole filter list will be failed.
24
24
  * Defaults to `true`.
25
+ *
25
26
  * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
26
27
  * the converted node, and its `isConverted` flag indicates whether the original node was converted.
27
- * If the node was not converted, the result will contain the original node with the same object reference
28
- * @throws If the filter list is invalid or cannot be converted (if the tolerant mode is disabled)
28
+ * If the node was not converted, the result will contain the original node with the same object reference.
29
+ *
30
+ * @throws If the filter list is invalid or cannot be converted (if the tolerant mode is disabled).
29
31
  */
30
32
  static convertToAdg(filterListNode: FilterList, tolerant?: boolean): ConversionResult<FilterList>;
31
33
  }