@adguard/agtree 4.0.2 → 4.0.4

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 (162) hide show
  1. package/dist/ast-utils/clone.js +1 -1
  2. package/dist/ast-utils/modifiers.js +1 -1
  3. package/dist/ast-utils/network-rules.js +1 -1
  4. package/dist/ast-utils/scriptlets.js +1 -1
  5. package/dist/common/abp-snippet-injection-body-common.js +1 -1
  6. package/dist/common/agent-common.js +1 -1
  7. package/dist/common/ubo-html-filtering-body-common.js +1 -1
  8. package/dist/common/ubo-selector-common.js +1 -1
  9. package/dist/compatibility-tables/base.js +1 -1
  10. package/dist/compatibility-tables/compatibility-table-data.js +1 -1
  11. package/dist/compatibility-tables/modifiers.js +1 -1
  12. package/dist/compatibility-tables/platforms.js +1 -1
  13. package/dist/compatibility-tables/redirects.js +1 -1
  14. package/dist/compatibility-tables/schemas/base.js +1 -1
  15. package/dist/compatibility-tables/schemas/modifier.js +1 -1
  16. package/dist/compatibility-tables/schemas/platform.js +1 -1
  17. package/dist/compatibility-tables/schemas/redirect.js +1 -1
  18. package/dist/compatibility-tables/schemas/resource-type.js +1 -1
  19. package/dist/compatibility-tables/schemas/scriptlet.js +1 -1
  20. package/dist/compatibility-tables/scriptlets.js +1 -1
  21. package/dist/compatibility-tables/utils/platform-helpers.js +1 -1
  22. package/dist/compatibility-tables/utils/resource-type-helpers.js +1 -1
  23. package/dist/compatibility-tables/utils/zod-camelcase.js +1 -1
  24. package/dist/converter/base-interfaces/base-converter.js +1 -1
  25. package/dist/converter/base-interfaces/conversion-result.js +1 -1
  26. package/dist/converter/base-interfaces/rule-converter-base.js +1 -1
  27. package/dist/converter/comment/index.js +1 -1
  28. package/dist/converter/cosmetic/css.js +1 -1
  29. package/dist/converter/cosmetic/element-hiding.js +1 -1
  30. package/dist/converter/cosmetic/header-removal.js +1 -1
  31. package/dist/converter/cosmetic/html.js +90 -3
  32. package/dist/converter/cosmetic/index.js +1 -1
  33. package/dist/converter/cosmetic/rule-modifiers/adg.js +1 -1
  34. package/dist/converter/cosmetic/rule-modifiers/ubo.js +1 -1
  35. package/dist/converter/cosmetic/scriptlet.js +1 -1
  36. package/dist/converter/css/index.js +1 -1
  37. package/dist/converter/data/css.js +1 -1
  38. package/dist/converter/filter-list.js +1 -1
  39. package/dist/converter/index.js +1 -1
  40. package/dist/converter/misc/network-rule-modifier.js +1 -1
  41. package/dist/converter/network/index.js +1 -1
  42. package/dist/converter/raw-filter-list.js +1 -1
  43. package/dist/converter/raw-rule.js +1 -1
  44. package/dist/converter/rule.js +1 -1
  45. package/dist/errors/adblock-syntax-error.js +1 -1
  46. package/dist/errors/not-implemented-error.js +1 -1
  47. package/dist/errors/rule-conversion-error.js +1 -1
  48. package/dist/generator/base-generator.js +1 -1
  49. package/dist/generator/comment/agent-comment-generator.js +1 -1
  50. package/dist/generator/comment/agent-generator.js +1 -1
  51. package/dist/generator/comment/comment-rule-generator.js +1 -1
  52. package/dist/generator/comment/config-comment-generator.js +1 -1
  53. package/dist/generator/comment/hint-comment-generator.js +1 -1
  54. package/dist/generator/comment/hint-generator.js +1 -1
  55. package/dist/generator/comment/metadata-comment-generator.js +1 -1
  56. package/dist/generator/comment/pre-processor-comment-generator.js +1 -1
  57. package/dist/generator/comment/simple-comment-generator.js +1 -1
  58. package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +1 -1
  59. package/dist/generator/cosmetic/cosmetic-rule-generator.js +1 -1
  60. package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +1 -1
  61. package/dist/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.js +1 -1
  62. package/dist/generator/cosmetic/html-filtering-body/html-filtering-body-generator.js +1 -1
  63. package/dist/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.js +1 -1
  64. package/dist/generator/cosmetic/scriptlet-body/abp-snippet-injection-body-generator.js +1 -1
  65. package/dist/generator/cosmetic/scriptlet-body/adg-scriptlet-injection-body-generator.js +1 -1
  66. package/dist/generator/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-generator.js +1 -1
  67. package/dist/generator/cosmetic/selector/attribute-selector-generator.js +1 -1
  68. package/dist/generator/cosmetic/selector/class-selector-generator.js +1 -1
  69. package/dist/generator/cosmetic/selector/complex-selector-generator.js +1 -1
  70. package/dist/generator/cosmetic/selector/id-selector-generator.js +1 -1
  71. package/dist/generator/cosmetic/selector/pseudo-class-selector-generator.js +1 -1
  72. package/dist/generator/cosmetic/selector/selector-combinator-generator.js +1 -1
  73. package/dist/generator/cosmetic/selector/selector-list-generator.js +1 -1
  74. package/dist/generator/cosmetic/selector/type-selector-generator.js +1 -1
  75. package/dist/generator/css/adg-css-injection-generator.js +1 -1
  76. package/dist/generator/filterlist-generator.js +1 -1
  77. package/dist/generator/index.js +1 -1
  78. package/dist/generator/misc/domain-list-generator.js +1 -1
  79. package/dist/generator/misc/list-items-generator.js +1 -1
  80. package/dist/generator/misc/logical-expression-generator.js +1 -1
  81. package/dist/generator/misc/modifier-generator.js +1 -1
  82. package/dist/generator/misc/modifier-list-generator.js +1 -1
  83. package/dist/generator/misc/parameter-list-generator.js +1 -1
  84. package/dist/generator/misc/value-generator.js +1 -1
  85. package/dist/generator/network/host-rule-generator.js +1 -1
  86. package/dist/generator/network/network-rule-generator.js +1 -1
  87. package/dist/generator/rule-generator.js +1 -1
  88. package/dist/index.js +1 -1
  89. package/dist/nodes/index.js +1 -1
  90. package/dist/package.json.js +2 -2
  91. package/dist/parser/base-parser.js +1 -1
  92. package/dist/parser/comment/agent-comment-parser.js +1 -1
  93. package/dist/parser/comment/agent-parser.js +1 -1
  94. package/dist/parser/comment/comment-parser.js +1 -1
  95. package/dist/parser/comment/config-comment-parser.js +1 -1
  96. package/dist/parser/comment/hint-comment-parser.js +1 -1
  97. package/dist/parser/comment/hint-parser.js +1 -1
  98. package/dist/parser/comment/metadata-comment-parser.js +1 -1
  99. package/dist/parser/comment/preprocessor-parser.js +1 -1
  100. package/dist/parser/comment/simple-comment-parser.js +1 -1
  101. package/dist/parser/cosmetic/cosmetic-rule-parser.js +1 -1
  102. package/dist/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.js +13 -3
  103. package/dist/parser/cosmetic/html-filtering-body/html-filtering-body-parser.js +1 -1
  104. package/dist/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.js +1 -1
  105. package/dist/parser/cosmetic/scriptlet-body/abp-snippet-injection-body-parser.js +1 -1
  106. package/dist/parser/cosmetic/scriptlet-body/adg-scriptlet-injection-body-parser.js +1 -1
  107. package/dist/parser/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-parser.js +1 -1
  108. package/dist/parser/cosmetic/selector/handlers/attribute-selector-handler.js +1 -1
  109. package/dist/parser/cosmetic/selector/handlers/class-selector-handler.js +1 -1
  110. package/dist/parser/cosmetic/selector/handlers/complex-selector-handler.js +1 -1
  111. package/dist/parser/cosmetic/selector/handlers/compound-selector-handler.js +1 -1
  112. package/dist/parser/cosmetic/selector/handlers/id-selector-handler.js +1 -1
  113. package/dist/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.js +1 -1
  114. package/dist/parser/cosmetic/selector/handlers/type-selector-handler.js +1 -1
  115. package/dist/parser/cosmetic/selector/selector-list-parser.js +1 -1
  116. package/dist/parser/css/adg-css-injection-parser.js +1 -1
  117. package/dist/parser/css/balancing.js +1 -1
  118. package/dist/parser/css/constants.js +1 -1
  119. package/dist/parser/css/css-token-stream.js +1 -1
  120. package/dist/parser/css/ubo-selector-parser.js +1 -1
  121. package/dist/parser/filterlist-parser.js +1 -1
  122. package/dist/parser/index.js +1 -1
  123. package/dist/parser/misc/app-list-parser.js +1 -1
  124. package/dist/parser/misc/domain-list-parser.js +1 -1
  125. package/dist/parser/misc/list-items-parser.js +1 -1
  126. package/dist/parser/misc/logical-expression-parser.js +1 -1
  127. package/dist/parser/misc/method-list-parser.js +1 -1
  128. package/dist/parser/misc/modifier-list.js +1 -1
  129. package/dist/parser/misc/modifier-parser.js +1 -1
  130. package/dist/parser/misc/parameter-list-parser.js +1 -1
  131. package/dist/parser/misc/stealth-option-list-parser.js +1 -1
  132. package/dist/parser/misc/ubo-parameter-list-parser.js +1 -1
  133. package/dist/parser/misc/value-parser.js +1 -1
  134. package/dist/parser/network/host-rule-parser.js +1 -1
  135. package/dist/parser/network/network-rule-parser.js +1 -1
  136. package/dist/parser/options.js +1 -1
  137. package/dist/parser/rule-parser.js +1 -1
  138. package/dist/types/converter/cosmetic/html.d.ts +20 -0
  139. package/dist/utils/adblockers.js +1 -1
  140. package/dist/utils/bit-count.js +1 -1
  141. package/dist/utils/categorizer.js +1 -1
  142. package/dist/utils/clone.js +1 -1
  143. package/dist/utils/constants.js +1 -1
  144. package/dist/utils/cosmetic-rule-separator.js +1 -1
  145. package/dist/utils/deep-freeze.js +1 -1
  146. package/dist/utils/domain.js +1 -1
  147. package/dist/utils/error.js +1 -1
  148. package/dist/utils/index.js +1 -1
  149. package/dist/utils/logical-expression.js +1 -1
  150. package/dist/utils/multi-value-map.js +1 -1
  151. package/dist/utils/noop-modifier.js +1 -1
  152. package/dist/utils/position-provider.js +1 -1
  153. package/dist/utils/quotes.js +1 -1
  154. package/dist/utils/regexp.js +1 -1
  155. package/dist/utils/string.js +1 -1
  156. package/dist/utils/type-guards.js +1 -1
  157. package/dist/validator/constants.js +1 -1
  158. package/dist/validator/helpers.js +1 -1
  159. package/dist/validator/index.js +1 -1
  160. package/dist/validator/value.js +1 -1
  161. package/dist/version.js +1 -1
  162. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -158,7 +158,7 @@ class HtmlRuleConverter extends RuleConverterBase {
158
158
  throw new RuleConversionError(ERROR_MESSAGES.ABP_NOT_SUPPORTED);
159
159
  }
