@adguard/agtree 3.0.0-alpha.1 → 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (613) hide show
  1. package/README.md +1 -1
  2. package/dist/{esm/ast-utils/clone.mjs → ast-utils/clone.js} +2 -2
  3. package/dist/{esm/ast-utils/modifiers.mjs → ast-utils/modifiers.js} +3 -3
  4. package/dist/{esm/ast-utils/network-rules.mjs → ast-utils/network-rules.js} +5 -5
  5. package/dist/{esm/ast-utils/scriptlets.mjs → ast-utils/scriptlets.js} +4 -4
  6. package/dist/{esm/common/abp-snippet-injection-body-common.mjs → common/abp-snippet-injection-body-common.js} +8 -1
  7. package/dist/{esm/common/agent-common.mjs → common/agent-common.js} +2 -2
  8. package/dist/common/ubo-selector-common.js +17 -0
  9. package/dist/{esm/compatibility-tables/base.mjs → compatibility-tables/base.js} +5 -5
  10. package/dist/{esm/compatibility-tables/compatibility-table-data.mjs → compatibility-tables/compatibility-table-data.js} +2 -2
  11. package/dist/{esm/compatibility-tables/modifiers.mjs → compatibility-tables/modifiers.js} +5 -5
  12. package/dist/compatibility-tables/platforms.js +76 -0
  13. package/dist/{esm/compatibility-tables/redirects.mjs → compatibility-tables/redirects.js} +7 -7
  14. package/dist/{esm/compatibility-tables/schemas/base.mjs → compatibility-tables/schemas/base.js} +3 -3
  15. package/dist/{esm/compatibility-tables/schemas/modifier.mjs → compatibility-tables/schemas/modifier.js} +30 -6
  16. package/dist/{esm/compatibility-tables/schemas/platform.mjs → compatibility-tables/schemas/platform.js} +3 -3
  17. package/dist/{esm/compatibility-tables/schemas/redirect.mjs → compatibility-tables/schemas/redirect.js} +4 -4
  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} +3 -3
  20. package/dist/{esm/compatibility-tables/scriptlets.mjs → compatibility-tables/scriptlets.js} +4 -4
  21. package/dist/{esm/compatibility-tables/utils/platform-helpers.mjs → compatibility-tables/utils/platform-helpers.js} +2 -2
  22. package/dist/{esm/compatibility-tables/utils/resource-type-helpers.mjs → compatibility-tables/utils/resource-type-helpers.js} +4 -4
  23. package/dist/{esm/compatibility-tables/utils/zod-camelcase.mjs → compatibility-tables/utils/zod-camelcase.js} +1 -1
  24. package/dist/{esm/converter/base-interfaces/base-converter.mjs → converter/base-interfaces/base-converter.js} +2 -2
  25. package/dist/{esm/converter/base-interfaces/conversion-result.mjs → converter/base-interfaces/conversion-result.js} +1 -1
  26. package/dist/{esm/converter/base-interfaces/rule-converter-base.mjs → converter/base-interfaces/rule-converter-base.js} +3 -3
  27. package/dist/{esm/converter/comment/index.mjs → converter/comment/index.js} +6 -6
  28. package/dist/{esm/converter/cosmetic/css.mjs → converter/cosmetic/css.js} +8 -8
  29. package/dist/{esm/converter/cosmetic/element-hiding.mjs → converter/cosmetic/element-hiding.js} +8 -8
  30. package/dist/{esm/converter/cosmetic/header-removal.mjs → converter/cosmetic/header-removal.js} +11 -11
  31. package/dist/{esm/converter/cosmetic/html.mjs → converter/cosmetic/html.js} +22 -24
  32. package/dist/{esm/converter/cosmetic/index.mjs → converter/cosmetic/index.js} +12 -12
  33. package/dist/{esm/converter/cosmetic/rule-modifiers/adg.mjs → converter/cosmetic/rule-modifiers/adg.js} +9 -9
  34. package/dist/{esm/converter/cosmetic/scriptlet.mjs → converter/cosmetic/scriptlet.js} +22 -22
  35. package/dist/{esm/converter/css/index.mjs → converter/css/index.js} +22 -24
  36. package/dist/{esm/converter/data/css.mjs → converter/data/css.js} +1 -1
  37. package/dist/{esm/converter/filter-list.mjs → converter/filter-list.js} +6 -6
  38. package/dist/converter/index.js +8 -0
  39. package/dist/{esm/converter/misc/network-rule-modifier.mjs → converter/misc/network-rule-modifier.js} +21 -21
  40. package/dist/{esm/converter/network/index.mjs → converter/network/index.js} +5 -5
  41. package/dist/{esm/converter/raw-filter-list.mjs → converter/raw-filter-list.js} +8 -8
  42. package/dist/{esm/converter/rule.mjs → converter/rule.js} +8 -8
  43. package/dist/{esm/deserializer/base-deserializer.mjs → deserializer/base-deserializer.js} +3 -3
  44. package/dist/{esm/deserializer/comment/agent-comment-deserializer.mjs → deserializer/comment/agent-comment-deserializer.js} +13 -8
  45. package/dist/{esm/deserializer/comment/agent-deserializer.mjs → deserializer/comment/agent-deserializer.js} +7 -7
  46. package/dist/{esm/deserializer/comment/comment-rule-deserializer.mjs → deserializer/comment/comment-rule-deserializer.js} +10 -63
  47. package/dist/{esm/deserializer/comment/config-comment-deserializer.mjs → deserializer/comment/config-comment-deserializer.js} +9 -9
  48. package/dist/{esm/deserializer/comment/hint-comment-deserializer.mjs → deserializer/comment/hint-comment-deserializer.js} +14 -9
  49. package/dist/{esm/deserializer/comment/hint-deserializer.mjs → deserializer/comment/hint-deserializer.js} +7 -7
  50. package/dist/{esm/deserializer/comment/metadata-comment-deserializer.mjs → deserializer/comment/metadata-comment-deserializer.js} +8 -8
  51. package/dist/{esm/deserializer/comment/pre-processor-comment-deserializer.mjs → deserializer/comment/pre-processor-comment-deserializer.js} +11 -11
  52. package/dist/{esm/deserializer/comment/simple-comment-deserializer.mjs → deserializer/comment/simple-comment-deserializer.js} +8 -8
  53. package/dist/{esm/deserializer/cosmetic/cosmetic-rule-deserializer.mjs → deserializer/cosmetic/cosmetic-rule-deserializer.js} +23 -17
  54. package/dist/{esm/deserializer/cosmetic/css-injection-body-deserializer.mjs → deserializer/cosmetic/css-injection-body-deserializer.js} +9 -6
  55. package/dist/{esm/deserializer/cosmetic/element-hiding-body-deserializer.mjs → deserializer/cosmetic/element-hiding-body-deserializer.js} +10 -6
  56. package/dist/{esm/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js} +8 -4
  57. package/dist/{esm/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js} +9 -4
  58. package/dist/{esm/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js} +10 -6
  59. package/dist/{esm/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js} +8 -5
  60. package/dist/{esm/deserializer/empty-rule-deserializer.mjs → deserializer/empty-rule-deserializer.js} +11 -7
  61. package/dist/{esm/deserializer/filterlist-deserializer.mjs → deserializer/filterlist-deserializer.js} +10 -6
  62. package/dist/{esm/deserializer/index.mjs → deserializer/index.js} +3 -3
  63. package/dist/{esm/deserializer/invalid-rule-deserializer.mjs → deserializer/invalid-rule-deserializer.js} +11 -7
  64. package/dist/{esm/deserializer/invalid-rule-error-node-deserializer.mjs → deserializer/invalid-rule-error-node-deserializer.js} +9 -5
  65. package/dist/{esm/deserializer/misc/domain-list-deserializer.mjs → deserializer/misc/domain-list-deserializer.js} +7 -7
  66. package/dist/{esm/deserializer/misc/list-item-deserializer.mjs → deserializer/misc/list-item-deserializer.js} +12 -6
  67. package/dist/{esm/deserializer/misc/list-items-deserializer.mjs → deserializer/misc/list-items-deserializer.js} +6 -2
  68. package/dist/{esm/deserializer/misc/logical-expression-deserializer.mjs → deserializer/misc/logical-expression-deserializer.js} +7 -7
  69. package/dist/{esm/deserializer/misc/modifier-deserializer.mjs → deserializer/misc/modifier-deserializer.js} +7 -7
  70. package/dist/{esm/deserializer/misc/modifier-list-deserializer.mjs → deserializer/misc/modifier-list-deserializer.js} +11 -6
  71. package/dist/{esm/deserializer/misc/parameter-list-deserializer.mjs → deserializer/misc/parameter-list-deserializer.js} +10 -6
  72. package/dist/{esm/deserializer/misc/value-deserializer.mjs → deserializer/misc/value-deserializer.js} +5 -5
  73. package/dist/{esm/deserializer/network/host-rule-deserializer.mjs → deserializer/network/host-rule-deserializer.js} +14 -26
  74. package/dist/{esm/deserializer/network/hostname-list-deserializer.mjs → deserializer/network/hostname-list-deserializer.js} +14 -6
  75. package/dist/{esm/deserializer/network/network-rule-deserializer.mjs → deserializer/network/network-rule-deserializer.js} +10 -10
  76. package/dist/{esm/deserializer/rule-deserializer.mjs → deserializer/rule-deserializer.js} +9 -9
  77. package/dist/{esm/deserializer/syntax-deserialization-map.mjs → deserializer/syntax-deserialization-map.js} +2 -2
  78. package/dist/{esm/errors/adblock-syntax-error.mjs → errors/adblock-syntax-error.js} +1 -1
  79. package/dist/{esm/errors/binary-schema-mismatch-error.mjs → errors/binary-schema-mismatch-error.js} +1 -1
  80. package/dist/{esm/errors/not-implemented-error.mjs → errors/not-implemented-error.js} +1 -1
  81. package/dist/{esm/errors/rule-conversion-error.mjs → errors/rule-conversion-error.js} +1 -1
  82. package/dist/{esm/generator/base-generator.mjs → generator/base-generator.js} +3 -3
  83. package/dist/{esm/generator/comment/agent-comment-generator.mjs → generator/comment/agent-comment-generator.js} +7 -4
  84. package/dist/{esm/generator/comment/agent-generator.mjs → generator/comment/agent-generator.js} +8 -4
  85. package/dist/{esm/generator/comment/comment-rule-generator.mjs → generator/comment/comment-rule-generator.js} +10 -63
  86. package/dist/{esm/generator/comment/config-comment-generator.mjs → generator/comment/config-comment-generator.js} +7 -4
  87. package/dist/{esm/generator/comment/hint-comment-generator.mjs → generator/comment/hint-comment-generator.js} +7 -4
  88. package/dist/{esm/generator/comment/hint-generator.mjs → generator/comment/hint-generator.js} +10 -7
  89. package/dist/{esm/generator/comment/metadata-comment-generator.mjs → generator/comment/metadata-comment-generator.js} +7 -4
  90. package/dist/{esm/generator/comment/pre-processor-comment-generator.mjs → generator/comment/pre-processor-comment-generator.js} +9 -6
  91. package/dist/{esm/generator/comment/simple-comment-generator.mjs → generator/comment/simple-comment-generator.js} +7 -4
  92. package/dist/{esm/generator/cosmetic/body/abp-snippet-injection-body-generator.mjs → generator/cosmetic/body/abp-snippet-injection-body-generator.js} +9 -5
  93. package/dist/{esm/generator/cosmetic/body/adg-scriptlet-injection-body-generator.mjs → generator/cosmetic/body/adg-scriptlet-injection-body-generator.js} +9 -5
  94. package/dist/{esm/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.mjs → generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js} +9 -5
  95. package/dist/{esm/generator/cosmetic/cosmetic-rule-body-generator.mjs → generator/cosmetic/cosmetic-rule-body-generator.js} +15 -11
  96. package/dist/{esm/generator/cosmetic/cosmetic-rule-generator.mjs → generator/cosmetic/cosmetic-rule-generator.js} +9 -19
  97. package/dist/{esm/generator/cosmetic/cosmetic-rule-pattern-generator.mjs → generator/cosmetic/cosmetic-rule-pattern-generator.js} +9 -6
  98. package/dist/{esm/generator/css/adg-css-injection-generator.mjs → generator/css/adg-css-injection-generator.js} +7 -4
  99. package/dist/{esm/generator/filterlist-generator.mjs → generator/filterlist-generator.js} +20 -8
  100. package/dist/{esm/generator/index.mjs → generator/index.js} +4 -4
  101. package/dist/{esm/generator/misc/domain-list-generator.mjs → generator/misc/domain-list-generator.js} +6 -3
  102. package/dist/{esm/generator/misc/list-items-generator.mjs → generator/misc/list-items-generator.js} +5 -2
  103. package/dist/{esm/generator/misc/logical-expression-generator.mjs → generator/misc/logical-expression-generator.js} +7 -4
  104. package/dist/{esm/generator/misc/modifier-generator.mjs → generator/misc/modifier-generator.js} +8 -5
  105. package/dist/{esm/generator/misc/modifier-list-generator.mjs → generator/misc/modifier-list-generator.js} +7 -4
  106. package/dist/{esm/generator/misc/parameter-list-generator.mjs → generator/misc/parameter-list-generator.js} +7 -5
  107. package/dist/{esm/generator/misc/value-generator.mjs → generator/misc/value-generator.js} +5 -2
  108. package/dist/{esm/generator/network/host-rule-generator.mjs → generator/network/host-rule-generator.js} +6 -3
  109. package/dist/{esm/generator/network/network-rule-generator.mjs → generator/network/network-rule-generator.js} +10 -7
  110. package/dist/{esm/generator/rule-generator.mjs → generator/rule-generator.js} +11 -8
  111. package/dist/{esm/index.mjs → index.js} +65 -65
  112. package/dist/{cjs/marshalling-utils/empty-rule-common.js → marshalling-utils/comment/agent-comment-common.js} +8 -8
  113. package/dist/{esm/marshalling-utils/comment/agent-common.mjs → marshalling-utils/comment/agent-common.js} +7 -8
  114. package/dist/{esm/marshalling-utils/comment/config-comment-common.mjs → marshalling-utils/comment/config-comment-common.js} +14 -16
  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} +7 -8
  117. package/dist/{esm/marshalling-utils/comment/metadata-comment-common.mjs → marshalling-utils/comment/metadata-comment-common.js} +8 -9
  118. package/dist/{esm/marshalling-utils/comment/pre-processor-comment-common.mjs → marshalling-utils/comment/pre-processor-comment-common.js} +8 -9
  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} +6 -7
  121. package/dist/{esm/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.mjs → marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js} +1 -1
  122. package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +24 -0
  123. package/dist/{esm/marshalling-utils/cosmetic/body/element-hiding-body-common.mjs → marshalling-utils/cosmetic/body/element-hiding-body-common.js} +6 -7
  124. package/dist/{esm/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.mjs → marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js} +1 -1
  125. package/dist/{esm/marshalling-utils/cosmetic/cosmetic-rule-common.mjs → marshalling-utils/cosmetic/cosmetic-rule-common.js} +11 -12
  126. package/dist/{esm/marshalling-utils/empty-rule-common.mjs → marshalling-utils/empty-rule-common.js} +5 -6
  127. package/dist/{esm/marshalling-utils/filter-list-common.mjs → marshalling-utils/filter-list-common.js} +6 -7
  128. package/dist/{esm/marshalling-utils/invalid-rule-common.mjs → marshalling-utils/invalid-rule-common.js} +6 -7
  129. package/dist/marshalling-utils/invalid-rule-error-node-common.js +22 -0
  130. package/dist/marshalling-utils/misc/binary-type-common.js +66 -0
  131. package/dist/{esm/marshalling-utils/misc/domain-list-common.mjs → marshalling-utils/misc/domain-list-common.js} +8 -9
  132. package/dist/marshalling-utils/misc/host-rule-common.js +25 -0
  133. package/dist/{esm/marshalling-utils/misc/hostname-list-common.mjs → marshalling-utils/misc/hostname-list-common.js} +6 -7
  134. package/dist/{esm/marshalling-utils/misc/list-item-common.mjs → marshalling-utils/misc/list-item-common.js} +7 -8
  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} +8 -9
  137. package/dist/{esm/marshalling-utils/misc/modifier-list-common.mjs → marshalling-utils/misc/modifier-list-common.js} +6 -7
  138. package/dist/{esm/marshalling-utils/misc/parameter-list-common.mjs → marshalling-utils/misc/parameter-list-common.js} +6 -7
  139. package/dist/{esm/marshalling-utils/misc/value-common.mjs → marshalling-utils/misc/value-common.js} +7 -8
  140. package/dist/marshalling-utils/network/network-rule-common.js +25 -0
  141. package/dist/{esm/marshalling-utils/syntax-serialization-map.mjs → marshalling-utils/syntax-serialization-map.js} +2 -2
  142. package/dist/{esm/nodes/index.mjs → nodes/index.js} +66 -78
  143. package/dist/{esm/package.json.mjs → package.json.js} +2 -2
  144. package/dist/{esm/parser/base-parser.mjs → parser/base-parser.js} +2 -2
  145. package/dist/{esm/parser/comment/agent-comment-parser.mjs → parser/comment/agent-comment-parser.js} +11 -11
  146. package/dist/{esm/parser/comment/agent-parser.mjs → parser/comment/agent-parser.js} +12 -11
  147. package/dist/{esm/parser/comment/comment-parser.mjs → parser/comment/comment-parser.js} +9 -9
  148. package/dist/{esm/parser/comment/config-comment-parser.mjs → parser/comment/config-comment-parser.js} +9 -9
  149. package/dist/{esm/parser/comment/hint-comment-parser.mjs → parser/comment/hint-comment-parser.js} +9 -9
  150. package/dist/{esm/parser/comment/hint-parser.mjs → parser/comment/hint-parser.js} +8 -8
  151. package/dist/{esm/parser/comment/metadata-comment-parser.mjs → parser/comment/metadata-comment-parser.js} +10 -10
  152. package/dist/{esm/parser/comment/preprocessor-parser.mjs → parser/comment/preprocessor-parser.js} +11 -11
  153. package/dist/{esm/parser/comment/simple-comment-parser.mjs → parser/comment/simple-comment-parser.js} +8 -8
  154. package/dist/{esm/parser/cosmetic/body/abp-snippet-injection-body-parser.mjs → parser/cosmetic/body/abp-snippet-injection-body-parser.js} +8 -8
  155. package/dist/{esm/parser/cosmetic/body/adg-scriptlet-injection-body-parser.mjs → parser/cosmetic/body/adg-scriptlet-injection-body-parser.js} +8 -8
  156. package/dist/{esm/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.mjs → parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js} +7 -7
  157. package/dist/{esm/parser/cosmetic/cosmetic-rule-parser.mjs → parser/cosmetic/cosmetic-rule-parser.js} +18 -18
  158. package/dist/{esm/parser/css/adg-css-injection-parser.mjs → parser/css/adg-css-injection-parser.js} +6 -6
  159. package/dist/{esm/parser/css/balancing.mjs → parser/css/balancing.js} +3 -3
  160. package/dist/{esm/parser/css/constants.mjs → parser/css/constants.js} +1 -1
  161. package/dist/{esm/parser/css/css-token-stream.mjs → parser/css/css-token-stream.js} +6 -6
  162. package/dist/{esm/parser/css/ubo-selector-parser.mjs → parser/css/ubo-selector-parser.js} +7 -7
  163. package/dist/{esm/parser/filterlist-parser.mjs → parser/filterlist-parser.js} +6 -6
  164. package/dist/parser/index.js +12 -0
  165. package/dist/{esm/parser/misc/app-list-parser.mjs → parser/misc/app-list-parser.js} +6 -6
  166. package/dist/{esm/parser/misc/domain-list-parser.mjs → parser/misc/domain-list-parser.js} +6 -6
  167. package/dist/{esm/parser/misc/list-items-parser.mjs → parser/misc/list-items-parser.js} +9 -6
  168. package/dist/{esm/parser/misc/logical-expression-parser.mjs → parser/misc/logical-expression-parser.js} +17 -19
  169. package/dist/{esm/parser/misc/method-list-parser.mjs → parser/misc/method-list-parser.js} +6 -6
  170. package/dist/{esm/parser/misc/modifier-list.mjs → parser/misc/modifier-list.js} +6 -6
  171. package/dist/{esm/parser/misc/modifier-parser.mjs → parser/misc/modifier-parser.js} +7 -7
  172. package/dist/{esm/parser/misc/parameter-list-parser.mjs → parser/misc/parameter-list-parser.js} +9 -6
  173. package/dist/{esm/parser/misc/stealth-option-list-parser.mjs → parser/misc/stealth-option-list-parser.js} +6 -6
  174. package/dist/{esm/parser/misc/ubo-parameter-list-parser.mjs → parser/misc/ubo-parameter-list-parser.js} +11 -8
  175. package/dist/{esm/parser/misc/value-parser.mjs → parser/misc/value-parser.js} +4 -4
  176. package/dist/{esm/parser/network/host-rule-parser.mjs → parser/network/host-rule-parser.js} +7 -7
  177. package/dist/{esm/parser/network/network-rule-parser.mjs → parser/network/network-rule-parser.js} +16 -10
  178. package/dist/{esm/parser/options.mjs → parser/options.js} +1 -1
  179. package/dist/{esm/parser/rule-parser.mjs → parser/rule-parser.js} +10 -10
  180. package/dist/{esm/serializer/base-serializer.mjs → serializer/base-serializer.js} +2 -2
  181. package/dist/{esm/serializer/comment/agent-comment-serializer.mjs → serializer/comment/agent-comment-serializer.js} +10 -7
  182. package/dist/{esm/serializer/comment/agent-serializer.mjs → serializer/comment/agent-serializer.js} +8 -17
  183. package/dist/{esm/serializer/comment/comment-rule-serializer.mjs → serializer/comment/comment-rule-serializer.js} +9 -9
  184. package/dist/{esm/serializer/comment/config-comment-serializer.mjs → serializer/comment/config-comment-serializer.js} +9 -9
  185. package/dist/{esm/serializer/comment/hint-comment-serializer.mjs → serializer/comment/hint-comment-serializer.js} +12 -9
  186. package/dist/{esm/serializer/comment/hint-serializer.mjs → serializer/comment/hint-serializer.js} +8 -8
  187. package/dist/{esm/serializer/comment/metadata-comment-serializer.mjs → serializer/comment/metadata-comment-serializer.js} +7 -7
  188. package/dist/{esm/serializer/comment/pre-processor-comment-serializer.mjs → serializer/comment/pre-processor-comment-serializer.js} +10 -10
  189. package/dist/{esm/serializer/comment/simple-comment-serializer.mjs → serializer/comment/simple-comment-serializer.js} +9 -9
  190. package/dist/{esm/serializer/cosmetic/body/abp-snippet-injection-body-serializer.mjs → serializer/cosmetic/body/abp-snippet-injection-body-serializer.js} +8 -8
  191. package/dist/{esm/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.mjs → serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js} +8 -8
  192. package/dist/{esm/serializer/cosmetic/body/scriptlet-body-serializer.mjs → serializer/cosmetic/body/scriptlet-body-serializer.js} +15 -12
  193. package/dist/{esm/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.mjs → serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js} +4 -4
  194. package/dist/{esm/serializer/cosmetic/cosmetic-rule-serializer.mjs → serializer/cosmetic/cosmetic-rule-serializer.js} +21 -30
  195. package/dist/{esm/serializer/cosmetic/css-injection-body-serializer.mjs → serializer/cosmetic/css-injection-body-serializer.js} +10 -7
  196. package/dist/{esm/serializer/cosmetic/element-hiding-body-serializer.mjs → serializer/cosmetic/element-hiding-body-serializer.js} +10 -7
  197. package/dist/{esm/serializer/empty-rule-serializer.mjs → serializer/empty-rule-serializer.js} +9 -6
  198. package/dist/{esm/serializer/filterlist-serializer.mjs → serializer/filterlist-serializer.js} +8 -9
  199. package/dist/{esm/serializer/index.mjs → serializer/index.js} +2 -2
  200. package/dist/{esm/serializer/invalid-rule-error-node-serializer.mjs → serializer/invalid-rule-error-node-serializer.js} +9 -6
  201. package/dist/{esm/serializer/invalid-rule-serializer.mjs → serializer/invalid-rule-serializer.js} +10 -7
  202. package/dist/{esm/serializer/misc/domain-list-serializer.mjs → serializer/misc/domain-list-serializer.js} +9 -9
  203. package/dist/{esm/serializer/misc/list-item-serializer.mjs → serializer/misc/list-item-serializer.js} +10 -7
  204. package/dist/{esm/serializer/misc/list-items-serializer.mjs → serializer/misc/list-items-serializer.js} +5 -2
  205. package/dist/{esm/serializer/misc/logical-expression-serializer.mjs → serializer/misc/logical-expression-serializer.js} +13 -13
  206. package/dist/{esm/serializer/misc/modifier-list-serializer.mjs → serializer/misc/modifier-list-serializer.js} +10 -7
  207. package/dist/{esm/serializer/misc/modifier-serializer.mjs → serializer/misc/modifier-serializer.js} +7 -7
  208. package/dist/{esm/serializer/misc/parameter-list-serializer.mjs → serializer/misc/parameter-list-serializer.js} +10 -7
  209. package/dist/{esm/serializer/misc/value-serializer.mjs → serializer/misc/value-serializer.js} +6 -6
  210. package/dist/{esm/serializer/network/host-rule-serializer.mjs → serializer/network/host-rule-serializer.js} +9 -9
  211. package/dist/{esm/serializer/network/hostname-list-serializer.mjs → serializer/network/hostname-list-serializer.js} +13 -7
  212. package/dist/{esm/serializer/network/network-rule-serializer.mjs → serializer/network/network-rule-serializer.js} +9 -9
  213. package/dist/{esm/serializer/rule-serializer.mjs → serializer/rule-serializer.js} +9 -9
  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/index.d.ts +1 -0
  300. package/dist/types/parser/misc/list-items-parser.d.ts +3 -0
  301. package/dist/types/parser/misc/logical-expression-parser.d.ts +6 -5
  302. package/dist/types/parser/misc/parameter-list-parser.d.ts +3 -0
  303. package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +3 -0
  304. package/dist/types/parser/misc/value-parser.d.ts +1 -1
  305. package/dist/types/serializer/comment/agent-serializer.d.ts +1 -10
  306. package/dist/types/serializer/comment/config-comment-serializer.d.ts +1 -1
  307. package/dist/types/serializer/comment/simple-comment-serializer.d.ts +2 -2
  308. package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +4 -4
  309. package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +4 -4
  310. package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +8 -5
  311. package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +4 -11
  312. package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +3 -0
  313. package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +3 -0
  314. package/dist/types/serializer/empty-rule-serializer.d.ts +3 -0
  315. package/dist/types/serializer/filterlist-serializer.d.ts +1 -2
  316. package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +3 -0
  317. package/dist/types/serializer/invalid-rule-serializer.d.ts +3 -0
  318. package/dist/types/serializer/misc/domain-list-serializer.d.ts +2 -2
  319. package/dist/types/serializer/misc/list-item-serializer.d.ts +3 -0
  320. package/dist/types/serializer/misc/list-items-serializer.d.ts +3 -0
  321. package/dist/types/serializer/misc/logical-expression-serializer.d.ts +7 -6
  322. package/dist/types/serializer/misc/parameter-list-serializer.d.ts +3 -0
  323. package/dist/types/serializer/network/hostname-list-serializer.d.ts +3 -0
  324. package/dist/types/utils/adblockers.d.ts +7 -6
  325. package/dist/types/utils/domain.d.ts +3 -0
  326. package/dist/types/utils/input-byte-buffer.d.ts +6 -0
  327. package/dist/types/utils/output-byte-buffer.d.ts +6 -0
  328. package/dist/types/utils/quotes.d.ts +7 -6
  329. package/dist/types/utils/string.d.ts +3 -0
  330. package/dist/types/validator/value.d.ts +2 -1
  331. package/dist/{esm/utils/adblockers.mjs → utils/adblockers.js} +7 -8
  332. package/dist/{esm/utils/binary-schema-version.mjs → utils/binary-schema-version.js} +1 -1
  333. package/dist/{esm/utils/byte-buffer.mjs → utils/byte-buffer.js} +1 -1
  334. package/dist/{esm/utils/categorizer.mjs → utils/categorizer.js} +4 -4
  335. package/dist/{esm/utils/clone.mjs → utils/clone.js} +1 -1
  336. package/dist/{esm/utils/constants.mjs → utils/constants.js} +1 -1
  337. package/dist/{esm/utils/cosmetic-rule-separator.mjs → utils/cosmetic-rule-separator.js} +3 -3
  338. package/dist/{esm/utils/deep-freeze.mjs → utils/deep-freeze.js} +1 -1
  339. package/dist/{esm/utils/domain.mjs → utils/domain.js} +5 -2
  340. package/dist/{esm/utils/error.mjs → utils/error.js} +1 -1
  341. package/dist/utils/index.js +21 -0
  342. package/dist/{esm/utils/input-byte-buffer.mjs → utils/input-byte-buffer.js} +15 -7
  343. package/dist/{esm/utils/is-chromium.mjs → utils/is-chromium.js} +1 -1
  344. package/dist/{esm/utils/logical-expression.mjs → utils/logical-expression.js} +3 -3
  345. package/dist/{esm/utils/multi-value-map.mjs → utils/multi-value-map.js} +2 -2
  346. package/dist/{esm/utils/output-byte-buffer.mjs → utils/output-byte-buffer.js} +13 -5
  347. package/dist/{esm/utils/position-provider.mjs → utils/position-provider.js} +2 -2
  348. package/dist/{esm/utils/quotes.mjs → utils/quotes.js} +8 -9
  349. package/dist/{esm/utils/regexp.mjs → utils/regexp.js} +2 -2
  350. package/dist/{esm/utils/string.mjs → utils/string.js} +5 -2
  351. package/dist/{esm/utils/text-decoder-polyfill.mjs → utils/text-decoder-polyfill.js} +2 -2
  352. package/dist/{esm/utils/text-encoder-polyfill.mjs → utils/text-encoder-polyfill.js} +1 -1
  353. package/dist/{esm/utils/type-guards.mjs → utils/type-guards.js} +1 -1
  354. package/dist/{esm/validator/constants.mjs → validator/constants.js} +3 -3
  355. package/dist/{esm/validator/helpers.mjs → validator/helpers.js} +3 -3
  356. package/dist/{esm/validator/index.mjs → validator/index.js} +10 -10
  357. package/dist/{esm/validator/value.mjs → validator/value.js} +33 -28
  358. package/dist/{esm/version.mjs → version.js} +2 -2
  359. package/package.json +16 -48
  360. package/dist/cjs/ast-utils/clone.js +0 -65
  361. package/dist/cjs/ast-utils/modifiers.js +0 -56
  362. package/dist/cjs/ast-utils/network-rules.js +0 -43
  363. package/dist/cjs/ast-utils/scriptlets.js +0 -93
  364. package/dist/cjs/common/abp-snippet-injection-body-common.js +0 -18
  365. package/dist/cjs/common/agent-common.js +0 -58
  366. package/dist/cjs/common/ubo-selector-common.js +0 -18
  367. package/dist/cjs/compatibility-tables/base.js +0 -264
  368. package/dist/cjs/compatibility-tables/compatibility-table-data.js +0 -15
  369. package/dist/cjs/compatibility-tables/modifiers.js +0 -57
  370. package/dist/cjs/compatibility-tables/platforms.js +0 -58
  371. package/dist/cjs/compatibility-tables/redirects.js +0 -102
  372. package/dist/cjs/compatibility-tables/schemas/base.js +0 -116
  373. package/dist/cjs/compatibility-tables/schemas/modifier.js +0 -107
  374. package/dist/cjs/compatibility-tables/schemas/platform.js +0 -71
  375. package/dist/cjs/compatibility-tables/schemas/redirect.js +0 -31
  376. package/dist/cjs/compatibility-tables/schemas/resource-type.js +0 -39
  377. package/dist/cjs/compatibility-tables/schemas/scriptlet.js +0 -81
  378. package/dist/cjs/compatibility-tables/scriptlets.js +0 -30
  379. package/dist/cjs/compatibility-tables/utils/platform-helpers.js +0 -112
  380. package/dist/cjs/compatibility-tables/utils/resource-type-helpers.js +0 -64
  381. package/dist/cjs/compatibility-tables/utils/zod-camelcase.js +0 -27
  382. package/dist/cjs/converter/base-interfaces/base-converter.js +0 -61
  383. package/dist/cjs/converter/base-interfaces/conversion-result.js +0 -41
  384. package/dist/cjs/converter/base-interfaces/rule-converter-base.js +0 -62
  385. package/dist/cjs/converter/comment/index.js +0 -56
  386. package/dist/cjs/converter/cosmetic/css.js +0 -71
  387. package/dist/cjs/converter/cosmetic/element-hiding.js +0 -64
  388. package/dist/cjs/converter/cosmetic/header-removal.js +0 -126
  389. package/dist/cjs/converter/cosmetic/html.js +0 -384
  390. package/dist/cjs/converter/cosmetic/index.js +0 -120
  391. package/dist/cjs/converter/cosmetic/rule-modifiers/adg.js +0 -81
  392. package/dist/cjs/converter/cosmetic/scriptlet.js +0 -356
  393. package/dist/cjs/converter/css/index.js +0 -193
  394. package/dist/cjs/converter/data/css.js +0 -133
  395. package/dist/cjs/converter/filter-list.js +0 -90
  396. package/dist/cjs/converter/index.js +0 -15
  397. package/dist/cjs/converter/misc/network-rule-modifier.js +0 -313
  398. package/dist/cjs/converter/network/index.js +0 -101
  399. package/dist/cjs/converter/raw-filter-list.js +0 -58
  400. package/dist/cjs/converter/rule.js +0 -83
  401. package/dist/cjs/deserializer/base-deserializer.js +0 -31
  402. package/dist/cjs/deserializer/comment/agent-comment-deserializer.js +0 -76
  403. package/dist/cjs/deserializer/comment/agent-deserializer.js +0 -67
  404. package/dist/cjs/deserializer/comment/comment-rule-deserializer.js +0 -109
  405. package/dist/cjs/deserializer/comment/config-comment-deserializer.js +0 -113
  406. package/dist/cjs/deserializer/comment/hint-comment-deserializer.js +0 -69
  407. package/dist/cjs/deserializer/comment/hint-deserializer.js +0 -88
  408. package/dist/cjs/deserializer/comment/metadata-comment-deserializer.js +0 -71
  409. package/dist/cjs/deserializer/comment/pre-processor-comment-deserializer.js +0 -114
  410. package/dist/cjs/deserializer/comment/simple-comment-deserializer.js +0 -67
  411. package/dist/cjs/deserializer/cosmetic/cosmetic-rule-deserializer.js +0 -127
  412. package/dist/cjs/deserializer/cosmetic/css-injection-body-deserializer.js +0 -55
  413. package/dist/cjs/deserializer/cosmetic/element-hiding-body-deserializer.js +0 -46
  414. package/dist/cjs/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +0 -37
  415. package/dist/cjs/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +0 -37
  416. package/dist/cjs/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +0 -52
  417. package/dist/cjs/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +0 -38
  418. package/dist/cjs/deserializer/empty-rule-deserializer.js +0 -46
  419. package/dist/cjs/deserializer/filterlist-deserializer.js +0 -83
  420. package/dist/cjs/deserializer/index.js +0 -15
  421. package/dist/cjs/deserializer/invalid-rule-deserializer.js +0 -48
  422. package/dist/cjs/deserializer/invalid-rule-error-node-deserializer.js +0 -48
  423. package/dist/cjs/deserializer/misc/domain-list-deserializer.js +0 -66
  424. package/dist/cjs/deserializer/misc/list-item-deserializer.js +0 -65
  425. package/dist/cjs/deserializer/misc/list-items-deserializer.js +0 -28
  426. package/dist/cjs/deserializer/misc/logical-expression-deserializer.js +0 -199
  427. package/dist/cjs/deserializer/misc/modifier-deserializer.js +0 -89
  428. package/dist/cjs/deserializer/misc/modifier-list-deserializer.js +0 -58
  429. package/dist/cjs/deserializer/misc/parameter-list-deserializer.js +0 -62
  430. package/dist/cjs/deserializer/misc/value-deserializer.js +0 -52
  431. package/dist/cjs/deserializer/network/host-rule-deserializer.js +0 -81
  432. package/dist/cjs/deserializer/network/hostname-list-deserializer.js +0 -50
  433. package/dist/cjs/deserializer/network/network-rule-deserializer.js +0 -67
  434. package/dist/cjs/deserializer/rule-deserializer.js +0 -67
  435. package/dist/cjs/deserializer/syntax-deserialization-map.js +0 -23
  436. package/dist/cjs/errors/adblock-syntax-error.js +0 -41
  437. package/dist/cjs/errors/binary-schema-mismatch-error.js +0 -39
  438. package/dist/cjs/errors/not-implemented-error.js +0 -33
  439. package/dist/cjs/errors/rule-conversion-error.js +0 -28
  440. package/dist/cjs/generator/base-generator.js +0 -29
  441. package/dist/cjs/generator/comment/agent-comment-generator.js +0 -30
  442. package/dist/cjs/generator/comment/agent-generator.js +0 -34
  443. package/dist/cjs/generator/comment/comment-rule-generator.js +0 -102
  444. package/dist/cjs/generator/comment/config-comment-generator.js +0 -44
  445. package/dist/cjs/generator/comment/hint-comment-generator.js +0 -27
  446. package/dist/cjs/generator/comment/hint-generator.js +0 -32
  447. package/dist/cjs/generator/comment/metadata-comment-generator.js +0 -32
  448. package/dist/cjs/generator/comment/pre-processor-comment-generator.js +0 -47
  449. package/dist/cjs/generator/comment/simple-comment-generator.js +0 -28
  450. package/dist/cjs/generator/cosmetic/body/abp-snippet-injection-body-generator.js +0 -36
  451. package/dist/cjs/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +0 -41
  452. package/dist/cjs/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +0 -43
  453. package/dist/cjs/generator/cosmetic/cosmetic-rule-body-generator.js +0 -92
  454. package/dist/cjs/generator/cosmetic/cosmetic-rule-generator.js +0 -66
  455. package/dist/cjs/generator/cosmetic/cosmetic-rule-pattern-generator.js +0 -41
  456. package/dist/cjs/generator/css/adg-css-injection-generator.js +0 -41
  457. package/dist/cjs/generator/filterlist-generator.js +0 -57
  458. package/dist/cjs/generator/index.js +0 -17
  459. package/dist/cjs/generator/misc/domain-list-generator.js +0 -25
  460. package/dist/cjs/generator/misc/list-items-generator.js +0 -38
  461. package/dist/cjs/generator/misc/logical-expression-generator.js +0 -47
  462. package/dist/cjs/generator/misc/modifier-generator.js +0 -33
  463. package/dist/cjs/generator/misc/modifier-list-generator.js +0 -28
  464. package/dist/cjs/generator/misc/parameter-list-generator.js +0 -41
  465. package/dist/cjs/generator/misc/value-generator.js +0 -23
  466. package/dist/cjs/generator/network/host-rule-generator.js +0 -38
  467. package/dist/cjs/generator/network/network-rule-generator.js +0 -37
  468. package/dist/cjs/generator/rule-generator.js +0 -64
  469. package/dist/cjs/index.js +0 -201
  470. package/dist/cjs/marshalling-utils/comment/agent-comment-common.js +0 -22
  471. package/dist/cjs/marshalling-utils/comment/agent-common.js +0 -43
  472. package/dist/cjs/marshalling-utils/comment/config-comment-common.js +0 -58
  473. package/dist/cjs/marshalling-utils/comment/hint-comment-common.js +0 -23
  474. package/dist/cjs/marshalling-utils/comment/hint-common.js +0 -60
  475. package/dist/cjs/marshalling-utils/comment/metadata-comment-common.js +0 -44
  476. package/dist/cjs/marshalling-utils/comment/pre-processor-comment-common.js +0 -63
  477. package/dist/cjs/marshalling-utils/comment/simple-comment-common.js +0 -23
  478. package/dist/cjs/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +0 -64
  479. package/dist/cjs/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +0 -68
  480. package/dist/cjs/marshalling-utils/cosmetic/body/css-injection-body-common.js +0 -25
  481. package/dist/cjs/marshalling-utils/cosmetic/body/element-hiding-body-common.js +0 -22
  482. package/dist/cjs/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +0 -116
  483. package/dist/cjs/marshalling-utils/cosmetic/cosmetic-rule-common.js +0 -51
  484. package/dist/cjs/marshalling-utils/filter-list-common.js +0 -22
  485. package/dist/cjs/marshalling-utils/invalid-rule-common.js +0 -22
  486. package/dist/cjs/marshalling-utils/invalid-rule-error-node-common.js +0 -23
  487. package/dist/cjs/marshalling-utils/misc/binary-type-common.js +0 -67
  488. package/dist/cjs/marshalling-utils/misc/domain-list-common.js +0 -39
  489. package/dist/cjs/marshalling-utils/misc/host-rule-common.js +0 -26
  490. package/dist/cjs/marshalling-utils/misc/hostname-list-common.js +0 -22
  491. package/dist/cjs/marshalling-utils/misc/list-item-common.js +0 -23
  492. package/dist/cjs/marshalling-utils/misc/logical-expression-common.js +0 -89
  493. package/dist/cjs/marshalling-utils/misc/modifier-common.js +0 -236
  494. package/dist/cjs/marshalling-utils/misc/modifier-list-common.js +0 -22
  495. package/dist/cjs/marshalling-utils/misc/parameter-list-common.js +0 -22
  496. package/dist/cjs/marshalling-utils/misc/value-common.js +0 -23
  497. package/dist/cjs/marshalling-utils/network/network-rule-common.js +0 -26
  498. package/dist/cjs/marshalling-utils/syntax-serialization-map.js +0 -32
  499. package/dist/cjs/nodes/index.js +0 -180
  500. package/dist/cjs/package.json.js +0 -11
  501. package/dist/cjs/parser/base-parser.js +0 -32
  502. package/dist/cjs/parser/comment/agent-comment-parser.js +0 -121
  503. package/dist/cjs/parser/comment/agent-parser.js +0 -111
  504. package/dist/cjs/parser/comment/comment-parser.js +0 -110
  505. package/dist/cjs/parser/comment/config-comment-parser.js +0 -139
  506. package/dist/cjs/parser/comment/hint-comment-parser.js +0 -119
  507. package/dist/cjs/parser/comment/hint-parser.js +0 -131
  508. package/dist/cjs/parser/comment/metadata-comment-parser.js +0 -131
  509. package/dist/cjs/parser/comment/preprocessor-parser.js +0 -201
  510. package/dist/cjs/parser/comment/simple-comment-parser.js +0 -108
  511. package/dist/cjs/parser/cosmetic/body/abp-snippet-injection-body-parser.js +0 -81
  512. package/dist/cjs/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +0 -151
  513. package/dist/cjs/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +0 -112
  514. package/dist/cjs/parser/cosmetic/cosmetic-rule-parser.js +0 -456
  515. package/dist/cjs/parser/css/adg-css-injection-parser.js +0 -213
  516. package/dist/cjs/parser/css/balancing.js +0 -97
  517. package/dist/cjs/parser/css/constants.js +0 -21
  518. package/dist/cjs/parser/css/css-token-stream.js +0 -345
  519. package/dist/cjs/parser/css/ubo-selector-parser.js +0 -373
  520. package/dist/cjs/parser/filterlist-parser.js +0 -104
  521. package/dist/cjs/parser/index.js +0 -21
  522. package/dist/cjs/parser/misc/app-list-parser.js +0 -47
  523. package/dist/cjs/parser/misc/domain-list-parser.js +0 -54
  524. package/dist/cjs/parser/misc/list-items-parser.js +0 -116
  525. package/dist/cjs/parser/misc/logical-expression-parser.js +0 -283
  526. package/dist/cjs/parser/misc/method-list-parser.js +0 -48
  527. package/dist/cjs/parser/misc/modifier-list.js +0 -72
  528. package/dist/cjs/parser/misc/modifier-parser.js +0 -91
  529. package/dist/cjs/parser/misc/parameter-list-parser.js +0 -74
  530. package/dist/cjs/parser/misc/stealth-option-list-parser.js +0 -48
  531. package/dist/cjs/parser/misc/ubo-parameter-list-parser.js +0 -148
  532. package/dist/cjs/parser/misc/value-parser.js +0 -39
  533. package/dist/cjs/parser/network/host-rule-parser.js +0 -151
  534. package/dist/cjs/parser/network/network-rule-parser.js +0 -113
  535. package/dist/cjs/parser/options.js +0 -25
  536. package/dist/cjs/parser/rule-parser.js +0 -194
  537. package/dist/cjs/serializer/base-serializer.js +0 -31
  538. package/dist/cjs/serializer/comment/agent-comment-serializer.js +0 -73
  539. package/dist/cjs/serializer/comment/agent-serializer.js +0 -70
  540. package/dist/cjs/serializer/comment/comment-rule-serializer.js +0 -107
  541. package/dist/cjs/serializer/comment/config-comment-serializer.js +0 -84
  542. package/dist/cjs/serializer/comment/hint-comment-serializer.js +0 -64
  543. package/dist/cjs/serializer/comment/hint-serializer.js +0 -56
  544. package/dist/cjs/serializer/comment/metadata-comment-serializer.js +0 -75
  545. package/dist/cjs/serializer/comment/pre-processor-comment-serializer.js +0 -73
  546. package/dist/cjs/serializer/comment/simple-comment-serializer.js +0 -54
  547. package/dist/cjs/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +0 -38
  548. package/dist/cjs/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +0 -38
  549. package/dist/cjs/serializer/cosmetic/body/scriptlet-body-serializer.js +0 -49
  550. package/dist/cjs/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +0 -38
  551. package/dist/cjs/serializer/cosmetic/cosmetic-rule-serializer.js +0 -131
  552. package/dist/cjs/serializer/cosmetic/css-injection-body-serializer.js +0 -50
  553. package/dist/cjs/serializer/cosmetic/element-hiding-body-serializer.js +0 -39
  554. package/dist/cjs/serializer/empty-rule-serializer.js +0 -36
  555. package/dist/cjs/serializer/filterlist-serializer.js +0 -48
  556. package/dist/cjs/serializer/index.js +0 -13
  557. package/dist/cjs/serializer/invalid-rule-error-node-serializer.js +0 -40
  558. package/dist/cjs/serializer/invalid-rule-serializer.js +0 -39
  559. package/dist/cjs/serializer/misc/domain-list-serializer.js +0 -66
  560. package/dist/cjs/serializer/misc/list-item-serializer.js +0 -57
  561. package/dist/cjs/serializer/misc/list-items-serializer.js +0 -28
  562. package/dist/cjs/serializer/misc/logical-expression-serializer.js +0 -138
  563. package/dist/cjs/serializer/misc/modifier-list-serializer.js +0 -57
  564. package/dist/cjs/serializer/misc/modifier-serializer.js +0 -51
  565. package/dist/cjs/serializer/misc/parameter-list-serializer.js +0 -51
  566. package/dist/cjs/serializer/misc/value-serializer.js +0 -52
  567. package/dist/cjs/serializer/network/host-rule-serializer.js +0 -72
  568. package/dist/cjs/serializer/network/hostname-list-serializer.js +0 -49
  569. package/dist/cjs/serializer/network/network-rule-serializer.js +0 -56
  570. package/dist/cjs/serializer/rule-serializer.js +0 -63
  571. package/dist/cjs/utils/adblockers.js +0 -57
  572. package/dist/cjs/utils/binary-schema-version.js +0 -19
  573. package/dist/cjs/utils/byte-buffer.js +0 -93
  574. package/dist/cjs/utils/categorizer.js +0 -46
  575. package/dist/cjs/utils/clone.js +0 -30
  576. package/dist/cjs/utils/constants.js +0 -380
  577. package/dist/cjs/utils/cosmetic-rule-separator.js +0 -129
  578. package/dist/cjs/utils/deep-freeze.js +0 -34
  579. package/dist/cjs/utils/domain.js +0 -60
  580. package/dist/cjs/utils/error.js +0 -51
  581. package/dist/cjs/utils/index.js +0 -69
  582. package/dist/cjs/utils/input-byte-buffer.js +0 -259
  583. package/dist/cjs/utils/is-chromium.js +0 -22
  584. package/dist/cjs/utils/logical-expression.js +0 -94
  585. package/dist/cjs/utils/multi-value-map.js +0 -35
  586. package/dist/cjs/utils/output-byte-buffer.js +0 -225
  587. package/dist/cjs/utils/position-provider.js +0 -75
  588. package/dist/cjs/utils/quotes.js +0 -218
  589. package/dist/cjs/utils/regexp.js +0 -190
  590. package/dist/cjs/utils/string.js +0 -560
  591. package/dist/cjs/utils/text-decoder-polyfill.js +0 -109
  592. package/dist/cjs/utils/text-encoder-polyfill.js +0 -80
  593. package/dist/cjs/utils/type-guards.js +0 -52
  594. package/dist/cjs/validator/constants.js +0 -222
  595. package/dist/cjs/validator/helpers.js +0 -49
  596. package/dist/cjs/validator/index.js +0 -176
  597. package/dist/cjs/validator/value.js +0 -565
  598. package/dist/cjs/version.js +0 -20
  599. package/dist/esm/common/ubo-selector-common.mjs +0 -18
  600. package/dist/esm/compatibility-tables/platforms.mjs +0 -58
  601. package/dist/esm/compatibility-tables/schemas/resource-type.mjs +0 -37
  602. package/dist/esm/converter/index.mjs +0 -8
  603. package/dist/esm/marshalling-utils/comment/agent-comment-common.mjs +0 -22
  604. package/dist/esm/marshalling-utils/comment/hint-comment-common.mjs +0 -23
  605. package/dist/esm/marshalling-utils/comment/simple-comment-common.mjs +0 -23
  606. package/dist/esm/marshalling-utils/cosmetic/body/css-injection-body-common.mjs +0 -25
  607. package/dist/esm/marshalling-utils/invalid-rule-error-node-common.mjs +0 -23
  608. package/dist/esm/marshalling-utils/misc/binary-type-common.mjs +0 -67
  609. package/dist/esm/marshalling-utils/misc/host-rule-common.mjs +0 -26
  610. package/dist/esm/marshalling-utils/misc/logical-expression-common.mjs +0 -86
  611. package/dist/esm/marshalling-utils/network/network-rule-common.mjs +0 -26
  612. package/dist/esm/parser/index.mjs +0 -11
  613. package/dist/esm/utils/index.mjs +0 -21
