@adguard/agtree 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) 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} +43 -13
  33. package/dist/{esm/converter/cosmetic/rule-modifiers/adg.mjs → converter/cosmetic/rule-modifiers/adg.js} +10 -10
  34. package/dist/converter/cosmetic/rule-modifiers/ubo.js +149 -0
  35. package/dist/{esm/converter/cosmetic/scriptlet.mjs → converter/cosmetic/scriptlet.js} +23 -23
  36. package/dist/{esm/converter/css/index.mjs → converter/css/index.js} +21 -25
  37. package/dist/{esm/converter/data/css.mjs → converter/data/css.js} +2 -2
  38. package/dist/{esm/converter/filter-list.mjs → converter/filter-list.js} +7 -7
  39. package/dist/converter/index.js +8 -0
  40. package/dist/{esm/converter/misc/network-rule-modifier.mjs → converter/misc/network-rule-modifier.js} +22 -22
  41. package/dist/{esm/converter/network/index.mjs → converter/network/index.js} +6 -6
  42. package/dist/{esm/converter/raw-filter-list.mjs → converter/raw-filter-list.js} +9 -9
  43. package/dist/{esm/converter/rule.mjs → converter/rule.js} +9 -9
  44. package/dist/{esm/deserializer/base-deserializer.mjs → deserializer/base-deserializer.js} +4 -4
  45. package/dist/{esm/deserializer/comment/agent-comment-deserializer.mjs → deserializer/comment/agent-comment-deserializer.js} +14 -9
  46. package/dist/{esm/deserializer/comment/agent-deserializer.mjs → deserializer/comment/agent-deserializer.js} +8 -8
  47. package/dist/{esm/deserializer/comment/comment-rule-deserializer.mjs → deserializer/comment/comment-rule-deserializer.js} +11 -64
  48. package/dist/{esm/deserializer/comment/config-comment-deserializer.mjs → deserializer/comment/config-comment-deserializer.js} +10 -10
  49. package/dist/{esm/deserializer/comment/hint-comment-deserializer.mjs → deserializer/comment/hint-comment-deserializer.js} +15 -10
  50. package/dist/{esm/deserializer/comment/hint-deserializer.mjs → deserializer/comment/hint-deserializer.js} +8 -8
  51. package/dist/{esm/deserializer/comment/metadata-comment-deserializer.mjs → deserializer/comment/metadata-comment-deserializer.js} +9 -9
  52. package/dist/{esm/deserializer/comment/pre-processor-comment-deserializer.mjs → deserializer/comment/pre-processor-comment-deserializer.js} +12 -12
  53. package/dist/{esm/deserializer/comment/simple-comment-deserializer.mjs → deserializer/comment/simple-comment-deserializer.js} +9 -9
  54. package/dist/{esm/deserializer/cosmetic/cosmetic-rule-deserializer.mjs → deserializer/cosmetic/cosmetic-rule-deserializer.js} +24 -18
  55. package/dist/{esm/deserializer/cosmetic/css-injection-body-deserializer.mjs → deserializer/cosmetic/css-injection-body-deserializer.js} +10 -7
  56. package/dist/{esm/deserializer/cosmetic/element-hiding-body-deserializer.mjs → deserializer/cosmetic/element-hiding-body-deserializer.js} +11 -7
  57. 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
  58. 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
  59. package/dist/{esm/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js} +11 -7
  60. 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
  61. package/dist/{esm/deserializer/empty-rule-deserializer.mjs → deserializer/empty-rule-deserializer.js} +12 -8
  62. package/dist/{esm/deserializer/filterlist-deserializer.mjs → deserializer/filterlist-deserializer.js} +11 -7
  63. package/dist/{esm/deserializer/index.mjs → deserializer/index.js} +4 -4
  64. package/dist/{esm/deserializer/invalid-rule-deserializer.mjs → deserializer/invalid-rule-deserializer.js} +12 -8
  65. package/dist/{esm/deserializer/invalid-rule-error-node-deserializer.mjs → deserializer/invalid-rule-error-node-deserializer.js} +10 -6
  66. package/dist/{esm/deserializer/misc/domain-list-deserializer.mjs → deserializer/misc/domain-list-deserializer.js} +8 -8
  67. package/dist/{esm/deserializer/misc/list-item-deserializer.mjs → deserializer/misc/list-item-deserializer.js} +13 -7
  68. package/dist/{esm/deserializer/misc/list-items-deserializer.mjs → deserializer/misc/list-items-deserializer.js} +7 -3
  69. package/dist/{esm/deserializer/misc/logical-expression-deserializer.mjs → deserializer/misc/logical-expression-deserializer.js} +8 -8
  70. package/dist/{esm/deserializer/misc/modifier-deserializer.mjs → deserializer/misc/modifier-deserializer.js} +8 -8
  71. package/dist/{esm/deserializer/misc/modifier-list-deserializer.mjs → deserializer/misc/modifier-list-deserializer.js} +12 -7
  72. package/dist/{esm/deserializer/misc/parameter-list-deserializer.mjs → deserializer/misc/parameter-list-deserializer.js} +11 -7
  73. package/dist/{esm/deserializer/misc/value-deserializer.mjs → deserializer/misc/value-deserializer.js} +6 -6
  74. package/dist/{esm/deserializer/network/host-rule-deserializer.mjs → deserializer/network/host-rule-deserializer.js} +15 -27
  75. package/dist/{esm/deserializer/network/hostname-list-deserializer.mjs → deserializer/network/hostname-list-deserializer.js} +15 -7
  76. package/dist/{esm/deserializer/network/network-rule-deserializer.mjs → deserializer/network/network-rule-deserializer.js} +11 -11
  77. package/dist/{esm/deserializer/rule-deserializer.mjs → deserializer/rule-deserializer.js} +10 -10
  78. package/dist/{esm/deserializer/syntax-deserialization-map.mjs → deserializer/syntax-deserialization-map.js} +3 -3
  79. package/dist/{esm/errors/adblock-syntax-error.mjs → errors/adblock-syntax-error.js} +2 -2
  80. package/dist/{esm/errors/binary-schema-mismatch-error.mjs → errors/binary-schema-mismatch-error.js} +2 -2
  81. package/dist/{esm/errors/not-implemented-error.mjs → errors/not-implemented-error.js} +2 -2
  82. package/dist/{esm/errors/rule-conversion-error.mjs → errors/rule-conversion-error.js} +2 -2
  83. package/dist/{esm/generator/base-generator.mjs → generator/base-generator.js} +4 -4
  84. package/dist/{esm/generator/comment/agent-comment-generator.mjs → generator/comment/agent-comment-generator.js} +8 -5
  85. package/dist/{esm/generator/comment/agent-generator.mjs → generator/comment/agent-generator.js} +9 -5
  86. package/dist/{esm/generator/comment/comment-rule-generator.mjs → generator/comment/comment-rule-generator.js} +11 -64
  87. package/dist/{esm/generator/comment/config-comment-generator.mjs → generator/comment/config-comment-generator.js} +8 -5
  88. package/dist/{esm/generator/comment/hint-comment-generator.mjs → generator/comment/hint-comment-generator.js} +8 -5
  89. package/dist/{esm/generator/comment/hint-generator.mjs → generator/comment/hint-generator.js} +11 -8
  90. package/dist/{esm/generator/comment/metadata-comment-generator.mjs → generator/comment/metadata-comment-generator.js} +8 -5
  91. package/dist/{esm/generator/comment/pre-processor-comment-generator.mjs → generator/comment/pre-processor-comment-generator.js} +10 -7
  92. package/dist/{esm/generator/comment/simple-comment-generator.mjs → generator/comment/simple-comment-generator.js} +8 -5
  93. package/dist/{esm/generator/cosmetic/body/abp-snippet-injection-body-generator.mjs → generator/cosmetic/body/abp-snippet-injection-body-generator.js} +10 -6
  94. package/dist/{esm/generator/cosmetic/body/adg-scriptlet-injection-body-generator.mjs → generator/cosmetic/body/adg-scriptlet-injection-body-generator.js} +10 -6
  95. package/dist/{esm/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.mjs → generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js} +10 -6
  96. package/dist/{esm/generator/cosmetic/cosmetic-rule-body-generator.mjs → generator/cosmetic/cosmetic-rule-body-generator.js} +17 -13
  97. package/dist/{esm/generator/cosmetic/cosmetic-rule-generator.mjs → generator/cosmetic/cosmetic-rule-generator.js} +19 -21
  98. package/dist/{esm/generator/cosmetic/cosmetic-rule-pattern-generator.mjs → generator/cosmetic/cosmetic-rule-pattern-generator.js} +10 -7
  99. package/dist/{esm/generator/css/adg-css-injection-generator.mjs → generator/css/adg-css-injection-generator.js} +8 -5
  100. package/dist/{esm/generator/filterlist-generator.mjs → generator/filterlist-generator.js} +21 -9
  101. package/dist/{esm/generator/index.mjs → generator/index.js} +5 -5
  102. package/dist/{esm/generator/misc/domain-list-generator.mjs → generator/misc/domain-list-generator.js} +7 -4
  103. package/dist/{esm/generator/misc/list-items-generator.mjs → generator/misc/list-items-generator.js} +6 -3
  104. package/dist/{esm/generator/misc/logical-expression-generator.mjs → generator/misc/logical-expression-generator.js} +8 -5
  105. package/dist/{esm/generator/misc/modifier-generator.mjs → generator/misc/modifier-generator.js} +9 -6
  106. package/dist/{esm/generator/misc/modifier-list-generator.mjs → generator/misc/modifier-list-generator.js} +8 -5
  107. package/dist/{esm/generator/misc/parameter-list-generator.mjs → generator/misc/parameter-list-generator.js} +8 -6
  108. package/dist/{esm/generator/misc/value-generator.mjs → generator/misc/value-generator.js} +6 -3
  109. package/dist/{esm/generator/network/host-rule-generator.mjs → generator/network/host-rule-generator.js} +7 -4
  110. package/dist/{esm/generator/network/network-rule-generator.mjs → generator/network/network-rule-generator.js} +11 -8
  111. package/dist/{esm/generator/rule-generator.mjs → generator/rule-generator.js} +12 -9
  112. package/dist/{esm/index.mjs → index.js} +66 -66
  113. package/dist/{cjs/marshalling-utils/empty-rule-common.js → marshalling-utils/comment/agent-comment-common.js} +9 -9
  114. package/dist/{esm/marshalling-utils/comment/agent-common.mjs → marshalling-utils/comment/agent-common.js} +8 -9
  115. package/dist/{esm/marshalling-utils/comment/config-comment-common.mjs → marshalling-utils/comment/config-comment-common.js} +15 -17
  116. package/dist/marshalling-utils/comment/hint-comment-common.js +22 -0
  117. package/dist/{esm/marshalling-utils/comment/hint-common.mjs → marshalling-utils/comment/hint-common.js} +8 -9
  118. package/dist/{esm/marshalling-utils/comment/metadata-comment-common.mjs → marshalling-utils/comment/metadata-comment-common.js} +9 -10
  119. package/dist/{esm/marshalling-utils/comment/pre-processor-comment-common.mjs → marshalling-utils/comment/pre-processor-comment-common.js} +9 -10
  120. package/dist/marshalling-utils/comment/simple-comment-common.js +22 -0
  121. 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
  122. 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
  123. package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +24 -0
  124. package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +21 -0
  125. 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
  126. package/dist/{esm/marshalling-utils/cosmetic/cosmetic-rule-common.mjs → marshalling-utils/cosmetic/cosmetic-rule-common.js} +10 -13
  127. package/dist/{esm/marshalling-utils/empty-rule-common.mjs → marshalling-utils/empty-rule-common.js} +6 -7
  128. package/dist/marshalling-utils/filter-list-common.js +21 -0
  129. package/dist/{esm/marshalling-utils/invalid-rule-common.mjs → marshalling-utils/invalid-rule-common.js} +7 -8
  130. package/dist/marshalling-utils/invalid-rule-error-node-common.js +22 -0
  131. package/dist/marshalling-utils/misc/binary-type-common.js +54 -0
  132. package/dist/{esm/marshalling-utils/misc/domain-list-common.mjs → marshalling-utils/misc/domain-list-common.js} +9 -10
  133. package/dist/marshalling-utils/misc/host-rule-common.js +24 -0
  134. package/dist/marshalling-utils/misc/hostname-list-common.js +21 -0
  135. package/dist/marshalling-utils/misc/list-item-common.js +22 -0
  136. package/dist/marshalling-utils/misc/logical-expression-common.js +83 -0
  137. package/dist/{esm/marshalling-utils/misc/modifier-common.mjs → marshalling-utils/misc/modifier-common.js} +9 -10
  138. package/dist/marshalling-utils/misc/modifier-list-common.js +21 -0
  139. package/dist/marshalling-utils/misc/parameter-list-common.js +21 -0
  140. package/dist/marshalling-utils/misc/value-common.js +22 -0
  141. package/dist/marshalling-utils/network/network-rule-common.js +24 -0
  142. package/dist/{esm/marshalling-utils/syntax-serialization-map.mjs → marshalling-utils/syntax-serialization-map.js} +3 -3
  143. package/dist/{esm/nodes/index.mjs → nodes/index.js} +66 -79
  144. package/dist/{esm/package.json.mjs → package.json.js} +3 -3
  145. package/dist/{esm/parser/base-parser.mjs → parser/base-parser.js} +3 -3
  146. package/dist/{esm/parser/comment/agent-comment-parser.mjs → parser/comment/agent-comment-parser.js} +12 -12
  147. package/dist/{esm/parser/comment/agent-parser.mjs → parser/comment/agent-parser.js} +19 -14
  148. package/dist/{esm/parser/comment/comment-parser.mjs → parser/comment/comment-parser.js} +10 -10
  149. package/dist/{esm/parser/comment/config-comment-parser.mjs → parser/comment/config-comment-parser.js} +10 -10
  150. package/dist/{esm/parser/comment/hint-comment-parser.mjs → parser/comment/hint-comment-parser.js} +10 -10
  151. package/dist/{esm/parser/comment/hint-parser.mjs → parser/comment/hint-parser.js} +9 -9
  152. package/dist/{esm/parser/comment/metadata-comment-parser.mjs → parser/comment/metadata-comment-parser.js} +11 -11
  153. package/dist/{esm/parser/comment/preprocessor-parser.mjs → parser/comment/preprocessor-parser.js} +12 -12
  154. package/dist/{esm/parser/comment/simple-comment-parser.mjs → parser/comment/simple-comment-parser.js} +9 -9
  155. package/dist/{esm/parser/cosmetic/body/abp-snippet-injection-body-parser.mjs → parser/cosmetic/body/abp-snippet-injection-body-parser.js} +9 -9
  156. package/dist/{esm/parser/cosmetic/body/adg-scriptlet-injection-body-parser.mjs → parser/cosmetic/body/adg-scriptlet-injection-body-parser.js} +9 -9
  157. package/dist/{esm/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.mjs → parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js} +8 -8
  158. package/dist/{esm/parser/cosmetic/cosmetic-rule-parser.mjs → parser/cosmetic/cosmetic-rule-parser.js} +63 -23
  159. package/dist/{esm/parser/css/adg-css-injection-parser.mjs → parser/css/adg-css-injection-parser.js} +7 -7
  160. package/dist/{esm/parser/css/balancing.mjs → parser/css/balancing.js} +6 -6
  161. package/dist/{esm/parser/css/constants.mjs → parser/css/constants.js} +2 -2
  162. package/dist/{esm/parser/css/css-token-stream.mjs → parser/css/css-token-stream.js} +24 -14
  163. package/dist/{esm/parser/css/ubo-selector-parser.mjs → parser/css/ubo-selector-parser.js} +8 -8
  164. package/dist/{esm/parser/filterlist-parser.mjs → parser/filterlist-parser.js} +7 -7
  165. package/dist/parser/index.js +12 -0
  166. package/dist/{esm/parser/misc/app-list-parser.mjs → parser/misc/app-list-parser.js} +7 -7
  167. package/dist/{esm/parser/misc/domain-list-parser.mjs → parser/misc/domain-list-parser.js} +7 -7
  168. package/dist/{esm/parser/misc/list-items-parser.mjs → parser/misc/list-items-parser.js} +10 -7
  169. package/dist/{esm/parser/misc/logical-expression-parser.mjs → parser/misc/logical-expression-parser.js} +18 -20
  170. package/dist/{esm/parser/misc/method-list-parser.mjs → parser/misc/method-list-parser.js} +7 -7
  171. package/dist/{esm/parser/misc/modifier-list.mjs → parser/misc/modifier-list.js} +7 -7
  172. package/dist/{esm/parser/misc/modifier-parser.mjs → parser/misc/modifier-parser.js} +8 -8
  173. package/dist/{esm/parser/misc/parameter-list-parser.mjs → parser/misc/parameter-list-parser.js} +10 -7
  174. package/dist/{esm/parser/misc/stealth-option-list-parser.mjs → parser/misc/stealth-option-list-parser.js} +7 -7
  175. package/dist/{esm/parser/misc/ubo-parameter-list-parser.mjs → parser/misc/ubo-parameter-list-parser.js} +12 -9
  176. package/dist/{esm/parser/misc/value-parser.mjs → parser/misc/value-parser.js} +5 -5
  177. package/dist/{esm/parser/network/host-rule-parser.mjs → parser/network/host-rule-parser.js} +11 -11
  178. package/dist/{esm/parser/network/network-rule-parser.mjs → parser/network/network-rule-parser.js} +17 -11
  179. package/dist/{esm/parser/options.mjs → parser/options.js} +2 -2
  180. package/dist/{esm/parser/rule-parser.mjs → parser/rule-parser.js} +11 -11
  181. package/dist/{esm/serializer/base-serializer.mjs → serializer/base-serializer.js} +3 -3
  182. package/dist/{esm/serializer/comment/agent-comment-serializer.mjs → serializer/comment/agent-comment-serializer.js} +11 -8
  183. package/dist/{esm/serializer/comment/agent-serializer.mjs → serializer/comment/agent-serializer.js} +9 -18
  184. package/dist/{esm/serializer/comment/comment-rule-serializer.mjs → serializer/comment/comment-rule-serializer.js} +10 -10
  185. package/dist/{esm/serializer/comment/config-comment-serializer.mjs → serializer/comment/config-comment-serializer.js} +10 -10
  186. package/dist/{esm/serializer/comment/hint-comment-serializer.mjs → serializer/comment/hint-comment-serializer.js} +13 -10
  187. package/dist/{esm/serializer/comment/hint-serializer.mjs → serializer/comment/hint-serializer.js} +9 -9
  188. package/dist/{esm/serializer/comment/metadata-comment-serializer.mjs → serializer/comment/metadata-comment-serializer.js} +8 -8
  189. package/dist/{esm/serializer/comment/pre-processor-comment-serializer.mjs → serializer/comment/pre-processor-comment-serializer.js} +11 -11
  190. package/dist/{esm/serializer/comment/simple-comment-serializer.mjs → serializer/comment/simple-comment-serializer.js} +10 -10
  191. package/dist/{esm/serializer/cosmetic/body/abp-snippet-injection-body-serializer.mjs → serializer/cosmetic/body/abp-snippet-injection-body-serializer.js} +9 -9
  192. package/dist/{esm/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.mjs → serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js} +9 -9
  193. package/dist/{esm/serializer/cosmetic/body/scriptlet-body-serializer.mjs → serializer/cosmetic/body/scriptlet-body-serializer.js} +16 -13
  194. package/dist/{esm/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.mjs → serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js} +5 -5
  195. package/dist/{esm/serializer/cosmetic/cosmetic-rule-serializer.mjs → serializer/cosmetic/cosmetic-rule-serializer.js} +22 -31
  196. package/dist/{esm/serializer/cosmetic/css-injection-body-serializer.mjs → serializer/cosmetic/css-injection-body-serializer.js} +11 -8
  197. package/dist/{esm/serializer/cosmetic/element-hiding-body-serializer.mjs → serializer/cosmetic/element-hiding-body-serializer.js} +11 -8
  198. package/dist/{esm/serializer/empty-rule-serializer.mjs → serializer/empty-rule-serializer.js} +10 -7
  199. package/dist/{esm/serializer/filterlist-serializer.mjs → serializer/filterlist-serializer.js} +9 -10
  200. package/dist/serializer/index.js +7 -0
  201. package/dist/{esm/serializer/invalid-rule-error-node-serializer.mjs → serializer/invalid-rule-error-node-serializer.js} +10 -7
  202. package/dist/{esm/serializer/invalid-rule-serializer.mjs → serializer/invalid-rule-serializer.js} +11 -8
  203. package/dist/{esm/serializer/misc/domain-list-serializer.mjs → serializer/misc/domain-list-serializer.js} +10 -10
  204. package/dist/{esm/serializer/misc/list-item-serializer.mjs → serializer/misc/list-item-serializer.js} +11 -8
  205. package/dist/{esm/serializer/misc/list-items-serializer.mjs → serializer/misc/list-items-serializer.js} +6 -3
  206. package/dist/{esm/serializer/misc/logical-expression-serializer.mjs → serializer/misc/logical-expression-serializer.js} +14 -14
  207. package/dist/{esm/serializer/misc/modifier-list-serializer.mjs → serializer/misc/modifier-list-serializer.js} +11 -8
  208. package/dist/{esm/serializer/misc/modifier-serializer.mjs → serializer/misc/modifier-serializer.js} +8 -8
  209. package/dist/{esm/serializer/misc/parameter-list-serializer.mjs → serializer/misc/parameter-list-serializer.js} +11 -8
  210. package/dist/{esm/serializer/misc/value-serializer.mjs → serializer/misc/value-serializer.js} +7 -7
  211. package/dist/{esm/serializer/network/host-rule-serializer.mjs → serializer/network/host-rule-serializer.js} +10 -10
  212. package/dist/{esm/serializer/network/hostname-list-serializer.mjs → serializer/network/hostname-list-serializer.js} +14 -8
  213. package/dist/{esm/serializer/network/network-rule-serializer.mjs → serializer/network/network-rule-serializer.js} +10 -10
  214. package/dist/{esm/serializer/rule-serializer.mjs → serializer/rule-serializer.js} +10 -10
  215. package/dist/types/common/abp-snippet-injection-body-common.d.ts +7 -0
  216. package/dist/types/common/ubo-selector-common.d.ts +7 -6
  217. package/dist/types/compatibility-tables/compatibility-table-data.d.ts +2 -1
  218. package/dist/types/compatibility-tables/platforms.d.ts +36 -34
  219. package/dist/types/compatibility-tables/schemas/base.d.ts +1 -12
  220. package/dist/types/compatibility-tables/schemas/modifier.d.ts +5 -0
  221. package/dist/types/compatibility-tables/schemas/redirect.d.ts +1 -1
  222. package/dist/types/compatibility-tables/schemas/resource-type.d.ts +29 -15
  223. package/dist/types/compatibility-tables/utils/zod-camelcase.d.ts +1 -1
  224. package/dist/types/converter/cosmetic/rule-modifiers/ubo.d.ts +24 -0
  225. package/dist/types/converter/css/index.d.ts +17 -0
  226. package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +1 -54
  227. package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +6 -0
  228. package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +3 -0
  229. package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +4 -0
  230. package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +4 -0
  231. package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +5 -0
  232. package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +4 -0
  233. package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +4 -1
  234. package/dist/types/deserializer/empty-rule-deserializer.d.ts +4 -0
  235. package/dist/types/deserializer/filterlist-deserializer.d.ts +4 -0
  236. package/dist/types/deserializer/invalid-rule-deserializer.d.ts +4 -0
  237. package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +4 -0
  238. package/dist/types/deserializer/misc/list-item-deserializer.d.ts +6 -0
  239. package/dist/types/deserializer/misc/list-items-deserializer.d.ts +4 -0
  240. package/dist/types/deserializer/misc/modifier-deserializer.d.ts +1 -1
  241. package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +4 -0
  242. package/dist/types/deserializer/network/host-rule-deserializer.d.ts +4 -16
  243. package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +3 -0
  244. package/dist/types/generator/comment/agent-comment-generator.d.ts +3 -0
  245. package/dist/types/generator/comment/agent-generator.d.ts +4 -0
  246. package/dist/types/generator/comment/comment-rule-generator.d.ts +1 -54
  247. package/dist/types/generator/comment/config-comment-generator.d.ts +3 -0
  248. package/dist/types/generator/comment/hint-comment-generator.d.ts +3 -0
  249. package/dist/types/generator/comment/hint-generator.d.ts +6 -3
  250. package/dist/types/generator/comment/index.d.ts +1 -2
  251. package/dist/types/generator/comment/metadata-comment-generator.d.ts +3 -0
  252. package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +3 -0
  253. package/dist/types/generator/comment/simple-comment-generator.d.ts +3 -0
  254. package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +4 -0
  255. package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +5 -1
  256. package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +5 -1
  257. package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +5 -0
  258. package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +3 -11
  259. package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +3 -0
  260. package/dist/types/generator/css/adg-css-injection-generator.d.ts +3 -0
  261. package/dist/types/generator/css/ubo-selector-generator.d.ts +3 -0
  262. package/dist/types/generator/filterlist-generator.d.ts +4 -3
  263. package/dist/types/generator/misc/domain-list-generator.d.ts +3 -0
  264. package/dist/types/generator/misc/list-items-generator.d.ts +3 -0
  265. package/dist/types/generator/misc/logical-expression-generator.d.ts +3 -0
  266. package/dist/types/generator/misc/modifier-generator.d.ts +5 -2
  267. package/dist/types/generator/misc/modifier-list-generator.d.ts +3 -0
  268. package/dist/types/generator/misc/parameter-list-generator.d.ts +3 -0
  269. package/dist/types/generator/misc/value-generator.d.ts +3 -0
  270. package/dist/types/generator/network/host-rule-generator.d.ts +3 -0
  271. package/dist/types/generator/network/network-rule-generator.d.ts +6 -3
  272. package/dist/types/generator/rule-generator.d.ts +3 -0
  273. package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +6 -5
  274. package/dist/types/marshalling-utils/comment/agent-common.d.ts +7 -6
  275. package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +15 -13
  276. package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +7 -6
  277. package/dist/types/marshalling-utils/comment/hint-common.d.ts +7 -6
  278. package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +8 -7
  279. package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +8 -7
  280. package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +7 -6
  281. package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +6 -5
  282. package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +9 -8
  283. package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +6 -5
  284. package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +11 -10
  285. package/dist/types/marshalling-utils/empty-rule-common.d.ts +5 -4
  286. package/dist/types/marshalling-utils/filter-list-common.d.ts +6 -5
  287. package/dist/types/marshalling-utils/invalid-rule-common.d.ts +6 -5
  288. package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +7 -6
  289. package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +52 -51
  290. package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +7 -6
  291. package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +10 -9
  292. package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +6 -5
  293. package/dist/types/marshalling-utils/misc/list-item-common.d.ts +7 -6
  294. package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +21 -18
  295. package/dist/types/marshalling-utils/misc/modifier-common.d.ts +8 -7
  296. package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +6 -5
  297. package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +6 -5
  298. package/dist/types/marshalling-utils/misc/value-common.d.ts +7 -6
  299. package/dist/types/marshalling-utils/network/network-rule-common.d.ts +10 -9
  300. package/dist/types/nodes/index.d.ts +104 -98
  301. package/dist/types/parser/comment/agent-parser.d.ts +7 -0
  302. package/dist/types/parser/css/balancing.d.ts +21 -1
  303. package/dist/types/parser/index.d.ts +1 -0
  304. package/dist/types/parser/misc/list-items-parser.d.ts +3 -0
  305. package/dist/types/parser/misc/logical-expression-parser.d.ts +6 -5
  306. package/dist/types/parser/misc/parameter-list-parser.d.ts +3 -0
  307. package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +3 -0
  308. package/dist/types/parser/misc/value-parser.d.ts +1 -1
  309. package/dist/types/serializer/comment/agent-serializer.d.ts +1 -10
  310. package/dist/types/serializer/comment/config-comment-serializer.d.ts +1 -1
  311. package/dist/types/serializer/comment/simple-comment-serializer.d.ts +2 -2
  312. package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +4 -4
  313. package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +4 -4
  314. package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +8 -5
  315. package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +4 -11
  316. package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +3 -0
  317. package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +3 -0
  318. package/dist/types/serializer/empty-rule-serializer.d.ts +3 -0
  319. package/dist/types/serializer/filterlist-serializer.d.ts +1 -2
  320. package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +3 -0
  321. package/dist/types/serializer/invalid-rule-serializer.d.ts +3 -0
  322. package/dist/types/serializer/misc/domain-list-serializer.d.ts +2 -2
  323. package/dist/types/serializer/misc/list-item-serializer.d.ts +3 -0
  324. package/dist/types/serializer/misc/list-items-serializer.d.ts +3 -0
  325. package/dist/types/serializer/misc/logical-expression-serializer.d.ts +7 -6
  326. package/dist/types/serializer/misc/parameter-list-serializer.d.ts +3 -0
  327. package/dist/types/serializer/network/hostname-list-serializer.d.ts +3 -0
  328. package/dist/types/utils/adblockers.d.ts +7 -6
  329. package/dist/types/utils/constants.d.ts +5 -0
  330. package/dist/types/utils/domain.d.ts +3 -0
  331. package/dist/types/utils/index.d.ts +1 -1
  332. package/dist/types/utils/input-byte-buffer.d.ts +6 -0
  333. package/dist/types/utils/output-byte-buffer.d.ts +6 -0
  334. package/dist/types/utils/quotes.d.ts +7 -6
  335. package/dist/types/utils/regexp.d.ts +21 -0
  336. package/dist/types/utils/string.d.ts +3 -0
  337. package/dist/types/validator/value.d.ts +2 -1
  338. package/dist/{esm/utils/adblockers.mjs → utils/adblockers.js} +8 -9
  339. package/dist/{esm/utils/binary-schema-version.mjs → utils/binary-schema-version.js} +2 -2
  340. package/dist/{esm/utils/byte-buffer.mjs → utils/byte-buffer.js} +2 -2
  341. package/dist/{esm/utils/categorizer.mjs → utils/categorizer.js} +5 -5
  342. package/dist/{esm/utils/clone.mjs → utils/clone.js} +2 -2
  343. package/dist/{esm/utils/constants.mjs → utils/constants.js} +10 -3
  344. package/dist/{esm/utils/cosmetic-rule-separator.mjs → utils/cosmetic-rule-separator.js} +4 -4
  345. package/dist/{esm/utils/deep-freeze.mjs → utils/deep-freeze.js} +2 -2
  346. package/dist/{esm/utils/domain.mjs → utils/domain.js} +6 -3
  347. package/dist/{esm/utils/error.mjs → utils/error.js} +2 -2
  348. package/dist/utils/index.js +21 -0
  349. package/dist/{esm/utils/input-byte-buffer.mjs → utils/input-byte-buffer.js} +17 -8
  350. package/dist/{esm/utils/is-chromium.mjs → utils/is-chromium.js} +2 -2
  351. package/dist/{esm/utils/logical-expression.mjs → utils/logical-expression.js} +4 -4
  352. package/dist/{esm/utils/multi-value-map.mjs → utils/multi-value-map.js} +3 -3
  353. package/dist/{esm/utils/output-byte-buffer.mjs → utils/output-byte-buffer.js} +14 -6
  354. package/dist/{esm/utils/position-provider.mjs → utils/position-provider.js} +3 -3
  355. package/dist/{esm/utils/quotes.mjs → utils/quotes.js} +9 -10
  356. package/dist/{esm/utils/regexp.mjs → utils/regexp.js} +49 -3
  357. package/dist/{esm/utils/string.mjs → utils/string.js} +6 -3
  358. package/dist/{esm/utils/text-decoder-polyfill.mjs → utils/text-decoder-polyfill.js} +3 -3
  359. package/dist/{esm/utils/text-encoder-polyfill.mjs → utils/text-encoder-polyfill.js} +2 -2
  360. package/dist/{esm/utils/type-guards.mjs → utils/type-guards.js} +2 -2
  361. package/dist/{esm/validator/constants.mjs → validator/constants.js} +4 -4
  362. package/dist/{esm/validator/helpers.mjs → validator/helpers.js} +4 -4
  363. package/dist/{esm/validator/index.mjs → validator/index.js} +11 -11
  364. package/dist/{esm/validator/value.mjs → validator/value.js} +34 -29
  365. package/dist/{esm/version.mjs → version.js} +3 -3
  366. package/package.json +24 -70
  367. package/dist/cjs/ast-utils/clone.js +0 -65
  368. package/dist/cjs/ast-utils/modifiers.js +0 -56
  369. package/dist/cjs/ast-utils/network-rules.js +0 -43
  370. package/dist/cjs/ast-utils/scriptlets.js +0 -93
  371. package/dist/cjs/common/abp-snippet-injection-body-common.js +0 -18
  372. package/dist/cjs/common/agent-common.js +0 -58
  373. package/dist/cjs/common/ubo-selector-common.js +0 -18
  374. package/dist/cjs/compatibility-tables/base.js +0 -264
  375. package/dist/cjs/compatibility-tables/compatibility-table-data.js +0 -15
  376. package/dist/cjs/compatibility-tables/modifiers.js +0 -57
  377. package/dist/cjs/compatibility-tables/platforms.js +0 -58
  378. package/dist/cjs/compatibility-tables/redirects.js +0 -102
  379. package/dist/cjs/compatibility-tables/schemas/base.js +0 -116
  380. package/dist/cjs/compatibility-tables/schemas/modifier.js +0 -107
  381. package/dist/cjs/compatibility-tables/schemas/platform.js +0 -71
  382. package/dist/cjs/compatibility-tables/schemas/redirect.js +0 -31
  383. package/dist/cjs/compatibility-tables/schemas/resource-type.js +0 -39
  384. package/dist/cjs/compatibility-tables/schemas/scriptlet.js +0 -81
  385. package/dist/cjs/compatibility-tables/scriptlets.js +0 -30
  386. package/dist/cjs/compatibility-tables/utils/platform-helpers.js +0 -112
  387. package/dist/cjs/compatibility-tables/utils/resource-type-helpers.js +0 -64
  388. package/dist/cjs/compatibility-tables/utils/zod-camelcase.js +0 -27
  389. package/dist/cjs/converter/base-interfaces/base-converter.js +0 -61
  390. package/dist/cjs/converter/base-interfaces/conversion-result.js +0 -41
  391. package/dist/cjs/converter/base-interfaces/rule-converter-base.js +0 -62
  392. package/dist/cjs/converter/comment/index.js +0 -56
  393. package/dist/cjs/converter/cosmetic/css.js +0 -71
  394. package/dist/cjs/converter/cosmetic/element-hiding.js +0 -64
  395. package/dist/cjs/converter/cosmetic/header-removal.js +0 -126
  396. package/dist/cjs/converter/cosmetic/html.js +0 -384
  397. package/dist/cjs/converter/cosmetic/index.js +0 -120
  398. package/dist/cjs/converter/cosmetic/rule-modifiers/adg.js +0 -81
  399. package/dist/cjs/converter/cosmetic/scriptlet.js +0 -356
  400. package/dist/cjs/converter/css/index.js +0 -193
  401. package/dist/cjs/converter/data/css.js +0 -133
  402. package/dist/cjs/converter/filter-list.js +0 -90
  403. package/dist/cjs/converter/index.js +0 -15
  404. package/dist/cjs/converter/misc/network-rule-modifier.js +0 -313
  405. package/dist/cjs/converter/network/index.js +0 -101
  406. package/dist/cjs/converter/raw-filter-list.js +0 -58
  407. package/dist/cjs/converter/rule.js +0 -83
  408. package/dist/cjs/deserializer/base-deserializer.js +0 -31
  409. package/dist/cjs/deserializer/comment/agent-comment-deserializer.js +0 -76
  410. package/dist/cjs/deserializer/comment/agent-deserializer.js +0 -67
  411. package/dist/cjs/deserializer/comment/comment-rule-deserializer.js +0 -109
  412. package/dist/cjs/deserializer/comment/config-comment-deserializer.js +0 -113
  413. package/dist/cjs/deserializer/comment/hint-comment-deserializer.js +0 -69
  414. package/dist/cjs/deserializer/comment/hint-deserializer.js +0 -88
  415. package/dist/cjs/deserializer/comment/metadata-comment-deserializer.js +0 -71
  416. package/dist/cjs/deserializer/comment/pre-processor-comment-deserializer.js +0 -114
  417. package/dist/cjs/deserializer/comment/simple-comment-deserializer.js +0 -67
  418. package/dist/cjs/deserializer/cosmetic/cosmetic-rule-deserializer.js +0 -127
  419. package/dist/cjs/deserializer/cosmetic/css-injection-body-deserializer.js +0 -55
  420. package/dist/cjs/deserializer/cosmetic/element-hiding-body-deserializer.js +0 -46
  421. package/dist/cjs/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +0 -37
  422. package/dist/cjs/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +0 -37
  423. package/dist/cjs/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +0 -52
  424. package/dist/cjs/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +0 -38
  425. package/dist/cjs/deserializer/empty-rule-deserializer.js +0 -46
  426. package/dist/cjs/deserializer/filterlist-deserializer.js +0 -83
  427. package/dist/cjs/deserializer/index.js +0 -15
  428. package/dist/cjs/deserializer/invalid-rule-deserializer.js +0 -48
  429. package/dist/cjs/deserializer/invalid-rule-error-node-deserializer.js +0 -48
  430. package/dist/cjs/deserializer/misc/domain-list-deserializer.js +0 -66
  431. package/dist/cjs/deserializer/misc/list-item-deserializer.js +0 -65
  432. package/dist/cjs/deserializer/misc/list-items-deserializer.js +0 -28
  433. package/dist/cjs/deserializer/misc/logical-expression-deserializer.js +0 -199
  434. package/dist/cjs/deserializer/misc/modifier-deserializer.js +0 -89
  435. package/dist/cjs/deserializer/misc/modifier-list-deserializer.js +0 -58
  436. package/dist/cjs/deserializer/misc/parameter-list-deserializer.js +0 -62
  437. package/dist/cjs/deserializer/misc/value-deserializer.js +0 -52
  438. package/dist/cjs/deserializer/network/host-rule-deserializer.js +0 -81
  439. package/dist/cjs/deserializer/network/hostname-list-deserializer.js +0 -50
  440. package/dist/cjs/deserializer/network/network-rule-deserializer.js +0 -67
  441. package/dist/cjs/deserializer/rule-deserializer.js +0 -67
  442. package/dist/cjs/deserializer/syntax-deserialization-map.js +0 -23
  443. package/dist/cjs/errors/adblock-syntax-error.js +0 -41
  444. package/dist/cjs/errors/binary-schema-mismatch-error.js +0 -39
  445. package/dist/cjs/errors/not-implemented-error.js +0 -33
  446. package/dist/cjs/errors/rule-conversion-error.js +0 -28
  447. package/dist/cjs/generator/base-generator.js +0 -29
  448. package/dist/cjs/generator/comment/agent-comment-generator.js +0 -30
  449. package/dist/cjs/generator/comment/agent-generator.js +0 -34
  450. package/dist/cjs/generator/comment/comment-rule-generator.js +0 -102
  451. package/dist/cjs/generator/comment/config-comment-generator.js +0 -44
  452. package/dist/cjs/generator/comment/hint-comment-generator.js +0 -27
  453. package/dist/cjs/generator/comment/hint-generator.js +0 -32
  454. package/dist/cjs/generator/comment/metadata-comment-generator.js +0 -32
  455. package/dist/cjs/generator/comment/pre-processor-comment-generator.js +0 -47
  456. package/dist/cjs/generator/comment/simple-comment-generator.js +0 -28
  457. package/dist/cjs/generator/cosmetic/body/abp-snippet-injection-body-generator.js +0 -36
  458. package/dist/cjs/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +0 -41
  459. package/dist/cjs/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +0 -43
  460. package/dist/cjs/generator/cosmetic/cosmetic-rule-body-generator.js +0 -92
  461. package/dist/cjs/generator/cosmetic/cosmetic-rule-generator.js +0 -66
  462. package/dist/cjs/generator/cosmetic/cosmetic-rule-pattern-generator.js +0 -41
  463. package/dist/cjs/generator/css/adg-css-injection-generator.js +0 -41
  464. package/dist/cjs/generator/filterlist-generator.js +0 -57
  465. package/dist/cjs/generator/index.js +0 -17
  466. package/dist/cjs/generator/misc/domain-list-generator.js +0 -25
  467. package/dist/cjs/generator/misc/list-items-generator.js +0 -38
  468. package/dist/cjs/generator/misc/logical-expression-generator.js +0 -47
  469. package/dist/cjs/generator/misc/modifier-generator.js +0 -33
  470. package/dist/cjs/generator/misc/modifier-list-generator.js +0 -28
  471. package/dist/cjs/generator/misc/parameter-list-generator.js +0 -41
  472. package/dist/cjs/generator/misc/value-generator.js +0 -23
  473. package/dist/cjs/generator/network/host-rule-generator.js +0 -38
  474. package/dist/cjs/generator/network/network-rule-generator.js +0 -37
  475. package/dist/cjs/generator/rule-generator.js +0 -64
  476. package/dist/cjs/index.js +0 -201
  477. package/dist/cjs/marshalling-utils/comment/agent-comment-common.js +0 -22
  478. package/dist/cjs/marshalling-utils/comment/agent-common.js +0 -43
  479. package/dist/cjs/marshalling-utils/comment/config-comment-common.js +0 -58
  480. package/dist/cjs/marshalling-utils/comment/hint-comment-common.js +0 -23
  481. package/dist/cjs/marshalling-utils/comment/hint-common.js +0 -60
  482. package/dist/cjs/marshalling-utils/comment/metadata-comment-common.js +0 -44
  483. package/dist/cjs/marshalling-utils/comment/pre-processor-comment-common.js +0 -63
  484. package/dist/cjs/marshalling-utils/comment/simple-comment-common.js +0 -23
  485. package/dist/cjs/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +0 -64
  486. package/dist/cjs/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +0 -68
  487. package/dist/cjs/marshalling-utils/cosmetic/body/css-injection-body-common.js +0 -25
  488. package/dist/cjs/marshalling-utils/cosmetic/body/element-hiding-body-common.js +0 -22
  489. package/dist/cjs/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +0 -116
  490. package/dist/cjs/marshalling-utils/cosmetic/cosmetic-rule-common.js +0 -51
  491. package/dist/cjs/marshalling-utils/filter-list-common.js +0 -22
  492. package/dist/cjs/marshalling-utils/invalid-rule-common.js +0 -22
  493. package/dist/cjs/marshalling-utils/invalid-rule-error-node-common.js +0 -23
  494. package/dist/cjs/marshalling-utils/misc/binary-type-common.js +0 -67
  495. package/dist/cjs/marshalling-utils/misc/domain-list-common.js +0 -39
  496. package/dist/cjs/marshalling-utils/misc/host-rule-common.js +0 -26
  497. package/dist/cjs/marshalling-utils/misc/hostname-list-common.js +0 -22
  498. package/dist/cjs/marshalling-utils/misc/list-item-common.js +0 -23
  499. package/dist/cjs/marshalling-utils/misc/logical-expression-common.js +0 -89
  500. package/dist/cjs/marshalling-utils/misc/modifier-common.js +0 -236
  501. package/dist/cjs/marshalling-utils/misc/modifier-list-common.js +0 -22
  502. package/dist/cjs/marshalling-utils/misc/parameter-list-common.js +0 -22
  503. package/dist/cjs/marshalling-utils/misc/value-common.js +0 -23
  504. package/dist/cjs/marshalling-utils/network/network-rule-common.js +0 -26
  505. package/dist/cjs/marshalling-utils/syntax-serialization-map.js +0 -32
  506. package/dist/cjs/nodes/index.js +0 -180
  507. package/dist/cjs/package.json.js +0 -11
  508. package/dist/cjs/parser/base-parser.js +0 -32
  509. package/dist/cjs/parser/comment/agent-comment-parser.js +0 -121
  510. package/dist/cjs/parser/comment/agent-parser.js +0 -111
  511. package/dist/cjs/parser/comment/comment-parser.js +0 -110
  512. package/dist/cjs/parser/comment/config-comment-parser.js +0 -139
  513. package/dist/cjs/parser/comment/hint-comment-parser.js +0 -119
  514. package/dist/cjs/parser/comment/hint-parser.js +0 -131
  515. package/dist/cjs/parser/comment/metadata-comment-parser.js +0 -131
  516. package/dist/cjs/parser/comment/preprocessor-parser.js +0 -201
  517. package/dist/cjs/parser/comment/simple-comment-parser.js +0 -108
  518. package/dist/cjs/parser/cosmetic/body/abp-snippet-injection-body-parser.js +0 -81
  519. package/dist/cjs/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +0 -151
  520. package/dist/cjs/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +0 -112
  521. package/dist/cjs/parser/cosmetic/cosmetic-rule-parser.js +0 -456
  522. package/dist/cjs/parser/css/adg-css-injection-parser.js +0 -213
  523. package/dist/cjs/parser/css/balancing.js +0 -97
  524. package/dist/cjs/parser/css/constants.js +0 -21
  525. package/dist/cjs/parser/css/css-token-stream.js +0 -345
  526. package/dist/cjs/parser/css/ubo-selector-parser.js +0 -373
  527. package/dist/cjs/parser/filterlist-parser.js +0 -104
  528. package/dist/cjs/parser/index.js +0 -21
  529. package/dist/cjs/parser/misc/app-list-parser.js +0 -47
  530. package/dist/cjs/parser/misc/domain-list-parser.js +0 -54
  531. package/dist/cjs/parser/misc/list-items-parser.js +0 -116
  532. package/dist/cjs/parser/misc/logical-expression-parser.js +0 -283
  533. package/dist/cjs/parser/misc/method-list-parser.js +0 -48
  534. package/dist/cjs/parser/misc/modifier-list.js +0 -72
  535. package/dist/cjs/parser/misc/modifier-parser.js +0 -91
  536. package/dist/cjs/parser/misc/parameter-list-parser.js +0 -74
  537. package/dist/cjs/parser/misc/stealth-option-list-parser.js +0 -48
  538. package/dist/cjs/parser/misc/ubo-parameter-list-parser.js +0 -148
  539. package/dist/cjs/parser/misc/value-parser.js +0 -39
  540. package/dist/cjs/parser/network/host-rule-parser.js +0 -151
  541. package/dist/cjs/parser/network/network-rule-parser.js +0 -113
  542. package/dist/cjs/parser/options.js +0 -25
  543. package/dist/cjs/parser/rule-parser.js +0 -194
  544. package/dist/cjs/serializer/base-serializer.js +0 -31
  545. package/dist/cjs/serializer/comment/agent-comment-serializer.js +0 -73
  546. package/dist/cjs/serializer/comment/agent-serializer.js +0 -70
  547. package/dist/cjs/serializer/comment/comment-rule-serializer.js +0 -107
  548. package/dist/cjs/serializer/comment/config-comment-serializer.js +0 -84
  549. package/dist/cjs/serializer/comment/hint-comment-serializer.js +0 -64
  550. package/dist/cjs/serializer/comment/hint-serializer.js +0 -56
  551. package/dist/cjs/serializer/comment/metadata-comment-serializer.js +0 -75
  552. package/dist/cjs/serializer/comment/pre-processor-comment-serializer.js +0 -73
  553. package/dist/cjs/serializer/comment/simple-comment-serializer.js +0 -54
  554. package/dist/cjs/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +0 -38
  555. package/dist/cjs/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +0 -38
  556. package/dist/cjs/serializer/cosmetic/body/scriptlet-body-serializer.js +0 -49
  557. package/dist/cjs/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +0 -38
  558. package/dist/cjs/serializer/cosmetic/cosmetic-rule-serializer.js +0 -131
  559. package/dist/cjs/serializer/cosmetic/css-injection-body-serializer.js +0 -50
  560. package/dist/cjs/serializer/cosmetic/element-hiding-body-serializer.js +0 -39
  561. package/dist/cjs/serializer/empty-rule-serializer.js +0 -36
  562. package/dist/cjs/serializer/filterlist-serializer.js +0 -48
  563. package/dist/cjs/serializer/index.js +0 -13
  564. package/dist/cjs/serializer/invalid-rule-error-node-serializer.js +0 -40
  565. package/dist/cjs/serializer/invalid-rule-serializer.js +0 -39
  566. package/dist/cjs/serializer/misc/domain-list-serializer.js +0 -66
  567. package/dist/cjs/serializer/misc/list-item-serializer.js +0 -57
  568. package/dist/cjs/serializer/misc/list-items-serializer.js +0 -28
  569. package/dist/cjs/serializer/misc/logical-expression-serializer.js +0 -138
  570. package/dist/cjs/serializer/misc/modifier-list-serializer.js +0 -57
  571. package/dist/cjs/serializer/misc/modifier-serializer.js +0 -51
  572. package/dist/cjs/serializer/misc/parameter-list-serializer.js +0 -51
  573. package/dist/cjs/serializer/misc/value-serializer.js +0 -52
  574. package/dist/cjs/serializer/network/host-rule-serializer.js +0 -72
  575. package/dist/cjs/serializer/network/hostname-list-serializer.js +0 -49
  576. package/dist/cjs/serializer/network/network-rule-serializer.js +0 -56
  577. package/dist/cjs/serializer/rule-serializer.js +0 -63
  578. package/dist/cjs/utils/adblockers.js +0 -57
  579. package/dist/cjs/utils/binary-schema-version.js +0 -19
  580. package/dist/cjs/utils/byte-buffer.js +0 -93
  581. package/dist/cjs/utils/categorizer.js +0 -46
  582. package/dist/cjs/utils/clone.js +0 -30
  583. package/dist/cjs/utils/constants.js +0 -380
  584. package/dist/cjs/utils/cosmetic-rule-separator.js +0 -129
  585. package/dist/cjs/utils/deep-freeze.js +0 -34
  586. package/dist/cjs/utils/domain.js +0 -60
  587. package/dist/cjs/utils/error.js +0 -51
  588. package/dist/cjs/utils/index.js +0 -69
  589. package/dist/cjs/utils/input-byte-buffer.js +0 -259
  590. package/dist/cjs/utils/is-chromium.js +0 -22
  591. package/dist/cjs/utils/logical-expression.js +0 -94
  592. package/dist/cjs/utils/multi-value-map.js +0 -35
  593. package/dist/cjs/utils/output-byte-buffer.js +0 -225
  594. package/dist/cjs/utils/position-provider.js +0 -75
  595. package/dist/cjs/utils/quotes.js +0 -218
  596. package/dist/cjs/utils/regexp.js +0 -190
  597. package/dist/cjs/utils/string.js +0 -560
  598. package/dist/cjs/utils/text-decoder-polyfill.js +0 -109
  599. package/dist/cjs/utils/text-encoder-polyfill.js +0 -80
  600. package/dist/cjs/utils/type-guards.js +0 -52
  601. package/dist/cjs/validator/constants.js +0 -222
  602. package/dist/cjs/validator/helpers.js +0 -49
  603. package/dist/cjs/validator/index.js +0 -176
  604. package/dist/cjs/validator/value.js +0 -565
  605. package/dist/cjs/version.js +0 -20
  606. package/dist/esm/common/ubo-selector-common.mjs +0 -18
  607. package/dist/esm/compatibility-tables/platforms.mjs +0 -58
  608. package/dist/esm/compatibility-tables/schemas/resource-type.mjs +0 -37
  609. package/dist/esm/converter/index.mjs +0 -8
  610. package/dist/esm/marshalling-utils/comment/agent-comment-common.mjs +0 -22
  611. package/dist/esm/marshalling-utils/comment/hint-comment-common.mjs +0 -23
  612. package/dist/esm/marshalling-utils/comment/simple-comment-common.mjs +0 -23
  613. package/dist/esm/marshalling-utils/cosmetic/body/css-injection-body-common.mjs +0 -25
  614. package/dist/esm/marshalling-utils/cosmetic/body/element-hiding-body-common.mjs +0 -22
  615. package/dist/esm/marshalling-utils/filter-list-common.mjs +0 -22
  616. package/dist/esm/marshalling-utils/invalid-rule-error-node-common.mjs +0 -23
  617. package/dist/esm/marshalling-utils/misc/binary-type-common.mjs +0 -67
  618. package/dist/esm/marshalling-utils/misc/host-rule-common.mjs +0 -26
  619. package/dist/esm/marshalling-utils/misc/hostname-list-common.mjs +0 -22
  620. package/dist/esm/marshalling-utils/misc/list-item-common.mjs +0 -23
  621. package/dist/esm/marshalling-utils/misc/logical-expression-common.mjs +0 -86
  622. package/dist/esm/marshalling-utils/misc/modifier-list-common.mjs +0 -22
  623. package/dist/esm/marshalling-utils/misc/parameter-list-common.mjs +0 -22
  624. package/dist/esm/marshalling-utils/misc/value-common.mjs +0 -23
  625. package/dist/esm/marshalling-utils/network/network-rule-common.mjs +0 -26
  626. package/dist/esm/parser/index.mjs +0 -11
  627. package/dist/esm/serializer/index.mjs +0 -7
  628. package/dist/esm/utils/index.mjs +0 -21