160
160
  // Convert body
161
- const convertedBody = HtmlRuleConverter.convertBody(rule.body, parser, AdgHtmlFilteringBodyGenerator, onSpecialAttributeSelector, onSpecialPseudoClassSelector);
161
+ const convertedBody = HtmlRuleConverter.convertBody(rule.body, parser, AdgHtmlFilteringBodyGenerator, onSpecialAttributeSelector, onSpecialPseudoClassSelector, rule.syntax === AdblockSyntax.Adg);
162
162
  if (!isConverted) {
163
163
  return createNodeConversionResult([rule], false);
164
164
  }
@@ -411,6 +411,70 @@ class HtmlRuleConverter extends RuleConverterBase {
411
411
  }
412
412
  }
413
413
  }
414
+ /**
415
+ * Pre-scans a complex selector's child selectors
416
+ * for {@link AdgAttributeSelectors.MinLength}
417
+ * and {@link AdgAttributeSelectors.MaxLength} attribute selectors.
418
+ *
419
+ * Resolves duplicates to the most *restrictive* value:
420
+ * - for multiple `[min-length]` selectors, the largest value is selected;
421
+ * - for multiple `[max-length]` selectors, the smallest value is selected.
422
+ *
423
+ * Logs a warning when duplicate length selectors are found.
424
+ *
425
+ * @param selectors Child selectors of a complex selector to scan.
426
+ *
427
+ * @returns Resolved length constraints,
428
+ * or `null` if no length selectors were found.
429
+ */
430
+ static collectLengthConstraints(selectors) {
431
+ const minValues = [];
432
+ const maxValues = [];
433
+ for (let i = 0; i < selectors.length; i += 1) {
434
+ const selector = selectors[i];
435
+ if (selector.type !== 'AttributeSelector') {
436
+ continue;
437
+ }
438
+ const { value: name } = selector.name;
439
+ if (name !== AdgAttributeSelectors.MinLength
440
+ && name !== AdgAttributeSelectors.MaxLength) {
441
+ continue;
442
+ }
443
+ if (!('value' in selector) || selector.value.value === EMPTY) {
444
+ continue;
445
+ }
446
+ const { value } = selector.value;
447
+ HtmlRuleConverter.assertValidLengthValue(name, value, ERROR_MESSAGES.SPECIAL_ATTRIBUTE_SELECTOR_VALUE_INT, ERROR_MESSAGES.SPECIAL_ATTRIBUTE_SELECTOR_VALUE_POSITIVE);
448
+ if (name === AdgAttributeSelectors.MinLength) {
449
+ minValues.push(Number(value));
450
+ }
451
+ else {
452
+ maxValues.push(Number(value));
453
+ }
454
+ }
455
+ if (minValues.length === 0 && maxValues.length === 0) {
456
+ return null;
457
+ }
458
+ let min = null;
459
+ let max = null;
460
+ if (minValues.length > 1) {
461
+ min = Math.max(...minValues);
462
+ // eslint-disable-next-line no-console
463
+ console.warn(`Multiple [min-length] selectors found among: [${minValues.join(', ')}]. Selected largest: ${min}.`);
464
+ }
465
+ else if (minValues.length === 1) {
466
+ [min] = minValues;
467
+ }
468
+ if (maxValues.length > 1) {
469
+ max = Math.min(...maxValues);
470
+ // eslint-disable-next-line no-console
471
+ console.warn(`Multiple [max-length] selectors found among: [${maxValues.join(', ')}]. Selected smallest: ${max}.`);
472
+ }
473
+ else if (maxValues.length === 1) {
474
+ [max] = maxValues;
475
+ }
476
+ return { min, max };
477
+ }
414
478
  /**
415
479
  * Converts a HTML filtering rule body by handling special simple selectors via callbacks.
416
480
  * Special simple selectors are skipped in the converted selector list and should be handled from callee.
@@ -420,10 +484,13 @@ class HtmlRuleConverter extends RuleConverterBase {
420
484
  * @param generator HTML filtering rule body generator used for generating raw value bodies.
421
485
  * @param onSpecialAttributeSelector Callback invoked when a special attribute selector is found.
422
486
  * @param onSpecialPseudoClassSelector Callback invoked when a special pseudo-class selector is found.
487
+ * @param shouldMergeLengthSelectors If true, `[min-length]` and `[max-length]` attribute
488
+ * selectors within the same complex selector are merged into a single `:contains()` pseudo-class.
489
+ * Defaults to `false`.
423
490
  *
424
491
  * @returns Converted selector list without special simple selectors.
425
492
  */
