@adguard/agtree 3.4.3 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/dist/ast-utils/clone.js +2 -2
  2. package/dist/ast-utils/modifiers.js +2 -2
  3. package/dist/ast-utils/network-rules.js +2 -2
  4. package/dist/ast-utils/scriptlets.js +2 -2
  5. package/dist/common/abp-snippet-injection-body-common.js +2 -2
  6. package/dist/common/agent-common.js +2 -2
  7. package/dist/common/ubo-html-filtering-body-common.js +40 -0
  8. package/dist/common/ubo-selector-common.js +2 -2
  9. package/dist/compatibility-tables/base.js +2 -2
  10. package/dist/compatibility-tables/compatibility-table-data.js +2 -2
  11. package/dist/compatibility-tables/modifiers.js +2 -2
  12. package/dist/compatibility-tables/platforms.js +2 -2
  13. package/dist/compatibility-tables/redirects.js +2 -2
  14. package/dist/compatibility-tables/schemas/base.js +2 -2
  15. package/dist/compatibility-tables/schemas/modifier.js +2 -2
  16. package/dist/compatibility-tables/schemas/platform.js +2 -2
  17. package/dist/compatibility-tables/schemas/redirect.js +2 -2
  18. package/dist/compatibility-tables/schemas/resource-type.js +2 -2
  19. package/dist/compatibility-tables/schemas/scriptlet.js +2 -2
  20. package/dist/compatibility-tables/scriptlets.js +2 -2
  21. package/dist/compatibility-tables/utils/platform-helpers.js +2 -2
  22. package/dist/compatibility-tables/utils/resource-type-helpers.js +2 -2
  23. package/dist/compatibility-tables/utils/zod-camelcase.js +2 -2
  24. package/dist/converter/base-interfaces/base-converter.js +2 -2
  25. package/dist/converter/base-interfaces/conversion-result.js +2 -2
  26. package/dist/converter/base-interfaces/rule-converter-base.js +2 -2
  27. package/dist/converter/comment/index.js +2 -2
  28. package/dist/converter/cosmetic/css.js +2 -2
  29. package/dist/converter/cosmetic/element-hiding.js +2 -2
  30. package/dist/converter/cosmetic/header-removal.js +24 -42
  31. package/dist/converter/cosmetic/html.js +580 -438
  32. package/dist/converter/cosmetic/index.js +3 -2
  33. package/dist/converter/cosmetic/rule-modifiers/adg.js +2 -2
  34. package/dist/converter/cosmetic/rule-modifiers/ubo.js +2 -2
  35. package/dist/converter/cosmetic/scriptlet.js +2 -2
  36. package/dist/converter/css/index.js +3 -2
  37. package/dist/converter/data/css.js +32 -54
  38. package/dist/converter/filter-list.js +2 -2
  39. package/dist/converter/index.js +2 -2
  40. package/dist/converter/misc/network-rule-modifier.js +2 -2
  41. package/dist/converter/network/index.js +2 -2
  42. package/dist/converter/raw-filter-list.js +2 -2
  43. package/dist/converter/raw-rule.js +6 -3
  44. package/dist/converter/rule.js +2 -2
  45. package/dist/errors/adblock-syntax-error.js +2 -2
  46. package/dist/errors/binary-schema-mismatch-error.js +2 -2
  47. package/dist/errors/not-implemented-error.js +2 -2
  48. package/dist/errors/rule-conversion-error.js +2 -2
  49. package/dist/generator/base-generator.js +2 -2
  50. package/dist/generator/comment/agent-comment-generator.js +2 -2
  51. package/dist/generator/comment/agent-generator.js +2 -2
  52. package/dist/generator/comment/comment-rule-generator.js +2 -2
  53. package/dist/generator/comment/config-comment-generator.js +2 -2
  54. package/dist/generator/comment/hint-comment-generator.js +2 -2
  55. package/dist/generator/comment/hint-generator.js +2 -2
  56. package/dist/generator/comment/metadata-comment-generator.js +2 -2
  57. package/dist/generator/comment/pre-processor-comment-generator.js +2 -2
  58. package/dist/generator/comment/simple-comment-generator.js +2 -2
  59. package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +21 -6
  60. package/dist/generator/cosmetic/cosmetic-rule-generator.js +2 -2
  61. package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +2 -2
  62. package/dist/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.js +38 -0
  63. package/dist/generator/cosmetic/html-filtering-body/html-filtering-body-generator.js +32 -0
  64. package/dist/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.js +65 -0
  65. package/dist/generator/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-generator.js +2 -2
  66. package/dist/generator/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-generator.js +2 -2
  67. package/dist/generator/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-generator.js +2 -2
  68. package/dist/generator/cosmetic/selector/attribute-selector-generator.js +42 -0
  69. package/dist/generator/cosmetic/selector/class-selector-generator.js +26 -0
  70. package/dist/generator/cosmetic/selector/complex-selector-generator.js +71 -0
  71. package/dist/generator/cosmetic/selector/id-selector-generator.js +26 -0
  72. package/dist/generator/cosmetic/selector/pseudo-class-selector-generator.js +35 -0
  73. package/dist/generator/cosmetic/selector/selector-combinator-generator.js +30 -0
  74. package/dist/generator/cosmetic/selector/selector-list-generator.js +41 -0
  75. package/dist/generator/cosmetic/selector/type-selector-generator.js +25 -0
  76. package/dist/generator/css/adg-css-injection-generator.js +5 -6
  77. package/dist/generator/filterlist-generator.js +2 -2
  78. package/dist/generator/index.js +2 -2
  79. package/dist/generator/misc/domain-list-generator.js +2 -2
  80. package/dist/generator/misc/list-items-generator.js +2 -2
  81. package/dist/generator/misc/logical-expression-generator.js +2 -2
  82. package/dist/generator/misc/modifier-generator.js +2 -2
  83. package/dist/generator/misc/modifier-list-generator.js +2 -2
  84. package/dist/generator/misc/parameter-list-generator.js +2 -2
  85. package/dist/generator/misc/value-generator.js +2 -2
  86. package/dist/generator/network/host-rule-generator.js +2 -2
  87. package/dist/generator/network/network-rule-generator.js +2 -2
  88. package/dist/generator/rule-generator.js +2 -2
  89. package/dist/index.js +4 -14
  90. package/dist/nodes/index.js +2 -2
  91. package/dist/package.json.js +3 -3
  92. package/dist/parser/base-parser.js +2 -2
  93. package/dist/parser/comment/agent-comment-parser.js +2 -2
  94. package/dist/parser/comment/agent-parser.js +2 -2
  95. package/dist/parser/comment/comment-parser.js +2 -2
  96. package/dist/parser/comment/config-comment-parser.js +2 -2
  97. package/dist/parser/comment/hint-comment-parser.js +2 -2
  98. package/dist/parser/comment/hint-parser.js +2 -2
  99. package/dist/parser/comment/metadata-comment-parser.js +2 -2
  100. package/dist/parser/comment/preprocessor-parser.js +2 -2
  101. package/dist/parser/comment/simple-comment-parser.js +2 -2
  102. package/dist/parser/cosmetic/cosmetic-rule-parser.js +10 -21
  103. package/dist/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.js +49 -0
  104. package/dist/parser/cosmetic/html-filtering-body/html-filtering-body-parser.js +70 -0
  105. package/dist/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.js +180 -0
  106. package/dist/parser/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-parser.js +2 -2
  107. package/dist/parser/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-parser.js +2 -2
  108. package/dist/parser/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-parser.js +2 -2
  109. package/dist/parser/cosmetic/selector/handlers/attribute-selector-handler.js +206 -0
  110. package/dist/parser/cosmetic/selector/handlers/class-selector-handler.js +48 -0
  111. package/dist/parser/cosmetic/selector/handlers/complex-selector-handler.js +67 -0
  112. package/dist/parser/cosmetic/selector/handlers/compound-selector-handler.js +97 -0
  113. package/dist/parser/cosmetic/selector/handlers/id-selector-handler.js +42 -0
  114. package/dist/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.js +128 -0
  115. package/dist/parser/cosmetic/selector/handlers/type-selector-handler.js +58 -0
  116. package/dist/parser/cosmetic/selector/selector-list-parser.js +164 -0
  117. package/dist/parser/css/adg-css-injection-parser.js +4 -5
  118. package/dist/parser/css/balancing.js +2 -2
  119. package/dist/parser/css/constants.js +2 -2
  120. package/dist/parser/css/css-token-stream.js +41 -4
  121. package/dist/parser/css/ubo-selector-parser.js +2 -2
  122. package/dist/parser/filterlist-parser.js +2 -2
  123. package/dist/parser/index.js +2 -2
  124. package/dist/parser/misc/app-list-parser.js +2 -2
  125. package/dist/parser/misc/domain-list-parser.js +2 -2
  126. package/dist/parser/misc/list-items-parser.js +2 -2
  127. package/dist/parser/misc/logical-expression-parser.js +2 -2
  128. package/dist/parser/misc/method-list-parser.js +2 -2
  129. package/dist/parser/misc/modifier-list.js +2 -2
  130. package/dist/parser/misc/modifier-parser.js +2 -2
  131. package/dist/parser/misc/parameter-list-parser.js +2 -2
  132. package/dist/parser/misc/stealth-option-list-parser.js +2 -2
  133. package/dist/parser/misc/ubo-parameter-list-parser.js +2 -2
  134. package/dist/parser/misc/value-parser.js +2 -2
  135. package/dist/parser/network/host-rule-parser.js +2 -2
  136. package/dist/parser/network/network-rule-parser.js +2 -2
  137. package/dist/parser/options.js +3 -2
  138. package/dist/parser/rule-parser.js +2 -2
  139. package/dist/types/common/ubo-html-filtering-body-common.d.ts +12 -0
  140. package/dist/types/compatibility-tables/compatibility-table-data.d.ts +3 -3
  141. package/dist/types/compatibility-tables/schemas/redirect.d.ts +1 -1
  142. package/dist/types/compatibility-tables/schemas/scriptlet.d.ts +2 -2
  143. package/dist/types/converter/cosmetic/html.d.ts +167 -42
  144. package/dist/types/converter/data/css.d.ts +18 -6
  145. package/dist/types/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.d.ts +17 -0
  146. package/dist/types/generator/cosmetic/html-filtering-body/html-filtering-body-generator.d.ts +17 -0
  147. package/dist/types/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.d.ts +30 -0
  148. package/dist/types/generator/cosmetic/selector/attribute-selector-generator.d.ts +15 -0
  149. package/dist/types/generator/cosmetic/selector/class-selector-generator.d.ts +15 -0
  150. package/dist/types/generator/cosmetic/selector/complex-selector-generator.d.ts +17 -0
  151. package/dist/types/generator/cosmetic/selector/id-selector-generator.d.ts +15 -0
  152. package/dist/types/generator/cosmetic/selector/pseudo-class-selector-generator.d.ts +15 -0
  153. package/dist/types/generator/cosmetic/selector/selector-combinator-generator.d.ts +15 -0
  154. package/dist/types/generator/cosmetic/selector/selector-list-generator.d.ts +17 -0
  155. package/dist/types/generator/cosmetic/selector/type-selector-generator.d.ts +15 -0
  156. package/dist/types/generator/css/adg-css-injection-generator.d.ts +1 -1
  157. package/dist/types/index.d.ts +3 -13
  158. package/dist/types/nodes/index.d.ts +159 -3
  159. package/dist/types/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.d.ts +35 -0
  160. package/dist/types/parser/cosmetic/html-filtering-body/html-filtering-body-parser.d.ts +39 -0
  161. package/dist/types/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.d.ts +63 -0
  162. package/dist/types/parser/cosmetic/selector/context.d.ts +42 -0
  163. package/dist/types/parser/cosmetic/selector/handlers/attribute-selector-handler.d.ts +35 -0
  164. package/dist/types/parser/cosmetic/selector/handlers/class-selector-handler.d.ts +15 -0
  165. package/dist/types/parser/cosmetic/selector/handlers/complex-selector-handler.d.ts +20 -0
  166. package/dist/types/parser/cosmetic/selector/handlers/compound-selector-handler.d.ts +25 -0
  167. package/dist/types/parser/cosmetic/selector/handlers/id-selector-handler.d.ts +15 -0
  168. package/dist/types/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.d.ts +15 -0
  169. package/dist/types/parser/cosmetic/selector/handlers/type-selector-handler.d.ts +15 -0
  170. package/dist/types/parser/cosmetic/selector/selector-list-parser.d.ts +38 -0
  171. package/dist/types/parser/css/adg-css-injection-parser.d.ts +0 -2
  172. package/dist/types/parser/css/css-token-stream.d.ts +18 -0
  173. package/dist/types/parser/network/network-rule-parser.d.ts +1 -1
  174. package/dist/types/parser/options.d.ts +5 -0
  175. package/dist/types/utils/constants.d.ts +1 -0
  176. package/dist/types/utils/index.d.ts +0 -6
  177. package/dist/types/utils/quotes.d.ts +44 -0
  178. package/dist/types/utils/regexp.d.ts +24 -0
  179. package/dist/utils/adblockers.js +2 -2
  180. package/dist/utils/bit-count.js +2 -2
  181. package/dist/utils/categorizer.js +2 -2
  182. package/dist/utils/clone.js +2 -2
  183. package/dist/utils/constants.js +6 -9
  184. package/dist/utils/cosmetic-rule-separator.js +2 -2
  185. package/dist/utils/deep-freeze.js +2 -2
  186. package/dist/utils/domain.js +2 -2
  187. package/dist/utils/error.js +2 -2
  188. package/dist/utils/index.js +2 -8
  189. package/dist/utils/logical-expression.js +2 -2
  190. package/dist/utils/multi-value-map.js +2 -2
  191. package/dist/utils/noop-modifier.js +2 -2
  192. package/dist/utils/position-provider.js +2 -2
  193. package/dist/utils/quotes.js +163 -10
  194. package/dist/utils/regexp.js +31 -2
  195. package/dist/utils/string.js +2 -2
  196. package/dist/utils/type-guards.js +3 -13
  197. package/dist/validator/constants.js +2 -2
  198. package/dist/validator/helpers.js +2 -2
  199. package/dist/validator/index.js +2 -2
  200. package/dist/validator/value.js +2 -2
  201. package/dist/version.js +2 -2
  202. package/package.json +6 -14
  203. package/dist/deserializer/base-deserializer.js +0 -29
  204. package/dist/deserializer/comment/agent-comment-deserializer.js +0 -79
  205. package/dist/deserializer/comment/agent-deserializer.js +0 -65
  206. package/dist/deserializer/comment/comment-rule-deserializer.js +0 -54
  207. package/dist/deserializer/comment/config-comment-deserializer.js +0 -111
  208. package/dist/deserializer/comment/hint-comment-deserializer.js +0 -72
  209. package/dist/deserializer/comment/hint-deserializer.js +0 -85
  210. package/dist/deserializer/comment/metadata-comment-deserializer.js +0 -69
  211. package/dist/deserializer/comment/pre-processor-comment-deserializer.js +0 -112
  212. package/dist/deserializer/comment/simple-comment-deserializer.js +0 -65
  213. package/dist/deserializer/cosmetic/cosmetic-rule-deserializer.js +0 -131
  214. package/dist/deserializer/cosmetic/css-injection-body-deserializer.js +0 -56
  215. package/dist/deserializer/cosmetic/element-hiding-body-deserializer.js +0 -48
  216. package/dist/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +0 -39
  217. package/dist/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +0 -40
  218. package/dist/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +0 -54
  219. package/dist/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +0 -38
  220. package/dist/deserializer/empty-rule-deserializer.js +0 -48
  221. package/dist/deserializer/filterlist-deserializer.js +0 -85
  222. package/dist/deserializer/index.js +0 -8
  223. package/dist/deserializer/invalid-rule-deserializer.js +0 -50
  224. package/dist/deserializer/invalid-rule-error-node-deserializer.js +0 -50
  225. package/dist/deserializer/misc/domain-list-deserializer.js +0 -64
  226. package/dist/deserializer/misc/list-item-deserializer.js +0 -69
  227. package/dist/deserializer/misc/list-items-deserializer.js +0 -30
  228. package/dist/deserializer/misc/logical-expression-deserializer.js +0 -196
  229. package/dist/deserializer/misc/modifier-deserializer.js +0 -87
  230. package/dist/deserializer/misc/modifier-list-deserializer.js +0 -61
  231. package/dist/deserializer/misc/parameter-list-deserializer.js +0 -64
  232. package/dist/deserializer/misc/value-deserializer.js +0 -50
  233. package/dist/deserializer/network/host-rule-deserializer.js +0 -67
  234. package/dist/deserializer/network/hostname-list-deserializer.js +0 -56
  235. package/dist/deserializer/network/network-rule-deserializer.js +0 -65
  236. package/dist/deserializer/rule-deserializer.js +0 -65
  237. package/dist/deserializer/syntax-deserialization-map.js +0 -21
  238. package/dist/marshalling-utils/comment/agent-comment-common.js +0 -21
  239. package/dist/marshalling-utils/comment/agent-common.js +0 -40
  240. package/dist/marshalling-utils/comment/config-comment-common.js +0 -54
  241. package/dist/marshalling-utils/comment/hint-comment-common.js +0 -22
  242. package/dist/marshalling-utils/comment/hint-common.js +0 -56
  243. package/dist/marshalling-utils/comment/metadata-comment-common.js +0 -41
  244. package/dist/marshalling-utils/comment/pre-processor-comment-common.js +0 -59
  245. package/dist/marshalling-utils/comment/simple-comment-common.js +0 -22
  246. package/dist/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +0 -61
  247. package/dist/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +0 -66
  248. package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +0 -24
  249. package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +0 -21
  250. package/dist/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +0 -114
  251. package/dist/marshalling-utils/cosmetic/cosmetic-rule-common.js +0 -46
  252. package/dist/marshalling-utils/empty-rule-common.js +0 -20
  253. package/dist/marshalling-utils/filter-list-common.js +0 -21
  254. package/dist/marshalling-utils/invalid-rule-common.js +0 -21
  255. package/dist/marshalling-utils/invalid-rule-error-node-common.js +0 -22
  256. package/dist/marshalling-utils/misc/binary-type-common.js +0 -54
  257. package/dist/marshalling-utils/misc/domain-list-common.js +0 -36
  258. package/dist/marshalling-utils/misc/host-rule-common.js +0 -24
  259. package/dist/marshalling-utils/misc/hostname-list-common.js +0 -21
  260. package/dist/marshalling-utils/misc/list-item-common.js +0 -22
  261. package/dist/marshalling-utils/misc/logical-expression-common.js +0 -83
  262. package/dist/marshalling-utils/misc/modifier-common.js +0 -231
  263. package/dist/marshalling-utils/misc/modifier-list-common.js +0 -21
  264. package/dist/marshalling-utils/misc/parameter-list-common.js +0 -21
  265. package/dist/marshalling-utils/misc/value-common.js +0 -22
  266. package/dist/marshalling-utils/network/network-rule-common.js +0 -24
  267. package/dist/marshalling-utils/syntax-serialization-map.js +0 -30
  268. package/dist/serializer/base-serializer.js +0 -29
  269. package/dist/serializer/comment/agent-comment-serializer.js +0 -74
  270. package/dist/serializer/comment/agent-serializer.js +0 -59
  271. package/dist/serializer/comment/comment-rule-serializer.js +0 -105
  272. package/dist/serializer/comment/config-comment-serializer.js +0 -82
  273. package/dist/serializer/comment/hint-comment-serializer.js +0 -65
  274. package/dist/serializer/comment/hint-serializer.js +0 -54
  275. package/dist/serializer/comment/metadata-comment-serializer.js +0 -73
  276. package/dist/serializer/comment/pre-processor-comment-serializer.js +0 -71
  277. package/dist/serializer/comment/simple-comment-serializer.js +0 -52
  278. package/dist/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +0 -36
  279. package/dist/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +0 -36
  280. package/dist/serializer/cosmetic/body/scriptlet-body-serializer.js +0 -50
  281. package/dist/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +0 -36
  282. package/dist/serializer/cosmetic/cosmetic-rule-serializer.js +0 -120
  283. package/dist/serializer/cosmetic/css-injection-body-serializer.js +0 -51
  284. package/dist/serializer/cosmetic/element-hiding-body-serializer.js +0 -40
  285. package/dist/serializer/empty-rule-serializer.js +0 -37
  286. package/dist/serializer/filterlist-serializer.js +0 -45
  287. package/dist/serializer/index.js +0 -7
  288. package/dist/serializer/invalid-rule-error-node-serializer.js +0 -41
  289. package/dist/serializer/invalid-rule-serializer.js +0 -40
  290. package/dist/serializer/misc/domain-list-serializer.js +0 -64
  291. package/dist/serializer/misc/list-item-serializer.js +0 -58
  292. package/dist/serializer/misc/list-items-serializer.js +0 -29
  293. package/dist/serializer/misc/logical-expression-serializer.js +0 -136
  294. package/dist/serializer/misc/modifier-list-serializer.js +0 -58
  295. package/dist/serializer/misc/modifier-serializer.js +0 -49
  296. package/dist/serializer/misc/parameter-list-serializer.js +0 -52
  297. package/dist/serializer/misc/value-serializer.js +0 -50
  298. package/dist/serializer/network/host-rule-serializer.js +0 -70
  299. package/dist/serializer/network/hostname-list-serializer.js +0 -53
  300. package/dist/serializer/network/network-rule-serializer.js +0 -54
  301. package/dist/serializer/rule-serializer.js +0 -61
  302. package/dist/types/deserializer/base-deserializer.d.ts +0 -15
  303. package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +0 -34
  304. package/dist/types/deserializer/comment/agent-deserializer.d.ts +0 -25
  305. package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +0 -16
  306. package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +0 -27
  307. package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +0 -24
  308. package/dist/types/deserializer/comment/hint-deserializer.d.ts +0 -26
  309. package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +0 -26
  310. package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +0 -29
  311. package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +0 -26
  312. package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +0 -18
  313. package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +0 -15
  314. package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +0 -16
  315. package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +0 -17
  316. package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +0 -18
  317. package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +0 -19
  318. package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +0 -17
  319. package/dist/types/deserializer/empty-rule-deserializer.d.ts +0 -16
  320. package/dist/types/deserializer/filterlist-deserializer.d.ts +0 -34
  321. package/dist/types/deserializer/index.d.ts +0 -2
  322. package/dist/types/deserializer/invalid-rule-deserializer.d.ts +0 -16
  323. package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +0 -16
  324. package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +0 -15
  325. package/dist/types/deserializer/misc/list-item-deserializer.d.ts +0 -19
  326. package/dist/types/deserializer/misc/list-items-deserializer.d.ts +0 -16
  327. package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +0 -55
  328. package/dist/types/deserializer/misc/modifier-deserializer.d.ts +0 -18
  329. package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +0 -20
  330. package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +0 -18
  331. package/dist/types/deserializer/misc/value-deserializer.d.ts +0 -17
  332. package/dist/types/deserializer/network/host-rule-deserializer.d.ts +0 -18
  333. package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +0 -15
  334. package/dist/types/deserializer/network/network-rule-deserializer.d.ts +0 -18
  335. package/dist/types/deserializer/rule-deserializer.d.ts +0 -17
  336. package/dist/types/deserializer/syntax-deserialization-map.d.ts +0 -2
  337. package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +0 -14
  338. package/dist/types/marshalling-utils/comment/agent-common.d.ts +0 -20
  339. package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +0 -42
  340. package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +0 -15
  341. package/dist/types/marshalling-utils/comment/hint-common.d.ts +0 -33
  342. package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +0 -21
  343. package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +0 -37
  344. package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +0 -15
  345. package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +0 -23
  346. package/dist/types/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.d.ts +0 -9
  347. package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +0 -17
  348. package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +0 -14
  349. package/dist/types/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.d.ts +0 -9
  350. package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +0 -28
  351. package/dist/types/marshalling-utils/empty-rule-common.d.ts +0 -13
  352. package/dist/types/marshalling-utils/filter-list-common.d.ts +0 -14
  353. package/dist/types/marshalling-utils/invalid-rule-common.d.ts +0 -14
  354. package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +0 -15
  355. package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +0 -57
  356. package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +0 -24
  357. package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +0 -18
  358. package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +0 -14
  359. package/dist/types/marshalling-utils/misc/list-item-common.d.ts +0 -15
  360. package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +0 -47
  361. package/dist/types/marshalling-utils/misc/modifier-common.d.ts +0 -41
  362. package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +0 -14
  363. package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +0 -14
  364. package/dist/types/marshalling-utils/misc/value-common.d.ts +0 -15
  365. package/dist/types/marshalling-utils/network/network-rule-common.d.ts +0 -18
  366. package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +0 -2
  367. package/dist/types/serializer/base-serializer.d.ts +0 -15
  368. package/dist/types/serializer/comment/agent-comment-serializer.d.ts +0 -34
  369. package/dist/types/serializer/comment/agent-serializer.d.ts +0 -15
  370. package/dist/types/serializer/comment/comment-rule-serializer.d.ts +0 -68
  371. package/dist/types/serializer/comment/config-comment-serializer.d.ts +0 -25
  372. package/dist/types/serializer/comment/hint-comment-serializer.d.ts +0 -23
  373. package/dist/types/serializer/comment/hint-serializer.d.ts +0 -24
  374. package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +0 -25
  375. package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +0 -28
  376. package/dist/types/serializer/comment/simple-comment-serializer.d.ts +0 -24
  377. package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +0 -25
  378. package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +0 -25
  379. package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +0 -17
  380. package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +0 -25
  381. package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +0 -19
  382. package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +0 -15
  383. package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +0 -15
  384. package/dist/types/serializer/empty-rule-serializer.d.ts +0 -15
  385. package/dist/types/serializer/filterlist-serializer.d.ts +0 -15
  386. package/dist/types/serializer/index.d.ts +0 -1
  387. package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +0 -15
  388. package/dist/types/serializer/invalid-rule-serializer.d.ts +0 -15
  389. package/dist/types/serializer/misc/domain-list-serializer.d.ts +0 -21
  390. package/dist/types/serializer/misc/list-item-serializer.d.ts +0 -16
  391. package/dist/types/serializer/misc/list-items-serializer.d.ts +0 -15
  392. package/dist/types/serializer/misc/logical-expression-serializer.d.ts +0 -52
  393. package/dist/types/serializer/misc/modifier-list-serializer.d.ts +0 -20
  394. package/dist/types/serializer/misc/modifier-serializer.d.ts +0 -18
  395. package/dist/types/serializer/misc/parameter-list-serializer.d.ts +0 -17
  396. package/dist/types/serializer/misc/value-serializer.d.ts +0 -17
  397. package/dist/types/serializer/network/host-rule-serializer.d.ts +0 -30
  398. package/dist/types/serializer/network/hostname-list-serializer.d.ts +0 -15
  399. package/dist/types/serializer/network/network-rule-serializer.d.ts +0 -18
  400. package/dist/types/serializer/rule-serializer.d.ts +0 -17
  401. package/dist/types/utils/binary-schema-version.d.ts +0 -9
  402. package/dist/types/utils/byte-buffer.d.ts +0 -54
  403. package/dist/types/utils/input-byte-buffer.d.ts +0 -146
  404. package/dist/types/utils/is-chromium.d.ts +0 -7
  405. package/dist/types/utils/output-byte-buffer.d.ts +0 -132
  406. package/dist/types/utils/storage-interface.d.ts +0 -23
  407. package/dist/types/utils/text-decoder-polyfill.d.ts +0 -14
  408. package/dist/types/utils/text-encoder-polyfill.d.ts +0 -18
  409. package/dist/utils/binary-schema-version.js +0 -17
  410. package/dist/utils/byte-buffer.js +0 -91
  411. package/dist/utils/input-byte-buffer.js +0 -266
  412. package/dist/utils/is-chromium.js +0 -20
  413. package/dist/utils/output-byte-buffer.js +0 -231
  414. package/dist/utils/text-decoder-polyfill.js +0 -107
  415. package/dist/utils/text-encoder-polyfill.js +0 -78
  416. /package/dist/types/generator/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-generator.d.ts +0 -0
  417. /package/dist/types/generator/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-generator.d.ts +0 -0
  418. /package/dist/types/generator/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-generator.d.ts +0 -0
  419. /package/dist/types/parser/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-parser.d.ts +0 -0
  420. /package/dist/types/parser/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-parser.d.ts +0 -0
  421. /package/dist/types/parser/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-parser.d.ts +0 -0
