@adguard/agtree 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/README.md +1 -1
  2. package/dist/{esm/ast-utils/clone.mjs → ast-utils/clone.js} +3 -3
  3. package/dist/{esm/ast-utils/modifiers.mjs → ast-utils/modifiers.js} +4 -4
  4. package/dist/{esm/ast-utils/network-rules.mjs → ast-utils/network-rules.js} +6 -6
  5. package/dist/{esm/ast-utils/scriptlets.mjs → ast-utils/scriptlets.js} +5 -5
  6. package/dist/{esm/common/abp-snippet-injection-body-common.mjs → common/abp-snippet-injection-body-common.js} +9 -2
  7. package/dist/{esm/common/agent-common.mjs → common/agent-common.js} +3 -3
  8. package/dist/common/ubo-selector-common.js +17 -0
  9. package/dist/{esm/compatibility-tables/base.mjs → compatibility-tables/base.js} +6 -6
  10. package/dist/{esm/compatibility-tables/compatibility-table-data.mjs → compatibility-tables/compatibility-table-data.js} +3 -3
  11. package/dist/{esm/compatibility-tables/modifiers.mjs → compatibility-tables/modifiers.js} +6 -6
  12. package/dist/compatibility-tables/platforms.js +76 -0
  13. package/dist/{esm/compatibility-tables/redirects.mjs → compatibility-tables/redirects.js} +8 -8
  14. package/dist/{esm/compatibility-tables/schemas/base.mjs → compatibility-tables/schemas/base.js} +4 -4
  15. package/dist/{esm/compatibility-tables/schemas/modifier.mjs → compatibility-tables/schemas/modifier.js} +31 -7
  16. package/dist/{esm/compatibility-tables/schemas/platform.mjs → compatibility-tables/schemas/platform.js} +4 -4
  17. package/dist/{esm/compatibility-tables/schemas/redirect.mjs → compatibility-tables/schemas/redirect.js} +5 -5
  18. package/dist/compatibility-tables/schemas/resource-type.js +36 -0
  19. package/dist/{esm/compatibility-tables/schemas/scriptlet.mjs → compatibility-tables/schemas/scriptlet.js} +4 -4
  20. package/dist/{esm/compatibility-tables/scriptlets.mjs → compatibility-tables/scriptlets.js} +5 -5
  21. package/dist/{esm/compatibility-tables/utils/platform-helpers.mjs → compatibility-tables/utils/platform-helpers.js} +3 -3
  22. package/dist/{esm/compatibility-tables/utils/resource-type-helpers.mjs → compatibility-tables/utils/resource-type-helpers.js} +5 -5
  23. package/dist/{esm/compatibility-tables/utils/zod-camelcase.mjs → compatibility-tables/utils/zod-camelcase.js} +2 -2
  24. package/dist/{esm/converter/base-interfaces/base-converter.mjs → converter/base-interfaces/base-converter.js} +3 -3
  25. package/dist/{esm/converter/base-interfaces/conversion-result.mjs → converter/base-interfaces/conversion-result.js} +2 -2
  26. package/dist/{esm/converter/base-interfaces/rule-converter-base.mjs → converter/base-interfaces/rule-converter-base.js} +4 -4
  27. package/dist/{esm/converter/comment/index.mjs → converter/comment/index.js} +7 -7
  28. package/dist/{esm/converter/cosmetic/css.mjs → converter/cosmetic/css.js} +9 -9
  29. package/dist/{esm/converter/cosmetic/element-hiding.mjs → converter/cosmetic/element-hiding.js} +9 -9
  30. package/dist/{esm/converter/cosmetic/header-removal.mjs → converter/cosmetic/header-removal.js} +12 -12
  31. package/dist/{esm/converter/cosmetic/html.mjs → converter/cosmetic/html.js} +21 -30
  32. package/dist/{esm/converter/cosmetic/index.mjs → converter/cosmetic/index.js} +13 -13
  33. package/dist/{esm/converter/cosmetic/rule-modifiers/adg.mjs → converter/cosmetic/rule-modifiers/adg.js} +10 -10
  34. package/dist/{esm/converter/cosmetic/scriptlet.mjs → converter/cosmetic/scriptlet.js} +23 -23
  35. package/dist/{esm/converter/css/index.mjs → converter/css/index.js} +21 -25
  36. package/dist/{esm/converter/data/css.mjs → converter/data/css.js} +2 -2
  37. package/dist/{esm/converter/filter-list.mjs → converter/filter-list.js} +7 -7
  38. package/dist/converter/index.js +8 -0
  39. package/dist/{esm/converter/misc/network-rule-modifier.mjs → converter/misc/network-rule-modifier.js} +22 -22
  40. package/dist/{esm/converter/network/index.mjs → converter/network/index.js} +6 -6
  41. package/dist/{esm/converter/raw-filter-list.mjs → converter/raw-filter-list.js} +9 -9
  42. package/dist/{esm/converter/rule.mjs → converter/rule.js} +9 -9
  43. package/dist/{esm/deserializer/base-deserializer.mjs → deserializer/base-deserializer.js} +4 -4
  44. package/dist/{esm/deserializer/comment/agent-comment-deserializer.mjs → deserializer/comment/agent-comment-deserializer.js} +14 -9
  45. package/dist/{esm/deserializer/comment/agent-deserializer.mjs → deserializer/comment/agent-deserializer.js} +8 -8
  46. package/dist/{esm/deserializer/comment/comment-rule-deserializer.mjs → deserializer/comment/comment-rule-deserializer.js} +11 -64
  47. package/dist/{esm/deserializer/comment/config-comment-deserializer.mjs → deserializer/comment/config-comment-deserializer.js} +10 -10
  48. package/dist/{esm/deserializer/comment/hint-comment-deserializer.mjs → deserializer/comment/hint-comment-deserializer.js} +15 -10
  49. package/dist/{esm/deserializer/comment/hint-deserializer.mjs → deserializer/comment/hint-deserializer.js} +8 -8
  50. package/dist/{esm/deserializer/comment/metadata-comment-deserializer.mjs → deserializer/comment/metadata-comment-deserializer.js} +9 -9
  51. package/dist/{esm/deserializer/comment/pre-processor-comment-deserializer.mjs → deserializer/comment/pre-processor-comment-deserializer.js} +12 -12
  52. package/dist/{esm/deserializer/comment/simple-comment-deserializer.mjs → deserializer/comment/simple-comment-deserializer.js} +9 -9
  53. package/dist/{esm/deserializer/cosmetic/cosmetic-rule-deserializer.mjs → deserializer/cosmetic/cosmetic-rule-deserializer.js} +24 -18
  54. package/dist/{esm/deserializer/cosmetic/css-injection-body-deserializer.mjs → deserializer/cosmetic/css-injection-body-deserializer.js} +10 -7
  55. package/dist/{esm/deserializer/cosmetic/element-hiding-body-deserializer.mjs → deserializer/cosmetic/element-hiding-body-deserializer.js} +11 -7
  56. package/dist/{esm/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js} +9 -5
  57. package/dist/{esm/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js} +10 -5
  58. package/dist/{esm/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js} +11 -7
  59. package/dist/{esm/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js} +9 -6
  60. package/dist/{esm/deserializer/empty-rule-deserializer.mjs → deserializer/empty-rule-deserializer.js} +12 -8
  61. package/dist/{esm/deserializer/filterlist-deserializer.mjs → deserializer/filterlist-deserializer.js} +11 -7
  62. package/dist/{esm/deserializer/index.mjs → deserializer/index.js} +4 -4
  63. package/dist/{esm/deserializer/invalid-rule-deserializer.mjs → deserializer/invalid-rule-deserializer.js} +12 -8
  64. package/dist/{esm/deserializer/invalid-rule-error-node-deserializer.mjs → deserializer/invalid-rule-error-node-deserializer.js} +10 -6
  65. package/dist/{esm/deserializer/misc/domain-list-deserializer.mjs → deserializer/misc/domain-list-deserializer.js} +8 -8
  66. package/dist/{esm/deserializer/misc/list-item-deserializer.mjs → deserializer/misc/list-item-deserializer.js} +13 -7
  67. package/dist/{esm/deserializer/misc/list-items-deserializer.mjs → deserializer/misc/list-items-deserializer.js} +7 -3
  68. package/dist/{esm/deserializer/misc/logical-expression-deserializer.mjs → deserializer/misc/logical-expression-deserializer.js} +8 -8
  69. package/dist/{esm/deserializer/misc/modifier-deserializer.mjs → deserializer/misc/modifier-deserializer.js} +8 -8
  70. package/dist/{esm/deserializer/misc/modifier-list-deserializer.mjs → deserializer/misc/modifier-list-deserializer.js} +12 -7
  71. package/dist/{esm/deserializer/misc/parameter-list-deserializer.mjs → deserializer/misc/parameter-list-deserializer.js} +11 -7
  72. package/dist/{esm/deserializer/misc/value-deserializer.mjs → deserializer/misc/value-deserializer.js} +6 -6
  73. package/dist/{esm/deserializer/network/host-rule-deserializer.mjs → deserializer/network/host-rule-deserializer.js} +15 -27
  74. package/dist/{esm/deserializer/network/hostname-list-deserializer.mjs → deserializer/network/hostname-list-deserializer.js} +15 -7
  75. package/dist/{esm/deserializer/network/network-rule-deserializer.mjs → deserializer/network/network-rule-deserializer.js} +11 -11
  76. package/dist/{esm/deserializer/rule-deserializer.mjs → deserializer/rule-deserializer.js} +10 -10
  77. package/dist/{esm/deserializer/syntax-deserialization-map.mjs → deserializer/syntax-deserialization-map.js} +3 -3
  78. package/dist/{esm/errors/adblock-syntax-error.mjs → errors/adblock-syntax-error.js} +2 -2
  79. package/dist/{esm/errors/binary-schema-mismatch-error.mjs → errors/binary-schema-mismatch-error.js} +2 -2
  80. package/dist/{esm/errors/not-implemented-error.mjs → errors/not-implemented-error.js} +2 -2
  81. package/dist/{esm/errors/rule-conversion-error.mjs → errors/rule-conversion-error.js} +2 -2
  82. package/dist/{esm/generator/base-generator.mjs → generator/base-generator.js} +4 -4
  83. package/dist/{esm/generator/comment/agent-comment-generator.mjs → generator/comment/agent-comment-generator.js} +8 -5
  84. package/dist/{esm/generator/comment/agent-generator.mjs → generator/comment/agent-generator.js} +9 -5
  85. package/dist/{esm/generator/comment/comment-rule-generator.mjs → generator/comment/comment-rule-generator.js} +11 -64
  86. package/dist/{esm/generator/comment/config-comment-generator.mjs → generator/comment/config-comment-generator.js} +8 -5
  87. package/dist/{esm/generator/comment/hint-comment-generator.mjs → generator/comment/hint-comment-generator.js} +8 -5
  88. package/dist/{esm/generator/comment/hint-generator.mjs → generator/comment/hint-generator.js} +11 -8
  89. package/dist/{esm/generator/comment/metadata-comment-generator.mjs → generator/comment/metadata-comment-generator.js} +8 -5
  90. package/dist/{esm/generator/comment/pre-processor-comment-generator.mjs → generator/comment/pre-processor-comment-generator.js} +10 -7
  91. package/dist/{esm/generator/comment/simple-comment-generator.mjs → generator/comment/simple-comment-generator.js} +8 -5
  92. package/dist/{esm/generator/cosmetic/body/abp-snippet-injection-body-generator.mjs → generator/cosmetic/body/abp-snippet-injection-body-generator.js} +10 -6
  93. package/dist/{esm/generator/cosmetic/body/adg-scriptlet-injection-body-generator.mjs → generator/cosmetic/body/adg-scriptlet-injection-body-generator.js} +10 -6
  94. package/dist/{esm/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.mjs → generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js} +10 -6
  95. package/dist/{esm/generator/cosmetic/cosmetic-rule-body-generator.mjs → generator/cosmetic/cosmetic-rule-body-generator.js} +17 -13
  96. package/dist/{esm/generator/cosmetic/cosmetic-rule-generator.mjs → generator/cosmetic/cosmetic-rule-generator.js} +10 -20
  97. package/dist/{esm/generator/cosmetic/cosmetic-rule-pattern-generator.mjs → generator/cosmetic/cosmetic-rule-pattern-generator.js} +10 -7
  98. package/dist/{esm/generator/css/adg-css-injection-generator.mjs → generator/css/adg-css-injection-generator.js} +8 -5
  99. package/dist/{esm/generator/filterlist-generator.mjs → generator/filterlist-generator.js} +21 -9
  100. package/dist/{esm/generator/index.mjs → generator/index.js} +5 -5
  101. package/dist/{esm/generator/misc/domain-list-generator.mjs → generator/misc/domain-list-generator.js} +7 -4
  102. package/dist/{esm/generator/misc/list-items-generator.mjs → generator/misc/list-items-generator.js} +6 -3
  103. package/dist/{esm/generator/misc/logical-expression-generator.mjs → generator/misc/logical-expression-generator.js} +8 -5
  104. package/dist/{esm/generator/misc/modifier-generator.mjs → generator/misc/modifier-generator.js} +9 -6
  105. package/dist/{esm/generator/misc/modifier-list-generator.mjs → generator/misc/modifier-list-generator.js} +8 -5
  106. package/dist/{esm/generator/misc/parameter-list-generator.mjs → generator/misc/parameter-list-generator.js} +8 -6
  107. package/dist/{esm/generator/misc/value-generator.mjs → generator/misc/value-generator.js} +6 -3
  108. package/dist/{esm/generator/network/host-rule-generator.mjs → generator/network/host-rule-generator.js} +7 -4
  109. package/dist/{esm/generator/network/network-rule-generator.mjs → generator/network/network-rule-generator.js} +11 -8
  110. package/dist/{esm/generator/rule-generator.mjs → generator/rule-generator.js} +12 -9
  111. package/dist/{esm/index.mjs → index.js} +66 -66
  112. package/dist/{cjs/marshalling-utils/empty-rule-common.js → marshalling-utils/comment/agent-comment-common.js} +9 -9
  113. package/dist/{esm/marshalling-utils/comment/agent-common.mjs → marshalling-utils/comment/agent-common.js} +8 -9
  114. package/dist/{esm/marshalling-utils/comment/config-comment-common.mjs → marshalling-utils/comment/config-comment-common.js} +15 -17
  115. package/dist/marshalling-utils/comment/hint-comment-common.js +22 -0
  116. package/dist/{esm/marshalling-utils/comment/hint-common.mjs → marshalling-utils/comment/hint-common.js} +8 -9
  117. package/dist/{esm/marshalling-utils/comment/metadata-comment-common.mjs → marshalling-utils/comment/metadata-comment-common.js} +9 -10
  118. package/dist/{esm/marshalling-utils/comment/pre-processor-comment-common.mjs → marshalling-utils/comment/pre-processor-comment-common.js} +9 -10
  119. package/dist/marshalling-utils/comment/simple-comment-common.js +22 -0
  120. package/dist/{esm/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.mjs → marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js} +7 -8
  121. package/dist/{esm/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.mjs → marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js} +2 -2
  122. package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +24 -0
  123. package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +21 -0
  124. package/dist/{esm/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.mjs → marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js} +2 -2
  125. package/dist/{esm/marshalling-utils/cosmetic/cosmetic-rule-common.mjs → marshalling-utils/cosmetic/cosmetic-rule-common.js} +10 -13
  126. package/dist/{esm/marshalling-utils/empty-rule-common.mjs → marshalling-utils/empty-rule-common.js} +6 -7
  127. package/dist/marshalling-utils/filter-list-common.js +21 -0
  128. package/dist/{esm/marshalling-utils/invalid-rule-common.mjs → marshalling-utils/invalid-rule-common.js} +7 -8
  129. package/dist/marshalling-utils/invalid-rule-error-node-common.js +22 -0
  130. package/dist/marshalling-utils/misc/binary-type-common.js +54 -0
  131. package/dist/{esm/marshalling-utils/misc/domain-list-common.mjs → marshalling-utils/misc/domain-list-common.js} +9 -10
  132. package/dist/marshalling-utils/misc/host-rule-common.js +24 -0
  133. package/dist/marshalling-utils/misc/hostname-list-common.js +21 -0
  134. package/dist/marshalling-utils/misc/list-item-common.js +22 -0
  135. package/dist/marshalling-utils/misc/logical-expression-common.js +83 -0
  136. package/dist/{esm/marshalling-utils/misc/modifier-common.mjs → marshalling-utils/misc/modifier-common.js} +9 -10
  137. package/dist/marshalling-utils/misc/modifier-list-common.js +21 -0
  138. package/dist/marshalling-utils/misc/parameter-list-common.js +21 -0
  139. package/dist/marshalling-utils/misc/value-common.js +22 -0
  140. package/dist/marshalling-utils/network/network-rule-common.js +24 -0
  141. package/dist/{esm/marshalling-utils/syntax-serialization-map.mjs → marshalling-utils/syntax-serialization-map.js} +3 -3
  142. package/dist/{esm/nodes/index.mjs → nodes/index.js} +66 -79
  143. package/dist/{esm/package.json.mjs → package.json.js} +3 -3
  144. package/dist/{esm/parser/base-parser.mjs → parser/base-parser.js} +3 -3
  145. package/dist/{esm/parser/comment/agent-comment-parser.mjs → parser/comment/agent-comment-parser.js} +12 -12
  146. package/dist/{esm/parser/comment/agent-parser.mjs → parser/comment/agent-parser.js} +19 -14
  147. package/dist/{esm/parser/comment/comment-parser.mjs → parser/comment/comment-parser.js} +10 -10
  148. package/dist/{esm/parser/comment/config-comment-parser.mjs → parser/comment/config-comment-parser.js} +10 -10
  149. package/dist/{esm/parser/comment/hint-comment-parser.mjs → parser/comment/hint-comment-parser.js} +10 -10
  150. package/dist/{esm/parser/comment/hint-parser.mjs → parser/comment/hint-parser.js} +9 -9
  151. package/dist/{esm/parser/comment/metadata-comment-parser.mjs → parser/comment/metadata-comment-parser.js} +11 -11
  152. package/dist/{esm/parser/comment/preprocessor-parser.mjs → parser/comment/preprocessor-parser.js} +12 -12
  153. package/dist/{esm/parser/comment/simple-comment-parser.mjs → parser/comment/simple-comment-parser.js} +9 -9
  154. package/dist/{esm/parser/cosmetic/body/abp-snippet-injection-body-parser.mjs → parser/cosmetic/body/abp-snippet-injection-body-parser.js} +9 -9
  155. package/dist/{esm/parser/cosmetic/body/adg-scriptlet-injection-body-parser.mjs → parser/cosmetic/body/adg-scriptlet-injection-body-parser.js} +9 -9
  156. package/dist/{esm/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.mjs → parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js} +8 -8
  157. package/dist/{esm/parser/cosmetic/cosmetic-rule-parser.mjs → parser/cosmetic/cosmetic-rule-parser.js} +63 -23
  158. package/dist/{esm/parser/css/adg-css-injection-parser.mjs → parser/css/adg-css-injection-parser.js} +7 -7
  159. package/dist/{esm/parser/css/balancing.mjs → parser/css/balancing.js} +6 -6
  160. package/dist/{esm/parser/css/constants.mjs → parser/css/constants.js} +2 -2
  161. package/dist/{esm/parser/css/css-token-stream.mjs → parser/css/css-token-stream.js} +24 -14
  162. package/dist/{esm/parser/css/ubo-selector-parser.mjs → parser/css/ubo-selector-parser.js} +8 -8
  163. package/dist/{esm/parser/filterlist-parser.mjs → parser/filterlist-parser.js} +7 -7
  164. package/dist/parser/index.js +12 -0
  165. package/dist/{esm/parser/misc/app-list-parser.mjs → parser/misc/app-list-parser.js} +7 -7
  166. package/dist/{esm/parser/misc/domain-list-parser.mjs → parser/misc/domain-list-parser.js} +7 -7
  167. package/dist/{esm/parser/misc/list-items-parser.mjs → parser/misc/list-items-parser.js} +10 -7
  168. package/dist/{esm/parser/misc/logical-expression-parser.mjs → parser/misc/logical-expression-parser.js} +18 -20
  169. package/dist/{esm/parser/misc/method-list-parser.mjs → parser/misc/method-list-parser.js} +7 -7
  170. package/dist/{esm/parser/misc/modifier-list.mjs → parser/misc/modifier-list.js} +7 -7
  171. package/dist/{esm/parser/misc/modifier-parser.mjs → parser/misc/modifier-parser.js} +8 -8
  172. package/dist/{esm/parser/misc/parameter-list-parser.mjs → parser/misc/parameter-list-parser.js} +10 -7
  173. package/dist/{esm/parser/misc/stealth-option-list-parser.mjs → parser/misc/stealth-option-list-parser.js} +7 -7
  174. package/dist/{esm/parser/misc/ubo-parameter-list-parser.mjs → parser/misc/ubo-parameter-list-parser.js} +12 -9
  175. package/dist/{esm/parser/misc/value-parser.mjs → parser/misc/value-parser.js} +5 -5
  176. package/dist/{esm/parser/network/host-rule-parser.mjs → parser/network/host-rule-parser.js} +11 -11
  177. package/dist/{esm/parser/network/network-rule-parser.mjs → parser/network/network-rule-parser.js} +17 -11
  178. package/dist/{esm/parser/options.mjs → parser/options.js} +2 -2
  179. package/dist/{esm/parser/rule-parser.mjs → parser/rule-parser.js} +11 -11
  180. package/dist/{esm/serializer/base-serializer.mjs → serializer/base-serializer.js} +3 -3
  181. package/dist/{esm/serializer/comment/agent-comment-serializer.mjs → serializer/comment/agent-comment-serializer.js} +11 -8
  182. package/dist/{esm/serializer/comment/agent-serializer.mjs → serializer/comment/agent-serializer.js} +9 -18
  183. package/dist/{esm/serializer/comment/comment-rule-serializer.mjs → serializer/comment/comment-rule-serializer.js} +10 -10
  184. package/dist/{esm/serializer/comment/config-comment-serializer.mjs → serializer/comment/config-comment-serializer.js} +10 -10
  185. package/dist/{esm/serializer/comment/hint-comment-serializer.mjs → serializer/comment/hint-comment-serializer.js} +13 -10
  186. package/dist/{esm/serializer/comment/hint-serializer.mjs → serializer/comment/hint-serializer.js} +9 -9
  187. package/dist/{esm/serializer/comment/metadata-comment-serializer.mjs → serializer/comment/metadata-comment-serializer.js} +8 -8
  188. package/dist/{esm/serializer/comment/pre-processor-comment-serializer.mjs → serializer/comment/pre-processor-comment-serializer.js} +11 -11
  189. package/dist/{esm/serializer/comment/simple-comment-serializer.mjs → serializer/comment/simple-comment-serializer.js} +10 -10
  190. package/dist/{esm/serializer/cosmetic/body/abp-snippet-injection-body-serializer.mjs → serializer/cosmetic/body/abp-snippet-injection-body-serializer.js} +9 -9
  191. package/dist/{esm/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.mjs → serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js} +9 -9
  192. package/dist/{esm/serializer/cosmetic/body/scriptlet-body-serializer.mjs → serializer/cosmetic/body/scriptlet-body-serializer.js} +16 -13
  193. package/dist/{esm/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.mjs → serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js} +5 -5
  194. package/dist/{esm/serializer/cosmetic/cosmetic-rule-serializer.mjs → serializer/cosmetic/cosmetic-rule-serializer.js} +22 -31
  195. package/dist/{esm/serializer/cosmetic/css-injection-body-serializer.mjs → serializer/cosmetic/css-injection-body-serializer.js} +11 -8
  196. package/dist/{esm/serializer/cosmetic/element-hiding-body-serializer.mjs → serializer/cosmetic/element-hiding-body-serializer.js} +11 -8
  197. package/dist/{esm/serializer/empty-rule-serializer.mjs → serializer/empty-rule-serializer.js} +10 -7
  198. package/dist/{esm/serializer/filterlist-serializer.mjs → serializer/filterlist-serializer.js} +9 -10
  199. package/dist/serializer/index.js +7 -0
  200. package/dist/{esm/serializer/invalid-rule-error-node-serializer.mjs → serializer/invalid-rule-error-node-serializer.js} +10 -7
  201. package/dist/{esm/serializer/invalid-rule-serializer.mjs → serializer/invalid-rule-serializer.js} +11 -8
  202. package/dist/{esm/serializer/misc/domain-list-serializer.mjs → serializer/misc/domain-list-serializer.js} +10 -10
  203. package/dist/{esm/serializer/misc/list-item-serializer.mjs → serializer/misc/list-item-serializer.js} +11 -8
  204. package/dist/{esm/serializer/misc/list-items-serializer.mjs → serializer/misc/list-items-serializer.js} +6 -3
  205. package/dist/{esm/serializer/misc/logical-expression-serializer.mjs → serializer/misc/logical-expression-serializer.js} +14 -14
  206. package/dist/{esm/serializer/misc/modifier-list-serializer.mjs → serializer/misc/modifier-list-serializer.js} +11 -8
  207. package/dist/{esm/serializer/misc/modifier-serializer.mjs → serializer/misc/modifier-serializer.js} +8 -8
  208. package/dist/{esm/serializer/misc/parameter-list-serializer.mjs → serializer/misc/parameter-list-serializer.js} +11 -8
  209. package/dist/{esm/serializer/misc/value-serializer.mjs → serializer/misc/value-serializer.js} +7 -7
  210. package/dist/{esm/serializer/network/host-rule-serializer.mjs → serializer/network/host-rule-serializer.js} +10 -10
  211. package/dist/{esm/serializer/network/hostname-list-serializer.mjs → serializer/network/hostname-list-serializer.js} +14 -8
  212. package/dist/{esm/serializer/network/network-rule-serializer.mjs → serializer/network/network-rule-serializer.js} +10 -10
  213. package/dist/{esm/serializer/rule-serializer.mjs → serializer/rule-serializer.js} +10 -10
  214. package/dist/types/common/abp-snippet-injection-body-common.d.ts +7 -0
  215. package/dist/types/common/ubo-selector-common.d.ts +7 -6
  216. package/dist/types/compatibility-tables/compatibility-table-data.d.ts +2 -1
  217. package/dist/types/compatibility-tables/platforms.d.ts +36 -34
  218. package/dist/types/compatibility-tables/schemas/base.d.ts +1 -12
  219. package/dist/types/compatibility-tables/schemas/modifier.d.ts +5 -0
  220. package/dist/types/compatibility-tables/schemas/redirect.d.ts +1 -1
  221. package/dist/types/compatibility-tables/schemas/resource-type.d.ts +29 -15
  222. package/dist/types/compatibility-tables/utils/zod-camelcase.d.ts +1 -1
  223. package/dist/types/converter/css/index.d.ts +17 -0
  224. package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +1 -54
  225. package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +6 -0
  226. package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +3 -0
  227. package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +4 -0
  228. package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +4 -0
  229. package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +5 -0
  230. package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +4 -0
  231. package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +4 -1
  232. package/dist/types/deserializer/empty-rule-deserializer.d.ts +4 -0
  233. package/dist/types/deserializer/filterlist-deserializer.d.ts +4 -0
  234. package/dist/types/deserializer/invalid-rule-deserializer.d.ts +4 -0
  235. package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +4 -0
  236. package/dist/types/deserializer/misc/list-item-deserializer.d.ts +6 -0
  237. package/dist/types/deserializer/misc/list-items-deserializer.d.ts +4 -0
  238. package/dist/types/deserializer/misc/modifier-deserializer.d.ts +1 -1
  239. package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +4 -0
  240. package/dist/types/deserializer/network/host-rule-deserializer.d.ts +4 -16
  241. package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +3 -0
  242. package/dist/types/generator/comment/agent-comment-generator.d.ts +3 -0
  243. package/dist/types/generator/comment/agent-generator.d.ts +4 -0
  244. package/dist/types/generator/comment/comment-rule-generator.d.ts +1 -54
  245. package/dist/types/generator/comment/config-comment-generator.d.ts +3 -0
  246. package/dist/types/generator/comment/hint-comment-generator.d.ts +3 -0
  247. package/dist/types/generator/comment/hint-generator.d.ts +6 -3
  248. package/dist/types/generator/comment/index.d.ts +1 -2
  249. package/dist/types/generator/comment/metadata-comment-generator.d.ts +3 -0
  250. package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +3 -0
  251. package/dist/types/generator/comment/simple-comment-generator.d.ts +3 -0
  252. package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +4 -0
  253. package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +5 -1
  254. package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +5 -1
  255. package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +5 -0
  256. package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +3 -11
  257. package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +3 -0
  258. package/dist/types/generator/css/adg-css-injection-generator.d.ts +3 -0
  259. package/dist/types/generator/css/ubo-selector-generator.d.ts +3 -0
  260. package/dist/types/generator/filterlist-generator.d.ts +4 -3
  261. package/dist/types/generator/misc/domain-list-generator.d.ts +3 -0
  262. package/dist/types/generator/misc/list-items-generator.d.ts +3 -0
  263. package/dist/types/generator/misc/logical-expression-generator.d.ts +3 -0
  264. package/dist/types/generator/misc/modifier-generator.d.ts +5 -2
  265. package/dist/types/generator/misc/modifier-list-generator.d.ts +3 -0
  266. package/dist/types/generator/misc/parameter-list-generator.d.ts +3 -0
  267. package/dist/types/generator/misc/value-generator.d.ts +3 -0
  268. package/dist/types/generator/network/host-rule-generator.d.ts +3 -0
  269. package/dist/types/generator/network/network-rule-generator.d.ts +6 -3
  270. package/dist/types/generator/rule-generator.d.ts +3 -0
  271. package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +6 -5
  272. package/dist/types/marshalling-utils/comment/agent-common.d.ts +7 -6
  273. package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +15 -13
  274. package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +7 -6
  275. package/dist/types/marshalling-utils/comment/hint-common.d.ts +7 -6
  276. package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +8 -7
  277. package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +8 -7
  278. package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +7 -6
  279. package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +6 -5
  280. package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +9 -8
  281. package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +6 -5
  282. package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +11 -10
  283. package/dist/types/marshalling-utils/empty-rule-common.d.ts +5 -4
  284. package/dist/types/marshalling-utils/filter-list-common.d.ts +6 -5
  285. package/dist/types/marshalling-utils/invalid-rule-common.d.ts +6 -5
  286. package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +7 -6
  287. package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +52 -51
  288. package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +7 -6
  289. package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +10 -9
  290. package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +6 -5
  291. package/dist/types/marshalling-utils/misc/list-item-common.d.ts +7 -6
  292. package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +21 -18
  293. package/dist/types/marshalling-utils/misc/modifier-common.d.ts +8 -7
  294. package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +6 -5
  295. package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +6 -5
  296. package/dist/types/marshalling-utils/misc/value-common.d.ts +7 -6
  297. package/dist/types/marshalling-utils/network/network-rule-common.d.ts +10 -9
  298. package/dist/types/nodes/index.d.ts +104 -98
  299. package/dist/types/parser/comment/agent-parser.d.ts +7 -0
  300. package/dist/types/parser/css/balancing.d.ts +21 -1
  301. package/dist/types/parser/index.d.ts +1 -0
  302. package/dist/types/parser/misc/list-items-parser.d.ts +3 -0
  303. package/dist/types/parser/misc/logical-expression-parser.d.ts +6 -5
  304. package/dist/types/parser/misc/parameter-list-parser.d.ts +3 -0
  305. package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +3 -0
  306. package/dist/types/parser/misc/value-parser.d.ts +1 -1
  307. package/dist/types/serializer/comment/agent-serializer.d.ts +1 -10
  308. package/dist/types/serializer/comment/config-comment-serializer.d.ts +1 -1
  309. package/dist/types/serializer/comment/simple-comment-serializer.d.ts +2 -2
  310. package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +4 -4
  311. package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +4 -4
  312. package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +8 -5
  313. package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +4 -11
  314. package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +3 -0
  315. package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +3 -0
  316. package/dist/types/serializer/empty-rule-serializer.d.ts +3 -0
  317. package/dist/types/serializer/filterlist-serializer.d.ts +1 -2
  318. package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +3 -0
  319. package/dist/types/serializer/invalid-rule-serializer.d.ts +3 -0
  320. package/dist/types/serializer/misc/domain-list-serializer.d.ts +2 -2
  321. package/dist/types/serializer/misc/list-item-serializer.d.ts +3 -0
  322. package/dist/types/serializer/misc/list-items-serializer.d.ts +3 -0
  323. package/dist/types/serializer/misc/logical-expression-serializer.d.ts +7 -6
  324. package/dist/types/serializer/misc/parameter-list-serializer.d.ts +3 -0
  325. package/dist/types/serializer/network/hostname-list-serializer.d.ts +3 -0
  326. package/dist/types/utils/adblockers.d.ts +7 -6
  327. package/dist/types/utils/domain.d.ts +3 -0
  328. package/dist/types/utils/input-byte-buffer.d.ts +6 -0
  329. package/dist/types/utils/output-byte-buffer.d.ts +6 -0
  330. package/dist/types/utils/quotes.d.ts +7 -6
  331. package/dist/types/utils/string.d.ts +3 -0
  332. package/dist/types/validator/value.d.ts +2 -1
  333. package/dist/{esm/utils/adblockers.mjs → utils/adblockers.js} +8 -9
  334. package/dist/{esm/utils/binary-schema-version.mjs → utils/binary-schema-version.js} +2 -2
  335. package/dist/{esm/utils/byte-buffer.mjs → utils/byte-buffer.js} +2 -2
  336. package/dist/{esm/utils/categorizer.mjs → utils/categorizer.js} +5 -5
  337. package/dist/{esm/utils/clone.mjs → utils/clone.js} +2 -2
  338. package/dist/{esm/utils/constants.mjs → utils/constants.js} +5 -3
  339. package/dist/{esm/utils/cosmetic-rule-separator.mjs → utils/cosmetic-rule-separator.js} +4 -4
  340. package/dist/{esm/utils/deep-freeze.mjs → utils/deep-freeze.js} +2 -2
  341. package/dist/{esm/utils/domain.mjs → utils/domain.js} +6 -3
  342. package/dist/{esm/utils/error.mjs → utils/error.js} +2 -2
  343. package/dist/utils/index.js +21 -0
  344. package/dist/{esm/utils/input-byte-buffer.mjs → utils/input-byte-buffer.js} +17 -8
  345. package/dist/{esm/utils/is-chromium.mjs → utils/is-chromium.js} +2 -2
  346. package/dist/{esm/utils/logical-expression.mjs → utils/logical-expression.js} +4 -4
  347. package/dist/{esm/utils/multi-value-map.mjs → utils/multi-value-map.js} +3 -3
  348. package/dist/{esm/utils/output-byte-buffer.mjs → utils/output-byte-buffer.js} +14 -6
  349. package/dist/{esm/utils/position-provider.mjs → utils/position-provider.js} +3 -3
  350. package/dist/{esm/utils/quotes.mjs → utils/quotes.js} +9 -10
  351. package/dist/{esm/utils/regexp.mjs → utils/regexp.js} +3 -3
  352. package/dist/{esm/utils/string.mjs → utils/string.js} +6 -3
  353. package/dist/{esm/utils/text-decoder-polyfill.mjs → utils/text-decoder-polyfill.js} +3 -3
  354. package/dist/{esm/utils/text-encoder-polyfill.mjs → utils/text-encoder-polyfill.js} +2 -2
  355. package/dist/{esm/utils/type-guards.mjs → utils/type-guards.js} +2 -2
  356. package/dist/{esm/validator/constants.mjs → validator/constants.js} +4 -4
  357. package/dist/{esm/validator/helpers.mjs → validator/helpers.js} +4 -4
  358. package/dist/{esm/validator/index.mjs → validator/index.js} +11 -11
  359. package/dist/{esm/validator/value.mjs → validator/value.js} +34 -29
  360. package/dist/{esm/version.mjs → version.js} +3 -3
  361. package/package.json +24 -70
  362. package/dist/cjs/ast-utils/clone.js +0 -65
  363. package/dist/cjs/ast-utils/modifiers.js +0 -56
  364. package/dist/cjs/ast-utils/network-rules.js +0 -43
  365. package/dist/cjs/ast-utils/scriptlets.js +0 -93
  366. package/dist/cjs/common/abp-snippet-injection-body-common.js +0 -18
  367. package/dist/cjs/common/agent-common.js +0 -58
  368. package/dist/cjs/common/ubo-selector-common.js +0 -18
  369. package/dist/cjs/compatibility-tables/base.js +0 -264
  370. package/dist/cjs/compatibility-tables/compatibility-table-data.js +0 -15
  371. package/dist/cjs/compatibility-tables/modifiers.js +0 -57
  372. package/dist/cjs/compatibility-tables/platforms.js +0 -58
  373. package/dist/cjs/compatibility-tables/redirects.js +0 -102
  374. package/dist/cjs/compatibility-tables/schemas/base.js +0 -116
  375. package/dist/cjs/compatibility-tables/schemas/modifier.js +0 -107
  376. package/dist/cjs/compatibility-tables/schemas/platform.js +0 -71
  377. package/dist/cjs/compatibility-tables/schemas/redirect.js +0 -31
  378. package/dist/cjs/compatibility-tables/schemas/resource-type.js +0 -39
  379. package/dist/cjs/compatibility-tables/schemas/scriptlet.js +0 -81
  380. package/dist/cjs/compatibility-tables/scriptlets.js +0 -30
  381. package/dist/cjs/compatibility-tables/utils/platform-helpers.js +0 -112
  382. package/dist/cjs/compatibility-tables/utils/resource-type-helpers.js +0 -64
  383. package/dist/cjs/compatibility-tables/utils/zod-camelcase.js +0 -27
  384. package/dist/cjs/converter/base-interfaces/base-converter.js +0 -61
  385. package/dist/cjs/converter/base-interfaces/conversion-result.js +0 -41
  386. package/dist/cjs/converter/base-interfaces/rule-converter-base.js +0 -62
  387. package/dist/cjs/converter/comment/index.js +0 -56
  388. package/dist/cjs/converter/cosmetic/css.js +0 -71
  389. package/dist/cjs/converter/cosmetic/element-hiding.js +0 -64
  390. package/dist/cjs/converter/cosmetic/header-removal.js +0 -126
  391. package/dist/cjs/converter/cosmetic/html.js +0 -384
  392. package/dist/cjs/converter/cosmetic/index.js +0 -120
  393. package/dist/cjs/converter/cosmetic/rule-modifiers/adg.js +0 -81
  394. package/dist/cjs/converter/cosmetic/scriptlet.js +0 -356
  395. package/dist/cjs/converter/css/index.js +0 -193
  396. package/dist/cjs/converter/data/css.js +0 -133
  397. package/dist/cjs/converter/filter-list.js +0 -90
  398. package/dist/cjs/converter/index.js +0 -15
  399. package/dist/cjs/converter/misc/network-rule-modifier.js +0 -313
  400. package/dist/cjs/converter/network/index.js +0 -101
  401. package/dist/cjs/converter/raw-filter-list.js +0 -58
  402. package/dist/cjs/converter/rule.js +0 -83
  403. package/dist/cjs/deserializer/base-deserializer.js +0 -31
  404. package/dist/cjs/deserializer/comment/agent-comment-deserializer.js +0 -76
  405. package/dist/cjs/deserializer/comment/agent-deserializer.js +0 -67
  406. package/dist/cjs/deserializer/comment/comment-rule-deserializer.js +0 -109
  407. package/dist/cjs/deserializer/comment/config-comment-deserializer.js +0 -113
  408. package/dist/cjs/deserializer/comment/hint-comment-deserializer.js +0 -69
  409. package/dist/cjs/deserializer/comment/hint-deserializer.js +0 -88
  410. package/dist/cjs/deserializer/comment/metadata-comment-deserializer.js +0 -71
  411. package/dist/cjs/deserializer/comment/pre-processor-comment-deserializer.js +0 -114
  412. package/dist/cjs/deserializer/comment/simple-comment-deserializer.js +0 -67
  413. package/dist/cjs/deserializer/cosmetic/cosmetic-rule-deserializer.js +0 -127
  414. package/dist/cjs/deserializer/cosmetic/css-injection-body-deserializer.js +0 -55
  415. package/dist/cjs/deserializer/cosmetic/element-hiding-body-deserializer.js +0 -46
  416. package/dist/cjs/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +0 -37
  417. package/dist/cjs/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +0 -37
  418. package/dist/cjs/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +0 -52
  419. package/dist/cjs/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +0 -38
  420. package/dist/cjs/deserializer/empty-rule-deserializer.js +0 -46
  421. package/dist/cjs/deserializer/filterlist-deserializer.js +0 -83
  422. package/dist/cjs/deserializer/index.js +0 -15
  423. package/dist/cjs/deserializer/invalid-rule-deserializer.js +0 -48
  424. package/dist/cjs/deserializer/invalid-rule-error-node-deserializer.js +0 -48
  425. package/dist/cjs/deserializer/misc/domain-list-deserializer.js +0 -66
  426. package/dist/cjs/deserializer/misc/list-item-deserializer.js +0 -65
  427. package/dist/cjs/deserializer/misc/list-items-deserializer.js +0 -28
  428. package/dist/cjs/deserializer/misc/logical-expression-deserializer.js +0 -199
  429. package/dist/cjs/deserializer/misc/modifier-deserializer.js +0 -89
  430. package/dist/cjs/deserializer/misc/modifier-list-deserializer.js +0 -58
  431. package/dist/cjs/deserializer/misc/parameter-list-deserializer.js +0 -62
  432. package/dist/cjs/deserializer/misc/value-deserializer.js +0 -52
  433. package/dist/cjs/deserializer/network/host-rule-deserializer.js +0 -81
  434. package/dist/cjs/deserializer/network/hostname-list-deserializer.js +0 -50
  435. package/dist/cjs/deserializer/network/network-rule-deserializer.js +0 -67
  436. package/dist/cjs/deserializer/rule-deserializer.js +0 -67
  437. package/dist/cjs/deserializer/syntax-deserialization-map.js +0 -23
  438. package/dist/cjs/errors/adblock-syntax-error.js +0 -41
  439. package/dist/cjs/errors/binary-schema-mismatch-error.js +0 -39
  440. package/dist/cjs/errors/not-implemented-error.js +0 -33
  441. package/dist/cjs/errors/rule-conversion-error.js +0 -28
  442. package/dist/cjs/generator/base-generator.js +0 -29
  443. package/dist/cjs/generator/comment/agent-comment-generator.js +0 -30
  444. package/dist/cjs/generator/comment/agent-generator.js +0 -34
  445. package/dist/cjs/generator/comment/comment-rule-generator.js +0 -102
  446. package/dist/cjs/generator/comment/config-comment-generator.js +0 -44
  447. package/dist/cjs/generator/comment/hint-comment-generator.js +0 -27
  448. package/dist/cjs/generator/comment/hint-generator.js +0 -32
  449. package/dist/cjs/generator/comment/metadata-comment-generator.js +0 -32
  450. package/dist/cjs/generator/comment/pre-processor-comment-generator.js +0 -47
  451. package/dist/cjs/generator/comment/simple-comment-generator.js +0 -28
  452. package/dist/cjs/generator/cosmetic/body/abp-snippet-injection-body-generator.js +0 -36
  453. package/dist/cjs/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +0 -41
  454. package/dist/cjs/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +0 -43
  455. package/dist/cjs/generator/cosmetic/cosmetic-rule-body-generator.js +0 -92
  456. package/dist/cjs/generator/cosmetic/cosmetic-rule-generator.js +0 -66
  457. package/dist/cjs/generator/cosmetic/cosmetic-rule-pattern-generator.js +0 -41
  458. package/dist/cjs/generator/css/adg-css-injection-generator.js +0 -41
  459. package/dist/cjs/generator/filterlist-generator.js +0 -57
  460. package/dist/cjs/generator/index.js +0 -17
  461. package/dist/cjs/generator/misc/domain-list-generator.js +0 -25
  462. package/dist/cjs/generator/misc/list-items-generator.js +0 -38
  463. package/dist/cjs/generator/misc/logical-expression-generator.js +0 -47
  464. package/dist/cjs/generator/misc/modifier-generator.js +0 -33
  465. package/dist/cjs/generator/misc/modifier-list-generator.js +0 -28
  466. package/dist/cjs/generator/misc/parameter-list-generator.js +0 -41
  467. package/dist/cjs/generator/misc/value-generator.js +0 -23
  468. package/dist/cjs/generator/network/host-rule-generator.js +0 -38
  469. package/dist/cjs/generator/network/network-rule-generator.js +0 -37
  470. package/dist/cjs/generator/rule-generator.js +0 -64
  471. package/dist/cjs/index.js +0 -201
  472. package/dist/cjs/marshalling-utils/comment/agent-comment-common.js +0 -22
  473. package/dist/cjs/marshalling-utils/comment/agent-common.js +0 -43
  474. package/dist/cjs/marshalling-utils/comment/config-comment-common.js +0 -58
  475. package/dist/cjs/marshalling-utils/comment/hint-comment-common.js +0 -23
  476. package/dist/cjs/marshalling-utils/comment/hint-common.js +0 -60
  477. package/dist/cjs/marshalling-utils/comment/metadata-comment-common.js +0 -44
  478. package/dist/cjs/marshalling-utils/comment/pre-processor-comment-common.js +0 -63
  479. package/dist/cjs/marshalling-utils/comment/simple-comment-common.js +0 -23
  480. package/dist/cjs/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +0 -64
  481. package/dist/cjs/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +0 -68
  482. package/dist/cjs/marshalling-utils/cosmetic/body/css-injection-body-common.js +0 -25
  483. package/dist/cjs/marshalling-utils/cosmetic/body/element-hiding-body-common.js +0 -22
  484. package/dist/cjs/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +0 -116
  485. package/dist/cjs/marshalling-utils/cosmetic/cosmetic-rule-common.js +0 -51
  486. package/dist/cjs/marshalling-utils/filter-list-common.js +0 -22
  487. package/dist/cjs/marshalling-utils/invalid-rule-common.js +0 -22
  488. package/dist/cjs/marshalling-utils/invalid-rule-error-node-common.js +0 -23
  489. package/dist/cjs/marshalling-utils/misc/binary-type-common.js +0 -67
  490. package/dist/cjs/marshalling-utils/misc/domain-list-common.js +0 -39
  491. package/dist/cjs/marshalling-utils/misc/host-rule-common.js +0 -26
  492. package/dist/cjs/marshalling-utils/misc/hostname-list-common.js +0 -22
  493. package/dist/cjs/marshalling-utils/misc/list-item-common.js +0 -23
  494. package/dist/cjs/marshalling-utils/misc/logical-expression-common.js +0 -89
  495. package/dist/cjs/marshalling-utils/misc/modifier-common.js +0 -236
  496. package/dist/cjs/marshalling-utils/misc/modifier-list-common.js +0 -22
  497. package/dist/cjs/marshalling-utils/misc/parameter-list-common.js +0 -22
  498. package/dist/cjs/marshalling-utils/misc/value-common.js +0 -23
  499. package/dist/cjs/marshalling-utils/network/network-rule-common.js +0 -26
  500. package/dist/cjs/marshalling-utils/syntax-serialization-map.js +0 -32
  501. package/dist/cjs/nodes/index.js +0 -180
  502. package/dist/cjs/package.json.js +0 -11
  503. package/dist/cjs/parser/base-parser.js +0 -32
  504. package/dist/cjs/parser/comment/agent-comment-parser.js +0 -121
  505. package/dist/cjs/parser/comment/agent-parser.js +0 -111
  506. package/dist/cjs/parser/comment/comment-parser.js +0 -110
  507. package/dist/cjs/parser/comment/config-comment-parser.js +0 -139
  508. package/dist/cjs/parser/comment/hint-comment-parser.js +0 -119
  509. package/dist/cjs/parser/comment/hint-parser.js +0 -131
  510. package/dist/cjs/parser/comment/metadata-comment-parser.js +0 -131
  511. package/dist/cjs/parser/comment/preprocessor-parser.js +0 -201
  512. package/dist/cjs/parser/comment/simple-comment-parser.js +0 -108
  513. package/dist/cjs/parser/cosmetic/body/abp-snippet-injection-body-parser.js +0 -81
  514. package/dist/cjs/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +0 -151
  515. package/dist/cjs/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +0 -112
  516. package/dist/cjs/parser/cosmetic/cosmetic-rule-parser.js +0 -456
  517. package/dist/cjs/parser/css/adg-css-injection-parser.js +0 -213
  518. package/dist/cjs/parser/css/balancing.js +0 -97
  519. package/dist/cjs/parser/css/constants.js +0 -21
  520. package/dist/cjs/parser/css/css-token-stream.js +0 -345
  521. package/dist/cjs/parser/css/ubo-selector-parser.js +0 -373
  522. package/dist/cjs/parser/filterlist-parser.js +0 -104
  523. package/dist/cjs/parser/index.js +0 -21
  524. package/dist/cjs/parser/misc/app-list-parser.js +0 -47
  525. package/dist/cjs/parser/misc/domain-list-parser.js +0 -54
  526. package/dist/cjs/parser/misc/list-items-parser.js +0 -116
  527. package/dist/cjs/parser/misc/logical-expression-parser.js +0 -283
  528. package/dist/cjs/parser/misc/method-list-parser.js +0 -48
  529. package/dist/cjs/parser/misc/modifier-list.js +0 -72
  530. package/dist/cjs/parser/misc/modifier-parser.js +0 -91
  531. package/dist/cjs/parser/misc/parameter-list-parser.js +0 -74
  532. package/dist/cjs/parser/misc/stealth-option-list-parser.js +0 -48
  533. package/dist/cjs/parser/misc/ubo-parameter-list-parser.js +0 -148
  534. package/dist/cjs/parser/misc/value-parser.js +0 -39
  535. package/dist/cjs/parser/network/host-rule-parser.js +0 -151
  536. package/dist/cjs/parser/network/network-rule-parser.js +0 -113
  537. package/dist/cjs/parser/options.js +0 -25
  538. package/dist/cjs/parser/rule-parser.js +0 -194
  539. package/dist/cjs/serializer/base-serializer.js +0 -31
  540. package/dist/cjs/serializer/comment/agent-comment-serializer.js +0 -73
  541. package/dist/cjs/serializer/comment/agent-serializer.js +0 -70
  542. package/dist/cjs/serializer/comment/comment-rule-serializer.js +0 -107
  543. package/dist/cjs/serializer/comment/config-comment-serializer.js +0 -84
  544. package/dist/cjs/serializer/comment/hint-comment-serializer.js +0 -64
  545. package/dist/cjs/serializer/comment/hint-serializer.js +0 -56
  546. package/dist/cjs/serializer/comment/metadata-comment-serializer.js +0 -75
  547. package/dist/cjs/serializer/comment/pre-processor-comment-serializer.js +0 -73
  548. package/dist/cjs/serializer/comment/simple-comment-serializer.js +0 -54
  549. package/dist/cjs/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +0 -38
  550. package/dist/cjs/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +0 -38
  551. package/dist/cjs/serializer/cosmetic/body/scriptlet-body-serializer.js +0 -49
  552. package/dist/cjs/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +0 -38
  553. package/dist/cjs/serializer/cosmetic/cosmetic-rule-serializer.js +0 -131
  554. package/dist/cjs/serializer/cosmetic/css-injection-body-serializer.js +0 -50
  555. package/dist/cjs/serializer/cosmetic/element-hiding-body-serializer.js +0 -39
  556. package/dist/cjs/serializer/empty-rule-serializer.js +0 -36
  557. package/dist/cjs/serializer/filterlist-serializer.js +0 -48
  558. package/dist/cjs/serializer/index.js +0 -13
  559. package/dist/cjs/serializer/invalid-rule-error-node-serializer.js +0 -40
  560. package/dist/cjs/serializer/invalid-rule-serializer.js +0 -39
  561. package/dist/cjs/serializer/misc/domain-list-serializer.js +0 -66
  562. package/dist/cjs/serializer/misc/list-item-serializer.js +0 -57
  563. package/dist/cjs/serializer/misc/list-items-serializer.js +0 -28
  564. package/dist/cjs/serializer/misc/logical-expression-serializer.js +0 -138
  565. package/dist/cjs/serializer/misc/modifier-list-serializer.js +0 -57
  566. package/dist/cjs/serializer/misc/modifier-serializer.js +0 -51
  567. package/dist/cjs/serializer/misc/parameter-list-serializer.js +0 -51
  568. package/dist/cjs/serializer/misc/value-serializer.js +0 -52
  569. package/dist/cjs/serializer/network/host-rule-serializer.js +0 -72
  570. package/dist/cjs/serializer/network/hostname-list-serializer.js +0 -49
  571. package/dist/cjs/serializer/network/network-rule-serializer.js +0 -56
  572. package/dist/cjs/serializer/rule-serializer.js +0 -63
  573. package/dist/cjs/utils/adblockers.js +0 -57
  574. package/dist/cjs/utils/binary-schema-version.js +0 -19
  575. package/dist/cjs/utils/byte-buffer.js +0 -93
  576. package/dist/cjs/utils/categorizer.js +0 -46
  577. package/dist/cjs/utils/clone.js +0 -30
  578. package/dist/cjs/utils/constants.js +0 -380
  579. package/dist/cjs/utils/cosmetic-rule-separator.js +0 -129
  580. package/dist/cjs/utils/deep-freeze.js +0 -34
  581. package/dist/cjs/utils/domain.js +0 -60
  582. package/dist/cjs/utils/error.js +0 -51
  583. package/dist/cjs/utils/index.js +0 -69
  584. package/dist/cjs/utils/input-byte-buffer.js +0 -259
  585. package/dist/cjs/utils/is-chromium.js +0 -22
  586. package/dist/cjs/utils/logical-expression.js +0 -94
  587. package/dist/cjs/utils/multi-value-map.js +0 -35
  588. package/dist/cjs/utils/output-byte-buffer.js +0 -225
  589. package/dist/cjs/utils/position-provider.js +0 -75
  590. package/dist/cjs/utils/quotes.js +0 -218
  591. package/dist/cjs/utils/regexp.js +0 -190
  592. package/dist/cjs/utils/string.js +0 -560
  593. package/dist/cjs/utils/text-decoder-polyfill.js +0 -109
  594. package/dist/cjs/utils/text-encoder-polyfill.js +0 -80
  595. package/dist/cjs/utils/type-guards.js +0 -52
  596. package/dist/cjs/validator/constants.js +0 -222
  597. package/dist/cjs/validator/helpers.js +0 -49
  598. package/dist/cjs/validator/index.js +0 -176
  599. package/dist/cjs/validator/value.js +0 -565
  600. package/dist/cjs/version.js +0 -20
  601. package/dist/esm/common/ubo-selector-common.mjs +0 -18
  602. package/dist/esm/compatibility-tables/platforms.mjs +0 -58
  603. package/dist/esm/compatibility-tables/schemas/resource-type.mjs +0 -37
  604. package/dist/esm/converter/index.mjs +0 -8
  605. package/dist/esm/marshalling-utils/comment/agent-comment-common.mjs +0 -22
  606. package/dist/esm/marshalling-utils/comment/hint-comment-common.mjs +0 -23
  607. package/dist/esm/marshalling-utils/comment/simple-comment-common.mjs +0 -23
  608. package/dist/esm/marshalling-utils/cosmetic/body/css-injection-body-common.mjs +0 -25
  609. package/dist/esm/marshalling-utils/cosmetic/body/element-hiding-body-common.mjs +0 -22
  610. package/dist/esm/marshalling-utils/filter-list-common.mjs +0 -22
  611. package/dist/esm/marshalling-utils/invalid-rule-error-node-common.mjs +0 -23
  612. package/dist/esm/marshalling-utils/misc/binary-type-common.mjs +0 -67
  613. package/dist/esm/marshalling-utils/misc/host-rule-common.mjs +0 -26
  614. package/dist/esm/marshalling-utils/misc/hostname-list-common.mjs +0 -22
  615. package/dist/esm/marshalling-utils/misc/list-item-common.mjs +0 -23
  616. package/dist/esm/marshalling-utils/misc/logical-expression-common.mjs +0 -86
  617. package/dist/esm/marshalling-utils/misc/modifier-list-common.mjs +0 -22
  618. package/dist/esm/marshalling-utils/misc/parameter-list-common.mjs +0 -22
  619. package/dist/esm/marshalling-utils/misc/value-common.mjs +0 -23
  620. package/dist/esm/marshalling-utils/network/network-rule-common.mjs +0 -26
  621. package/dist/esm/parser/index.mjs +0 -11
  622. package/dist/esm/serializer/index.mjs +0 -7
  623. package/dist/esm/utils/index.mjs +0 -21