426
- static convertBody(body, parser, generator, onSpecialAttributeSelector, onSpecialPseudoClassSelector) {
493
+ static convertBody(body, parser, generator, onSpecialAttributeSelector, onSpecialPseudoClassSelector, shouldMergeLengthSelectors = false) {
427
494
  // Handle case when body is raw value string.
428
495
  // If so, parse it first as we need to work with AST nodes.
429
496
  let processedBody;
@@ -445,6 +512,11 @@ class HtmlRuleConverter extends RuleConverterBase {
445
512
  const { children: selectors } = complexSelectors[i];
446
513
  // Complex selector node must not be empty
447
514
  HtmlRuleConverter.assertNotEmpty(selectors, ERROR_MESSAGES.EMPTY_COMPLEX_SELECTOR);
515
+ // Pre-scan for [min-length] / [max-length] constraints to merge them into one :contains()
516
+ const lengthConstraints = shouldMergeLengthSelectors
517
+ ? HtmlRuleConverter.collectLengthConstraints(selectors)
518
+ : null;
519
+ let lengthContainsEmitted = false;
448
520
  // Convert each selector
449
521
  const convertedSelectors = [];
450
522
  for (let j = 0; j < selectors.length; j += 1) {
@@ -482,6 +554,21 @@ class HtmlRuleConverter extends RuleConverterBase {
482
554
  }
483
555
  const name = selector.name.value;
484
556
  const { value } = selector.value;
557
+ // Merge [min-length] and [max-length] into a single :contains() (ADG→ADG)
558
+ if (lengthConstraints !== null
559
+ && (name === AdgAttributeSelectors.MinLength
560
+ || name === AdgAttributeSelectors.MaxLength)) {
561
+ if (!lengthContainsEmitted) {
562
+ // Invoke the callback once to trigger its side effects
563
+ // (e.g. the isConverted flag in convertToAdg), but discard
564
+ // the individual :contains() it returns — we emit the
565
+ // merged one instead.
566
+ onSpecialAttributeSelector(name, value);
567
+ convertedSelectors.push(HtmlRuleConverter.getPseudoClassSelectorNode(AdgPseudoClasses.Contains, RegExpUtils.getLengthRegexp(lengthConstraints.min, lengthConstraints.max)));
568
+ lengthContainsEmitted = true;
569
+ }
570
+ continue;
571
+ }
485
572
  // Invoke callback and:
486
573
  // - add returned simple selector if it's not boolean
487
574
  // - skip adding if returned value is false
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
@@ -1,5 +1,5 @@
1
1
  /*
2
- * AGTree v4.0.2 (build date: Tue, 17 Mar 2026 23:34:38 GMT)
2
+ * AGTree v4.0.4 (build date: Thu, 26 Mar 2026 17:35:10 GMT)
3
3
  * (c) 2026 Adguard Software Ltd.
4
4
  * Released under the MIT license
5
5
  * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme