@adguard/agtree 2.1.2 → 3.0.0-alpha.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 (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 -15710
  733. package/dist/agtree.mjs +0 -15611
  734. package/dist/compatibility-table-data.js +0 -12634
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @file Schema for scriptlet data.
3
+ */
4
+ import zod from 'zod';
5
+ /**
6
+ * Zod schema for scriptlet data.
7
+ */
8
+ export declare const scriptletDataSchema: zod.ZodEffects<zod.ZodTypeAny, {
9
+ name: string;
10
+ description: string | null;
11
+ aliases: string[] | null;
12
+ docs: string | null;
13
+ versionAdded: string | null;
14
+ versionRemoved: string | null;
15
+ deprecated: boolean;
16
+ deprecationMessage: string | null;
17
+ removed: boolean;
18
+ removalMessage: string | null;
19
+ parameters?: {
20
+ name: string;
21
+ debug: boolean;
22
+ pattern: string | null;
23
+ description: string | null;
24
+ default: string | null;
25
+ required: boolean;
26
+ }[] | undefined;
27
+ }, any>;
28
+ /**
29
+ * Type of the scriptlet data schema.
30
+ */
31
+ export type ScriptletDataSchema = zod.infer<typeof scriptletDataSchema>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @file Compatibility tables for scriptlets.
3
+ */
4
+ import { CompatibilityTableBase } from './base';
5
+ import { type ScriptletDataSchema } from './schemas';
6
+ /**
7
+ * Compatibility table for scriptlets.
8
+ */
9
+ declare class ScriptletsCompatibilityTable extends CompatibilityTableBase<ScriptletDataSchema> {
10
+ }
11
+ /**
12
+ * Compatibility table instance for scriptlets.
13
+ */
14
+ export declare const scriptletsCompatibilityTable: ScriptletsCompatibilityTable;
15
+ export {};
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @file Compatibility tables types.
3
+ */
4
+ /**
5
+ * Map with shared storage.
6
+ * The idea is to avoid storing the same value multiple times in the map,
7
+ * so the value is stored in the `shared` array and the map refers to the index in the `shared` array.
8
+ *
9
+ * @template K Type of the map keys.
10
+ * @template V Type of the map values.
11
+ */
12
+ interface MapWithSharedStorage<K extends string | number | symbol, V> {
13
+ /**
14
+ * Shared storage.
15
+ */
16
+ shared: V[];
17
+ /**
18
+ * Map of the values where the value is a pointer to the shared storage (refers to the index in the `shared` array).
19
+ */
20
+ map: Record<K, number>;
21
+ }
22
+ /**
23
+ * Compatibility table row.
24
+ *
25
+ * @template T Type of the compatibility data.
26
+ */
27
+ export type CompatibilityTableRow<T> = MapWithSharedStorage<number, T>;
28
+ /**
29
+ * Compatibility table.
30
+ *
31
+ * @template T Type of the compatibility data.
32
+ */
33
+ export type CompatibilityTable<T> = MapWithSharedStorage<string, CompatibilityTableRow<T>>;
34
+ export {};
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @file Provides platform mapping and helper functions.
3
+ */
4
+ import { GenericPlatform, SpecificPlatform } from '../platforms';
5
+ /**
6
+ * Map of specific platforms string names to their corresponding enum values.
7
+ */
8
+ export declare const SPECIFIC_PLATFORM_MAP: Map<string, SpecificPlatform>;
9
+ /**
10
+ * Map of specific platforms enum values to their corresponding string names.
11
+ *
12
+ * @note Reverse of {@link SPECIFIC_PLATFORM_MAP}.
13
+ */
14
+ export declare const SPECIFIC_PLATFORM_MAP_REVERSE: Map<SpecificPlatform, string>;
15
+ /**
16
+ * Map of generic platforms string names to their corresponding enum values.
17
+ */
18
+ export declare const GENERIC_PLATFORM_MAP: Map<string, GenericPlatform>;
19
+ /**
20
+ * Check if the platform is a generic platform.
21
+ *
22
+ * @param platform Platform to check.
23
+ *
24
+ * @returns True if the platform is a generic platform, false otherwise.
25
+ */
26
+ export declare const isGenericPlatform: (platform: number) => boolean;
27
+ /**
28
+ * Returns the platform enum value for the given platform string name.
29
+ *
30
+ * @param platform Platform string name, e.g., 'adg_os_windows'.
31
+ *
32
+ * @returns Specific or generic platform enum value.
33
+ * @throws Error if the platform is unknown.
34
+ */
35
+ export declare const getPlatformId: (platform: string) => SpecificPlatform | GenericPlatform;
36
+ /**
37
+ * Returns the specific platform string name for the given platform enum value.
38
+ *
39
+ * @param platform Specific platform enum value.
40
+ *
41
+ * @returns Specific platform string name, e.g., 'adg_os_windows'.
42
+ * @throws Error if the platform is unknown.
43
+ */
44
+ export declare const getSpecificPlatformName: (platform: SpecificPlatform) => string;
@@ -0,0 +1,20 @@
1
+ import { type GenericPlatform, type SpecificPlatform } from '../platforms';
2
+ import { ResourceType } from '../schemas/resource-type';
3
+ /**
4
+ * Gets the adblock modifier name for the given resource type.
5
+ *
6
+ * @param resourceType Resource type to get the modifier name for.
7
+ * @param platform Platform to get the modifier for.
8
+ *
9
+ * @returns A string containing the adblock modifier name for the given resource type
10
+ * or `null` if the modifier could not be found.
11
+ */
12
+ export declare const getResourceTypeModifier: (resourceType: ResourceType, platform: SpecificPlatform | GenericPlatform) => string | null;
13
+ /**
14
+ * Checks if the given resource type is valid.
15
+ *
16
+ * @param resourceType Resource type to check.
17
+ *
18
+ * @returns `true` if the resource type is valid, `false` otherwise.
19
+ */
20
+ export declare const isValidResourceType: (resourceType: string) => boolean;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @file Zod camelCase utility.
3
+ */
4
+ import type zod from 'zod';
5
+ import { type CamelCasedPropertiesDeep } from 'type-fest';
6
+ /**
7
+ * Transforms Zod schema to camelCase.
8
+ *
9
+ * @param zod Zod schema.
10
+ *
11
+ * @returns Zod schema with camelCase properties.
12
+ *
13
+ * @see {@link https://github.com/colinhacks/zod/issues/486#issuecomment-1501097361}
14
+ */
15
+ export declare const zodToCamelCase: <T extends zod.ZodTypeAny>(zod: T) => zod.ZodEffects<zod.ZodTypeAny, CamelCasedPropertiesDeep<T["_output"]>, any>;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @file Base class for converters
3
+ *
4
+ * TS doesn't support abstract static methods, so we should use
5
+ * a workaround and extend this class instead of implementing it
6
+ */
7
+ import { type ConversionResult } from './conversion-result';
8
+ /**
9
+ * Basic class for rule converters
10
+ */
11
+ export declare class BaseConverter {
12
+ /**
13
+ * Converts some data to AdGuard format
14
+ *
15
+ * @param data Data to convert
16
+ * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
17
+ * the converted node, and its `isConverted` flag indicates whether the original node was converted.
18
+ * If the node was not converted, the result will contain the original node with the same object reference
19
+ * @throws If the data is invalid or incompatible
20
+ */
21
+ static convertToAdg(data: unknown): ConversionResult<unknown>;
22
+ /**
23
+ * Converts some data to Adblock Plus format
24
+ *
25
+ * @param data Data to convert
26
+ * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
27
+ * the converted node, and its `isConverted` flag indicates whether the original node was converted.
28
+ * If the node was not converted, the result will contain the original node with the same object reference
29
+ * @throws If the data is invalid or incompatible
30
+ */
31
+ static convertToAbp(data: unknown): ConversionResult<unknown>;
32
+ /**
33
+ * Converts some data to uBlock Origin format
34
+ *
35
+ * @param data Data to convert
36
+ * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
37
+ * the converted node, and its `isConverted` flag indicates whether the original node was converted.
38
+ * If the node was not converted, the result will contain the original node with the same object reference
39
+ * @throws If the data is invalid or incompatible
40
+ */
41
+ static convertToUbo(data: unknown): ConversionResult<unknown>;
42
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @file Conversion result interface and helper functions
3
+ */
4
+ import { type Node } from '../../nodes';
5
+ /**
6
+ * Common conversion result interface
7
+ *
8
+ * @template T Type of the item to convert
9
+ * @template U Type of the conversion result (defaults to `T`, but can be `T[]` as well)
10
+ */
11
+ export interface ConversionResult<T, U extends T | T[] = T> {
12
+ /**
13
+ * Conversion result
14
+ */
15
+ result: U;
16
+ /**
17
+ * Indicates whether the input item was converted
18
+ */
19
+ isConverted: boolean;
20
+ }
21
+ /**
22
+ * Adblock rule node conversion result interface, where the conversion result is an array of rules
23
+ */
24
+ export type NodeConversionResult<T extends Node> = ConversionResult<T, T[]>;
25
+ /**
26
+ * Helper function to create a generic conversion result.
27
+ *
28
+ * @param result Conversion result
29
+ * @param isConverted Indicates whether the input item was converted
30
+ * @template T Type of the item to convert
31
+ * @template U Type of the conversion result (defaults to `T`, but can be `T[]` as well)
32
+ * @returns Generic conversion result
33
+ */
34
+ export declare function createConversionResult<T, U extends T | T[] = T>(result: U, isConverted: boolean): ConversionResult<T, U>;
35
+ /**
36
+ * Helper function to create a node conversion result.
37
+ *
38
+ * @param nodes Array of nodes
39
+ * @param isConverted Indicates whether the input item was converted
40
+ * @template T Type of the node (extends `Node`)
41
+ * @returns Node conversion result
42
+ */
43
+ export declare function createNodeConversionResult<T extends Node>(nodes: T[], isConverted: boolean): NodeConversionResult<T>;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @file Base class for rule converters
3
+ *
4
+ * TS doesn't support abstract static methods, so we should use
5
+ * a workaround and extend this class instead of implementing it
6
+ */
7
+ import { type Node } from '../../nodes';
8
+ import { type NodeConversionResult } from './conversion-result';
9
+ import { BaseConverter } from './base-converter';
10
+ /**
11
+ * Basic class for rule converters
12
+ */
13
+ export declare class RuleConverterBase extends BaseConverter {
14
+ /**
15
+ * Converts an adblock filtering rule to AdGuard format, if possible.
16
+ *
17
+ * @param rule Rule node to convert
18
+ * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
19
+ * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
20
+ * If the rule was not converted, the result array will contain the original node with the same object reference
21
+ * @throws If the rule is invalid or cannot be converted
22
+ */
23
+ static convertToAdg(rule: Node): NodeConversionResult<Node>;
24
+ /**
25
+ * Converts an adblock filtering rule to Adblock Plus format, if possible.
26
+ *
27
+ * @param rule Rule node to convert
28
+ * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
29
+ * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
30
+ * If the rule was not converted, the result array will contain the original node with the same object reference
31
+ * @throws If the rule is invalid or cannot be converted
32
+ */
33
+ static convertToAbp(rule: Node): NodeConversionResult<Node>;
34
+ /**
35
+ * Converts an adblock filtering rule to uBlock Origin format, if possible.
36
+ *
37
+ * @param rule Rule node to convert
38
+ * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
39
+ * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
40
+ * If the rule was not converted, the result array will contain the original node with the same object reference
41
+ * @throws If the rule is invalid or cannot be converted
42
+ */
43
+ static convertToUbo(rule: Node): NodeConversionResult<Node>;
44
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @file Comment rule converter
3
+ */
4
+ import { type AnyCommentRule } from '../../nodes';
5
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base';
6
+ import { type NodeConversionResult } from '../base-interfaces/conversion-result';
7
+ /**
8
+ * Comment rule converter class
9
+ *
10
+ * @todo Implement `convertToUbo` and `convertToAbp`
11
+ */
12
+ export declare class CommentRuleConverter extends RuleConverterBase {
13
+ /**
14
+ * Converts a comment 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: AnyCommentRule): NodeConversionResult<AnyCommentRule>;
23
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @file CSS injection rule converter
3
+ */
4
+ import { type CssInjectionRule } from '../../nodes';
5
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base';
6
+ import { type NodeConversionResult } from '../base-interfaces/conversion-result';
7
+ /**
8
+ * CSS injection rule converter class
9
+ *
10
+ * @todo Implement `convertToUbo` and `convertToAbp`
11
+ */
12
+ export declare class CssInjectionRuleConverter extends RuleConverterBase {
13
+ /**
14
+ * Converts a CSS injection 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: CssInjectionRule): NodeConversionResult<CssInjectionRule>;
23
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @file Element hiding rule converter
3
+ */
4
+ import { type ElementHidingRule } from '../../nodes';
5
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base';
6
+ import { type NodeConversionResult } from '../base-interfaces/conversion-result';
7
+ /**
8
+ * Element hiding rule converter class
9
+ *
10
+ * @todo Implement `convertToUbo` and `convertToAbp`
11
+ */
12
+ export declare class ElementHidingRuleConverter extends RuleConverterBase {
13
+ /**
14
+ * Converts an element hiding 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: ElementHidingRule): NodeConversionResult<ElementHidingRule>;
23
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @file Converter for request header removal rules
3
+ */
4
+ import { type AnyRule } from '../../nodes';
5
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base';
6
+ import { type NodeConversionResult } from '../base-interfaces/conversion-result';
7
+ export declare const ERROR_MESSAGES: {
8
+ EMPTY_PARAMETER: string;
9
+ EXPECTED_END_OF_RULE: string;
10
+ MULTIPLE_DOMAINS_NOT_SUPPORTED: string;
11
+ };
12
+ /**
13
+ * Converter for request header removal rules
14
+ *
15
+ * @todo Implement `convertToUbo` (ABP currently doesn't support header removal rules)
16
+ */
17
+ export declare class HeaderRemovalRuleConverter extends RuleConverterBase {
18
+ /**
19
+ * Converts a header removal rule to AdGuard syntax, if possible.
20
+ *
21
+ * @param rule Rule node to convert
22
+ * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
23
+ * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
24
+ * If the rule was not converted, the result array will contain the original node with the same object reference
25
+ * @throws If the rule is invalid or cannot be converted
26
+ * @example
27
+ * If the input rule is:
28
+ * ```adblock
29
+ * example.com##^responseheader(header-name)
30
+ * ```
31
+ * The output will be:
32
+ * ```adblock
33
+ * ||example.com^$removeheader=header-name
34
+ * ```
35
+ */
36
+ static convertToAdg(rule: AnyRule): NodeConversionResult<AnyRule>;
37
+ }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @file HTML filtering rule converter
3
+ */
4
+ import { type HtmlFilteringRule } from '../../nodes';
5
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base';
6
+ import { type NodeConversionResult } from '../base-interfaces/conversion-result';
7
+ export declare const ERROR_MESSAGES: {
8
+ ABP_NOT_SUPPORTED: string;
9
+ TAG_SHOULD_BE_FIRST_CHILD: string;
10
+ EXPECTED_BUT_GOT_WITH_VALUE: string;
11
+ INVALID_ATTRIBUTE_NAME: string;
12
+ INVALID_ATTRIBUTE_VALUE: string;
13
+ INVALID_FLAG: string;
14
+ INVALID_OPERATOR_FOR_ATTR: string;
15
+ VALUE_FOR_ATTR_SHOULD_BE_INT: string;
16
+ INVALID_PSEUDO_CLASS: string;
17
+ VALUE_FOR_PSEUDO_CLASS_SHOULD_BE_INT: string;
18
+ REGEXP_NOT_SUPPORTED: string;
19
+ ATTRIBUTE_SELECTOR_REQUIRES_VALUE: string;
20
+ INVALID_ATTRIBUTE_SELECTOR_OPERATOR: string;
21
+ VALUE_SHOULD_BE_SPECIFIED: string;
22
+ OPERATOR_SHOULD_BE_SPECIFIED: string;
23
+ UNEXPECTED_TOKEN_WITH_VALUE: string;
24
+ FLAGS_NOT_SUPPORTED: string;
25
+ };
26
+ /**
27
+ * HTML filtering rule converter class
28
+ *
29
+ * @todo Implement `convertToUbo` (ABP currently doesn't support HTML filtering rules)
30
+ */
31
+ export declare class HtmlRuleConverter extends RuleConverterBase {
32
+ /**
33
+ * Converts a HTML rule to AdGuard syntax, if possible. Also can be used to convert
34
+ * AdGuard rules to AdGuard syntax to validate them.
35
+ *
36
+ * _Note:_ uBlock Origin supports multiple selectors within a single rule, but AdGuard doesn't,
37
+ * so the following rule
38
+ * ```
39
+ * example.com##^div[attr1="value1"][attr2="value2"], script:has-text(value)
40
+ * ```
41
+ * will be converted to multiple AdGuard rules:
42
+ * ```
43
+ * example.com$$div[attr1="value1"][attr2="value2"][max-length="262144"]
44
+ * example.com$$script[tag-content="value"][max-length="262144"]
45
+ * ```
46
+ *
47
+ * @param rule Rule node to convert
48
+ * @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
49
+ * the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
50
+ * If the rule was not converted, the result array will contain the original node with the same object reference
51
+ * @throws If the rule is invalid or cannot be converted
52
+ */
53
+ static convertToAdg(rule: HtmlFilteringRule): NodeConversionResult<HtmlFilteringRule>;
54
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @file Cosmetic rule converter
3
+ */
4
+ import { type AnyCosmeticRule, type AnyRule } from '../../nodes';
5
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base';
6
+ import { type NodeConversionResult } from '../base-interfaces/conversion-result';
7
+ /**
8
+ * Cosmetic rule converter class (also known as "non-basic rule converter")
9
+ *
10
+ * @todo Implement `convertToUbo` and `convertToAbp`
11
+ */
12
+ export declare class CosmeticRuleConverter extends RuleConverterBase {
13
+ /**
14
+ * Converts a cosmetic rule to AdGuard syntax, 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: AnyCosmeticRule): NodeConversionResult<AnyRule>;
23
+ /**
24
+ * Converts a cosmetic rule to uBlock Origin syntax, 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: AnyCosmeticRule): NodeConversionResult<AnyRule>;
33
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @file Cosmetic rule modifier converter from uBO to ADG
3
+ */
4
+ import { type ModifierList } from '../../../nodes';
5
+ import { type ConversionResult } from '../../base-interfaces/conversion-result';
6
+ /**
7
+ * Helper class for converting cosmetic rule modifiers from uBO to ADG
8
+ */
9
+ export declare class AdgCosmeticRuleModifierConverter {
10
+ /**
11
+ * Converts a uBO cosmetic rule modifier list to ADG, if possible.
12
+ *
13
+ * @param modifierList Cosmetic rule modifier list node to convert
14
+ * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
15
+ * the converted node, and its `isConverted` flag indicates whether the original node was converted.
16
+ * If the node was not converted, the result will contain the original node with the same object reference
17
+ * @throws If the modifier list cannot be converted
18
+ * @see {@link https://github.com/gorhill/uBlock/wiki/Procedural-cosmetic-filters#cosmetic-filter-operators}
19
+ */
20
+ static convertFromUbo(modifierList: ModifierList): ConversionResult<ModifierList>;
21
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @file Scriptlet injection rule converter
3
+ */
4
+ import { type ScriptletInjectionRule } from '../../nodes';
5
+ import { RuleConverterBase } from '../base-interfaces/rule-converter-base';
6
+ import { type NodeConversionResult } from '../base-interfaces/conversion-result';
7
+ /**
8
+ * Scriptlet injection rule converter class
9
+ *
10
+ * @todo Implement `convertToUbo` and `convertToAbp`
11
+ */
12
+ export declare class ScriptletRuleConverter extends RuleConverterBase {
13
+ /**
14
+ * Converts a scriptlet injection 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: ScriptletInjectionRule): NodeConversionResult<ScriptletInjectionRule>;
23
+ /**
24
+ * Converts a scriptlet injection 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: ScriptletInjectionRule): NodeConversionResult<ScriptletInjectionRule>;
33
+ }
@@ -0,0 +1,23 @@
1
+ import { BaseConverter } from '../base-interfaces/base-converter';
2
+ import { type ConversionResult } from '../base-interfaces/conversion-result';
3
+ import { CssTokenStream } from '../../parser/css/css-token-stream';
4
+ export declare const ERROR_MESSAGES: {
5
+ INVALID_ATTRIBUTE_VALUE: string;
6
+ };
7
+ /**
8
+ * CSS selector converter
9
+ *
10
+ * @todo Implement `convertToUbo` and `convertToAbp`
11
+ */
12
+ export declare class CssSelectorConverter extends BaseConverter {
13
+ /**
14
+ * Converts Extended CSS elements to AdGuard-compatible ones
15
+ *
16
+ * @param selectorList Selector list to convert
17
+ * @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
18
+ * the converted node, and its `isConverted` flag indicates whether the original node was converted.
19
+ * If the node was not converted, the result will contain the original node with the same object reference
20
+ * @throws If the rule is invalid or incompatible
21
+ */
22
+ static convertToAdg(selectorList: string | CssTokenStream): ConversionResult<string>;
23
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @file Known CSS elements and attributes.
3
+ * TODO: Implement a compatibility table for Extended CSS
4
+ */
5
+ /**
6
+ * Legacy Extended CSS attribute prefix.
7
+ *
8
+ * @example
9
+ * ```css
10
+ * [-ext-<name>=...]
11
+ * ```
12
+ */
13
+ export declare const LEGACY_EXT_CSS_ATTRIBUTE_PREFIX = "-ext-";
14
+ /**
15
+ * ABP Extended CSS prefix.
16
+ *
17
+ * @example
18
+ * ```css
19
+ * [-abp-<name>=...]
20
+ * -abp-<name>(...)
21
+ * ```
22
+ */
23
+ export declare const ABP_EXT_CSS_PREFIX = "-abp";
24
+ /**
25
+ * Known _strict_ Extended CSS pseudo-classes. Please, keep this list sorted.
26
+ * Strict means that these pseudo-classes are not supported by any browser natively,
27
+ * and they always require Extended CSS libraries to work.
28
+ */
29
+ export declare const EXT_CSS_PSEUDO_CLASSES_STRICT: Set<string>;
30
+ /**
31
+ * _ALL_ known Extended CSS pseudo-classes. Please, keep this list sorted.
32
+ * It includes strict pseudo-classes and additional pseudo-classes that may be
33
+ * supported by some browsers natively.
34
+ */
35
+ export declare const EXT_CSS_PSEUDO_CLASSES: Set<string>;
36
+ /**
37
+ * Known legacy Extended CSS attributes. These attributes are deprecated and
38
+ * should be replaced with the corresponding pseudo-classes. In a long term,
39
+ * these attributes will be COMPLETELY removed from the Extended CSS syntax.
40
+ *
41
+ * Please, keep this list sorted.
42
+ */
43
+ export declare const EXT_CSS_LEGACY_ATTRIBUTES: Set<string>;
44
+ /**
45
+ * Known CSS functions that aren't allowed in CSS injection rules, because they
46
+ * able to load external resources. Please, keep this list sorted.
47
+ */
48
+ export declare const FORBIDDEN_CSS_FUNCTIONS: Set<string>;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @file Adblock filter list converter
3
+ */
4
+ import { type FilterList } from '../nodes';
5
+ import { type ConversionResult } from './base-interfaces/conversion-result';
6
+ import { BaseConverter } from './base-interfaces/base-converter';
7
+ /**
8
+ * Adblock filter list converter class
9
+ *
10
+ * This class just provides an extra layer on top of the {@link RuleConverter}
11
+ * and can be used to convert entire filter lists.
12
+ *
13
+ * @todo Implement `convertToUbo` and `convertToAbp`
14
+ * @todo Implement tolerant mode, which will allow to convert a filter list
15
+ * even if some of its rules are invalid
16
+ */
17
+ export declare class FilterListConverter extends BaseConverter {
18
+ /**
19
+ * Converts an adblock filter list to AdGuard format, if possible.
20
+ *
21
+ * @param filterListNode Filter list node 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 converted node, and its `isConverted` flag indicates whether the original node was converted.
27
+ * If the node was not converted, the result will contain the original node with the same object reference
28
+ * @throws If the filter list is invalid or cannot be converted (if the tolerant mode is disabled)
29
+ */
30
+ static convertToAdg(filterListNode: FilterList, tolerant?: boolean): ConversionResult<FilterList>;
31
+ }