@@ -0,0 +1,17 @@
1
+ import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * HTML Filtering body generator.
5
+ */
6
+ export declare class HtmlFilteringBodyGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the HTML filtering rule body.
9
+ *
10
+ * @param node HTML filtering rule body.
11
+ *
12
+ * @returns String representation of the rule body.
13
+ *
14
+ * @throws Error if the rule body is invalid.
15
+ */
16
+ static generate(node: Value | HtmlFilteringRuleBody): string;
17
+ }
@@ -0,0 +1,30 @@
1
+ import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * uBlock HTML Filtering body generator.
5
+ */
6
+ export declare class UboHtmlFilteringBodyGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the uBlock HTML filtering rule body
9
+ * and also uBlock-style response header removal rules.
10
+ *
11
+ * @param node HTML filtering rule body.
12
+ *
13
+ * @returns String representation of the rule body.
14
+ *
15
+ * @throws Error if the rule body is invalid.
16
+ */
17
+ static generate(node: Value | HtmlFilteringRuleBody): string;
18
+ /**
19
+ * Generates a string representation of the uBlock-style response header removal rule.
20
+ *
21
+ * @param node Potential response header removal rule node.
22
+ *
23
+ * @returns String representation of the response header removal rule,
24
+ * or `null` if the node is not a response header removal rule.
25
+ *
26
+ * @note This method accepts `HtmlFilteringRuleBody` as `node` because,
27
+ * response header removal rule syntax is same as uBlock-style HTML filtering rule syntax.
28
+ */
29
+ private static generateResponseHeaderRule;
30
+ }
@@ -0,0 +1,15 @@
1
+ import { type AttributeSelector } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * Attribute selector generator.
5
+ */
6
+ export declare class AttributeSelectorGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the attribute selector.
9
+ *
10
+ * @param node Attribute selector node.
11
+ *
12
+ * @returns String representation of the attribute selector.
13
+ */
14
+ static generate(node: AttributeSelector): string;
15
+ }
@@ -0,0 +1,15 @@
1
+ import { type ClassSelector } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * Class selector generator.
5
+ */
6
+ export declare class ClassSelectorGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the class selector.
9
+ *
10
+ * @param node Class selector node.
11
+ *
12
+ * @returns String representation of the class selector.
13
+ */
14
+ static generate(node: ClassSelector): string;
15
+ }
@@ -0,0 +1,17 @@
1
+ import { type ComplexSelector } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * Complex selector generator.
5
+ */
6
+ export declare class ComplexSelectorGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the complex selector.
9
+ *
10
+ * @param node Complex selector node.
11
+ *
12
+ * @returns String representation of the complex selector.
13
+ *
14
+ * @throws Error if the `node` is invalid.
15
+ */
16
+ static generate(node: ComplexSelector): string;
17
+ }
@@ -0,0 +1,15 @@
1
+ import { type IdSelector } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * ID selector generator.
5
+ */
6
+ export declare class IdSelectorGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the ID selector.
9
+ *
10
+ * @param node ID selector node.
11
+ *
12
+ * @returns String representation of the ID selector.
13
+ */
14
+ static generate(node: IdSelector): string;
15
+ }
@@ -0,0 +1,15 @@
1
+ import { type PseudoClassSelector } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * Pseudo-class selector generator.
5
+ */
6
+ export declare class PseudoClassSelectorGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the pseudo-class selector.
9
+ *
10
+ * @param node Pseudo-class selector node.
11
+ *
12
+ * @returns String representation of the pseudo-class selector.
13
+ */
14
+ static generate(node: PseudoClassSelector): string;
15
+ }
@@ -0,0 +1,15 @@
1
+ import { type SelectorCombinator } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * Selector combinator generator.
5
+ */
6
+ export declare class SelectorCombinatorGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the selector combinator.
9
+ *
10
+ * @param node Selector combinator node.
11
+ *
12
+ * @returns String representation of the selector combinator.
13
+ */
14
+ static generate(node: SelectorCombinator): string;
15
+ }
@@ -0,0 +1,17 @@
1
+ import { type SelectorList } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * Selector list generator.
5
+ */
6
+ export declare class SelectorListGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the selector list.
9
+ *
10
+ * @param node Selector list node.
11
+ *
12
+ * @returns String representation of the selector list.
13
+ *
14
+ * @throws Error if the `node` is invalid.
15
+ */
16
+ static generate(node: SelectorList): string;
17
+ }
@@ -0,0 +1,15 @@
1
+ import { type TypeSelector } from '../../../nodes/index.js';
2
+ import { BaseGenerator } from '../../base-generator.js';
3
+ /**
4
+ * Type selector generator.
5
+ */
6
+ export declare class TypeSelectorGenerator extends BaseGenerator {
7
+ /**
8
+ * Generates a string representation of the type selector.
9
+ *
10
+ * @param node Type selector node.
11
+ *
12
+ * @returns String representation of the type selector.
13
+ */
14
+ static generate(node: TypeSelector): string;
15
+ }
@@ -4,7 +4,7 @@ import { BaseGenerator } from '../base-generator.js';
4
4
  * AdGuard CSS injection generator.