@@ -1,373 +0,0 @@
1
- /*
2
- * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
3
- * (c) 2024 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- 'use strict';
8
-
9
- var cssTokenizer = require('@adguard/css-tokenizer');
10
- var sprintfJs = require('sprintf-js');
11
- var adblockSyntaxError = require('../../errors/adblock-syntax-error.js');
12
- var constants = require('../../utils/constants.js');
13
- var balancing = require('./balancing.js');
14
- var options = require('../options.js');
15
- var baseParser = require('../base-parser.js');
16
- var uboSelectorCommon = require('../../common/ubo-selector-common.js');
17
-
18
- /**
19
- * @file Parser for special uBO selectors.
20
- */
21
- /**
22
- * Possible error messages for uBO selectors. Formatted with {@link sprintf}.
23
- */
24
- const ERROR_MESSAGES = {
25
- DUPLICATED_UBO_MODIFIER: "uBO modifier '%s' cannot be used more than once",
26
- EXPECTED_BUT_GOT_BEFORE: "Expected '%s' but got '%s' before '%s'",
27
- // eslint-disable-next-line max-len
28
- NEGATED_UBO_MODIFIER_CANNOT_BE_FOLLOWED_BY: "Negated uBO modifier '%s' cannot be followed by anything else than a closing parenthesis or a whitespace",
29
- NEGATED_UBO_MODIFIER_CANNOT_BE_PRECEDED_BY: "Negated uBO modifier '%s' cannot be preceded by '%s'",
30
- PSEUDO_CANNOT_BE_NESTED: "uBO modifier '%s' cannot be nested inside '%s', only '%s' is allowed as a wrapper",
31
- UBO_MODIFIER_CANNOT_BE_NESTED: "uBO modifier '%s' cannot be nested",
32
- UBO_STYLE_CANNOT_BE_FOLLOWED: 'uBO style injection cannot be followed by anything else than a whitespace',
33
- };
34
- /**
35
- * Dummy parameter for uBO modifiers in error messages.
36
- */
37
- const DUMMY_PARAM = '...';
38
- /**
39
- * Set of known uBO modifiers.
40
- *
41
- * @note We use `string` instead of `UboPseudoName` because we use this set for checking if a modifier is a known uBO,
42
- * and an unknown sequence is just a string.
43
- */
44
- const KNOWN_UBO_MODIFIERS = new Set([
45
- uboSelectorCommon.UboPseudoName.MatchesMedia,
46
- uboSelectorCommon.UboPseudoName.MatchesPath,
47
- uboSelectorCommon.UboPseudoName.Remove,
48
- uboSelectorCommon.UboPseudoName.Style,
49
- ]);
50
- /**
51
- * Helper function to check if the given selector has any uBO modifier. This function should be fast, because it's used
52
- * in the hot path of the parser.
53
- *
54
- * @param raw Raw selector string.
55
- * @returns `true` if the selector has any uBO modifier, `false` otherwise.
56
- */
57
- const hasAnyUboModifier = (raw) => {
58
- // Find the first colon
59
- let colonIndex = raw.indexOf(constants.COLON);
60
- while (colonIndex !== -1) {
61
- // Find next opening parenthesis
62
- const openingParenthesisIndex = raw.indexOf(constants.OPEN_PARENTHESIS, colonIndex + 1);
63
- // If there is no opening parenthesis, then the selector doesn't contain any uBO modifier
64
- if (openingParenthesisIndex === -1) {
65
- return false;
66
- }
67
- // Check if the modifier is a known uBO modifier
68
- if (KNOWN_UBO_MODIFIERS.has(raw.slice(colonIndex + 1, openingParenthesisIndex))) {
69
- return true;
70
- }
71
- // Find next colon
72
- colonIndex = raw.indexOf(constants.COLON, openingParenthesisIndex + 1);
73
- }
74
- return false;
75
- };
76
- /**
77
- * A simple helper function to format a pseudo name for error messages.
78
- *
79
- * @param name Pseudo name.
80
- * @param wrapper Wrapper pseudo name (eg. `not`) (optional, defaults to `undefined`).
81
- * @returns Formatted pseudo name.
82
- * @example
83
- * ```ts
84
- * formatPseudoName('matches-path', 'not'); // => ':not(:matches-path(...))'
85
- * formatPseudoName('matches-media'); // => ':matches-media(...)'
86
- * ```
87
- */
88
- const formatPseudoName = (name, wrapper) => {
89
- const result = [];
90
- if (wrapper) {
91
- result.push(constants.COLON, wrapper, constants.OPEN_PARENTHESIS);
92
- }
93
- result.push(constants.COLON, name, constants.OPEN_PARENTHESIS, DUMMY_PARAM, constants.CLOSE_PARENTHESIS);
94
- if (wrapper) {
95
- result.push(constants.CLOSE_PARENTHESIS);
96
- }
97
- return result.join(constants.EMPTY);
98
- };
99
- /**
100
- * Parser for uBO selectors.
101
- */
102
- class UboSelectorParser extends baseParser.BaseParser {
103
- /**
104
- * Parses a uBO selector list, eg. `div:matches-path(/path)`.
105
- *
106
- * @param raw Raw input to parse.
107
- * @param options Global parser options.
108
- * @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
109
- *
110
- * @returns Parsed uBO selector {@link UboSelectorParser}.
111
- * @throws An {@link AdblockSyntaxError} if the selector list is syntactically invalid.
112
- */
113
- static parse(raw, options$1 = options.defaultParserOptions, baseOffset = 0) {
114
- // Prepare helper variables
115
- const modifiers = {
116
- type: 'ModifierList',
117
- children: [],
118
- };
119
- if (options$1.isLocIncluded) {
120
- modifiers.start = baseOffset;
121
- modifiers.end = baseOffset + raw.length;
122
- }
123
- // Do not perform any parsing if the selector doesn't contain any uBO modifier
124
- // Parsing is a relatively expensive operation, but this check is cheap, so we can avoid unnecessary work
125
- // TODO: Move this check to the cosmetic parser (adjustable syntaxes - if uBO syntax is disabled, then we don't
126
- // need to check for uBO modifiers)
127
- if (!hasAnyUboModifier(raw)) {
128
- const selector = {
129
- type: 'Value',
130
- value: raw,
131
- };
132
- if (options$1.isLocIncluded) {
133
- selector.start = baseOffset;
134
- selector.end = baseOffset + raw.length;
135
- }
136
- const result = {
137
- type: 'UboSelector',
138
- selector,
139
- modifiers,
140
- };
141
- if (options$1.isLocIncluded) {
142
- result.start = baseOffset;
143
- result.end = baseOffset + raw.length;
144
- }
145
- return result;
146
- }
147
- // Simple way to check if a modifier is already processed to avoid duplicate modifiers
148
- const processedModifiers = new Set();
149
- // We need to keep track of the tokens for handling negations properly
150
- const tokens = [];
151
- // This array is used to mark the character slots in the selector string that are occupied by uBO modifiers
152
- const uboIndexes = new Array(raw.length);
153
- const uboModifierStack = [];
154
- let i = 0;
155
- // Helper function to stack a uBO modifier
156
- const stackModifier = (modifier) => {
157
- if (processedModifiers.has(modifier.name)) {
158
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(ERROR_MESSAGES.DUPLICATED_UBO_MODIFIER, formatPseudoName(modifier.name)), baseOffset + modifier.modifierStart, baseOffset + raw.length);
159
- }
160
- uboModifierStack.push(modifier);
161
- };
162
- // Tokenize the selector, calculate the balance
163
- balancing.tokenizeFnBalanced(raw, (type, start, end, _, balance) => {
164
- // Special case: style injection (`:style(...)` and `:remove()`) can only be used at the end of the
165
- // selector, like
166
- // - `div:style(...)`,
167
- // - `div:matches-media(...):style(...)`,
168
- // - `div:remove()`,
169
- // etc.
170
- //
171
- // But not like
172
- // - `:style(...) div`,
173
- // - `:matches-media(...):style(...) div`,
174
- // - `:remove() div`,
175
- // etc.
176
- //
177
- // The one exception is whitespace, which is allowed after style injection, like
178
- // - `div:style(...) `,
179
- // - `div:matches-media(...):style(...) `,
180
- // - `div:remove() `,
181
- // etc.
182
- if ((processedModifiers.has(uboSelectorCommon.UboPseudoName.Style)
183
- || processedModifiers.has(uboSelectorCommon.UboPseudoName.Remove))
184
- && type !== cssTokenizer.TokenType.Whitespace) {
185
- throw new adblockSyntaxError.AdblockSyntaxError(ERROR_MESSAGES.UBO_STYLE_CANNOT_BE_FOLLOWED, baseOffset + start, baseOffset + raw.length);
186
- }
187
- // Check for pseudo classes (colon followed by a function)
188
- if (tokens[i - 1]?.type === cssTokenizer.TokenType.Colon && type === cssTokenizer.TokenType.Function) {
189
- // Since closing parenthesis is always included in the function token, but we only need the function
190
- // name, we need to cut off the last character, this is why we use `end - 1` here
191
- const fn = raw.slice(start, end - 1);
192
- // Check if the pseudo class is a known uBO modifier
193
- if (KNOWN_UBO_MODIFIERS.has(fn)) {
194
- // Generally, uBO modifiers cannot be nested, like
195
- // - `:any(:matches-media(...))`,
196
- // - `:matches-media(:matches-media(...))`,
197
- // - `:not(style(...))`,
198
- // etc.
199
- if (balance > 1) {
200
- // However, we have one exception: `:matches-path()` can be nested inside `:not()`s, like:
201
- // - `:not(:matches-path(...))`,
202
- // - `:not(:not(:matches-path(...)))`,
203
- // etc.
204
- //
205
- // But it can't be nested inside any other pseudo class, like:
206
- // - `:anything(:matches-path(...))`,
207
- // etc.
208
- //
209
- // Moreover, :not() can't contain any other data, like
210
- // - `:not(div:matches-path(...))`,
211
- // - `:not(:matches-path(...):matches-path(...))`,
212
- // - `:not(:matches-path(...) div)`,
213
- // etc.
214
- if (fn === uboSelectorCommon.UboPseudoName.MatchesPath) {
215
- if (uboModifierStack.length > 0) {
216
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(ERROR_MESSAGES.PSEUDO_CANNOT_BE_NESTED, formatPseudoName(uboSelectorCommon.UboPseudoName.MatchesPath), formatPseudoName(uboModifierStack[uboModifierStack.length - 1].name), formatPseudoName(constants.CSS_NOT_PSEUDO)), baseOffset + start - 1, baseOffset + raw.length);
217
- }
218
- let isException = false;
219
- let modifierBalance = balance;
220
- let modifierStart = start;
221
- for (let j = i - 1; j >= 0; j -= 1) {
222
- // If we have reached the root level, then we should check if the `not` function is
223
- // preceded by a colon (which means that it's a pseudo class)
224
- if (tokens[j].balance === 0) {
225
- modifierStart = tokens[j].start;
226
- modifierBalance = tokens[j].balance;
227
- break;
228
- }
229
- else if (tokens[j].type === cssTokenizer.TokenType.Colon
230
- || tokens[j].type === cssTokenizer.TokenType.Whitespace) {
231
- continue;
232
- }
233
- else if (tokens[j].type === cssTokenizer.TokenType.Function) {
234
- const wrapperFnName = raw.slice(tokens[j].start, tokens[j].end - 1);
235
- if (wrapperFnName !== constants.CSS_NOT_PSEUDO) {
236
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(ERROR_MESSAGES.PSEUDO_CANNOT_BE_NESTED, formatPseudoName(uboSelectorCommon.UboPseudoName.MatchesPath), formatPseudoName(wrapperFnName), formatPseudoName(constants.CSS_NOT_PSEUDO)), baseOffset + tokens[j].start - 1, baseOffset + raw.length);
237
- }
238
- if (tokens[j - 1]?.type !== cssTokenizer.TokenType.Colon) {
239
- const got = tokens[j - 1]?.type
240
- ? cssTokenizer.getFormattedTokenName(tokens[j - 1]?.type)
241
- : 'nothing';
242
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(ERROR_MESSAGES.EXPECTED_BUT_GOT_BEFORE, cssTokenizer.getFormattedTokenName(cssTokenizer.TokenType.Colon), got, formatPseudoName(uboSelectorCommon.UboPseudoName.MatchesPath, constants.CSS_NOT_PSEUDO)),
243
- // eslint-disable-next-line no-unsafe-optional-chaining
244
- baseOffset + tokens[j - 1]?.start || 0, baseOffset + raw.length);
245
- }
246
- isException = !isException;
247
- continue;
248
- }
249
- else {
250
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(ERROR_MESSAGES.NEGATED_UBO_MODIFIER_CANNOT_BE_PRECEDED_BY, formatPseudoName(uboSelectorCommon.UboPseudoName.MatchesPath), cssTokenizer.getFormattedTokenName(tokens[j].type)), baseOffset + tokens[j].start, baseOffset + raw.length);
251
- }
252
- }
253
- stackModifier({
254
- name: fn,
255
- modifierStart,
256
- modifierBalance,
257
- nameStart: start,
258
- nameEnd: end - 1, // ignore opening parenthesis
259
- valueStart: end,
260
- valueBalance: balance,
261
- isException,
262
- });
263
- }
264
- else {
265
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(ERROR_MESSAGES.UBO_MODIFIER_CANNOT_BE_NESTED, formatPseudoName(fn)), baseOffset + start - 1, baseOffset + raw.length);
266
- }
267
- }
268
- else {
269
- stackModifier({
270
- name: fn,
271
- modifierStart: start - 1, // Include the colon
272
- modifierBalance: balance,
273
- nameStart: start,
274
- nameEnd: end - 1, // ignore opening parenthesis
275
- valueStart: end,
276
- valueBalance: balance,
277
- isException: false,
278
- });
279
- }
280
- }
281
- }
282
- else {
283
- // Get the last stacked modifier
284
- const lastStackedModifier = uboModifierStack[uboModifierStack.length - 1];
285
- // Do not allow any other token after `:matches-path(...)` inside `:not(...)`
286
- if (lastStackedModifier?.name === uboSelectorCommon.UboPseudoName.MatchesPath && lastStackedModifier?.isException) {
287
- if (!(type === cssTokenizer.TokenType.CloseParenthesis || type === cssTokenizer.TokenType.Whitespace)
288
- && balance < lastStackedModifier.valueBalance) {
289
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(ERROR_MESSAGES.NEGATED_UBO_MODIFIER_CANNOT_BE_FOLLOWED_BY, formatPseudoName(uboSelectorCommon.UboPseudoName.MatchesPath), cssTokenizer.getFormattedTokenName(type)), baseOffset + start, baseOffset + raw.length);
290
- }
291
- }
292
- // If we have reached a closing parenthesis, then we should check if it closes the last stacked modifier
293
- // and if so, pop it from the stack
294
- if (type === cssTokenizer.TokenType.CloseParenthesis && lastStackedModifier) {
295
- if (balance === Math.max(0, lastStackedModifier.valueBalance - 1)) {
296
- lastStackedModifier.valueEnd = start;
297
- }
298
- if (balance === Math.max(0, lastStackedModifier.modifierBalance - 1)) {
299
- const modifierName = {
300
- type: 'Value',
301
- value: lastStackedModifier.name,
302
- };
303
- if (options$1.isLocIncluded) {
304
- // TODO: Refactor
305
- modifierName.start = baseOffset + lastStackedModifier.nameStart;
306
- modifierName.end = baseOffset + lastStackedModifier.nameEnd;
307
- }
308
- const value = {
309
- type: 'Value',
310
- value: raw.slice(lastStackedModifier.valueStart, lastStackedModifier.valueEnd),
311
- };
312
- if (options$1.isLocIncluded) {
313
- value.start = baseOffset + lastStackedModifier.valueStart;
314
- // It's safe to use `!` here, because we determined the value end index in the
315
- // previous `if` statement
316
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
317
- value.end = baseOffset + lastStackedModifier.valueEnd;
318
- }
319
- const modifier = {
320
- type: 'Modifier',
321
- name: modifierName,
322
- value,
323
- exception: lastStackedModifier.isException,
324
- };
325
- if (options$1.isLocIncluded) {
326
- modifier.start = baseOffset + lastStackedModifier.modifierStart;
327
- modifier.end = baseOffset + end;
328
- }
329
- modifiers.children.push(modifier);
330
- processedModifiers.add(lastStackedModifier.name);
331
- uboModifierStack.pop();
332
- // Mark the character slots in the selector string that are occupied by uBO modifiers
333
- uboIndexes.fill(true, lastStackedModifier.modifierStart, end);
334
- }
335
- }
336
- }
337
- // Save the token to the history and increase the index
338
- tokens.push({
339
- type,
340
- start,
341
- end,
342
- balance,
343
- });
344
- i += 1;
345
- });
346
- const selector = {
347
- type: 'Value',
348
- value: raw
349
- .split(constants.EMPTY)
350
- .map((char, p) => (uboIndexes[p] ? constants.EMPTY : char))
351
- .join(constants.EMPTY)
352
- .trim(),
353
- };
354
- if (options$1.isLocIncluded) {
355
- selector.start = baseOffset;
356
- selector.end = baseOffset + raw.length;
357
- }
358
- const result = {
359
- type: 'UboSelector',
360
- selector,
361
- modifiers,
362
- };
363
- if (options$1.isLocIncluded) {
364
- result.start = baseOffset;
365
- result.end = baseOffset + raw.length;
366
- }
367
- return result;
368
- }
369
- }
370
-
371
- exports.ERROR_MESSAGES = ERROR_MESSAGES;
372
- exports.UboSelectorParser = UboSelectorParser;
373
- exports.formatPseudoName = formatPseudoName;
@@ -1,104 +0,0 @@
1
- /*
2
- * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
3
- * (c) 2024 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- 'use strict';
8
-
9
- var ruleParser = require('./rule-parser.js');
10
- var constants = require('../utils/constants.js');
11
- var string = require('../utils/string.js');
12
- var options = require('./options.js');
13
- var baseParser = require('./base-parser.js');
14
-
15
- /**
16
- * `FilterListParser` is responsible for parsing a whole adblock filter list (list of rules).
17
- * It is a wrapper around `RuleParser` which parses each line separately.
18
- */
19
- class FilterListParser extends baseParser.BaseParser {
20
- /**
21
- * Parses a whole adblock filter list (list of rules).
22
- *
23
- * @param raw Raw input to parse.
24
- * @param options Global parser options.
25
- * @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
26
- * @returns AST of the source code (list of rules)
27
- * @example
28
- * ```js
29
- * import { readFileSync } from 'fs';
30
- * import { FilterListParser } from '@adguard/agtree';
31
- *
32
- * // Read filter list content from file
33
- * const content = readFileSync('your-adblock-filter-list.txt', 'utf-8');
34
- *
35
- * // Parse the filter list content, then do something with the AST
36
- * const ast = FilterListParser.parse(content);
37
- * ```
38
- * @throws If one of the rules is syntactically invalid (if `tolerant` is `false`)
39
- */
40
- static parse(raw, options$1 = options.defaultParserOptions, baseOffset = 0) {
41
- // Actual position in the source code
42
- let offset = 0;
43
- // Collect adblock rules here
44
- const rules = [];
45
- // Start offset of the current line (initially it's 0)
46
- let lineStartOffset = offset;
47
- while (offset < raw.length) {
48
- // Check if we found a new line
49
- if (string.StringUtils.isEOL(raw[offset])) {
50
- // Rule text
51
- const text = raw.slice(lineStartOffset, offset);
52
- // Parse the rule
53
- const rule = ruleParser.RuleParser.parse(text, options$1, lineStartOffset);
54
- // Get newline type (possible values: 'crlf', 'lf', 'cr' or undefined if no newline found)
55
- let nl;
56
- if (raw[offset] === constants.CR) {
57
- if (raw[offset + 1] === constants.LF) {
58
- nl = 'crlf';
59
- }
60
- else {
61
- nl = 'cr';
62
- }
63
- }
64
- else if (raw[offset] === constants.LF) {
65
- nl = 'lf';
66
- }
67
- // Add newline type to the rule (rule parser already added raws.text)
68
- if (!rule.raws) {
69
- rule.raws = {
70
- text,
71
- nl,
72
- };
73
- }
74
- else {
75
- rule.raws.nl = nl;
76
- }
77
- // Add the rule to the list
78
- rules.push(rule);
79
- // Update offset: add 2 if we found CRLF, otherwise add 1
80
- offset += nl === 'crlf' ? 2 : 1;
81
- // Update line start offset
82
- lineStartOffset = offset;
83
- }
84
- else {
85
- // No new line found, just increase offset
86
- offset += 1;
87
- }
88
- }
89
- // Parse the last rule (it doesn't end with a new line)
90
- rules.push(ruleParser.RuleParser.parse(raw.slice(lineStartOffset, offset), options$1, baseOffset + lineStartOffset));
91
- // Return the list of rules (FilterList node)
92
- const result = {
93
- type: 'FilterList',
94
- children: rules,
95
- };
96
- if (options$1.isLocIncluded) {
97
- result.start = baseOffset;
98
- result.end = baseOffset + raw.length;
99
- }
100
- return result;
101
- }
102
- }
103
-
104
- exports.FilterListParser = FilterListParser;
@@ -1,21 +0,0 @@
1
- /*
2
- * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
3
- * (c) 2024 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- 'use strict';
8
-
9
- var ruleParser = require('./rule-parser.js');
10
- var options = require('./options.js');
11
- var cosmeticRuleParser = require('./cosmetic/cosmetic-rule-parser.js');
12
- var domainListParser = require('./misc/domain-list-parser.js');
13
- var networkRuleParser = require('./network/network-rule-parser.js');
14
-
15
-
16
-
17
- exports.RuleParser = ruleParser.RuleParser;
18
- exports.defaultParserOptions = options.defaultParserOptions;
19
- exports.CosmeticRuleParser = cosmeticRuleParser.CosmeticRuleParser;
20
- exports.DomainListParser = domainListParser.DomainListParser;
21
- exports.NetworkRuleParser = networkRuleParser.NetworkRuleParser;
@@ -1,47 +0,0 @@
1
- /*
2
- * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
3
- * (c) 2024 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- 'use strict';
8
-
9
- var constants = require('../../utils/constants.js');
10
- var index = require('../../nodes/index.js');
11
- var options = require('../options.js');
12
- var baseParser = require('../base-parser.js');
13
- var listItemsParser = require('./list-items-parser.js');
14
-
15
- /**
16
- * `AppListParser` is responsible for parsing an app list.
17
- *
18
- * @see {@link https://adguard.app/kb/general/ad-filtering/create-own-filters/#app-modifier}
19
- */
20
- class AppListParser extends baseParser.BaseParser {
21
- /**
22
- * Parses an app list which items are separated by `|`,
23
- * e.g. `Example.exe|com.example.osx`.
24
- *
25
- * @param raw Raw input to parse.
26
- * @param options Global parser options.
27
- * @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
28
- *
29
- * @returns App list AST.
30
- * @throws An {@link AdblockSyntaxError} if the app list is syntactically invalid.
31
- * @throws An {@link Error} if the options are invalid.
32
- */
33
- static parse(raw, options$1 = options.defaultParserOptions, baseOffset = 0) {
34
- const result = {
35
- type: index.ListNodeType.AppList,
36
- separator: constants.PIPE,
37
- children: listItemsParser.ListItemsParser.parse(raw, options$1, baseOffset, constants.PIPE, index.ListItemNodeType.App),
38
- };
39
- if (options$1.isLocIncluded) {
40
- result.start = baseOffset;
41
- result.end = baseOffset + raw.length;
42
- }
43
- return result;
44
- }
45
- }
46
-
47
- exports.AppListParser = AppListParser;
@@ -1,54 +0,0 @@
1
- /*
2
- * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
3
- * (c) 2024 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- 'use strict';
8
-
9
- var constants = require('../../utils/constants.js');
10
- var index = require('../../nodes/index.js');
11
- var options = require('../options.js');
12
- var baseParser = require('../base-parser.js');
13
- var listItemsParser = require('./list-items-parser.js');
14
-
15
- /**
16
- * `DomainListParser` is responsible for parsing a domain list.
17
- *
18
- * @example
19
- * - If the rule is `example.com,~example.net##.ads`, the domain list is `example.com,~example.net`.
20
- * - If the rule is `ads.js^$script,domains=example.com|~example.org`, the domain list is `example.com|~example.org`.
21
- * This parser is responsible for parsing these domain lists.
22
- * @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#elemhide_domains}
23
- */
24
- class DomainListParser extends baseParser.BaseParser {
25
- /**
26
- * Parses a domain list, eg. `example.com,example.org,~example.org`
27
- *
28
- * @param raw Raw input to parse.
29
- * @param options Global parser options.
30
- * @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
31
- * @param separator Separator character (default: comma)
32
- *
33
- * @returns Domain list AST.
34
- * @throws An {@link AdblockSyntaxError} if the domain list is syntactically invalid.
35
- * @throws An {@link Error} if the options are invalid.
36
- */
37
- static parse(raw, options$1 = options.defaultParserOptions, baseOffset = 0, separator = constants.COMMA) {
38
- if (separator !== constants.COMMA && separator !== constants.PIPE) {
39
- throw new Error(`Invalid separator: ${separator}`);
40
- }
41
- const result = {
42
- type: index.ListNodeType.DomainList,
43
- separator,
44
- children: listItemsParser.ListItemsParser.parse(raw, options$1, baseOffset, separator, index.ListItemNodeType.Domain),
45
- };
46
- if (options$1.isLocIncluded) {
47
- result.start = baseOffset;
48
- result.end = baseOffset + raw.length;
49
- }
50
- return result;
51
- }
52
- }
53
-
54
- exports.DomainListParser = DomainListParser;