@@ -1,97 +0,0 @@
1
- /*
2
- * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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('./constants.js');
13
-
14
- /**
15
- * @file Tokenizer helpers for balanced pairs.
16
- */
17
- /**
18
- * Map of opening tokens to their corresponding closing tokens.
19
- */
20
- const standardTokenPairs = new Map([
21
- [cssTokenizer.TokenType.Function, cssTokenizer.TokenType.CloseParenthesis],
22
- [cssTokenizer.TokenType.OpenParenthesis, cssTokenizer.TokenType.CloseParenthesis],
23
- [cssTokenizer.TokenType.OpenSquareBracket, cssTokenizer.TokenType.CloseSquareBracket],
24
- [cssTokenizer.TokenType.OpenCurlyBracket, cssTokenizer.TokenType.CloseCurlyBracket],
25
- ]);
26
- /**
27
- * Map of opening tokens to their corresponding closing tokens just for function calls. This makes possible a more
28
- * lightweight and tolerant check for balanced pairs in some cases.
29
- */
30
- const functionTokenPairs = new Map([
31
- [cssTokenizer.TokenType.Function, cssTokenizer.TokenType.CloseParenthesis],
32
- [cssTokenizer.TokenType.OpenParenthesis, cssTokenizer.TokenType.CloseParenthesis],
33
- ]);
34
- /**
35
- * Helper function to tokenize and ensure balanced pairs.
36
- *
37
- * @param raw Raw CSS string to tokenize
38
- * @param onToken Callback which will be invoked for each token, extended with a `balance` parameter
39
- * @param onError Error callback which is called when a parsing error is found (optional)
40
- * @param functionHandlers Custom function handlers (optional)
41
- * @param tokenPairs Map of opening tokens to their corresponding closing tokens
42
- * @throws If the input is not balanced
43
- * @todo Consider adding a `tolerant` flag if error throwing seems too aggressive in the future
44
- */
45
- const tokenizeWithBalancedPairs = (raw, onToken, onError = () => { }, functionHandlers, tokenPairs = standardTokenPairs) => {
46
- const stack = [];
47
- const values = new Set(tokenPairs.values());
48
- cssTokenizer.tokenizeExtended(raw, (type, start, end, props) => {
49
- if (tokenPairs.has(type)) {
50
- // If the token is an opening token, push its corresponding closing token to the stack.
51
- // It is safe to use non-null assertion here, because we have checked that the token exists in the map.
52
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
53
- stack.push(tokenPairs.get(type));
54
- }
55
- else if (values.has(type)) {
56
- // If the token is a closing token, check if it matches the last opening token, and if so, pop it.
57
- if (stack[stack.length - 1] === type) {
58
- stack.pop();
59
- }
60
- else {
61
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(constants.ERROR_MESSAGES.EXPECTED_TOKEN_BUT_GOT, cssTokenizer.getFormattedTokenName(stack[stack.length - 1]), cssTokenizer.getFormattedTokenName(type)), start, raw.length);
62
- }
63
- }
64
- onToken(type, start, end, props, stack.length);
65
- }, onError, functionHandlers);
66
- // If the stack is not empty, then there are some opening tokens that were not closed.
67
- if (stack.length > 0) {
68
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(constants.ERROR_MESSAGES.EXPECTED_TOKEN_BUT_GOT, cssTokenizer.getFormattedTokenName(stack[stack.length - 1]), constants.END_OF_INPUT), raw.length - 1, raw.length);
69
- }
70
- };
71
- /**
72
- * Tokenize and ensure balanced pairs for standard CSS.
73
- *
74
- * @param raw Raw CSS string to tokenize
75
- * @param onToken Callback which will be invoked for each token, extended with a `balance` parameter
76
- * @param onError Error callback which is called when a parsing error is found (optional)
77
- * @param functionHandlers Custom function handlers (optional)
78
- * @throws If the input is not balanced
79
- */
80
- const tokenizeBalanced = (raw, onToken, onError = () => { }, functionHandlers) => {
81
- tokenizeWithBalancedPairs(raw, onToken, onError, functionHandlers);
82
- };
83
- /**
84
- * Tokenize and ensure balanced pairs for function calls.
85
- *
86
- * @param raw Raw CSS string to tokenize
87
- * @param onToken Callback which will be invoked for each token, extended with a `balance` parameter
88
- * @param onError Error callback which is called when a parsing error is found (optional)
89
- * @param functionHandlers Custom function handlers (optional)
90
- * @throws If the input is not balanced
91
- */
92
- const tokenizeFnBalanced = (raw, onToken, onError = () => { }, functionHandlers) => {
93
- tokenizeWithBalancedPairs(raw, onToken, onError, functionHandlers, functionTokenPairs);
94
- };
95
-
96
- exports.tokenizeBalanced = tokenizeBalanced;
97
- exports.tokenizeFnBalanced = tokenizeFnBalanced;
@@ -1,21 +0,0 @@
1
- /*
2
- * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
- /**
10
- * @file Error messages for CSS token stream and balancer.
11
- */
12
- const END_OF_INPUT = 'end of input';
13
- const ERROR_MESSAGES = {
14
- EXPECTED_ANY_TOKEN_BUT_GOT: "Expected a token, but got '%s'",
15
- EXPECTED_TOKEN_BUT_GOT: "Expected '%s', but got '%s'",
16
- EXPECTED_TOKEN_WITH_BALANCE_BUT_GOT: "Expected '%s' with balance '%d', but got '%d'",
17
- EXPECTED_TOKEN_WITH_VALUE_BUT_GOT: "Expected '%s' with value '%s', but got '%s'",
18
- };
19
-
20
- exports.END_OF_INPUT = END_OF_INPUT;
21
- exports.ERROR_MESSAGES = ERROR_MESSAGES;
@@ -1,345 +0,0 @@
1
- /*
2
- * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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 balancing = require('./balancing.js');
12
- var constants = require('../../utils/constants.js');
13
- var adblockSyntaxError = require('../../errors/adblock-syntax-error.js');
14
- var constants$1 = require('./constants.js');
15
- var css = require('../../converter/data/css.js');
16
-
17
- /**
18
- * @file CSS token stream.
19
- */
20
- /**
21
- * Represents a stream of CSS tokens.
22
- */
23
- class CssTokenStream {
24
- /**
25
- * The tokens in the stream.
26
- */
27
- tokens = [];
28
- /**
29
- * The source string.
30
- */
31
- source = constants.EMPTY;
32
- /**
33
- * The current index in the stream.
34
- */
35
- index = 0;
36
- /**
37
- * The base offset of the source string.
38
- */
39
- baseOffset;
40
- /**
41
- * Initializes a new instance of the TokenStream class.
42
- *
43
- * @param source The source string to tokenize.
44
- * @param baseOffset The base offset of the source string.
45
- */
46
- constructor(source, baseOffset = 0) {
47
- this.source = source;
48
- // Tokenize the source string with the CSS tokenizer and add balance level to each token.
49
- // 'onToken' callback is invoked when a token is found in the source string.
50
- // Passed parameters:
51
- // - type: type of the token
52
- // - start: start index of the token
53
- // - end: end index of the token
54
- // - props: additional properties of the token, if any (we don't use it here, this is why we use underscore)
55
- // - balance: balance level of the token
56
- balancing.tokenizeBalanced(source, (type, start, end, _, balance) => {
57
- this.tokens.push({
58
- type,
59
- start,
60
- end,
61
- balance,
62
- });
63
- });
64
- this.index = 0;
65
- this.baseOffset = baseOffset;
66
- }
67
- /**
68
- * Gets the number of tokens in the stream.
69
- *
70
- * @returns The number of tokens in the stream.
71
- */
72
- get length() {
73
- return this.tokens.length;
74
- }
75
- /**
76
- * Checks if the end of the token stream is reached.
77
- *
78
- * @returns True if the end of the stream is reached, otherwise false.
79
- */
80
- isEof() {
81
- return this.index >= this.tokens.length;
82
- }
83
- /**
84
- * Gets the token at the specified index.
85
- *
86
- * @param index The index of the token to retrieve.
87
- * @returns The token at the specified index or undefined if the index is out of bounds.
88
- */
89
- get(index = this.index) {
90
- return this.tokens[index];
91
- }
92
- /**
93
- * Gets the token at the specified index or throws if no token is found at the specified index.
94
- *
95
- * @param index The index of the token to retrieve.
96
- * @returns The token at the specified index or undefined if the index is out of bounds.
97
- * @throws If no token is found at the specified index.
98
- */
99
- getOrFail(index = this.index) {
100
- const token = this.get(index);
101
- if (!token) {
102
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(constants$1.ERROR_MESSAGES.EXPECTED_ANY_TOKEN_BUT_GOT, constants$1.END_OF_INPUT), this.baseOffset + this.source.length - 1, this.baseOffset + this.source.length);
103
- }
104
- return token;
105
- }
106
- /**
107
- * Gets the source fragment of the token at the specified index.
108
- *
109
- * @param index The index of the token to retrieve the fragment for.
110
- * @returns The source fragment of the token or an empty string if the index is out of bounds.
111
- */
112
- fragment(index = this.index) {
113
- const token = this.get(index);
114
- if (token) {
115
- return this.source.slice(token.start, token.end);
116
- }
117
- return constants.EMPTY;
118
- }
119
- /**
120
- * Moves the index to the next token and returns it.
121
- *
122
- * @returns The next token or undefined if the end of the stream is reached.
123
- */
124
- advance() {
125
- if (this.isEof()) {
126
- return undefined;
127
- }
128
- this.index += 1;
129
- return this.tokens[this.index];
130
- }
131
- /**
132
- * Looks ahead in the stream without changing the index.
133
- *
134
- * @param index The relative index to look ahead to, starting from the current index.
135
- * @returns The next token or undefined if the end of the stream is reached.
136
- */
137
- lookahead(index = 1) {
138
- return this.tokens[this.index + Math.max(1, index)];
139
- }
140
- /**
141
- * Looks behind in the stream without changing the index.
142
- *
143
- * @param index The relative index to look behind to, starting from the current index.
144
- * @returns The previous token or undefined if the current token is the first in the stream.
145
- */
146
- lookbehind(index = 1) {
147
- if (this.index === 0) {
148
- return undefined;
149
- }
150
- return this.tokens[this.index - Math.max(1, index)];
151
- }
152
- /**
153
- * Looks behind in the stream for the previous non-whitespace token without changing the index.
154
- *
155
- * @returns The previous non-whitespace token or undefined if it could not be found.
156
- */
157
- lookbehindForNonWs() {
158
- for (let i = this.index - 1; i >= 0; i -= 1) {
159
- if (this.tokens[i].type !== cssTokenizer.TokenType.Whitespace) {
160
- return this.tokens[i];
161
- }
162
- }
163
- return undefined;
164
- }
165
- /**
166
- * Skips whitespace tokens in the stream.
167
- */
168
- skipWhitespace() {
169
- while (this.get()?.type === cssTokenizer.TokenType.Whitespace) {
170
- this.index += 1;
171
- }
172
- }
173
- /**
174
- * Skips tokens until the current balance level is reached.
175
- *
176
- * @returns The number of tokens skipped.
177
- */
178
- skipUntilBalanced() {
179
- if (this.isEof()) {
180
- return 0;
181
- }
182
- // It is safe to use ! here, because we check for EOF above
183
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
184
- const currentBalance = this.get().balance;
185
- // If the current balance is 0, do nothing
186
- if (currentBalance === 0) {
187
- return 0;
188
- }
189
- // Otherwise, skip tokens until the balance is the current balance - 1
190
- let skipped = 0;
191
- while (!this.isEof() && this.get()?.balance !== currentBalance - 1) {
192
- this.index += 1;
193
- skipped += 1;
194
- }
195
- return skipped;
196
- }
197
- /**
198
- * Skips tokens until a token with the specified type or the end of the stream is reached.
199
- *
200
- * @param type The type of token to skip until.
201
- * @param balance The balance level of the token to skip until.
202
- * @returns The number of tokens skipped.
203
- */
204
- skipUntil(type, balance) {
205
- let skipped = 0;
206
- while (!this.isEof()
207
- && (this.get()?.type !== type || (balance !== undefined && this.get()?.balance !== balance))) {
208
- this.index += 1;
209
- skipped += 1;
210
- }
211
- return skipped;
212
- }
213
- /**
214
- * Skips tokens until a token with the specified type or the end of the stream is reached. This is an extended
215
- * version of skipUntil that also returns the number of tokens skipped without calculating leading and trailing
216
- * whitespace tokens.
217
- *
218
- * @param type The type of token to skip until.
219
- * @param balance The balance level of the token to skip until.
220
- * @returns An array containing the number of tokens skipped and the number of tokens skipped without leading and
221
- * trailing whitespace tokens.
222
- */
223
- skipUntilExt(type, balance) {
224
- let i = this.index;
225
- let firstNonWsToken = -1; // -1 means no non-whitespace token found yet
226
- let lastNonWsToken = -1; // -1 means no non-whitespace token found yet
227
- while (i < this.tokens.length) {
228
- const currentToken = this.tokens[i];
229
- if (currentToken.type === cssTokenizer.TokenType.Whitespace) {
230
- i += 1;
231
- continue;
232
- }
233
- else if (currentToken.type === type && currentToken.balance === balance) {
234
- break;
235
- }
236
- if (firstNonWsToken === -1) {
237
- firstNonWsToken = i;
238
- }
239
- lastNonWsToken = i;
240
- i += 1;
241
- }
242
- const skipped = i - this.index;
243
- this.index = i;
244
- return {
245
- skipped,
246
- // if firstNonWsToken is -1, then lastNonWsToken is also -1
247
- skippedTrimmed: firstNonWsToken === -1 ? 0 : lastNonWsToken - firstNonWsToken + 1,
248
- };
249
- }
250
- /**
251
- * Expects that the end of the stream is not reached.
252
- */
253
- expectNotEof() {
254
- if (this.isEof()) {
255
- throw new adblockSyntaxError.AdblockSyntaxError('Unexpected end of input', this.baseOffset + this.source.length - 1, this.baseOffset + this.source.length);
256
- }
257
- }
258
- /**
259
- * Expects the current token to have a specific type and optional value and balance level.
260
- *
261
- * @param type The expected token type.
262
- * @param data Optional expectation data.
263
- * @throws If the end of the stream is reached or if the token type or expectation data does not match.
264
- */
265
- expect(type, data) {
266
- const token = this.get();
267
- if (!token) {
268
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(constants$1.ERROR_MESSAGES.EXPECTED_TOKEN_BUT_GOT, cssTokenizer.getFormattedTokenName(type), constants$1.END_OF_INPUT), this.baseOffset + this.source.length - 1, this.baseOffset + this.source.length);
269
- }
270
- if (token.type !== type) {
271
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(constants$1.ERROR_MESSAGES.EXPECTED_TOKEN_BUT_GOT, cssTokenizer.getFormattedTokenName(type), cssTokenizer.getFormattedTokenName(token.type)), this.baseOffset + token.start, this.baseOffset + token.end);
272
- }
273
- if (data?.balance !== undefined && token.balance !== data.balance) {
274
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(constants$1.ERROR_MESSAGES.EXPECTED_TOKEN_WITH_BALANCE_BUT_GOT, cssTokenizer.getFormattedTokenName(type), data.balance, token.balance), this.baseOffset + token.start, this.baseOffset + token.end);
275
- }
276
- if (data?.value && this.fragment() !== data.value) {
277
- throw new adblockSyntaxError.AdblockSyntaxError(sprintfJs.sprintf(constants$1.ERROR_MESSAGES.EXPECTED_TOKEN_WITH_VALUE_BUT_GOT, cssTokenizer.getFormattedTokenName(type), data.value, this.fragment()), this.baseOffset + token.start, this.baseOffset + token.end);
278
- }
279
- }
280
- /**
281
- * Gets the balance level of the token at the specified index.
282
- *
283
- * @param index The index of the token to retrieve the balance level for.
284
- * @returns The balance level of the token or 0 if the index is out of bounds.
285
- */
286
- getBalance(index = this.index) {
287
- return this.tokens[index]?.balance || 0;
288
- }
289
- /**
290
- * Checks whether the token stream contains any Extended CSS elements, such as `:contains()`, etc.
291
- *
292
- * @returns `true` if the stream contains any Extended CSS elements, otherwise `false`.
293
- */
294
- hasAnySelectorExtendedCssNode() {
295
- return this.hasAnySelectorExtendedCssNodeInternal(css.EXT_CSS_PSEUDO_CLASSES);
296
- }
297
- /**
298
- * Strictly checks whether the token stream contains any Extended CSS elements, such as `:contains()`.
299
- * Some Extended CSS elements are natively supported by browsers, like `:has()`.
300
- * This method is used to check for Extended CSS elements that are not natively supported by browsers,
301
- * this is why it called "strict", because it strictly checks for Extended CSS elements.
302
- *
303
- * @returns `true` if the stream contains any Extended CSS elements, otherwise `false`.
304
- */
305
- hasAnySelectorExtendedCssNodeStrict() {
306
- return this.hasAnySelectorExtendedCssNodeInternal(css.EXT_CSS_PSEUDO_CLASSES_STRICT);
307
- }
308
- /**
309
- * Checks whether the token stream contains any Extended CSS elements, such as `:has()`, `:contains()`, etc.
310
- *
311
- * @param pseudos Set of pseudo-classes to check for.
312
- *
313
- * @returns `true` if the stream contains any Extended CSS elements, otherwise `false`.
314
- */
315
- hasAnySelectorExtendedCssNodeInternal(pseudos) {
316
- for (let i = 0; i < this.tokens.length; i += 1) {
317
- const token = this.tokens[i];
318
- if (token.type === cssTokenizer.TokenType.Function) {
319
- const name = this.source.slice(token.start, token.end - 1); // omit the last parenthesis
320
- if (pseudos.has(name)) {
321
- return true;
322
- }
323
- }
324
- else if (token.type === cssTokenizer.TokenType.OpenSquareBracket) {
325
- let j = i + 1;
326
- // skip whitespace
327
- while (j < this.tokens.length && this.tokens[j].type === cssTokenizer.TokenType.Whitespace) {
328
- j += 1;
329
- }
330
- if (j < this.tokens.length && this.tokens[j].type === cssTokenizer.TokenType.Ident) {
331
- const attr = this.source.slice(this.tokens[j].start, this.tokens[j].end);
332
- // [-ext-<name>=...] or [-abp-<name>=...]
333
- if (attr.startsWith(css.LEGACY_EXT_CSS_ATTRIBUTE_PREFIX) || attr.startsWith(css.ABP_EXT_CSS_PREFIX)) {
334
- return true;
335
- }
336
- }
337
- // do not check these tokens again
338
- i = j;
339
- }
340
- }
341
- return false;
342
- }
343
- }
344
-
345
- exports.CssTokenStream = CssTokenStream;