@adguard/agtree 2.1.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (734) hide show
  1. package/dist/cjs/ast-utils/clone.js +65 -0
  2. package/dist/cjs/ast-utils/modifiers.js +56 -0
  3. package/dist/cjs/ast-utils/network-rules.js +43 -0
  4. package/dist/cjs/ast-utils/scriptlets.js +93 -0
  5. package/dist/cjs/common/abp-snippet-injection-body-common.js +18 -0
  6. package/dist/cjs/common/agent-common.js +58 -0
  7. package/dist/cjs/common/ubo-selector-common.js +18 -0
  8. package/dist/cjs/compatibility-tables/base.js +264 -0
  9. package/dist/cjs/compatibility-tables/compatibility-table-data.js +15 -0
  10. package/dist/cjs/compatibility-tables/modifiers.js +57 -0
  11. package/dist/cjs/compatibility-tables/platforms.js +58 -0
  12. package/dist/cjs/compatibility-tables/redirects.js +102 -0
  13. package/dist/cjs/compatibility-tables/schemas/base.js +116 -0
  14. package/dist/cjs/compatibility-tables/schemas/modifier.js +107 -0
  15. package/dist/cjs/compatibility-tables/schemas/platform.js +71 -0
  16. package/dist/cjs/compatibility-tables/schemas/redirect.js +31 -0
  17. package/dist/cjs/compatibility-tables/schemas/resource-type.js +39 -0
  18. package/dist/cjs/compatibility-tables/schemas/scriptlet.js +81 -0
  19. package/dist/cjs/compatibility-tables/scriptlets.js +30 -0
  20. package/dist/cjs/compatibility-tables/utils/platform-helpers.js +112 -0
  21. package/dist/cjs/compatibility-tables/utils/resource-type-helpers.js +64 -0
  22. package/dist/cjs/compatibility-tables/utils/zod-camelcase.js +27 -0
  23. package/dist/cjs/converter/base-interfaces/base-converter.js +61 -0
  24. package/dist/cjs/converter/base-interfaces/conversion-result.js +41 -0
  25. package/dist/cjs/converter/base-interfaces/rule-converter-base.js +62 -0
  26. package/dist/cjs/converter/comment/index.js +56 -0
  27. package/dist/cjs/converter/cosmetic/css.js +71 -0
  28. package/dist/cjs/converter/cosmetic/element-hiding.js +64 -0
  29. package/dist/cjs/converter/cosmetic/header-removal.js +126 -0
  30. package/dist/cjs/converter/cosmetic/html.js +384 -0
  31. package/dist/cjs/converter/cosmetic/index.js +120 -0
  32. package/dist/cjs/converter/cosmetic/rule-modifiers/adg.js +81 -0
  33. package/dist/cjs/converter/cosmetic/scriptlet.js +356 -0
  34. package/dist/cjs/converter/css/index.js +193 -0
  35. package/dist/cjs/converter/data/css.js +133 -0
  36. package/dist/cjs/converter/filter-list.js +90 -0
  37. package/dist/cjs/converter/index.js +15 -0
  38. package/dist/cjs/converter/misc/network-rule-modifier.js +313 -0
  39. package/dist/cjs/converter/network/index.js +101 -0
  40. package/dist/cjs/converter/raw-filter-list.js +58 -0
  41. package/dist/cjs/converter/rule.js +83 -0
  42. package/dist/cjs/deserializer/base-deserializer.js +31 -0
  43. package/dist/cjs/deserializer/comment/agent-comment-deserializer.js +76 -0
  44. package/dist/cjs/deserializer/comment/agent-deserializer.js +67 -0
  45. package/dist/cjs/deserializer/comment/comment-rule-deserializer.js +109 -0
  46. package/dist/cjs/deserializer/comment/config-comment-deserializer.js +113 -0
  47. package/dist/cjs/deserializer/comment/hint-comment-deserializer.js +69 -0
  48. package/dist/cjs/deserializer/comment/hint-deserializer.js +88 -0
  49. package/dist/cjs/deserializer/comment/metadata-comment-deserializer.js +71 -0
  50. package/dist/cjs/deserializer/comment/pre-processor-comment-deserializer.js +114 -0
  51. package/dist/cjs/deserializer/comment/simple-comment-deserializer.js +67 -0
  52. package/dist/cjs/deserializer/cosmetic/cosmetic-rule-deserializer.js +127 -0
  53. package/dist/cjs/deserializer/cosmetic/css-injection-body-deserializer.js +55 -0
  54. package/dist/cjs/deserializer/cosmetic/element-hiding-body-deserializer.js +46 -0
  55. package/dist/cjs/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +37 -0
  56. package/dist/cjs/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +37 -0
  57. package/dist/cjs/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +52 -0
  58. package/dist/cjs/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +38 -0
  59. package/dist/cjs/deserializer/empty-rule-deserializer.js +46 -0
  60. package/dist/cjs/deserializer/filterlist-deserializer.js +83 -0
  61. package/dist/cjs/deserializer/index.js +15 -0
  62. package/dist/cjs/deserializer/invalid-rule-deserializer.js +48 -0
  63. package/dist/cjs/deserializer/invalid-rule-error-node-deserializer.js +48 -0
  64. package/dist/cjs/deserializer/misc/domain-list-deserializer.js +66 -0
  65. package/dist/cjs/deserializer/misc/list-item-deserializer.js +65 -0
  66. package/dist/cjs/deserializer/misc/list-items-deserializer.js +28 -0
  67. package/dist/cjs/deserializer/misc/logical-expression-deserializer.js +199 -0
  68. package/dist/cjs/deserializer/misc/modifier-deserializer.js +89 -0
  69. package/dist/cjs/deserializer/misc/modifier-list-deserializer.js +58 -0
  70. package/dist/cjs/deserializer/misc/parameter-list-deserializer.js +62 -0
  71. package/dist/cjs/deserializer/misc/value-deserializer.js +52 -0
  72. package/dist/cjs/deserializer/network/host-rule-deserializer.js +81 -0
  73. package/dist/cjs/deserializer/network/hostname-list-deserializer.js +50 -0
  74. package/dist/cjs/deserializer/network/network-rule-deserializer.js +67 -0
  75. package/dist/cjs/deserializer/rule-deserializer.js +67 -0
  76. package/dist/cjs/deserializer/syntax-deserialization-map.js +23 -0
  77. package/dist/cjs/errors/adblock-syntax-error.js +41 -0
  78. package/dist/cjs/errors/binary-schema-mismatch-error.js +39 -0
  79. package/dist/cjs/errors/not-implemented-error.js +33 -0
  80. package/dist/cjs/errors/rule-conversion-error.js +28 -0
  81. package/dist/cjs/generator/base-generator.js +29 -0
  82. package/dist/cjs/generator/comment/agent-comment-generator.js +30 -0
  83. package/dist/cjs/generator/comment/agent-generator.js +34 -0
  84. package/dist/cjs/generator/comment/comment-rule-generator.js +102 -0
  85. package/dist/cjs/generator/comment/config-comment-generator.js +44 -0
  86. package/dist/cjs/generator/comment/hint-comment-generator.js +27 -0
  87. package/dist/cjs/generator/comment/hint-generator.js +32 -0
  88. package/dist/cjs/generator/comment/metadata-comment-generator.js +32 -0
  89. package/dist/cjs/generator/comment/pre-processor-comment-generator.js +47 -0
  90. package/dist/cjs/generator/comment/simple-comment-generator.js +28 -0
  91. package/dist/cjs/generator/cosmetic/body/abp-snippet-injection-body-generator.js +36 -0
  92. package/dist/cjs/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +41 -0
  93. package/dist/cjs/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +43 -0
  94. package/dist/cjs/generator/cosmetic/cosmetic-rule-body-generator.js +92 -0
  95. package/dist/cjs/generator/cosmetic/cosmetic-rule-generator.js +66 -0
  96. package/dist/cjs/generator/cosmetic/cosmetic-rule-pattern-generator.js +41 -0
  97. package/dist/cjs/generator/css/adg-css-injection-generator.js +41 -0
  98. package/dist/cjs/generator/filterlist-generator.js +57 -0
  99. package/dist/cjs/generator/index.js +17 -0
  100. package/dist/cjs/generator/misc/domain-list-generator.js +25 -0
  101. package/dist/cjs/generator/misc/list-items-generator.js +38 -0
  102. package/dist/cjs/generator/misc/logical-expression-generator.js +47 -0
  103. package/dist/cjs/generator/misc/modifier-generator.js +33 -0
  104. package/dist/cjs/generator/misc/modifier-list-generator.js +28 -0
  105. package/dist/cjs/generator/misc/parameter-list-generator.js +41 -0
  106. package/dist/cjs/generator/misc/value-generator.js +23 -0
  107. package/dist/cjs/generator/network/host-rule-generator.js +38 -0
  108. package/dist/cjs/generator/network/network-rule-generator.js +37 -0
  109. package/dist/cjs/generator/rule-generator.js +64 -0
  110. package/dist/cjs/index.js +201 -0
  111. package/dist/cjs/marshalling-utils/comment/agent-comment-common.js +22 -0
  112. package/dist/cjs/marshalling-utils/comment/agent-common.js +43 -0
  113. package/dist/cjs/marshalling-utils/comment/config-comment-common.js +58 -0
  114. package/dist/cjs/marshalling-utils/comment/hint-comment-common.js +23 -0
  115. package/dist/cjs/marshalling-utils/comment/hint-common.js +60 -0
  116. package/dist/cjs/marshalling-utils/comment/metadata-comment-common.js +44 -0
  117. package/dist/cjs/marshalling-utils/comment/pre-processor-comment-common.js +63 -0
  118. package/dist/cjs/marshalling-utils/comment/simple-comment-common.js +23 -0
  119. package/dist/cjs/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +64 -0
  120. package/dist/cjs/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +68 -0
  121. package/dist/cjs/marshalling-utils/cosmetic/body/css-injection-body-common.js +25 -0
  122. package/dist/cjs/marshalling-utils/cosmetic/body/element-hiding-body-common.js +22 -0
  123. package/dist/cjs/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +116 -0
  124. package/dist/cjs/marshalling-utils/cosmetic/cosmetic-rule-common.js +51 -0
  125. package/dist/cjs/marshalling-utils/empty-rule-common.js +21 -0
  126. package/dist/cjs/marshalling-utils/filter-list-common.js +22 -0
  127. package/dist/cjs/marshalling-utils/invalid-rule-common.js +22 -0
  128. package/dist/cjs/marshalling-utils/invalid-rule-error-node-common.js +23 -0
  129. package/dist/cjs/marshalling-utils/misc/binary-type-common.js +67 -0
  130. package/dist/cjs/marshalling-utils/misc/domain-list-common.js +39 -0
  131. package/dist/cjs/marshalling-utils/misc/host-rule-common.js +26 -0
  132. package/dist/cjs/marshalling-utils/misc/hostname-list-common.js +22 -0
  133. package/dist/cjs/marshalling-utils/misc/list-item-common.js +23 -0
  134. package/dist/cjs/marshalling-utils/misc/logical-expression-common.js +89 -0
  135. package/dist/cjs/marshalling-utils/misc/modifier-common.js +236 -0
  136. package/dist/cjs/marshalling-utils/misc/modifier-list-common.js +22 -0
  137. package/dist/cjs/marshalling-utils/misc/parameter-list-common.js +22 -0
  138. package/dist/cjs/marshalling-utils/misc/value-common.js +23 -0
  139. package/dist/cjs/marshalling-utils/network/network-rule-common.js +26 -0
  140. package/dist/cjs/marshalling-utils/syntax-serialization-map.js +32 -0
  141. package/dist/cjs/nodes/index.js +180 -0
  142. package/dist/cjs/package.json.js +11 -0
  143. package/dist/cjs/parser/base-parser.js +32 -0
  144. package/dist/cjs/parser/comment/agent-comment-parser.js +121 -0
  145. package/dist/cjs/parser/comment/agent-parser.js +111 -0
  146. package/dist/cjs/parser/comment/comment-parser.js +110 -0
  147. package/dist/cjs/parser/comment/config-comment-parser.js +139 -0
  148. package/dist/cjs/parser/comment/hint-comment-parser.js +119 -0
  149. package/dist/cjs/parser/comment/hint-parser.js +131 -0
  150. package/dist/cjs/parser/comment/metadata-comment-parser.js +131 -0
  151. package/dist/cjs/parser/comment/preprocessor-parser.js +201 -0
  152. package/dist/cjs/parser/comment/simple-comment-parser.js +108 -0
  153. package/dist/cjs/parser/cosmetic/body/abp-snippet-injection-body-parser.js +81 -0
  154. package/dist/cjs/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +151 -0
  155. package/dist/cjs/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +112 -0
  156. package/dist/cjs/parser/cosmetic/cosmetic-rule-parser.js +456 -0
  157. package/dist/cjs/parser/css/adg-css-injection-parser.js +213 -0
  158. package/dist/cjs/parser/css/balancing.js +97 -0
  159. package/dist/cjs/parser/css/constants.js +21 -0
  160. package/dist/cjs/parser/css/css-token-stream.js +345 -0
  161. package/dist/cjs/parser/css/ubo-selector-parser.js +373 -0
  162. package/dist/cjs/parser/filterlist-parser.js +104 -0
  163. package/dist/cjs/parser/index.js +21 -0
  164. package/dist/cjs/parser/misc/app-list-parser.js +47 -0
  165. package/dist/cjs/parser/misc/domain-list-parser.js +54 -0
  166. package/dist/cjs/parser/misc/list-items-parser.js +116 -0
  167. package/dist/cjs/parser/misc/logical-expression-parser.js +283 -0
  168. package/dist/cjs/parser/misc/method-list-parser.js +48 -0
  169. package/dist/cjs/parser/misc/modifier-list.js +72 -0
  170. package/dist/cjs/parser/misc/modifier-parser.js +91 -0
  171. package/dist/cjs/parser/misc/parameter-list-parser.js +74 -0
  172. package/dist/cjs/parser/misc/stealth-option-list-parser.js +48 -0
  173. package/dist/cjs/parser/misc/ubo-parameter-list-parser.js +148 -0
  174. package/dist/cjs/parser/misc/value-parser.js +39 -0
  175. package/dist/cjs/parser/network/host-rule-parser.js +151 -0
  176. package/dist/cjs/parser/network/network-rule-parser.js +113 -0
  177. package/dist/cjs/parser/options.js +25 -0
  178. package/dist/cjs/parser/rule-parser.js +194 -0
  179. package/dist/cjs/serializer/base-serializer.js +31 -0
  180. package/dist/cjs/serializer/comment/agent-comment-serializer.js +73 -0
  181. package/dist/cjs/serializer/comment/agent-serializer.js +70 -0
  182. package/dist/cjs/serializer/comment/comment-rule-serializer.js +107 -0
  183. package/dist/cjs/serializer/comment/config-comment-serializer.js +84 -0
  184. package/dist/cjs/serializer/comment/hint-comment-serializer.js +64 -0
  185. package/dist/cjs/serializer/comment/hint-serializer.js +56 -0
  186. package/dist/cjs/serializer/comment/metadata-comment-serializer.js +75 -0
  187. package/dist/cjs/serializer/comment/pre-processor-comment-serializer.js +73 -0
  188. package/dist/cjs/serializer/comment/simple-comment-serializer.js +54 -0
  189. package/dist/cjs/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +38 -0
  190. package/dist/cjs/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +38 -0
  191. package/dist/cjs/serializer/cosmetic/body/scriptlet-body-serializer.js +49 -0
  192. package/dist/cjs/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +38 -0
  193. package/dist/cjs/serializer/cosmetic/cosmetic-rule-serializer.js +131 -0
  194. package/dist/cjs/serializer/cosmetic/css-injection-body-serializer.js +50 -0
  195. package/dist/cjs/serializer/cosmetic/element-hiding-body-serializer.js +39 -0
  196. package/dist/cjs/serializer/empty-rule-serializer.js +36 -0
  197. package/dist/cjs/serializer/filterlist-serializer.js +48 -0
  198. package/dist/cjs/serializer/index.js +13 -0
  199. package/dist/cjs/serializer/invalid-rule-error-node-serializer.js +40 -0
  200. package/dist/cjs/serializer/invalid-rule-serializer.js +39 -0
  201. package/dist/cjs/serializer/misc/domain-list-serializer.js +66 -0
  202. package/dist/cjs/serializer/misc/list-item-serializer.js +57 -0
  203. package/dist/cjs/serializer/misc/list-items-serializer.js +28 -0
  204. package/dist/cjs/serializer/misc/logical-expression-serializer.js +138 -0
  205. package/dist/cjs/serializer/misc/modifier-list-serializer.js +57 -0
  206. package/dist/cjs/serializer/misc/modifier-serializer.js +51 -0
  207. package/dist/cjs/serializer/misc/parameter-list-serializer.js +51 -0
  208. package/dist/cjs/serializer/misc/value-serializer.js +52 -0
  209. package/dist/cjs/serializer/network/host-rule-serializer.js +72 -0
  210. package/dist/cjs/serializer/network/hostname-list-serializer.js +49 -0
  211. package/dist/cjs/serializer/network/network-rule-serializer.js +56 -0
  212. package/dist/cjs/serializer/rule-serializer.js +63 -0
  213. package/dist/cjs/utils/adblockers.js +57 -0
  214. package/dist/cjs/utils/binary-schema-version.js +19 -0
  215. package/dist/cjs/utils/byte-buffer.js +93 -0
  216. package/dist/cjs/utils/categorizer.js +46 -0
  217. package/dist/cjs/utils/clone.js +30 -0
  218. package/dist/cjs/utils/constants.js +380 -0
  219. package/dist/cjs/utils/cosmetic-rule-separator.js +129 -0
  220. package/dist/cjs/utils/deep-freeze.js +34 -0
  221. package/dist/cjs/utils/domain.js +60 -0
  222. package/dist/cjs/utils/error.js +51 -0
  223. package/dist/cjs/utils/index.js +69 -0
  224. package/dist/cjs/utils/input-byte-buffer.js +259 -0
  225. package/dist/cjs/utils/is-chromium.js +22 -0
  226. package/dist/cjs/utils/logical-expression.js +94 -0
  227. package/dist/cjs/utils/multi-value-map.js +35 -0
  228. package/dist/cjs/utils/output-byte-buffer.js +225 -0
  229. package/dist/cjs/utils/position-provider.js +75 -0
  230. package/dist/cjs/utils/quotes.js +218 -0
  231. package/dist/cjs/utils/regexp.js +190 -0
  232. package/dist/cjs/utils/string.js +560 -0
  233. package/dist/cjs/utils/text-decoder-polyfill.js +109 -0
  234. package/dist/cjs/utils/text-encoder-polyfill.js +80 -0
  235. package/dist/cjs/utils/type-guards.js +52 -0
  236. package/dist/cjs/validator/constants.js +222 -0
  237. package/dist/cjs/validator/helpers.js +49 -0
  238. package/dist/cjs/validator/index.js +176 -0
  239. package/dist/cjs/validator/value.js +565 -0
  240. package/dist/cjs/version.js +20 -0
  241. package/dist/esm/ast-utils/clone.mjs +61 -0
  242. package/dist/esm/ast-utils/modifiers.mjs +53 -0
  243. package/dist/esm/ast-utils/network-rules.mjs +41 -0
  244. package/dist/esm/ast-utils/scriptlets.mjs +87 -0
  245. package/dist/esm/common/abp-snippet-injection-body-common.mjs +16 -0
  246. package/dist/esm/common/agent-common.mjs +56 -0
  247. package/dist/esm/common/ubo-selector-common.mjs +18 -0
  248. package/dist/esm/compatibility-tables/base.mjs +262 -0
  249. package/dist/esm/compatibility-tables/compatibility-table-data.mjs +11 -0
  250. package/dist/esm/compatibility-tables/modifiers.mjs +55 -0
  251. package/dist/esm/compatibility-tables/platforms.mjs +58 -0
  252. package/dist/esm/compatibility-tables/redirects.mjs +100 -0
  253. package/dist/esm/compatibility-tables/schemas/base.mjs +111 -0
  254. package/dist/esm/compatibility-tables/schemas/modifier.mjs +105 -0
  255. package/dist/esm/compatibility-tables/schemas/platform.mjs +69 -0
  256. package/dist/esm/compatibility-tables/schemas/redirect.mjs +29 -0
  257. package/dist/esm/compatibility-tables/schemas/resource-type.mjs +37 -0
  258. package/dist/esm/compatibility-tables/schemas/scriptlet.mjs +79 -0
  259. package/dist/esm/compatibility-tables/scriptlets.mjs +28 -0
  260. package/dist/esm/compatibility-tables/utils/platform-helpers.mjs +105 -0
  261. package/dist/esm/compatibility-tables/utils/resource-type-helpers.mjs +61 -0
  262. package/dist/esm/compatibility-tables/utils/zod-camelcase.mjs +25 -0
  263. package/dist/esm/converter/base-interfaces/base-converter.mjs +59 -0
  264. package/dist/esm/converter/base-interfaces/conversion-result.mjs +38 -0
  265. package/dist/esm/converter/base-interfaces/rule-converter-base.mjs +60 -0
  266. package/dist/esm/converter/comment/index.mjs +54 -0
  267. package/dist/esm/converter/cosmetic/css.mjs +69 -0
  268. package/dist/esm/converter/cosmetic/element-hiding.mjs +62 -0
  269. package/dist/esm/converter/cosmetic/header-removal.mjs +123 -0
  270. package/dist/esm/converter/cosmetic/html.mjs +381 -0
  271. package/dist/esm/converter/cosmetic/index.mjs +118 -0
  272. package/dist/esm/converter/cosmetic/rule-modifiers/adg.mjs +79 -0
  273. package/dist/esm/converter/cosmetic/scriptlet.mjs +354 -0
  274. package/dist/esm/converter/css/index.mjs +190 -0
  275. package/dist/esm/converter/data/css.mjs +126 -0
  276. package/dist/esm/converter/filter-list.mjs +88 -0
  277. package/dist/esm/converter/index.mjs +8 -0
  278. package/dist/esm/converter/misc/network-rule-modifier.mjs +311 -0
  279. package/dist/esm/converter/network/index.mjs +99 -0
  280. package/dist/esm/converter/raw-filter-list.mjs +56 -0
  281. package/dist/esm/converter/rule.mjs +81 -0
  282. package/dist/esm/deserializer/base-deserializer.mjs +29 -0
  283. package/dist/esm/deserializer/comment/agent-comment-deserializer.mjs +74 -0
  284. package/dist/esm/deserializer/comment/agent-deserializer.mjs +65 -0
  285. package/dist/esm/deserializer/comment/comment-rule-deserializer.mjs +107 -0
  286. package/dist/esm/deserializer/comment/config-comment-deserializer.mjs +111 -0
  287. package/dist/esm/deserializer/comment/hint-comment-deserializer.mjs +67 -0
  288. package/dist/esm/deserializer/comment/hint-deserializer.mjs +85 -0
  289. package/dist/esm/deserializer/comment/metadata-comment-deserializer.mjs +69 -0
  290. package/dist/esm/deserializer/comment/pre-processor-comment-deserializer.mjs +112 -0
  291. package/dist/esm/deserializer/comment/simple-comment-deserializer.mjs +65 -0
  292. package/dist/esm/deserializer/cosmetic/cosmetic-rule-deserializer.mjs +125 -0
  293. package/dist/esm/deserializer/cosmetic/css-injection-body-deserializer.mjs +53 -0
  294. package/dist/esm/deserializer/cosmetic/element-hiding-body-deserializer.mjs +44 -0
  295. package/dist/esm/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.mjs +35 -0
  296. package/dist/esm/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.mjs +35 -0
  297. package/dist/esm/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.mjs +50 -0
  298. package/dist/esm/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.mjs +35 -0
  299. package/dist/esm/deserializer/empty-rule-deserializer.mjs +44 -0
  300. package/dist/esm/deserializer/filterlist-deserializer.mjs +81 -0
  301. package/dist/esm/deserializer/index.mjs +8 -0
  302. package/dist/esm/deserializer/invalid-rule-deserializer.mjs +46 -0
  303. package/dist/esm/deserializer/invalid-rule-error-node-deserializer.mjs +46 -0
  304. package/dist/esm/deserializer/misc/domain-list-deserializer.mjs +64 -0
  305. package/dist/esm/deserializer/misc/list-item-deserializer.mjs +63 -0
  306. package/dist/esm/deserializer/misc/list-items-deserializer.mjs +26 -0
  307. package/dist/esm/deserializer/misc/logical-expression-deserializer.mjs +196 -0
  308. package/dist/esm/deserializer/misc/modifier-deserializer.mjs +87 -0
  309. package/dist/esm/deserializer/misc/modifier-list-deserializer.mjs +56 -0
  310. package/dist/esm/deserializer/misc/parameter-list-deserializer.mjs +60 -0
  311. package/dist/esm/deserializer/misc/value-deserializer.mjs +50 -0
  312. package/dist/esm/deserializer/network/host-rule-deserializer.mjs +79 -0
  313. package/dist/esm/deserializer/network/hostname-list-deserializer.mjs +48 -0
  314. package/dist/esm/deserializer/network/network-rule-deserializer.mjs +65 -0
  315. package/dist/esm/deserializer/rule-deserializer.mjs +65 -0
  316. package/dist/esm/deserializer/syntax-deserialization-map.mjs +21 -0
  317. package/dist/esm/errors/adblock-syntax-error.mjs +39 -0
  318. package/dist/esm/errors/binary-schema-mismatch-error.mjs +37 -0
  319. package/dist/esm/errors/not-implemented-error.mjs +31 -0
  320. package/dist/esm/errors/rule-conversion-error.mjs +26 -0
  321. package/dist/esm/generator/base-generator.mjs +27 -0
  322. package/dist/esm/generator/comment/agent-comment-generator.mjs +28 -0
  323. package/dist/esm/generator/comment/agent-generator.mjs +32 -0
  324. package/dist/esm/generator/comment/comment-rule-generator.mjs +100 -0
  325. package/dist/esm/generator/comment/config-comment-generator.mjs +42 -0
  326. package/dist/esm/generator/comment/hint-comment-generator.mjs +25 -0
  327. package/dist/esm/generator/comment/hint-generator.mjs +30 -0
  328. package/dist/esm/generator/comment/metadata-comment-generator.mjs +30 -0
  329. package/dist/esm/generator/comment/pre-processor-comment-generator.mjs +45 -0
  330. package/dist/esm/generator/comment/simple-comment-generator.mjs +26 -0
  331. package/dist/esm/generator/cosmetic/body/abp-snippet-injection-body-generator.mjs +34 -0
  332. package/dist/esm/generator/cosmetic/body/adg-scriptlet-injection-body-generator.mjs +39 -0
  333. package/dist/esm/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.mjs +41 -0
  334. package/dist/esm/generator/cosmetic/cosmetic-rule-body-generator.mjs +90 -0
  335. package/dist/esm/generator/cosmetic/cosmetic-rule-generator.mjs +64 -0
  336. package/dist/esm/generator/cosmetic/cosmetic-rule-pattern-generator.mjs +39 -0
  337. package/dist/esm/generator/css/adg-css-injection-generator.mjs +39 -0
  338. package/dist/esm/generator/filterlist-generator.mjs +55 -0
  339. package/dist/esm/generator/index.mjs +9 -0
  340. package/dist/esm/generator/misc/domain-list-generator.mjs +23 -0
  341. package/dist/esm/generator/misc/list-items-generator.mjs +36 -0
  342. package/dist/esm/generator/misc/logical-expression-generator.mjs +45 -0
  343. package/dist/esm/generator/misc/modifier-generator.mjs +31 -0
  344. package/dist/esm/generator/misc/modifier-list-generator.mjs +26 -0
  345. package/dist/esm/generator/misc/parameter-list-generator.mjs +39 -0
  346. package/dist/esm/generator/misc/value-generator.mjs +21 -0
  347. package/dist/esm/generator/network/host-rule-generator.mjs +36 -0
  348. package/dist/esm/generator/network/network-rule-generator.mjs +35 -0
  349. package/dist/esm/generator/rule-generator.mjs +62 -0
  350. package/dist/esm/index.mjs +70 -0
  351. package/dist/esm/marshalling-utils/comment/agent-comment-common.mjs +22 -0
  352. package/dist/esm/marshalling-utils/comment/agent-common.mjs +41 -0
  353. package/dist/esm/marshalling-utils/comment/config-comment-common.mjs +56 -0
  354. package/dist/esm/marshalling-utils/comment/hint-comment-common.mjs +23 -0
  355. package/dist/esm/marshalling-utils/comment/hint-common.mjs +57 -0
  356. package/dist/esm/marshalling-utils/comment/metadata-comment-common.mjs +42 -0
  357. package/dist/esm/marshalling-utils/comment/pre-processor-comment-common.mjs +60 -0
  358. package/dist/esm/marshalling-utils/comment/simple-comment-common.mjs +23 -0
  359. package/dist/esm/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.mjs +62 -0
  360. package/dist/esm/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.mjs +66 -0
  361. package/dist/esm/marshalling-utils/cosmetic/body/css-injection-body-common.mjs +25 -0
  362. package/dist/esm/marshalling-utils/cosmetic/body/element-hiding-body-common.mjs +22 -0
  363. package/dist/esm/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.mjs +114 -0
  364. package/dist/esm/marshalling-utils/cosmetic/cosmetic-rule-common.mjs +49 -0
  365. package/dist/esm/marshalling-utils/empty-rule-common.mjs +21 -0
  366. package/dist/esm/marshalling-utils/filter-list-common.mjs +22 -0
  367. package/dist/esm/marshalling-utils/invalid-rule-common.mjs +22 -0
  368. package/dist/esm/marshalling-utils/invalid-rule-error-node-common.mjs +23 -0
  369. package/dist/esm/marshalling-utils/misc/binary-type-common.mjs +67 -0
  370. package/dist/esm/marshalling-utils/misc/domain-list-common.mjs +37 -0
  371. package/dist/esm/marshalling-utils/misc/host-rule-common.mjs +26 -0
  372. package/dist/esm/marshalling-utils/misc/hostname-list-common.mjs +22 -0
  373. package/dist/esm/marshalling-utils/misc/list-item-common.mjs +23 -0
  374. package/dist/esm/marshalling-utils/misc/logical-expression-common.mjs +86 -0
  375. package/dist/esm/marshalling-utils/misc/modifier-common.mjs +232 -0
  376. package/dist/esm/marshalling-utils/misc/modifier-list-common.mjs +22 -0
  377. package/dist/esm/marshalling-utils/misc/parameter-list-common.mjs +22 -0
  378. package/dist/esm/marshalling-utils/misc/value-common.mjs +23 -0
  379. package/dist/esm/marshalling-utils/network/network-rule-common.mjs +26 -0
  380. package/dist/esm/marshalling-utils/syntax-serialization-map.mjs +30 -0
  381. package/dist/esm/nodes/index.mjs +180 -0
  382. package/dist/esm/package.json.mjs +9 -0
  383. package/dist/esm/parser/base-parser.mjs +30 -0
  384. package/dist/esm/parser/comment/agent-comment-parser.mjs +119 -0
  385. package/dist/esm/parser/comment/agent-parser.mjs +109 -0
  386. package/dist/esm/parser/comment/comment-parser.mjs +108 -0
  387. package/dist/esm/parser/comment/config-comment-parser.mjs +137 -0
  388. package/dist/esm/parser/comment/hint-comment-parser.mjs +117 -0
  389. package/dist/esm/parser/comment/hint-parser.mjs +129 -0
  390. package/dist/esm/parser/comment/metadata-comment-parser.mjs +129 -0
  391. package/dist/esm/parser/comment/preprocessor-parser.mjs +199 -0
  392. package/dist/esm/parser/comment/simple-comment-parser.mjs +106 -0
  393. package/dist/esm/parser/cosmetic/body/abp-snippet-injection-body-parser.mjs +79 -0
  394. package/dist/esm/parser/cosmetic/body/adg-scriptlet-injection-body-parser.mjs +149 -0
  395. package/dist/esm/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.mjs +110 -0
  396. package/dist/esm/parser/cosmetic/cosmetic-rule-parser.mjs +453 -0
  397. package/dist/esm/parser/css/adg-css-injection-parser.mjs +208 -0
  398. package/dist/esm/parser/css/balancing.mjs +94 -0
  399. package/dist/esm/parser/css/constants.mjs +18 -0
  400. package/dist/esm/parser/css/css-token-stream.mjs +343 -0
  401. package/dist/esm/parser/css/ubo-selector-parser.mjs +369 -0
  402. package/dist/esm/parser/filterlist-parser.mjs +102 -0
  403. package/dist/esm/parser/index.mjs +11 -0
  404. package/dist/esm/parser/misc/app-list-parser.mjs +45 -0
  405. package/dist/esm/parser/misc/domain-list-parser.mjs +52 -0
  406. package/dist/esm/parser/misc/list-items-parser.mjs +113 -0
  407. package/dist/esm/parser/misc/logical-expression-parser.mjs +281 -0
  408. package/dist/esm/parser/misc/method-list-parser.mjs +46 -0
  409. package/dist/esm/parser/misc/modifier-list.mjs +70 -0
  410. package/dist/esm/parser/misc/modifier-parser.mjs +89 -0
  411. package/dist/esm/parser/misc/parameter-list-parser.mjs +72 -0
  412. package/dist/esm/parser/misc/stealth-option-list-parser.mjs +46 -0
  413. package/dist/esm/parser/misc/ubo-parameter-list-parser.mjs +146 -0
  414. package/dist/esm/parser/misc/value-parser.mjs +37 -0
  415. package/dist/esm/parser/network/host-rule-parser.mjs +130 -0
  416. package/dist/esm/parser/network/network-rule-parser.mjs +111 -0
  417. package/dist/esm/parser/options.mjs +23 -0
  418. package/dist/esm/parser/rule-parser.mjs +192 -0
  419. package/dist/esm/serializer/base-serializer.mjs +29 -0
  420. package/dist/esm/serializer/comment/agent-comment-serializer.mjs +71 -0
  421. package/dist/esm/serializer/comment/agent-serializer.mjs +68 -0
  422. package/dist/esm/serializer/comment/comment-rule-serializer.mjs +105 -0
  423. package/dist/esm/serializer/comment/config-comment-serializer.mjs +82 -0
  424. package/dist/esm/serializer/comment/hint-comment-serializer.mjs +62 -0
  425. package/dist/esm/serializer/comment/hint-serializer.mjs +54 -0
  426. package/dist/esm/serializer/comment/metadata-comment-serializer.mjs +73 -0
  427. package/dist/esm/serializer/comment/pre-processor-comment-serializer.mjs +71 -0
  428. package/dist/esm/serializer/comment/simple-comment-serializer.mjs +52 -0
  429. package/dist/esm/serializer/cosmetic/body/abp-snippet-injection-body-serializer.mjs +36 -0
  430. package/dist/esm/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.mjs +36 -0
  431. package/dist/esm/serializer/cosmetic/body/scriptlet-body-serializer.mjs +47 -0
  432. package/dist/esm/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.mjs +36 -0
  433. package/dist/esm/serializer/cosmetic/cosmetic-rule-serializer.mjs +129 -0
  434. package/dist/esm/serializer/cosmetic/css-injection-body-serializer.mjs +48 -0
  435. package/dist/esm/serializer/cosmetic/element-hiding-body-serializer.mjs +37 -0
  436. package/dist/esm/serializer/empty-rule-serializer.mjs +34 -0
  437. package/dist/esm/serializer/filterlist-serializer.mjs +46 -0
  438. package/dist/esm/serializer/index.mjs +7 -0
  439. package/dist/esm/serializer/invalid-rule-error-node-serializer.mjs +38 -0
  440. package/dist/esm/serializer/invalid-rule-serializer.mjs +37 -0
  441. package/dist/esm/serializer/misc/domain-list-serializer.mjs +64 -0
  442. package/dist/esm/serializer/misc/list-item-serializer.mjs +55 -0
  443. package/dist/esm/serializer/misc/list-items-serializer.mjs +26 -0
  444. package/dist/esm/serializer/misc/logical-expression-serializer.mjs +136 -0
  445. package/dist/esm/serializer/misc/modifier-list-serializer.mjs +55 -0
  446. package/dist/esm/serializer/misc/modifier-serializer.mjs +49 -0
  447. package/dist/esm/serializer/misc/parameter-list-serializer.mjs +49 -0
  448. package/dist/esm/serializer/misc/value-serializer.mjs +50 -0
  449. package/dist/esm/serializer/network/host-rule-serializer.mjs +70 -0
  450. package/dist/esm/serializer/network/hostname-list-serializer.mjs +47 -0
  451. package/dist/esm/serializer/network/network-rule-serializer.mjs +54 -0
  452. package/dist/esm/serializer/rule-serializer.mjs +61 -0
  453. package/dist/esm/utils/adblockers.mjs +57 -0
  454. package/dist/esm/utils/binary-schema-version.mjs +17 -0
  455. package/dist/esm/utils/byte-buffer.mjs +91 -0
  456. package/dist/esm/utils/categorizer.mjs +44 -0
  457. package/dist/esm/utils/clone.mjs +28 -0
  458. package/dist/esm/utils/constants.mjs +249 -0
  459. package/dist/esm/utils/cosmetic-rule-separator.mjs +127 -0
  460. package/dist/esm/utils/deep-freeze.mjs +32 -0
  461. package/dist/esm/utils/domain.mjs +56 -0
  462. package/dist/esm/utils/error.mjs +49 -0
  463. package/dist/esm/utils/index.mjs +21 -0
  464. package/dist/esm/utils/input-byte-buffer.mjs +257 -0
  465. package/dist/esm/utils/is-chromium.mjs +20 -0
  466. package/dist/esm/utils/logical-expression.mjs +92 -0
  467. package/dist/esm/utils/multi-value-map.mjs +33 -0
  468. package/dist/esm/utils/output-byte-buffer.mjs +223 -0
  469. package/dist/esm/utils/position-provider.mjs +73 -0
  470. package/dist/esm/utils/quotes.mjs +215 -0
  471. package/dist/esm/utils/regexp.mjs +176 -0
  472. package/dist/esm/utils/string.mjs +556 -0
  473. package/dist/esm/utils/text-decoder-polyfill.mjs +107 -0
  474. package/dist/esm/utils/text-encoder-polyfill.mjs +78 -0
  475. package/dist/esm/utils/type-guards.mjs +47 -0
  476. package/dist/esm/validator/constants.mjs +210 -0
  477. package/dist/esm/validator/helpers.mjs +45 -0
  478. package/dist/esm/validator/index.mjs +174 -0
  479. package/dist/esm/validator/value.mjs +563 -0
  480. package/dist/esm/version.mjs +18 -0
  481. package/dist/types/ast-utils/clone.d.ts +26 -0
  482. package/dist/types/ast-utils/filter-list.d.ts +11 -0
  483. package/dist/types/ast-utils/modifiers.d.ts +20 -0
  484. package/dist/types/ast-utils/network-rules.d.ts +15 -0
  485. package/dist/types/ast-utils/scriptlets.d.ts +52 -0
  486. package/dist/types/common/abp-snippet-injection-body-common.d.ts +8 -0
  487. package/dist/types/common/agent-common.d.ts +10 -0
  488. package/dist/types/common/ubo-selector-common.d.ts +9 -0
  489. package/dist/types/compatibility-tables/base.d.ts +157 -0
  490. package/dist/types/compatibility-tables/compatibility-table-data.d.ts +67 -0
  491. package/dist/types/compatibility-tables/index.d.ts +13 -0
  492. package/dist/types/compatibility-tables/modifiers.d.ts +22 -0
  493. package/dist/types/compatibility-tables/platforms.d.ts +47 -0
  494. package/dist/types/compatibility-tables/redirects.d.ts +33 -0
  495. package/dist/types/compatibility-tables/schemas/base.d.ts +135 -0
  496. package/dist/types/compatibility-tables/schemas/index.d.ts +8 -0
  497. package/dist/types/compatibility-tables/schemas/modifier.d.ts +31 -0
  498. package/dist/types/compatibility-tables/schemas/platform.d.ts +16 -0
  499. package/dist/types/compatibility-tables/schemas/redirect.d.ts +25 -0
  500. package/dist/types/compatibility-tables/schemas/resource-type.d.ts +27 -0
  501. package/dist/types/compatibility-tables/schemas/scriptlet.d.ts +31 -0
  502. package/dist/types/compatibility-tables/scriptlets.d.ts +15 -0
  503. package/dist/types/compatibility-tables/types.d.ts +34 -0
  504. package/dist/types/compatibility-tables/utils/platform-helpers.d.ts +44 -0
  505. package/dist/types/compatibility-tables/utils/resource-type-helpers.d.ts +20 -0
  506. package/dist/types/compatibility-tables/utils/zod-camelcase.d.ts +15 -0
  507. package/dist/types/converter/base-interfaces/base-converter.d.ts +42 -0
  508. package/dist/types/converter/base-interfaces/conversion-result.d.ts +43 -0
  509. package/dist/types/converter/base-interfaces/rule-converter-base.d.ts +44 -0
  510. package/dist/types/converter/comment/index.d.ts +23 -0
  511. package/dist/types/converter/cosmetic/css.d.ts +23 -0
  512. package/dist/types/converter/cosmetic/element-hiding.d.ts +23 -0
  513. package/dist/types/converter/cosmetic/header-removal.d.ts +37 -0
  514. package/dist/types/converter/cosmetic/html.d.ts +54 -0
  515. package/dist/types/converter/cosmetic/index.d.ts +33 -0
  516. package/dist/types/converter/cosmetic/rule-modifiers/adg.d.ts +21 -0
  517. package/dist/types/converter/cosmetic/scriptlet.d.ts +33 -0
  518. package/dist/types/converter/css/index.d.ts +23 -0
  519. package/dist/types/converter/data/css.d.ts +48 -0
  520. package/dist/types/converter/filter-list.d.ts +31 -0
  521. package/dist/types/converter/index.d.ts +5 -0
  522. package/dist/types/converter/misc/network-rule-modifier.d.ts +35 -0
  523. package/dist/types/converter/network/index.d.ts +33 -0
  524. package/dist/types/converter/raw-filter-list.d.ts +31 -0
  525. package/dist/types/converter/raw-rule.d.ts +28 -0
  526. package/dist/types/converter/rule.d.ts +37 -0
  527. package/dist/types/deserializer/base-deserializer.d.ts +15 -0
  528. package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +34 -0
  529. package/dist/types/deserializer/comment/agent-deserializer.d.ts +25 -0
  530. package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +69 -0
  531. package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +27 -0
  532. package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +24 -0
  533. package/dist/types/deserializer/comment/hint-deserializer.d.ts +26 -0
  534. package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +26 -0
  535. package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +29 -0
  536. package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +26 -0
  537. package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +12 -0
  538. package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +12 -0
  539. package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +12 -0
  540. package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +13 -0
  541. package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +13 -0
  542. package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +15 -0
  543. package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +14 -0
  544. package/dist/types/deserializer/empty-rule-deserializer.d.ts +12 -0
  545. package/dist/types/deserializer/filterlist-deserializer.d.ts +30 -0
  546. package/dist/types/deserializer/index.d.ts +2 -0
  547. package/dist/types/deserializer/invalid-rule-deserializer.d.ts +12 -0
  548. package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +12 -0
  549. package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +15 -0
  550. package/dist/types/deserializer/misc/list-item-deserializer.d.ts +13 -0
  551. package/dist/types/deserializer/misc/list-items-deserializer.d.ts +12 -0
  552. package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +55 -0
  553. package/dist/types/deserializer/misc/modifier-deserializer.d.ts +18 -0
  554. package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +20 -0
  555. package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +14 -0
  556. package/dist/types/deserializer/misc/value-deserializer.d.ts +17 -0
  557. package/dist/types/deserializer/network/host-rule-deserializer.d.ts +30 -0
  558. package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +12 -0
  559. package/dist/types/deserializer/network/network-rule-deserializer.d.ts +18 -0
  560. package/dist/types/deserializer/rule-deserializer.d.ts +17 -0
  561. package/dist/types/deserializer/syntax-deserialization-map.d.ts +2 -0
  562. package/dist/types/errors/adblock-syntax-error.d.ts +25 -0
  563. package/dist/types/errors/binary-schema-mismatch-error.d.ts +23 -0
  564. package/dist/types/errors/not-implemented-error.d.ts +14 -0
  565. package/dist/types/errors/rule-conversion-error.d.ts +14 -0
  566. package/dist/types/generator/base-generator.d.ts +12 -0
  567. package/dist/types/generator/comment/agent-comment-generator.d.ts +11 -0
  568. package/dist/types/generator/comment/agent-generator.d.ts +11 -0
  569. package/dist/types/generator/comment/comment-rule-generator.d.ts +67 -0
  570. package/dist/types/generator/comment/config-comment-generator.d.ts +11 -0
  571. package/dist/types/generator/comment/hint-comment-generator.d.ts +11 -0
  572. package/dist/types/generator/comment/hint-generator.d.ts +11 -0
  573. package/dist/types/generator/comment/index.d.ts +2 -0
  574. package/dist/types/generator/comment/metadata-comment-generator.d.ts +11 -0
  575. package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +11 -0
  576. package/dist/types/generator/comment/simple-comment-generator.d.ts +11 -0
  577. package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +11 -0
  578. package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +17 -0
  579. package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +17 -0
  580. package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +15 -0
  581. package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +36 -0
  582. package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +15 -0
  583. package/dist/types/generator/cosmetic/index.d.ts +1 -0
  584. package/dist/types/generator/css/adg-css-injection-generator.d.ts +12 -0
  585. package/dist/types/generator/css/ubo-selector-generator.d.ts +11 -0
  586. package/dist/types/generator/filterlist-generator.d.ts +17 -0
  587. package/dist/types/generator/index.d.ts +3 -0
  588. package/dist/types/generator/misc/domain-list-generator.d.ts +12 -0
  589. package/dist/types/generator/misc/list-items-generator.d.ts +22 -0
  590. package/dist/types/generator/misc/logical-expression-generator.d.ts +11 -0
  591. package/dist/types/generator/misc/modifier-generator.d.ts +11 -0
  592. package/dist/types/generator/misc/modifier-list-generator.d.ts +11 -0
  593. package/dist/types/generator/misc/parameter-list-generator.d.ts +12 -0
  594. package/dist/types/generator/misc/value-generator.d.ts +11 -0
  595. package/dist/types/generator/network/host-rule-generator.d.ts +11 -0
  596. package/dist/types/generator/network/index.d.ts +2 -0
  597. package/dist/types/generator/network/network-rule-generator.d.ts +11 -0
  598. package/dist/types/generator/rule-generator.d.ts +21 -0
  599. package/dist/types/index.d.ts +55 -0
  600. package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +13 -0
  601. package/dist/types/marshalling-utils/comment/agent-common.d.ts +19 -0
  602. package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +40 -0
  603. package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +14 -0
  604. package/dist/types/marshalling-utils/comment/hint-common.d.ts +32 -0
  605. package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +20 -0
  606. package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +36 -0
  607. package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +14 -0
  608. package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +22 -0
  609. package/dist/types/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.d.ts +9 -0
  610. package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +16 -0
  611. package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +13 -0
  612. package/dist/types/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.d.ts +9 -0
  613. package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +27 -0
  614. package/dist/types/marshalling-utils/empty-rule-common.d.ts +12 -0
  615. package/dist/types/marshalling-utils/filter-list-common.d.ts +13 -0
  616. package/dist/types/marshalling-utils/invalid-rule-common.d.ts +13 -0
  617. package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +14 -0
  618. package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +56 -0
  619. package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +23 -0
  620. package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +17 -0
  621. package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +13 -0
  622. package/dist/types/marshalling-utils/misc/list-item-common.d.ts +14 -0
  623. package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +44 -0
  624. package/dist/types/marshalling-utils/misc/modifier-common.d.ts +40 -0
  625. package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +13 -0
  626. package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +13 -0
  627. package/dist/types/marshalling-utils/misc/value-common.d.ts +14 -0
  628. package/dist/types/marshalling-utils/network/network-rule-common.d.ts +17 -0
  629. package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +2 -0
  630. package/dist/types/nodes/index.d.ts +1177 -0
  631. package/dist/types/parser/base-parser.d.ts +16 -0
  632. package/dist/types/parser/comment/agent-comment-parser.d.ts +42 -0
  633. package/dist/types/parser/comment/agent-parser.d.ts +33 -0
  634. package/dist/types/parser/comment/comment-parser.d.ts +76 -0
  635. package/dist/types/parser/comment/config-comment-parser.d.ts +31 -0
  636. package/dist/types/parser/comment/hint-comment-parser.d.ts +33 -0
  637. package/dist/types/parser/comment/hint-parser.d.ts +30 -0
  638. package/dist/types/parser/comment/metadata-comment-parser.d.ts +29 -0
  639. package/dist/types/parser/comment/preprocessor-parser.d.ts +43 -0
  640. package/dist/types/parser/comment/simple-comment-parser.d.ts +33 -0
  641. package/dist/types/parser/cosmetic/body/abp-snippet-injection-body-parser.d.ts +34 -0
  642. package/dist/types/parser/cosmetic/body/adg-scriptlet-injection-body-parser.d.ts +47 -0
  643. package/dist/types/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.d.ts +44 -0
  644. package/dist/types/parser/cosmetic/cosmetic-rule-parser.d.ts +51 -0
  645. package/dist/types/parser/css/adg-css-injection-parser.d.ts +28 -0
  646. package/dist/types/parser/css/balancing.d.ts +36 -0
  647. package/dist/types/parser/css/constants.d.ts +10 -0
  648. package/dist/types/parser/css/css-token-stream.d.ts +210 -0
  649. package/dist/types/parser/css/ubo-selector-parser.d.ts +46 -0
  650. package/dist/types/parser/filterlist-parser.d.ts +29 -0
  651. package/dist/types/parser/index.d.ts +5 -0
  652. package/dist/types/parser/misc/app-list-parser.d.ts +22 -0
  653. package/dist/types/parser/misc/domain-list-parser.d.ts +26 -0
  654. package/dist/types/parser/misc/list-items-parser.d.ts +34 -0
  655. package/dist/types/parser/misc/logical-expression-parser.d.ts +41 -0
  656. package/dist/types/parser/misc/method-list-parser.d.ts +22 -0
  657. package/dist/types/parser/misc/modifier-list.d.ts +24 -0
  658. package/dist/types/parser/misc/modifier-parser.d.ts +21 -0
  659. package/dist/types/parser/misc/parameter-list-parser.d.ts +14 -0
  660. package/dist/types/parser/misc/stealth-option-list-parser.d.ts +22 -0
  661. package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +18 -0
  662. package/dist/types/parser/misc/value-parser.d.ts +18 -0
  663. package/dist/types/parser/network/host-rule-parser.d.ts +35 -0
  664. package/dist/types/parser/network/network-rule-parser.d.ts +31 -0
  665. package/dist/types/parser/options.d.ts +41 -0
  666. package/dist/types/parser/rule-parser.d.ts +78 -0
  667. package/dist/types/serializer/base-serializer.d.ts +15 -0
  668. package/dist/types/serializer/comment/agent-comment-serializer.d.ts +34 -0
  669. package/dist/types/serializer/comment/agent-serializer.d.ts +24 -0
  670. package/dist/types/serializer/comment/comment-rule-serializer.d.ts +68 -0
  671. package/dist/types/serializer/comment/config-comment-serializer.d.ts +25 -0
  672. package/dist/types/serializer/comment/hint-comment-serializer.d.ts +23 -0
  673. package/dist/types/serializer/comment/hint-serializer.d.ts +24 -0
  674. package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +25 -0
  675. package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +28 -0
  676. package/dist/types/serializer/comment/simple-comment-serializer.d.ts +24 -0
  677. package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +25 -0
  678. package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +25 -0
  679. package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +14 -0
  680. package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +25 -0
  681. package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +26 -0
  682. package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +12 -0
  683. package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +12 -0
  684. package/dist/types/serializer/empty-rule-serializer.d.ts +12 -0
  685. package/dist/types/serializer/filterlist-serializer.d.ts +16 -0
  686. package/dist/types/serializer/index.d.ts +1 -0
  687. package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +12 -0
  688. package/dist/types/serializer/invalid-rule-serializer.d.ts +12 -0
  689. package/dist/types/serializer/misc/domain-list-serializer.d.ts +21 -0
  690. package/dist/types/serializer/misc/list-item-serializer.d.ts +13 -0
  691. package/dist/types/serializer/misc/list-items-serializer.d.ts +12 -0
  692. package/dist/types/serializer/misc/logical-expression-serializer.d.ts +51 -0
  693. package/dist/types/serializer/misc/modifier-list-serializer.d.ts +20 -0
  694. package/dist/types/serializer/misc/modifier-serializer.d.ts +18 -0
  695. package/dist/types/serializer/misc/parameter-list-serializer.d.ts +14 -0
  696. package/dist/types/serializer/misc/value-serializer.d.ts +17 -0
  697. package/dist/types/serializer/network/host-rule-serializer.d.ts +30 -0
  698. package/dist/types/serializer/network/hostname-list-serializer.d.ts +12 -0
  699. package/dist/types/serializer/network/network-rule-serializer.d.ts +18 -0
  700. package/dist/types/serializer/rule-serializer.d.ts +17 -0
  701. package/dist/types/utils/adblockers.d.ts +48 -0
  702. package/dist/types/utils/binary-schema-version.d.ts +9 -0
  703. package/dist/types/utils/byte-buffer.d.ts +54 -0
  704. package/dist/types/utils/categorizer.d.ts +14 -0
  705. package/dist/types/utils/clone.d.ts +15 -0
  706. package/dist/types/utils/constants.d.ts +188 -0
  707. package/dist/types/utils/cosmetic-rule-separator.d.ts +45 -0
  708. package/dist/types/utils/deep-freeze.d.ts +13 -0
  709. package/dist/types/utils/domain.d.ts +26 -0
  710. package/dist/types/utils/error.d.ts +8 -0
  711. package/dist/types/utils/index.d.ts +15 -0
  712. package/dist/types/utils/input-byte-buffer.d.ts +140 -0
  713. package/dist/types/utils/is-chromium.d.ts +7 -0
  714. package/dist/types/utils/logical-expression.d.ts +45 -0
  715. package/dist/types/utils/multi-value-map.d.ts +16 -0
  716. package/dist/types/utils/output-byte-buffer.d.ts +126 -0
  717. package/dist/types/utils/position-provider.d.ts +46 -0
  718. package/dist/types/utils/quotes.d.ts +93 -0
  719. package/dist/types/utils/regexp.d.ts +54 -0
  720. package/dist/types/utils/storage-interface.d.ts +23 -0
  721. package/dist/types/utils/string.d.ts +277 -0
  722. package/dist/types/utils/text-decoder-polyfill.d.ts +14 -0
  723. package/dist/types/utils/text-encoder-polyfill.d.ts +18 -0
  724. package/dist/types/utils/type-guards.d.ts +47 -0
  725. package/dist/types/validator/constants.d.ts +89 -0
  726. package/dist/types/validator/helpers.d.ts +37 -0
  727. package/dist/types/validator/index.d.ts +38 -0
  728. package/dist/types/validator/value.d.ts +11 -0
  729. package/dist/types/version.d.ts +5 -0
  730. package/package.json +91 -37
  731. package/dist/agtree.d.ts +0 -4152
  732. package/dist/agtree.js +0 -15741
  733. package/dist/agtree.mjs +0 -15642
  734. package/dist/compatibility-table-data.js +0 -12634
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @file Converter entry point
3
+ */
4
+ export { RawFilterListConverter } from './raw-filter-list';
5
+ export { RuleConverter } from './rule';
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @file Network rule modifier list converter.
3
+ */
4
+ import { type ModifierList } from '../../nodes';
5
+ import { BaseConverter } from '../base-interfaces/base-converter';
6
+ import { type ConversionResult } from '../base-interfaces/conversion-result';
7
+ /**
8
+ * Helper class for converting network rule modifier lists.
9
+ *
10
+ * @todo Implement `convertToUbo` and `convertToAbp`
11
+ */
12
+ export declare class NetworkRuleModifierListConverter extends BaseConverter {
13
+ /**
14
+ * Converts a network rule modifier list to AdGuard format, if possible.
15
+ *
16
+ * @param modifierList Network rule modifier list node to convert
17
+ * @param isException If `true`, the rule is an exception rule
18
+ * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
19
+ * the converted node, and its `isConverted` flag indicates whether the original node was converted.
20
+ * If the node was not converted, the result will contain the original node with the same object reference
21
+ * @throws If the conversion is not possible
22
+ */
23
+ static convertToAdg(modifierList: ModifierList, isException?: boolean): ConversionResult<ModifierList>;
24
+ /**
25
+ * Converts a network rule modifier list to uBlock format, if possible.
26
+ *
27
+ * @param modifierList Network rule modifier list node to convert
28
+ * @param isException If `true`, the rule is an exception rule
29
+ * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
30
+ * the converted node, and its `isConverted` flag indicates whether the original node was converted.
31
+ * If the node was not converted, the result will contain the original node with the same object reference
32
+ * @throws If the conversion is not possible
33
+ */
34
+ static convertToUbo(modifierList: ModifierList, isException?: boolean): ConversionResult<ModifierList>;
35
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @file Network rule converter
3
+ */
4
+ import { type NetworkRule, type AnyNetworkRule } from '../../nodes';
5
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base';
6
+ import { type NodeConversionResult } from '../base-interfaces/conversion-result';
7
+ /**
8
+ * Network rule converter class (also known as "basic rule converter")
9
+ *
10
+ * @todo Implement `convertToUbo` and `convertToAbp`
11
+ */
12
+ export declare class NetworkRuleConverter extends RuleConverterBase {
13
+ /**
14
+ * Converts a network rule to AdGuard format, if possible.
15
+ *
16
+ * @param rule Rule node to convert
17
+ * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
18
+ * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
19
+ * If the rule was not converted, the result array will contain the original node with the same object reference
20
+ * @throws If the rule is invalid or cannot be converted
21
+ */
22
+ static convertToAdg(rule: AnyNetworkRule): NodeConversionResult<NetworkRule>;
23
+ /**
24
+ * Converts a network rule to uBlock format, if possible.
25
+ *
26
+ * @param rule Rule node to convert
27
+ * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
28
+ * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
29
+ * If the rule was not converted, the result array will contain the original node with the same object reference
30
+ * @throws If the rule is invalid or cannot be converted
31
+ */
32
+ static convertToUbo(rule: AnyNetworkRule): NodeConversionResult<NetworkRule>;
33
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @file Filter list converter for raw filter lists
3
+ *
4
+ * Technically, this is a wrapper around `FilterListConverter` that works with nodes instead of strings.
5
+ */
6
+ import { type ConversionResult } from './base-interfaces/conversion-result';
7
+ import { BaseConverter } from './base-interfaces/base-converter';
8
+ /**
9
+ * Adblock filter list converter class.
10
+ *
11
+ * You can use this class to convert string-based filter lists, since most of the converters work with nodes.
12
+ * This class just provides an extra layer on top of the {@link FilterListConverter} and calls the parser/serializer
13
+ * before/after the conversion internally.
14
+ *
15
+ * @todo Implement `convertToUbo` and `convertToAbp`
16
+ */
17
+ export declare class RawFilterListConverter extends BaseConverter {
18
+ /**
19
+ * Converts an adblock filter list text to AdGuard format, if possible.
20
+ *
21
+ * @param rawFilterList Raw filter list text to convert
22
+ * @param tolerant Indicates whether the converter should be tolerant to invalid rules. If enabled and a rule is
23
+ * invalid, it will be left as is. If disabled and a rule is invalid, the whole filter list will be failed.
24
+ * Defaults to `true`.
25
+ * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
26
+ * the array of converted filter list text, and its `isConverted` flag indicates whether the original rule was
27
+ * converted. If the rule was not converted, the original filter list text will be returned
28
+ * @throws If the filter list is invalid or cannot be converted (if the tolerant mode is disabled)
29
+ */
30
+ static convertToAdg(rawFilterList: string, tolerant?: boolean): ConversionResult<string>;
31
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @file Rule converter for raw rules
3
+ *
4
+ * Technically, this is a wrapper around `RuleConverter` that works with nodes instead of strings.
5
+ */
6
+ import { type ConversionResult } from './base-interfaces/conversion-result';
7
+ import { BaseConverter } from './base-interfaces/base-converter';
8
+ /**
9
+ * Adblock filtering rule converter class.
10
+ *
11
+ * You can use this class to convert string-based adblock rules, since most of the converters work with nodes.
12
+ * This class just provides an extra layer on top of the {@link RuleConverter} and calls the parser/serializer
13
+ * before/after the conversion internally.
14
+ *
15
+ * @todo Implement `convertToUbo` and `convertToAbp`
16
+ */
17
+ export declare class RawRuleConverter extends BaseConverter {
18
+ /**
19
+ * Converts an adblock filtering rule to AdGuard format, if possible.
20
+ *
21
+ * @param rawRule Raw rule text to convert
22
+ * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
23
+ * the array of converted rule texts, and its `isConverted` flag indicates whether the original rule was converted.
24
+ * If the rule was not converted, the original rule text will be returned
25
+ * @throws If the rule is invalid or cannot be converted
26
+ */
27
+ static convertToAdg(rawRule: string): ConversionResult<string, string[]>;
28
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @file Adblock rule converter
3
+ *
4
+ * This file is the entry point for all rule converters
5
+ * which automatically detects the rule type and calls
6
+ * the corresponding "sub-converter".
7
+ */
8
+ import { type AnyRule } from '../nodes';
9
+ import { RuleConverterBase } from './base-interfaces/rule-converter-base';
10
+ import { type NodeConversionResult } from './base-interfaces/conversion-result';
11
+ /**
12
+ * Adblock filtering rule converter class
13
+ *
14
+ * @todo Implement `convertToUbo` and `convertToAbp`
15
+ */
16
+ export declare class RuleConverter extends RuleConverterBase {
17
+ /**
18
+ * Converts an adblock filtering rule to AdGuard format, if possible.
19
+ *
20
+ * @param rule Rule node to convert
21
+ * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
22
+ * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
23
+ * If the rule was not converted, the result array will contain the original node with the same object reference
24
+ * @throws If the rule is invalid or cannot be converted
25
+ */
26
+ static convertToAdg(rule: AnyRule): NodeConversionResult<AnyRule>;
27
+ /**
28
+ * Converts an adblock filtering rule to uBlock Origin format, if possible.
29
+ *
30
+ * @param rule Rule node to convert
31
+ * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
32
+ * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
33
+ * If the rule was not converted, the result array will contain the original node with the same object reference
34
+ * @throws If the rule is invalid or cannot be converted
35
+ */
36
+ static convertToUbo(rule: AnyRule): NodeConversionResult<AnyRule>;
37
+ }
@@ -0,0 +1,15 @@
1
+ import { type Node } from '../nodes';
2
+ import { type InputByteBuffer } from '../utils/input-byte-buffer';
3
+ /**
4
+ * Base class for deserializers. Each deserializer should extend this class.
5
+ */
6
+ export declare class BaseDeserializer {
7
+ /**
8
+ * Deserializes the AST node from a byte buffer.
9
+ *
10
+ * @param buffer Input byte buffer to read from.
11
+ * @param node Destination node to write to.
12
+ * @param args Additional, parser-specific arguments, if needed.
13
+ */
14
+ static deserialize(buffer: InputByteBuffer, node: Partial<Node>, ...args: unknown[]): void;
15
+ }
@@ -0,0 +1,34 @@
1
+ import { type AgentCommentRule } from '../../nodes';
2
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
3
+ import { BaseDeserializer } from '../base-deserializer';
4
+ /**
5
+ * `AgentCommentDeserializer` is responsible for deserializing an Adblock agent comments.
6
+ * Adblock agent comment marks that the filter list is supposed to
7
+ * be used by the specified ad blockers.
8
+ *
9
+ * @example
10
+ * - ```adblock
11
+ * [AdGuard]
12
+ * ```
13
+ * - ```adblock
14
+ * [Adblock Plus 2.0]
15
+ * ```
16
+ * - ```adblock
17
+ * [uBlock Origin]
18
+ * ```
19
+ * - ```adblock
20
+ * [uBlock Origin 1.45.3]
21
+ * ```
22
+ * - ```adblock
23
+ * [Adblock Plus 2.0; AdGuard]
24
+ * ```
25
+ */
26
+ export declare class AgentCommentDeserializer extends BaseDeserializer {
27
+ /**
28
+ * Deserializes an agent list node from binary format.
29
+ *
30
+ * @param buffer ByteBuffer for reading binary data.
31
+ * @param node Destination node.
32
+ */
33
+ static deserialize(buffer: InputByteBuffer, node: Partial<AgentCommentRule>): void;
34
+ }
@@ -0,0 +1,25 @@
1
+ import { type Agent } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ /**
5
+ * `AgentDeserializer` is responsible for deserializing single adblock agent elements.
6
+ *
7
+ * @example
8
+ * If the adblock agent rule is
9
+ * ```adblock
10
+ * [Adblock Plus 2.0; AdGuard]
11
+ * ```
12
+ * then the adblock agents are `Adblock Plus 2.0` and `AdGuard`, and this
13
+ * class is responsible for parsing them. The rule itself is parsed by
14
+ * `AgentCommentSerializer`, which uses this class to parse single agents.
15
+ */
16
+ export declare class AgentDeserializer extends BaseDeserializer {
17
+ /**
18
+ * Deserializes an agent node from binary format.
19
+ *
20
+ * @param buffer ByteBuffer for reading binary data.
21
+ * @param node Destination node.
22
+ * @throws If the binary data is malformed.
23
+ */
24
+ static deserialize(buffer: InputByteBuffer, node: Partial<Agent>): void;
25
+ }
@@ -0,0 +1,69 @@
1
+ import { type AnyCommentRule } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ /**
5
+ * `CommentRuleSerializer` is responsible for serializing any comment-like adblock rules.
6
+ *
7
+ * @example
8
+ * Example rules:
9
+ * - Adblock agent rules:
10
+ * - ```adblock
11
+ * [AdGuard]
12
+ * ```
13
+ * - ```adblock
14
+ * [Adblock Plus 2.0]
15
+ * ```
16
+ * - etc.
17
+ * - AdGuard hint rules:
18
+ * - ```adblock
19
+ * !+ NOT_OPTIMIZED
20
+ * ```
21
+ * - ```adblock
22
+ * !+ NOT_OPTIMIZED PLATFORM(windows)
23
+ * ```
24
+ * - etc.
25
+ * - Pre-processor rules:
26
+ * - ```adblock
27
+ * !#if (adguard)
28
+ * ```
29
+ * - ```adblock
30
+ * !#endif
31
+ * ```
32
+ * - etc.
33
+ * - Metadata rules:
34
+ * - ```adblock
35
+ * ! Title: My List
36
+ * ```
37
+ * - ```adblock
38
+ * ! Version: 2.0.150
39
+ * ```
40
+ * - etc.
41
+ * - AGLint inline config rules:
42
+ * - ```adblock
43
+ * ! aglint-enable some-rule
44
+ * ```
45
+ * - ```adblock
46
+ * ! aglint-disable some-rule
47
+ * ```
48
+ * - etc.
49
+ * - Simple comments:
50
+ * - Regular version:
51
+ * ```adblock
52
+ * ! This is just a comment
53
+ * ```
54
+ * - uBlock Origin / "hostlist" version:
55
+ * ```adblock
56
+ * # This is just a comment
57
+ * ```
58
+ * - etc.
59
+ */
60
+ export declare class CommentRuleDeserializer extends BaseDeserializer {
61
+ /**
62
+ * Deserializes a comment rule node from binary format.
63
+ *
64
+ * @param buffer ByteBuffer for reading binary data.
65
+ * @param node Destination node.
66
+ * @throws If the binary data is malformed.
67
+ */
68
+ static deserialize(buffer: InputByteBuffer, node: Partial<AnyCommentRule>): void;
69
+ }
@@ -0,0 +1,27 @@
1
+ import { type ConfigCommentRule } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ /**
5
+ * `ConfigCommentDeserializer` is responsible for deserializing inline AGLint configuration rules.
6
+ * Generally, the idea is inspired by ESLint inline configuration comments.
7
+ *
8
+ * @see {@link https://eslint.org/docs/latest/user-guide/configuring/rules#using-configuration-comments}
9
+ */
10
+ export declare class ConfigCommentDeserializer extends BaseDeserializer {
11
+ /**
12
+ * Deserializes a metadata comment node from binary format.
13
+ *
14
+ * @param buffer ByteBuffer for reading binary data.
15
+ * @param node Destination node.
16
+ * @throws If the binary data is malformed.
17
+ */
18
+ private static deserializeConfigNode;
19
+ /**
20
+ * Deserializes a metadata comment node from binary format.
21
+ *
22
+ * @param buffer ByteBuffer for reading binary data.
23
+ * @param node Destination node.
24
+ * @throws If the binary data is malformed.
25
+ */
26
+ static deserialize(buffer: InputByteBuffer, node: Partial<ConfigCommentRule>): void;
27
+ }
@@ -0,0 +1,24 @@
1
+ import { type HintCommentRule } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ /**
5
+ * `HintCommentDeserializer` is responsible for deserializing AdGuard hint rules.
6
+ *
7
+ * @example
8
+ * The following hint rule
9
+ * ```adblock
10
+ * !+ NOT_OPTIMIZED PLATFORM(windows)
11
+ * ```
12
+ * contains two hints: `NOT_OPTIMIZED` and `PLATFORM`.
13
+ * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#hints}
14
+ */
15
+ export declare class HintCommentDeserializer extends BaseDeserializer {
16
+ /**
17
+ * Deserializes a hint rule node from binary format.
18
+ *
19
+ * @param buffer ByteBuffer for reading binary data.
20
+ * @param node Destination node.
21
+ * @throws If the binary data is malformed.
22
+ */
23
+ static deserialize(buffer: InputByteBuffer, node: Partial<HintCommentRule>): void;
24
+ }
@@ -0,0 +1,26 @@
1
+ import { type Hint } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ export declare const getFrequentPlatformsDeserializationMap: () => Map<number, string>;
5
+ /**
6
+ * `HintDeserializer` is responsible for deserializing AdGuard hints.
7
+ *
8
+ * @example
9
+ * If the hint rule is
10
+ * ```adblock
11
+ * !+ NOT_OPTIMIZED PLATFORM(windows)
12
+ * ```
13
+ * then the hints are `NOT_OPTIMIZED` and `PLATFORM(windows)`, and this
14
+ * class is responsible for parsing them. The rule itself is parsed by
15
+ * the `HintRuleParser`, which uses this class to parse single hints.
16
+ */
17
+ export declare class HintDeserializer extends BaseDeserializer {
18
+ /**
19
+ * Deserializes a hint node from binary format.
20
+ *
21
+ * @param buffer ByteBuffer for reading binary data.
22
+ * @param node Destination node.
23
+ * @throws If the binary data is malformed.
24
+ */
25
+ static deserialize(buffer: InputByteBuffer, node: Partial<Hint>): void;
26
+ }
@@ -0,0 +1,26 @@
1
+ import { type MetadataCommentRule } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ /**
5
+ * `MetadataCommentDeserializer` is responsible for deserializing metadata comments.
6
+ * Metadata comments are special comments that specify some properties of the list.
7
+ *
8
+ * @example
9
+ * For example, in the case of
10
+ * ```adblock
11
+ * ! Title: My List
12
+ * ```
13
+ * the name of the header is `Title`, and the value is `My List`, which means that
14
+ * the list title is `My List`, and it can be used in the adblocker UI.
15
+ * @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#special-comments}
16
+ */
17
+ export declare class MetadataCommentDeserializer extends BaseDeserializer {
18
+ /**
19
+ * Deserializes a metadata comment node from binary format.
20
+ *
21
+ * @param buffer ByteBuffer for reading binary data.
22
+ * @param node Destination node.
23
+ * @throws If the binary data is malformed.
24
+ */
25
+ static deserialize(buffer: InputByteBuffer, node: Partial<MetadataCommentRule>): void;
26
+ }
@@ -0,0 +1,29 @@
1
+ import type { PreProcessorCommentRule } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ /**
5
+ * `PreProcessorCommentDeserializer` is responsible for deserializing preprocessor rules.
6
+ * Pre-processor comments are special comments that are used to control the behavior of the filter list processor.
7
+ * Please note that this parser only handles general syntax for now, and does not validate the parameters at
8
+ * the parsing stage.
9
+ *
10
+ * @example
11
+ * If your rule is
12
+ * ```adblock
13
+ * !#if (adguard)
14
+ * ```
15
+ * then the directive's name is `if` and its value is `(adguard)`, but the parameter list
16
+ * is not parsed / validated further.
17
+ * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#pre-processor-directives}
18
+ * @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#pre-parsing-directives}
19
+ */
20
+ export declare class PreProcessorCommentDeserializer extends BaseDeserializer {
21
+ /**
22
+ * Deserializes a pre-processor comment node from binary format.
23
+ *
24
+ * @param buffer ByteBuffer for reading binary data.
25
+ * @param node Destination node.
26
+ * @throws If the binary data is malformed.
27
+ */
28
+ static deserialize(buffer: InputByteBuffer, node: Partial<PreProcessorCommentRule>): void;
29
+ }
@@ -0,0 +1,26 @@
1
+ import { type CommentRule } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ /**
5
+ * `SimpleCommentDeserializer` is responsible for deserializing simple comments.
6
+ *
7
+ * Some comments have a special meaning in adblock syntax, like agent comments or hints,
8
+ * but this parser is only responsible for parsing regular comments,
9
+ * whose only purpose is to provide some human-readable information.
10
+ *
11
+ * @example
12
+ * ```adblock
13
+ * ! This is a simple comment
14
+ * # This is a simple comment, but in host-like syntax
15
+ * ```
16
+ */
17
+ export declare class SimpleCommentDeserializer extends BaseDeserializer {
18
+ /**
19
+ * Deserializes a simple comment node from binary format.
20
+ *
21
+ * @param buffer ByteBuffer for reading binary data.
22
+ * @param node Destination node.
23
+ * @throws If the binary data is malformed.
24
+ */
25
+ static deserialize(buffer: InputByteBuffer, node: Partial<CommentRule>): void;
26
+ }
@@ -0,0 +1,12 @@
1
+ import { type AnyCosmeticRule } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ export declare class CosmeticRuleDeserializer extends BaseDeserializer {
5
+ /**
6
+ * Deserializes a cosmetic rule node from binary format.
7
+ *
8
+ * @param buffer ByteBuffer for reading binary data.
9
+ * @param node Destination node.
10
+ */
11
+ static deserialize(buffer: InputByteBuffer, node: Partial<AnyCosmeticRule>): void;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { type CssInjectionRuleBody } from '../../nodes';
2
+ import { BaseDeserializer } from '../base-deserializer';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ export declare class CssInjectionBodyDeserializer extends BaseDeserializer {
5
+ /**
6
+ * Deserializes CSS injection rule body node from binary format.
7
+ *
8
+ * @param buffer ByteBuffer for reading binary data.
9
+ * @param node Destination node.
10
+ */
11
+ static deserialize(buffer: InputByteBuffer, node: CssInjectionRuleBody): void;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { BaseDeserializer } from '../base-deserializer';
2
+ import { type ElementHidingRuleBody } from '../../nodes';
3
+ import { type InputByteBuffer } from '../../utils/input-byte-buffer';
4
+ export declare class ElementHidingBodyDeserializer extends BaseDeserializer {
5
+ /**
6
+ * Deserializes an element hiding rule body node from binary format.
7
+ *
8
+ * @param buffer ByteBuffer for reading binary data.
9
+ * @param node Destination node.
10
+ */
11
+ static deserializeElementHidingBody(buffer: InputByteBuffer, node: Partial<ElementHidingRuleBody>): void;
12
+ }
@@ -0,0 +1,13 @@
1
+ import { type ScriptletInjectionRuleBody } from '../../../nodes';
2
+ import { BaseDeserializer } from '../../base-deserializer';
3
+ import { type InputByteBuffer } from '../../../utils/input-byte-buffer';
4
+ export declare class AbpSnippetInjectionBodyDeserializer extends BaseDeserializer {
5
+ /**
6
+ * Deserializes a scriptlet call body node from binary format.
7
+ *
8
+ * @param buffer ByteBuffer for reading binary data.
9
+ * @param node Destination node.
10
+ * @throws If the binary data is malformed.
11
+ */
12
+ static deserialize(buffer: InputByteBuffer, node: Partial<ScriptletInjectionRuleBody>): void;
13
+ }
@@ -0,0 +1,13 @@
1
+ import { type ScriptletInjectionRuleBody } from '../../../nodes';
2
+ import { BaseDeserializer } from '../../base-deserializer';
3
+ import { type InputByteBuffer } from '../../../utils/input-byte-buffer';
4
+ export declare class AdgScriptletInjectionBodyDeserializer extends BaseDeserializer {
5
+ /**
6
+ * Deserializes a scriptlet call body node from binary format.
7
+ *
8
+ * @param buffer ByteBuffer for reading binary data.
9
+ * @param node Destination node.
10
+ * @throws If the binary data is malformed.
11
+ */
12
+ static deserialize(buffer: InputByteBuffer, node: Partial<ScriptletInjectionRuleBody>): void;
13
+ }
@@ -0,0 +1,15 @@
1
+ import { type ScriptletInjectionRuleBody } from '../../../nodes';
2
+ import { BaseDeserializer } from '../../base-deserializer';
3
+ import { type InputByteBuffer } from '../../../utils/input-byte-buffer';
4
+ export declare class ScriptletBodyDeserializer extends BaseDeserializer {
5
+ /**
6
+ * Deserializes a hint rule node from binary format.
7
+ *
8
+ * @param buffer ByteBuffer for reading binary data.
9
+ * @param node Destination node.
10
+ * @param frequentScriptletArgs Map of frequently used scriptlet names / arguments
11
+ * and their serialization index (optional).
12
+ * @throws If the binary data is malformed.
13
+ */
14
+ static deserialize: (buffer: InputByteBuffer, node: Partial<ScriptletInjectionRuleBody>, frequentScriptletArgs?: Map<number, string>) => void;
15
+ }
@@ -0,0 +1,14 @@
1
+ import { type ScriptletInjectionRuleBody } from '../../../nodes';
2
+ import { BaseDeserializer } from '../../base-deserializer';
3
+ import { type InputByteBuffer } from '../../../utils/input-byte-buffer';
4
+ export declare const getFrequentPlatformsDeserializationMap: () => Map<number, string>;
5
+ export declare class UboScriptletInjectionBodyDeserializer extends BaseDeserializer {
6
+ /**
7
+ * Deserializes a scriptlet call body node from binary format.
8
+ *
9
+ * @param buffer ByteBuffer for reading binary data.
10
+ * @param node Destination node.
11
+ * @throws If the binary data is malformed.
12
+ */
13
+ static deserialize(buffer: InputByteBuffer, node: Partial<ScriptletInjectionRuleBody>): void;
14
+ }
@@ -0,0 +1,12 @@
1
+ import { BaseDeserializer } from './base-deserializer';
2
+ import { type EmptyRule } from '../nodes';
3
+ import { type InputByteBuffer } from '../utils/input-byte-buffer';
4
+ export declare class EmptyRuleDeserializer extends BaseDeserializer {
5
+ /**
6
+ * Deserializes an empty rule node from binary format.
7
+ *
8
+ * @param buffer ByteBuffer for reading binary data.
9
+ * @param node Destination node.
10
+ */
11
+ static deserialize(buffer: InputByteBuffer, node: EmptyRule): void;
12
+ }
@@ -0,0 +1,30 @@
1
+ import { type FilterList } from '../nodes';
2
+ import { BaseDeserializer } from './base-deserializer';
3
+ import { type InputByteBuffer } from '../utils/input-byte-buffer';
4
+ export declare class FilterListDeserializer extends BaseDeserializer {
5
+ /**
6
+ * Deserializes a filter list node from binary format.
7
+ *
8
+ * @param buffer ByteBuffer for reading binary data.
9
+ * @param node Destination node.
10
+ */
11
+ static deserialize(buffer: InputByteBuffer, node: Partial<FilterList>): void;
12
+ /**
13
+ * Helper method to jump to the children of the filter list node.
14
+ *
15
+ * Filter lists serialized in binary format are structured as follows:
16
+ * - `FilterListNode` filter list node indicator (1 byte)
17
+ * - Properties:
18
+ * - `Children` (1 byte) - children count, followed by children nodes
19
+ * - `Start` (1 byte) - start offset, if present, followed by the value
20
+ * - `End` (1 byte) - end offset, if present, followed by the value
21
+ * - `NULL` (1 byte) - closing indicator
22
+ *
23
+ * This method skips indicators, reads the children count and returns it.
24
+ * This way the buffer is positioned at the beginning of the children nodes.
25
+ *
26
+ * @param buffer Reference to the input byte buffer.
27
+ * @returns Number of children nodes.
28
+ */
29
+ static jumpToChildren(buffer: InputByteBuffer): number;
30
+ }
@@ -0,0 +1,2 @@
1
+ export { RuleDeserializer } from './rule-deserializer';
2
+ export { getSyntaxDeserializationMap } from './syntax-deserialization-map';
@@ -0,0 +1,12 @@
1
+ import { BaseDeserializer } from './base-deserializer';
2
+ import { type InvalidRule } from '../nodes';
3
+ import { type InputByteBuffer } from '../utils/input-byte-buffer';
4
+ export declare class InvalidRuleDeserializer extends BaseDeserializer {
5
+ /**
6
+ * Deserializes an invalid rule node from binary format.
7
+ *
8
+ * @param buffer ByteBuffer for reading binary data.
9
+ * @param node Destination node.
10
+ */
11
+ static deserialize(buffer: InputByteBuffer, node: InvalidRule): void;
12
+ }