@@ -1,565 +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 XRegExp = require('xregexp');
10
- var adblockSyntaxError = require('../errors/adblock-syntax-error.js');
11
- var appListParser = require('../parser/misc/app-list-parser.js');
12
- var domainListParser = require('../parser/misc/domain-list-parser.js');
13
- var methodListParser = require('../parser/misc/method-list-parser.js');
14
- var stealthOptionListParser = require('../parser/misc/stealth-option-list-parser.js');
15
- var domain = require('../utils/domain.js');
16
- var quotes = require('../utils/quotes.js');
17
- var constants = require('../utils/constants.js');
18
- var helpers = require('./helpers.js');
19
- var constants$1 = require('./constants.js');
20
- var options = require('../parser/options.js');
21
-
22
- /**
23
- * Pre-defined available validators for modifiers with custom `value_format`.
24
- */
25
- var CustomValueFormatValidatorName;
26
- (function (CustomValueFormatValidatorName) {
27
- CustomValueFormatValidatorName["App"] = "pipe_separated_apps";
28
- CustomValueFormatValidatorName["Csp"] = "csp_value";
29
- // there are some differences between $domain and $denyallow
30
- CustomValueFormatValidatorName["DenyAllow"] = "pipe_separated_denyallow_domains";
31
- CustomValueFormatValidatorName["Domain"] = "pipe_separated_domains";
32
- CustomValueFormatValidatorName["Method"] = "pipe_separated_methods";
33
- CustomValueFormatValidatorName["Permissions"] = "permissions_value";
34
- CustomValueFormatValidatorName["ReferrerPolicy"] = "referrerpolicy_value";
35
- CustomValueFormatValidatorName["StealthOption"] = "pipe_separated_stealth_options";
36
- })(CustomValueFormatValidatorName || (CustomValueFormatValidatorName = {}));
37
- /**
38
- * Checks whether the `chunk` of app name (which if splitted by dot `.`) is valid.
39
- * Only letters, numbers, and underscore `_` are allowed.
40
- *
41
- * @param chunk Chunk of app name to check.
42
- *
43
- * @returns True if the `chunk` is valid part of app name, false otherwise.
44
- */
45
- const isValidAppNameChunk = (chunk) => {
46
- // e.g. 'Example..exe'
47
- if (chunk.length === 0) {
48
- return false;
49
- }
50
- for (let i = 0; i < chunk.length; i += 1) {
51
- const char = chunk[i];
52
- if (!constants$1.APP_NAME_ALLOWED_CHARS.has(char)) {
53
- return false;
54
- }
55
- }
56
- return true;
57
- };
58
- /**
59
- * Checks whether the given `value` is valid app name as $app modifier value.
60
- *
61
- * @param value App name to check.
62
- *
63
- * @returns True if the `value` is valid app name, false otherwise.
64
- */
65
- const isValidAppModifierValue = (value) => {
66
- // $app modifier does not support wildcard tld
67
- // https://adguard.app/kb/general/ad-filtering/create-own-filters/#app-modifier
68
- if (value.includes(constants.WILDCARD)) {
69
- return false;
70
- }
71
- return value
72
- .split(constants.DOT)
73
- .every((chunk) => isValidAppNameChunk(chunk));
74
- };
75
- /**
76
- * Checks whether the given `value` is valid HTTP method as $method modifier value.
77
- *
78
- * @param value Method to check.
79
- *
80
- * @returns True if the `value` is valid HTTP method, false otherwise.
81
- */
82
- const isValidMethodModifierValue = (value) => {
83
- return constants$1.ALLOWED_METHODS.has(value);
84
- };
85
- /**
86
- * Checks whether the given `value` is valid option as $stealth modifier value.
87
- *
88
- * @param value Stealth option to check.
89
- *
90
- * @returns True if the `value` is valid stealth option, false otherwise.
91
- */
92
- const isValidStealthModifierValue = (value) => {
93
- return constants$1.ALLOWED_STEALTH_OPTIONS.has(value);
94
- };
95
- /**
96
- * Checks whether the given `rawOrigin` is valid as Permissions Allowlist origin.
97
- *
98
- * @see {@link https://w3c.github.io/webappsec-permissions-policy/#allowlists}
99
- *
100
- * @param rawOrigin The raw origin.
101
- *
102
- * @returns True if the origin is valid, false otherwise.
103
- */
104
- const isValidPermissionsOrigin = (rawOrigin) => {
105
- // origins should be quoted by double quote
106
- const actualQuoteType = quotes.QuoteUtils.getStringQuoteType(rawOrigin);
107
- if (actualQuoteType !== quotes.QuoteType.Double) {
108
- return false;
109
- }
110
- const origin = quotes.QuoteUtils.removeQuotes(rawOrigin);
111
- try {
112
- // validate the origin by URL constructor
113
- // https://w3c.github.io/webappsec-permissions-policy/#algo-parse-policy-directive
114
- new URL(origin);
115
- }
116
- catch (e) {
117
- return false;
118
- }
119
- return true;
120
- };
121
- /**
122
- * Checks whether the given `value` is valid domain as $denyallow modifier value.
123
- * Important: wildcard tld are not supported, compared to $domain.
124
- *
125
- * @param value Value to check.
126
- *
127
- * @returns True if the `value` is valid domain and does not contain wildcard `*`, false otherwise.
128
- */
129
- const isValidDenyAllowModifierValue = (value) => {
130
- // $denyallow modifier does not support wildcard tld
131
- // https://adguard.app/kb/general/ad-filtering/create-own-filters/#denyallow-modifier
132
- // but here we are simply checking whether the value contains wildcard `*`, not ends with `.*`
133
- if (value.includes(constants.WILDCARD)) {
134
- return false;
135
- }
136
- // TODO: add cache for domains validation
137
- return domain.DomainUtils.isValidDomainOrHostname(value);
138
- };
139
- /**
140
- * Checks whether the given `value` is valid domain as $domain modifier value.
141
- *
142
- * @param value Value to check.
143
- *
144
- * @returns True if the `value` is valid domain, false otherwise.
145
- */
146
- const isValidDomainModifierValue = (value) => {
147
- // TODO: add cache for domains validation
148
- return domain.DomainUtils.isValidDomainOrHostname(value);
149
- };
150
- /**
151
- * Checks whether the all list items' exceptions are `false`.
152
- * Those items which `exception` is `true` is to be specified in the validation result error message.
153
- *
154
- * @param modifierName Modifier name.
155
- * @param listItems List items to check.
156
- *
157
- * @returns Validation result.
158
- */
159
- const customNoNegatedListItemsValidator = (modifierName, listItems) => {
160
- const negatedValues = [];
161
- listItems.forEach((listItem) => {
162
- if (listItem.exception) {
163
- negatedValues.push(listItem.value);
164
- }
165
- });
166
- if (negatedValues.length > 0) {
167
- const valuesToStr = quotes.QuoteUtils.quoteAndJoinStrings(negatedValues);
168
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.NOT_NEGATABLE_VALUE}: '${modifierName}': ${valuesToStr}`);
169
- }
170
- return { valid: true };
171
- };
172
- /**
173
- * Checks whether the all list items' exceptions are consistent,
174
- * i.e. all items are either negated or not negated.
175
- *
176
- * The `exception` value of the first item is used as a reference, and all other items are checked against it.
177
- * Those items which `exception` is not consistent with the first item
178
- * is to be specified in the validation result error message.
179
- *
180
- * @see {@link https://adguard.com/kb/general/ad-filtering/create-own-filters/#method-modifier}
181
- *
182
- * @param modifierName Modifier name.
183
- * @param listItems List items to check.
184
- *
185
- * @returns Validation result.
186
- */
187
- const customConsistentExceptionsValidator = (modifierName, listItems) => {
188
- const firstException = listItems[0].exception;
189
- const nonConsistentItemValues = [];
190
- listItems.forEach((listItem) => {
191
- if (listItem.exception !== firstException) {
192
- nonConsistentItemValues.push(listItem.value);
193
- }
194
- });
195
- if (nonConsistentItemValues.length > 0) {
196
- const valuesToStr = quotes.QuoteUtils.quoteAndJoinStrings(nonConsistentItemValues);
197
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.MIXED_NEGATIONS}: '${modifierName}': ${valuesToStr}`);
198
- }
199
- return { valid: true };
200
- };
201
- /**
202
- * Checks whether the given `modifier` value is valid.
203
- * Supposed to validate the value of modifiers which values are lists separated by pipe `|` —
204
- * $app, $domain, $denyallow, $method.
205
- *
206
- * @param modifier Modifier AST node.
207
- * @param listParser Parser function for parsing modifier value
208
- * which is supposed to be a list separated by pipe `|`.
209
- * @param isValidListItem Predicate function for checking of modifier's list item validity,
210
- * e.g. $denyallow modifier does not support wildcard tld, but $domain does.
211
- * @param customListValidator Optional; custom validator for specific modifier,
212
- * e.g. $denyallow modifier does not support negated domains.
213
- *
214
- * @returns Result of modifier domains validation.
215
- */
216
- const validateListItemsModifier = (modifier, listParser, isValidListItem, customListValidator) => {
217
- const modifierName = modifier.name.value;
218
- const defaultInvalidValueResult = helpers.getValueRequiredValidationResult(modifierName);
219
- if (!modifier.value?.value) {
220
- return defaultInvalidValueResult;
221
- }
222
- let theList;
223
- try {
224
- theList = listParser(modifier.value.value, options.defaultParserOptions, 0, constants.PIPE);
225
- }
226
- catch (e) {
227
- if (e instanceof adblockSyntaxError.AdblockSyntaxError) {
228
- return {
229
- valid: false,
230
- error: e.message,
231
- };
232
- }
233
- return defaultInvalidValueResult;
234
- }
235
- const invalidListItems = [];
236
- theList.children.forEach((item) => {
237
- // different validators are used for $denyallow and $domain modifiers
238
- // because of different requirements and restrictions
239
- if (!isValidListItem(item.value)) {
240
- invalidListItems.push(item.value);
241
- }
242
- });
243
- if (invalidListItems.length > 0) {
244
- const itemsToStr = quotes.QuoteUtils.quoteAndJoinStrings(invalidListItems);
245
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.INVALID_LIST_VALUES}: '${modifierName}': ${itemsToStr}`);
246
- }
247
- // IMPORTANT: run custom validator after all other checks
248
- // Some lists should be fully checked, not just the list items:
249
- // e.g. Safari does not support allowed and disallowed domains for $domain in the same list
250
- // or domains cannot be negated for $denyallow modifier
251
- if (customListValidator) {
252
- return customListValidator(modifierName, theList.children);
253
- }
254
- return { valid: true };
255
- };
256
- /**
257
- * Validates 'pipe_separated_apps' custom value format.
258
- * Used for $app modifier.
259
- *
260
- * @param modifier Modifier AST node.
261
- *
262
- * @returns Validation result.
263
- */
264
- const validatePipeSeparatedApps = (modifier) => {
265
- return validateListItemsModifier(modifier, (raw) => appListParser.AppListParser.parse(raw), isValidAppModifierValue);
266
- };
267
- /**
268
- * Validates 'pipe_separated_denyallow_domains' custom value format.
269
- * Used for $denyallow modifier.
270
- *
271
- * @param modifier Modifier AST node.
272
- *
273
- * @returns Validation result.
274
- */
275
- const validatePipeSeparatedDenyAllowDomains = (modifier) => {
276
- return validateListItemsModifier(modifier, domainListParser.DomainListParser.parse, isValidDenyAllowModifierValue, customNoNegatedListItemsValidator);
277
- };
278
- /**
279
- * Validates 'pipe_separated_domains' custom value format.
280
- * Used for $domains modifier.
281
- *
282
- * @param modifier Modifier AST node.
283
- *
284
- * @returns Validation result.
285
- */
286
- const validatePipeSeparatedDomains = (modifier) => {
287
- return validateListItemsModifier(modifier, domainListParser.DomainListParser.parse, isValidDomainModifierValue);
288
- };
289
- /**
290
- * Validates 'pipe_separated_methods' custom value format.
291
- * Used for $method modifier.
292
- *
293
- * @param modifier Modifier AST node.
294
- *
295
- * @returns Validation result.
296
- */
297
- const validatePipeSeparatedMethods = (modifier) => {
298
- return validateListItemsModifier(modifier, (raw) => methodListParser.MethodListParser.parse(raw), isValidMethodModifierValue, customConsistentExceptionsValidator);
299
- };
300
- /**
301
- * Validates 'pipe_separated_stealth_options' custom value format.
302
- * Used for $stealth modifier.
303
- *
304
- * @param modifier Modifier AST node.
305
- *
306
- * @returns Validation result.
307
- */
308
- const validatePipeSeparatedStealthOptions = (modifier) => {
309
- return validateListItemsModifier(modifier, (raw) => stealthOptionListParser.StealthOptionListParser.parse(raw), isValidStealthModifierValue, customNoNegatedListItemsValidator);
310
- };
311
- /**
312
- * Validates `csp_value` custom value format.
313
- * Used for $csp modifier.
314
- *
315
- * @param modifier Modifier AST node.
316
- *
317
- * @returns Validation result.
318
- */
319
- const validateCspValue = (modifier) => {
320
- const modifierName = modifier.name.value;
321
- if (!modifier.value?.value) {
322
- return helpers.getValueRequiredValidationResult(modifierName);
323
- }
324
- // $csp modifier value may contain multiple directives
325
- // e.g. "csp=child-src 'none'; frame-src 'self' *; worker-src 'none'"
326
- const policyDirectives = modifier.value.value
327
- .split(constants.SEMICOLON)
328
- // rule with $csp modifier may end with semicolon
329
- // e.g. "$csp=sandbox allow-same-origin;"
330
- // TODO: add predicate helper for `(i) => !!i`
331
- .filter((i) => !!i);
332
- const invalidValueValidationResult = helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.VALUE_INVALID}: '${modifierName}': "${modifier.value.value}"`);
333
- if (policyDirectives.length === 0) {
334
- return invalidValueValidationResult;
335
- }
336
- const invalidDirectives = [];
337
- for (let i = 0; i < policyDirectives.length; i += 1) {
338
- const policyDirective = policyDirectives[i].trim();
339
- if (!policyDirective) {
340
- return invalidValueValidationResult;
341
- }
342
- const chunks = policyDirective.split(constants.SPACE);
343
- const [directive, ...valueChunks] = chunks;
344
- // e.g. "csp=child-src 'none'; ; worker-src 'none'"
345
- // validator it here ↑
346
- if (!directive) {
347
- return invalidValueValidationResult;
348
- }
349
- if (!constants$1.ALLOWED_CSP_DIRECTIVES.has(directive)) {
350
- // e.g. "csp='child-src' 'none'"
351
- if (constants$1.ALLOWED_CSP_DIRECTIVES.has(quotes.QuoteUtils.removeQuotes(directive))) {
352
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.NO_CSP_DIRECTIVE_QUOTE}: '${modifierName}': ${directive}`);
353
- }
354
- invalidDirectives.push(directive);
355
- continue;
356
- }
357
- if (valueChunks.length === 0) {
358
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.NO_CSP_VALUE}: '${modifierName}': '${directive}'`);
359
- }
360
- }
361
- if (invalidDirectives.length > 0) {
362
- const directivesToStr = quotes.QuoteUtils.quoteAndJoinStrings(invalidDirectives, quotes.QuoteType.Double);
363
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.INVALID_CSP_DIRECTIVES}: '${modifierName}': ${directivesToStr}`);
364
- }
365
- return { valid: true };
366
- };
367
- /**
368
- * Validates permission allowlist origins in the value of $permissions modifier.
369
- *
370
- * @see {@link https://w3c.github.io/webappsec-permissions-policy/#allowlists}
371
- *
372
- * @param allowlistChunks Array of allowlist chunks.
373
- * @param directive Permission directive name.
374
- * @param modifierName Modifier name.
375
- *
376
- * @returns Validation result.
377
- */
378
- const validatePermissionAllowlistOrigins = (allowlistChunks, directive, modifierName) => {
379
- const invalidOrigins = [];
380
- for (let i = 0; i < allowlistChunks.length; i += 1) {
381
- const chunk = allowlistChunks[i].trim();
382
- // skip few spaces between origins (they were splitted by space)
383
- // e.g. 'geolocation=("https://example.com" "https://*.example.com")'
384
- if (chunk.length === 0) {
385
- continue;
386
- }
387
- /**
388
- * 'self' should be checked case-insensitively
389
- *
390
- * @see {@link https://w3c.github.io/webappsec-permissions-policy/#algo-parse-policy-directive}
391
- *
392
- * @example 'geolocation=(self)'
393
- */
394
- if (chunk.toLowerCase() === constants$1.PERMISSIONS_TOKEN_SELF) {
395
- continue;
396
- }
397
- if (quotes.QuoteUtils.getStringQuoteType(chunk) !== quotes.QuoteType.Double) {
398
- return helpers.getInvalidValidationResult(
399
- // eslint-disable-next-line max-len
400
- `${constants$1.VALIDATION_ERROR_PREFIX.INVALID_PERMISSION_ORIGIN_QUOTES}: '${modifierName}': '${directive}': '${quotes.QuoteUtils.removeQuotes(chunk)}'`);
401
- }
402
- if (!isValidPermissionsOrigin(chunk)) {
403
- invalidOrigins.push(chunk);
404
- }
405
- }
406
- if (invalidOrigins.length > 0) {
407
- const originsToStr = quotes.QuoteUtils.quoteAndJoinStrings(invalidOrigins);
408
- return helpers.getInvalidValidationResult(
409
- // eslint-disable-next-line max-len
410
- `${constants$1.VALIDATION_ERROR_PREFIX.INVALID_PERMISSION_ORIGINS}: '${modifierName}': '${directive}': ${originsToStr}`);
411
- }
412
- return { valid: true };
413
- };
414
- /**
415
- * Validates permission allowlist in the modifier value.
416
- *
417
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy#allowlists}
418
- * @see {@link https://w3c.github.io/webappsec-permissions-policy/#allowlists}
419
- *
420
- * @param allowlist Allowlist value.
421
- * @param directive Permission directive name.
422
- * @param modifierName Modifier name.
423
- *
424
- * @returns Validation result.
425
- */
426
- const validatePermissionAllowlist = (allowlist, directive, modifierName) => {
427
- // `*` is one of available permissions tokens
428
- // e.g. 'fullscreen=*'
429
- // https://w3c.github.io/webappsec-permissions-policy/#structured-header-serialization
430
- if (allowlist === constants.WILDCARD
431
- // e.g. 'autoplay=()'
432
- || allowlist === constants$1.EMPTY_PERMISSIONS_ALLOWLIST) {
433
- return { valid: true };
434
- }
435
- if (!(allowlist.startsWith(constants.OPEN_PARENTHESIS) && allowlist.endsWith(constants.CLOSE_PARENTHESIS))) {
436
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.VALUE_INVALID}: '${modifierName}'`);
437
- }
438
- const allowlistChunks = allowlist.slice(1, -1).split(constants.SPACE);
439
- return validatePermissionAllowlistOrigins(allowlistChunks, directive, modifierName);
440
- };
441
- /**
442
- * Validates single permission in the modifier value.
443
- *
444
- * @param permission Single permission value.
445
- * @param modifierName Modifier name.
446
- * @param modifierValue Modifier value.
447
- *
448
- * @returns Validation result.
449
- */
450
- const validateSinglePermission = (permission, modifierName, modifierValue) => {
451
- // empty permission in the rule
452
- // e.g. 'permissions=storage-access=()\\, \\, camera=()'
453
- // the validator is here ↑
454
- if (!permission) {
455
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.VALUE_INVALID}: '${modifierName}'`);
456
- }
457
- if (permission.includes(constants.COMMA)) {
458
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.NO_UNESCAPED_PERMISSION_COMMA}: '${modifierName}': '${modifierValue}'`);
459
- }
460
- const [directive, allowlist] = permission.split(constants.EQUALS);
461
- if (!constants$1.ALLOWED_PERMISSION_DIRECTIVES.has(directive)) {
462
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.INVALID_PERMISSION_DIRECTIVE}: '${modifierName}': '${directive}'`);
463
- }
464
- return validatePermissionAllowlist(allowlist, directive, modifierName);
465
- };
466
- /**
467
- * Validates `permissions_value` custom value format.
468
- * Used for $permissions modifier.
469
- *
470
- * @param modifier Modifier AST node.
471
- *
472
- * @returns Validation result.
473
- */
474
- const validatePermissions = (modifier) => {
475
- if (!modifier.value?.value) {
476
- return helpers.getValueRequiredValidationResult(modifier.name.value);
477
- }
478
- const modifierName = modifier.name.value;
479
- const modifierValue = modifier.value.value;
480
- // multiple permissions may be separated by escaped commas
481
- const permissions = modifier.value.value.split(`${constants.BACKSLASH}${constants.COMMA}`);
482
- for (let i = 0; i < permissions.length; i += 1) {
483
- const permission = permissions[i].trim();
484
- const singlePermissionValidationResult = validateSinglePermission(permission, modifierName, modifierValue);
485
- if (!singlePermissionValidationResult.valid) {
486
- return singlePermissionValidationResult;
487
- }
488
- }
489
- return { valid: true };
490
- };
491
- /**
492
- * Validates `referrerpolicy_value` custom value format.
493
- * Used for $referrerpolicy modifier.
494
- *
495
- * @param modifier Modifier AST node.
496
- *
497
- * @returns Validation result.
498
- */
499
- const validateReferrerPolicy = (modifier) => {
500
- if (!modifier.value?.value) {
501
- return helpers.getValueRequiredValidationResult(modifier.name.value);
502
- }
503
- const modifierName = modifier.name.value;
504
- const modifierValue = modifier.value.value;
505
- if (!constants$1.REFERRER_POLICY_DIRECTIVES.has(modifierValue)) {
506
- // eslint-disable-next-line max-len
507
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.INVALID_REFERRER_POLICY_DIRECTIVE}: '${modifierName}': '${modifierValue}'`);
508
- }
509
- return { valid: true };
510
- };
511
- /**
512
- * Map of all available pre-defined validators for modifiers with custom `value_format`.
513
- */
514
- const CUSTOM_VALUE_FORMAT_MAP = {
515
- [CustomValueFormatValidatorName.App]: validatePipeSeparatedApps,
516
- [CustomValueFormatValidatorName.Csp]: validateCspValue,
517
- [CustomValueFormatValidatorName.DenyAllow]: validatePipeSeparatedDenyAllowDomains,
518
- [CustomValueFormatValidatorName.Domain]: validatePipeSeparatedDomains,
519
- [CustomValueFormatValidatorName.Method]: validatePipeSeparatedMethods,
520
- [CustomValueFormatValidatorName.Permissions]: validatePermissions,
521
- [CustomValueFormatValidatorName.ReferrerPolicy]: validateReferrerPolicy,
522
- [CustomValueFormatValidatorName.StealthOption]: validatePipeSeparatedStealthOptions,
523
- };
524
- /**
525
- * Returns whether the given `valueFormat` is a valid custom value format validator name.
526
- *
527
- * @param valueFormat Value format for the modifier.
528
- *
529
- * @returns True if `valueFormat` is a supported pre-defined value format validator name, false otherwise.
530
- */
531
- const isCustomValueFormatValidator = (valueFormat) => {
532
- return Object.keys(CUSTOM_VALUE_FORMAT_MAP).includes(valueFormat);
533
- };
534
- /**
535
- * Checks whether the value for given `modifier` is valid.
536
- *
537
- * @param modifier Modifier AST node.
538
- * @param valueFormat Value format for the modifier.
539
- *
540
- * @returns Validation result.
541
- */
542
- const validateValue = (modifier, valueFormat) => {
543
- if (isCustomValueFormatValidator(valueFormat)) {
544
- const validator = CUSTOM_VALUE_FORMAT_MAP[valueFormat];
545
- return validator(modifier);
546
- }
547
- const modifierName = modifier.name.value;
548
- if (!modifier.value?.value) {
549
- return helpers.getValueRequiredValidationResult(modifierName);
550
- }
551
- let xRegExp;
552
- try {
553
- xRegExp = XRegExp(valueFormat);
554
- }
555
- catch (e) {
556
- throw new Error(`${constants$1.SOURCE_DATA_ERROR_PREFIX.INVALID_VALUE_FORMAT_REGEXP}: '${modifierName}'`);
557
- }
558
- const isValid = xRegExp.test(modifier.value?.value);
559
- if (!isValid) {
560
- return helpers.getInvalidValidationResult(`${constants$1.VALIDATION_ERROR_PREFIX.VALUE_INVALID}: '${modifierName}'`);
561
- }
562
- return { valid: true };
563
- };
564
-
565
- exports.validateValue = validateValue;
@@ -1,20 +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 _package = require('./package.json.js');
10
-
11
- /**
12
- * @file AGTree version
13
- */
14
- // ! Notice:
15
- // Don't export version from package.json directly, because if you run
16
- // `tsc` in the root directory, it will generate `dist/types/src/version.d.ts`
17
- // with wrong relative path to `package.json`. So we need this little "hack"
18
- const AGTREE_VERSION = _package.version;
19
-
20
- exports.AGTREE_VERSION = AGTREE_VERSION;
@@ -1,18 +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
- /**
8
- * Known uBO-specific pseudo-class names.
9
- */
10
- var UboPseudoName;
11
- (function (UboPseudoName) {
12
- UboPseudoName["MatchesMedia"] = "matches-media";
13
- UboPseudoName["MatchesPath"] = "matches-path";
14
- UboPseudoName["Remove"] = "remove";
15
- UboPseudoName["Style"] = "style";
16
- })(UboPseudoName || (UboPseudoName = {}));
17
-
18
- export { UboPseudoName };
@@ -1,58 +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
- /* eslint-disable no-bitwise */
8
- /**
9
- * @file Provides platform enums.
10
- * The difference between specific and generic platforms is that specific platforms are individual platforms
11
- * (e.g. AdGuard for Windows, AdGuard for Android, etc.),
12
- * while generic platforms are groups of specific platforms
13
- * (e.g. AdGuard for any OS, AdGuard for any Chromium-based extension, etc.).
14
- */
15
- /**
16
- * List of specific platforms.
17
- */
18
- var SpecificPlatform;
19
- (function (SpecificPlatform) {
20
- SpecificPlatform[SpecificPlatform["AdgOsWindows"] = 1] = "AdgOsWindows";
21
- SpecificPlatform[SpecificPlatform["AdgOsMac"] = 2] = "AdgOsMac";
22
- SpecificPlatform[SpecificPlatform["AdgOsAndroid"] = 4] = "AdgOsAndroid";
23
- SpecificPlatform[SpecificPlatform["AdgExtChrome"] = 8] = "AdgExtChrome";
24
- SpecificPlatform[SpecificPlatform["AdgExtOpera"] = 16] = "AdgExtOpera";
25
- SpecificPlatform[SpecificPlatform["AdgExtEdge"] = 32] = "AdgExtEdge";
26
- SpecificPlatform[SpecificPlatform["AdgExtFirefox"] = 64] = "AdgExtFirefox";
27
- SpecificPlatform[SpecificPlatform["AdgCbAndroid"] = 128] = "AdgCbAndroid";
28
- SpecificPlatform[SpecificPlatform["AdgCbIos"] = 256] = "AdgCbIos";
29
- SpecificPlatform[SpecificPlatform["AdgCbSafari"] = 512] = "AdgCbSafari";
30
- SpecificPlatform[SpecificPlatform["UboExtChrome"] = 1024] = "UboExtChrome";
31
- SpecificPlatform[SpecificPlatform["UboExtOpera"] = 2048] = "UboExtOpera";
32
- SpecificPlatform[SpecificPlatform["UboExtEdge"] = 4096] = "UboExtEdge";
33
- SpecificPlatform[SpecificPlatform["UboExtFirefox"] = 8192] = "UboExtFirefox";
34
- SpecificPlatform[SpecificPlatform["AbpExtChrome"] = 16384] = "AbpExtChrome";
35
- SpecificPlatform[SpecificPlatform["AbpExtOpera"] = 32768] = "AbpExtOpera";
36
- SpecificPlatform[SpecificPlatform["AbpExtEdge"] = 65536] = "AbpExtEdge";
37
- SpecificPlatform[SpecificPlatform["AbpExtFirefox"] = 131072] = "AbpExtFirefox";
38
- })(SpecificPlatform || (SpecificPlatform = {}));
39
- /**
40
- * List of generic platforms (combinations of specific platforms).
41
- */
42
- var GenericPlatform;
43
- (function (GenericPlatform) {
44
- GenericPlatform[GenericPlatform["AdgOsAny"] = 7] = "AdgOsAny";
45
- GenericPlatform[GenericPlatform["AdgSafariAny"] = 768] = "AdgSafariAny";
46
- GenericPlatform[GenericPlatform["AdgExtChromium"] = 56] = "AdgExtChromium";
47
- GenericPlatform[GenericPlatform["AdgExtAny"] = 120] = "AdgExtAny";
48
- GenericPlatform[GenericPlatform["AdgAny"] = 1023] = "AdgAny";
49
- GenericPlatform[GenericPlatform["UboExtChromium"] = 7168] = "UboExtChromium";
50
- GenericPlatform[GenericPlatform["UboExtAny"] = 15360] = "UboExtAny";
51
- GenericPlatform[GenericPlatform["UboAny"] = 15360] = "UboAny";
52
- GenericPlatform[GenericPlatform["AbpExtChromium"] = 114688] = "AbpExtChromium";
53
- GenericPlatform[GenericPlatform["AbpExtAny"] = 245760] = "AbpExtAny";
54
- GenericPlatform[GenericPlatform["AbpAny"] = 245760] = "AbpAny";
55
- GenericPlatform[GenericPlatform["Any"] = 262143] = "Any";
56
- })(GenericPlatform || (GenericPlatform = {}));
57
-
58
- export { GenericPlatform, SpecificPlatform };