5
5
  */
6
6
  export declare class AdgCssInjectionGenerator extends BaseGenerator {
7
- private static removeDeclaration;
7
+ private static REMOVE_DECLARATION;
8
8
  /**
9
9
  * Serializes an AdGuard CSS injection node into a raw string.
10
10
  *
@@ -2,11 +2,9 @@
2
2
  * @file AGTree entry point
3
3
  */
4
4
  export { RuleParser } from './parser/rule-parser.js';
5
- export { RuleSerializer } from './serializer/rule-serializer.js';
6
- export { RuleDeserializer } from './deserializer/rule-deserializer.js';
7
5
  export { RuleGenerator } from './generator/rule-generator.js';
8
6
  export { type OnParseError, defaultParserOptions, type ParserOptions } from './parser/options.js';
9
- export { type Agent, type AgentCommentRule, type AnyCommentRule, type AnyCosmeticRule, type AnyExpressionNode, type AnyRule, type CommentBase, CommentMarker, type CommentRule, CommentRuleType, type ConfigCommentRule, type CosmeticRule, CosmeticRuleSeparator, CosmeticRuleType, type CssInjectionRule, type CssInjectionRuleBody, type Domain, type DomainList, type DomainListSeparator, type ElementHidingRule, type ElementHidingRuleBody, type EmptyRule, type ExpressionOperatorNode, type ExpressionParenthesisNode, type ExpressionVariableNode, type FilterList, type Hint, type HintCommentRule, type HtmlFilteringRule, type HtmlFilteringRuleBody, type JsInjectionRule, type Location, type LocationRange, type MetadataCommentRule, type Modifier, type ModifierList, type NetworkRule, type Node, type ParameterList, type PreProcessorCommentRule, type RuleBase, RuleCategory, type ScriptletInjectionRule, type ScriptletInjectionRuleBody, type Value, NetworkRuleType, type HostnameList, type HostRule, type AnyNetworkRule, } from './nodes/index.js';
7
+ export { type Agent, type AgentCommentRule, type AnyCommentRule, type AnyCosmeticRule, type AnyExpressionNode, type AnyRule, type CommentBase, CommentMarker, type CommentRule, CommentRuleType, type ConfigCommentRule, type CosmeticRule, CosmeticRuleSeparator, CosmeticRuleType, type CssInjectionRule, type CssInjectionRuleBody, type Domain, type DomainList, type DomainListSeparator, type ElementHidingRule, type ElementHidingRuleBody, type EmptyRule, type ExpressionOperatorNode, type ExpressionParenthesisNode, type ExpressionVariableNode, type FilterList, type Hint, type HintCommentRule, type HtmlFilteringRule, type HtmlFilteringRuleBody, type SelectorList, type SelectorCombinatorValue, type JsInjectionRule, type Location, type LocationRange, type MetadataCommentRule, type Modifier, type ModifierList, type NetworkRule, type Node, type ParameterList, type PreProcessorCommentRule, type RuleBase, RuleCategory, type ScriptletInjectionRule, type ScriptletInjectionRuleBody, type Value, NetworkRuleType, type HostnameList, type HostRule, type AnyNetworkRule, } from './nodes/index.js';
10
8
  export { AdblockSyntaxError } from './errors/adblock-syntax-error.js';
11
9
  export { AgentCommentParser } from './parser/comment/agent-comment-parser.js';
12
10
  export { AgentParser } from './parser/comment/agent-parser.js';
@@ -18,8 +16,6 @@ export { DomainListParser } from './parser/misc/domain-list-parser.js';
18
16
  export { MethodListParser } from './parser/misc/method-list-parser.js';
19
17
  export { StealthOptionListParser } from './parser/misc/stealth-option-list-parser.js';
20
18
  export { FilterListParser } from './parser/filterlist-parser.js';
21
- export { FilterListSerializer } from './serializer/filterlist-serializer.js';
22
- export { FilterListDeserializer } from './deserializer/filterlist-deserializer.js';
23
19
  export { HintCommentParser } from './parser/comment/hint-comment-parser.js';
24
20
  export { HintParser } from './parser/comment/hint-parser.js';
25
21
  export { LogicalExpressionParser } from './parser/misc/logical-expression-parser.js';
@@ -36,7 +32,6 @@ export { BinarySchemaMismatchError } from './errors/binary-schema-mismatch-error
36
32
  export { modifierValidator } from './validator/index.js';
37
33
  export * from './converter/index.js';
38
34
  export { ADG_SCRIPTLET_MASK, AGLINT_COMMAND_PREFIX, COMMA_DOMAIN_LIST_SEPARATOR, NEGATION_MARKER, HINT_MARKER, IF, INCLUDE, MODIFIERS_SEPARATOR, MODIFIER_ASSIGN_OPERATOR, PIPE_MODIFIER_SEPARATOR, NETWORK_RULE_EXCEPTION_MARKER, NETWORK_RULE_SEPARATOR, PREPROCESSOR_MARKER, SAFARI_CB_AFFINITY, UBO_SCRIPTLET_MASK, } from './utils/constants.js';
39
- export { BINARY_SCHEMA_VERSION } from './utils/binary-schema-version.js';
40
35
  export { AdblockSyntax, AdblockProduct, getHumanReadableProductName } from './utils/adblockers.js';
41
36
  export { type CosmeticRuleSeparatorFinderResult, CosmeticRuleSeparatorUtils } from './utils/cosmetic-rule-separator.js';
42
37
  export { DomainUtils } from './utils/domain.js';
@@ -44,13 +39,8 @@ export { type VariableTable, LogicalExpressionUtils } from './utils/logical-expr
44
39
  export { ADBLOCK_URL_START, ADBLOCK_URL_START_REGEX, ADBLOCK_URL_SEPARATOR, ADBLOCK_URL_SEPARATOR_REGEX, ADBLOCK_WILDCARD, ADBLOCK_WILDCARD_REGEX, SPECIAL_REGEX_SYMBOLS, RegExpUtils, } from './utils/regexp.js';
45
40
  export { QuoteType, QuoteUtils, } from './utils/quotes.js';
46
41
  export { type Position, PositionProvider } from './utils/position-provider.js';
47
- export { OutputByteBuffer } from './utils/output-byte-buffer.js';
48
- export { InputByteBuffer } from './utils/input-byte-buffer.js';
49
- export { ByteBuffer } from './utils/byte-buffer.js';
50
- export { encodeIntoPolyfill, type TextEncoderPolyfillResult } from './utils/text-encoder-polyfill.js';
51
- export { decodeTextPolyfill } from './utils/text-decoder-polyfill.js';
52
42
  export { RuleCategorizer } from './utils/categorizer.js';
53
- export { EXT_CSS_PSEUDO_CLASSES, EXT_CSS_LEGACY_ATTRIBUTES, FORBIDDEN_CSS_FUNCTIONS } from './converter/data/css.js';
43
+ export { NATIVE_CSS_PSEUDO_CLASSES, REMOVE_PROPERTY, } from './converter/data/css.js';
44
+ export { CssTokenStream } from './parser/css/css-token-stream.js';
54
45
  export { GenericPlatform, SpecificPlatform, modifiersCompatibilityTable, redirectsCompatibilityTable, scriptletsCompatibilityTable, parseRawPlatforms, type CompatibilityTable, type CompatibilityTableRow, type ProductRecords, type RowByProduct, type RowsByProduct, isGenericPlatform, getPlatformId, getSpecificPlatformName, hasPlatformMultipleProducts, getProductGenericPlatforms, getProductSpecificPlatforms, platformToAdblockProduct, getPlatformsByProduct, getHumanReadablePlatformName, getAllPlatformNames, ResourceType, getResourceTypeModifier, isValidResourceType, stringifyPlatforms, type PlatformsByProduct, type AnyPlatform, PLATFORM_NEGATION, PLATFORM_SEPARATOR, } from './compatibility-tables/index.js';
55
46
  export { AGTREE_VERSION } from './version.js';
56
- export { getSyntaxSerializationMap } from './marshalling-utils/syntax-serialization-map.js';
@@ -860,15 +860,171 @@ export interface ScriptletInjectionRuleBody extends Node {
860
860
  */
861
861
  children: ParameterList[];
862
862
  }
863
+ /**
864
+ * Represents a type selector.
865
+ *
866
+ * @see {@link https://www.w3.org/TR/selectors-4/#type-selectors}
867
+ */
868
+ export interface TypeSelector extends Node {
869
+ type: 'TypeSelector';
870
+ /**
871
+ * Value of the type selector.
872
+ */
873
+ value: string;
874
+ }
875
+ /**
876
+ * Represents a class selector.
877
+ *
878
+ * @see {@link https://www.w3.org/TR/selectors-4/#class-html}
879
+ */
880
+ export interface ClassSelector extends Node {
881
+ type: 'ClassSelector';
882
+ /**
883
+ * Value of the class selector (without dot).
884
+ */
885
+ value: string;
886
+ }
887
+ /**
888
+ * Represents an ID selector.
889
+ *
890
+ * @see {@link https://www.w3.org/TR/selectors-4/#id-selectors}
891
+ */
892
+ export interface IdSelector extends Node {
893
+ type: 'IdSelector';
894
+ /**
895
+ * Value of the ID selector (without hash).
896
+ */
897
+ value: string;
898
+ }
899
+ /**
900
+ * Represents an attribute selector without value.
901
+ *
902
+ * @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
903
+ */
904
+ export interface AttributeSelectorWithoutValue extends Node {
905
+ type: 'AttributeSelector';
906
+ /**
907
+ * Name of the attribute selector.
908
+ */
909
+ name: Value;
910
+ }
911
+ /**
912
+ * Represents CSS attribute selector operator values.
913
+ *
914
+ * @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
915
+ */
916
+ export type AttributeSelectorOperatorValue = '=' | '~=' | '|=' | '^=' | '$=' | '*=';
917
+ /**
918
+ * Represents CSS attribute selector flag values.
919
+ *
920
+ * @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
921
+ */
922
+ export type AttributeSelectorFlagValue = 'i' | 's';
923
+ /**
924
+ * Represents an attribute selector with value.
925
+ *
926
+ * @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
927
+ */
928
+ export interface AttributeSelectorWithValue extends Node {
929
+ type: 'AttributeSelector';
930
+ /**
931
+ * Name of the attribute selector.
932
+ */
933
+ name: Value;
934
+ /**
935
+ * Operator of the attribute selector.
936
+ */
937
+ operator: Value<AttributeSelectorOperatorValue>;
938
+ /**
939
+ * Value of the attribute selector.
940
+ */
941
+ value: Value;
942
+ /**
943
+ * Optional flag of the attribute selector.
944
+ */
945
+ flag?: Value<AttributeSelectorFlagValue>;
946
+ }
947
+ /**
948
+ * Represents an attribute selector.
949
+ *
950
+ * @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
951
+ */
952
+ export type AttributeSelector = AttributeSelectorWithoutValue | AttributeSelectorWithValue;
953
+ /**
954
+ * Represents a pseudo-class selector.
955
+ *
956
+ * @see {@link https://www.w3.org/TR/selectors-4/#pseudo-classes}
957
+ */
958
+ export interface PseudoClassSelector extends Node {
959
+ type: 'PseudoClassSelector';
960
+ /**
961
+ * Name of the pseudo-class selector.
962
+ */
963
+ name: Value;
964
+ /**
965
+ * Optional argument of the pseudo-class selector.
966
+ * If not specified, the pseudo-class is not callable (e.g., `:hover`).
967
+ * If specified, the pseudo-class is callable (e.g., `:nth-child(2n+1)`).
968
+ */
969
+ argument?: Value;
970
+ }
971
+ /**
972
+ * Represents a simple CSS selector.
973
+ *
974
+ * @see {@link https://www.w3.org/TR/selectors-4/#simple}
975
+ */
976
+ export type SimpleSelector = TypeSelector | ClassSelector | IdSelector | AttributeSelector | PseudoClassSelector;
977
+ /**
978
+ * Represents selector combinator values.
979
+ *
980
+ * @see {@link https://www.w3.org/TR/selectors-4/#combinators}
981
+ */
982
+ export type SelectorCombinatorValue = ' ' | '>' | '+' | '~';
983
+ /**
984
+ * Represents selector combinators.
985
+ *
986
+ * @see {@link https://www.w3.org/TR/selectors-4/#combinators}
987
+ */
988
+ export interface SelectorCombinator extends Node {
989
+ type: 'SelectorCombinator';
990
+ /**
991
+ * Value of the combinator.
992
+ */
993
+ value: SelectorCombinatorValue;
994
+ }
995
+ /**
996
+ * Represents a complex selector.
997
+ *
998
+ * @see {@link https://www.w3.org/TR/selectors-4/#complex}
999
+ */
1000
+ export interface ComplexSelector extends Node {
1001
+ type: 'ComplexSelector';
1002
+ /**
1003
+ * List of simple selectors and combinators that form a complex selector.
1004
+ */
1005
+ children: (SimpleSelector | SelectorCombinator)[];
1006
+ }
1007
+ /**
1008
+ * Represents a selector list.
1009
+ *
1010
+ * @see {@link https://www.w3.org/TR/selectors-4/#selector-list}
1011
+ */
1012
+ export interface SelectorList extends Node {
1013
+ type: 'SelectorList';
1014
+ /**
1015
+ * List of complex selectors separated by commas.
1016
+ */
1017
+ children: ComplexSelector[];
1018
+ }
863
1019
  /**
864
1020
  * Represents an HTML filtering rule body.
865
1021
  */
866
1022
  export interface HtmlFilteringRuleBody extends Node {
867
1023
  type: 'HtmlFilteringRuleBody';
868
1024
  /**
869
- * HTML rule selector(s).
1025
+ * CSS selector list.
870
1026
  */
871
- body: Value;
1027
+ selectorList: SelectorList;
872
1028
  }
873
1029
  /**
874
1030
  * A generic representation of a cosmetic rule.
@@ -1013,7 +1169,7 @@ export interface ScriptletInjectionRule extends CosmeticRule {
1013
1169
  */
1014
1170
  export interface HtmlFilteringRule extends CosmeticRule {
1015
1171
  type: typeof CosmeticRuleType.HtmlFilteringRule;
1016
- body: Value;
1172
+ body: Value | HtmlFilteringRuleBody;
1017
1173
  }
1018
1174
  /**
1019
1175
  * Representation of a JS injection rule.
@@ -0,0 +1,35 @@
1
+ import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
2
+ import { BaseParser } from '../../base-parser.js';
3
+ /**
4
+ * `AdgHtmlFilteringBodyParser` is responsible for parsing the body of an AdGuard-style HTML filtering rule.
5
+ *
6
+ * Please note that the parser will parse any HTML filtering rule if it is syntactically correct.
7
+ * For example, it will parse this:
8
+ * ```adblock
9
+ * example.com$$div[special-attr="value"]
10
+ * ```
11
+ *
12
+ * but it didn't check if the attribute `special-attr` actually supported by any adblocker.
13
+ *
14
+ * @see {@link https://www.w3.org/TR/selectors-4}
15
+ * @see {@link https://adguard.com/kb/general/ad-filtering/create-own-filters/#html-filtering-rules}
16
+ */
17
+ export declare class AdgHtmlFilteringBodyParser extends BaseParser {
18
+ /**
19
+ * Parses the body of an AdGuard-style HTML filtering rule.
20
+ *
21
+ * @param raw Raw input to parse.
22
+ * @param options Global parser options.
23
+ * @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
24
+ *
25
+ * @returns Node of the parsed HTML filtering rule body.
26
+ *
27
+ * @throws If the body is syntactically incorrect.
28
+ *
29
+ * @example
30
+ * ```
31
+ * div[some_attribute="some_value"]
32
+ * ```
33
+ */
34
+ static parse(raw: string, options?: import("../../index.js").ParserOptions, baseOffset?: number): Value | HtmlFilteringRuleBody;
35
+ }
@@ -0,0 +1,39 @@
1
+ import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
2
+ import { BaseParser } from '../../base-parser.js';
3
+ /**
4
+ * Class responsible for parsing HTML filtering rule body.
5
+ *
6
+ * Please note that the parser will parse any HTML filtering rule body if it is syntactically correct.
7
+ * For example, it will parse this:
8
+ * ```adblock
9
+ * span[special-attr="Example"]
10
+ * div:special-pseudo(Example)
11
+ * ```
12
+ *
13
+ * but it didn't check if the pseudo selector `special-pseudo` or if
14
+ * the attribute selector `special-attr` actually supported by any adblocker.
15
+ *
16
+ * @see {@link https://www.w3.org/TR/selectors-4}
17
+ * @see {@link https://adguard.com/kb/general/ad-filtering/create-own-filters/#html-filtering-rules}
18
+ * @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#html-filters}
19
+ */
20
+ export declare class HtmlFilteringBodyParser extends BaseParser {
21
+ /**
22
+ * Parses a HTML filtering rule body.
23
+ *
24
+ * @param raw Raw input to parse.
25
+ * @param options Global parser options.
26
+ * @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
27
+ *
28
+ * @returns Node of the parsed HTML filtering rule body.
29
+ *
30
+ * @throws If the body is syntactically incorrect.
31
+ *
32
+ * @example
33
+ * ```
34
+ * span[tag-content="Example"]
35
+ * div:has-text(Example)
36
+ * ```
37
+ */
38
+ static parse(raw: string, options?: import("../../index.js").ParserOptions, baseOffset?: number): Value | HtmlFilteringRuleBody;
39
+ }
@@ -0,0 +1,63 @@
1
+ import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
2
+ import { BaseParser } from '../../base-parser.js';
3
+ /**
4
+ * `UboHtmlFilteringBodyParser` is responsible for parsing the body of
5
+ * an uBlock-style HTML filtering rule, and also uBlock-style response header removal rule.
6
+ *
7
+ * Please note that the parser will parse any HTML filtering rule if it is syntactically correct.
8
+ * For example, it will parse this:
9
+ * ```adblock
10
+ * example.com##^script:pseudo(content)
11
+ * example.com##^responseheader(header-name)
12
+ * ```
13
+ *
14
+ * but it didn't check if the pseudo selector `pseudo` or if
15
+ * the header name `header-name` actually supported by any adblocker.
16
+ *
17
+ * @see {@link https://www.w3.org/TR/selectors-4}
18
+ * @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#html-filters}
19
+ * @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#response-header-filtering}
20
+ */
21
+ export declare class UboHtmlFilteringBodyParser extends BaseParser {
22
+ /**
23
+ * Parses the body of an uBlock-style HTML filtering rule
24
+ * and also uBlock-style response header removal rule.
25
+ *
26
+ * @param raw Raw input to parse.
27
+ * @param options Global parser options.
28
+ * @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
29
+ *
30
+ * @returns Node of the parsed HTML filtering rule body.
31
+ *
32
+ * @throws If the body is syntactically incorrect.
33
+ *
34
+ * @example
35
+ * ```
36
+ * div:has-text(Example)
37
+ * responseheader(header-name)
38
+ * ```
39
+ */
40
+ static parse(raw: string, options?: import("../../index.js").ParserOptions, baseOffset?: number): Value | HtmlFilteringRuleBody;
41
+ /**
42
+ * Parses uBlock-style response header removal rule body.
43
+ *
44
+ * @param raw Raw input to parse.
45
+ * @param options Global parser options.
46
+ * @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
47
+ *
48
+ * @returns Node of the parsed response header removal rule body
49
+ * or `null` if the body is not a response header removal rule.
50
+ *
51
+ * @throws If the body is syntactically incorrect.
52
+ *
53
+ * @example
54
+ * ```
55
+ * responseheader(header-name)
56
+ * ```
57
+ *
58
+ * @note This method returns `HtmlFilteringRuleBody` because,
59
+ * response header removal rule syntax is same as uBlock-style
60
+ * HTML filtering rule syntax.
61
+ */
62
+ static parseResponseHeaderRule(raw: string, options?: import("../../index.js").ParserOptions, baseOffset?: number): HtmlFilteringRuleBody | null;
63
+ }
@@ -0,0 +1,42 @@
1
+ import { type ParserOptions } from '../../options.js';
2
+ import { type TokenData, type CssTokenStream } from '../../css/css-token-stream.js';
3
+ import { type SelectorList, type ComplexSelector } from '../../../nodes/index.js';
4
+ /**
5
+ * Interface that represents current selector list parser context.
6
+ */
7
+ export interface SelectorListParserContext {
8
+ /**
9
+ * Raw input string being parsed.
10
+ *
11
+ * Note: This is the full raw string, not just the part being currently parsed.
12
+ */
13
+ raw: string;
14
+ /**
15
+ * Global parser options.
16
+ */
17
+ options: ParserOptions;
18
+ /**
19
+ * Starting offset of the input. Node locations are calculated relative to this offset.
20
+ */
21
+ baseOffset: number;
22
+ /**
23
+ * CSS token stream used for parsing.
24
+ */
25
+ stream: CssTokenStream;
26
+ /**
27
+ * Current token being processed.
28
+ */
29
+ token: TokenData;
30
+ /**
31
+ * Resulting selector list node.
32
+ */
33
+ result: SelectorList;
34
+ /**
35
+ * Currently processed complex selector node.
36
+ */
37
+ complexSelector: ComplexSelector;
38
+ /**
39
+ * Indicates whether the type selector is already set for `complexSelector`.
40
+ */
41
+ isTypeSelectorSet: boolean;
42
+ }
@@ -0,0 +1,35 @@
1
+ import { type SelectorListParserContext } from '../context.js';
2
+ /**
3
+ * Handles attribute selector parsing in selector list.
4
+ */
5
+ export declare class AttributeSelectorHandler {
6
+ /**
7
+ * Set of attribute equality prefixes.
8
+ *
9
+ * @see {@link AttributeSelectorOperatorValue}
10
+ */
11
+ private static readonly ATTR_EQUALITY_PREFIXES;
12
+ /**
13
+ * Set of valid flags for attribute selector values.
14
+ *
15
+ * @see {@link AttributeSelectorFlagValue}
16
+ */
17
+ private static readonly ALLOWED_ATTRIBUTE_FLAGS;
18
+ /**
19
+ * Handles attribute selector parsing by creating an attribute selector node
20
+ * and appending it to the current complex selector node.
21
+ *
22
+ * @param context Selector list parser context.
23
+ *
24
+ * @throws If the attribute selector is syntactically incorrect.
25
+ */
26
+ static handle(context: SelectorListParserContext): void;
27
+ /**
28
+ * Validates attribute selector flag.
29
+ *
30
+ * @param flag Attribute selector flag.
31
+ *
32
+ * @returns `true` if the flag is valid, otherwise `false`.
33
+ */
34
+ private static isValidFlag;
35
+ }
@@ -0,0 +1,15 @@
1
+ import { type SelectorListParserContext } from '../context.js';
2
+ /**
3
+ * Handles class selector parsing in selector list.
4
+ */
5
+ export declare class ClassSelectorHandler {
6
+ /**
7
+ * Handles class selector parsing by creating a class selector node
8
+ * and appending it to the current complex selector node.
9
+ *
10
+ * @param context Selector list parser context.
11
+ *
12
+ * @throws If the class selector is syntactically incorrect.
13
+ */
14
+ static handle(context: SelectorListParserContext): void;
15
+ }