@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,88 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 GMT)
3
+ * (c) 2024 Adguard Software Ltd.
4
+ * Released under the MIT license
5
+ * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
+ */
7
+ 'use strict';
8
+
9
+ var constants = require('../../utils/constants.js');
10
+ var baseDeserializer = require('../base-deserializer.js');
11
+ var hintCommon = require('../../marshalling-utils/comment/hint-common.js');
12
+ var valueDeserializer = require('../misc/value-deserializer.js');
13
+ var parameterListDeserializer = require('../misc/parameter-list-deserializer.js');
14
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
15
+
16
+ /* eslint-disable no-param-reassign */
17
+ /**
18
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
19
+ * as it allows us to use a single byte to represent frequently used values.
20
+ */
21
+ let frequentHintsDeserializationMap;
22
+ const getFrequentHintsDeserializationMap = () => {
23
+ if (!frequentHintsDeserializationMap) {
24
+ frequentHintsDeserializationMap = new Map(Array.from(hintCommon.FREQUENT_HINTS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
25
+ }
26
+ return frequentHintsDeserializationMap;
27
+ };
28
+ /**
29
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
30
+ * as it allows us to use a single byte to represent frequently used values.
31
+ */
32
+ let frequentPlatformsDeserializationMap;
33
+ const getFrequentPlatformsDeserializationMap = () => {
34
+ if (!frequentPlatformsDeserializationMap) {
35
+ frequentPlatformsDeserializationMap = new Map(Array.from(hintCommon.FREQUENT_PLATFORMS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
36
+ }
37
+ return frequentPlatformsDeserializationMap;
38
+ };
39
+ /**
40
+ * `HintDeserializer` is responsible for deserializing AdGuard hints.
41
+ *
42
+ * @example
43
+ * If the hint rule is
44
+ * ```adblock
45
+ * !+ NOT_OPTIMIZED PLATFORM(windows)
46
+ * ```
47
+ * then the hints are `NOT_OPTIMIZED` and `PLATFORM(windows)`, and this
48
+ * class is responsible for parsing them. The rule itself is parsed by
49
+ * the `HintRuleParser`, which uses this class to parse single hints.
50
+ */
51
+ class HintDeserializer extends baseDeserializer.BaseDeserializer {
52
+ /**
53
+ * Deserializes a hint node from binary format.
54
+ *
55
+ * @param buffer ByteBuffer for reading binary data.
56
+ * @param node Destination node.
57
+ * @throws If the binary data is malformed.
58
+ */
59
+ static deserialize(buffer, node) {
60
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.HintNode);
61
+ node.type = 'Hint';
62
+ let prop = buffer.readUint8();
63
+ while (prop !== constants.NULL) {
64
+ switch (prop) {
65
+ case hintCommon.HintNodeMarshallingMap.Name:
66
+ // eslint-disable-next-line max-len
67
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.name = {}, getFrequentHintsDeserializationMap());
68
+ break;
69
+ case hintCommon.HintNodeMarshallingMap.Params:
70
+ // eslint-disable-next-line max-len
71
+ parameterListDeserializer.ParameterListDeserializer.deserialize(buffer, node.params = {}, getFrequentPlatformsDeserializationMap());
72
+ break;
73
+ case hintCommon.HintNodeMarshallingMap.Start:
74
+ node.start = buffer.readUint32();
75
+ break;
76
+ case hintCommon.HintNodeMarshallingMap.End:
77
+ node.end = buffer.readUint32();
78
+ break;
79
+ default:
80
+ throw new Error(`Invalid property: ${prop}`);
81
+ }
82
+ prop = buffer.readUint8();
83
+ }
84
+ }
85
+ }
86
+
87
+ exports.HintDeserializer = HintDeserializer;
88
+ exports.getFrequentPlatformsDeserializationMap = getFrequentPlatformsDeserializationMap;
@@ -0,0 +1,71 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 GMT)
3
+ * (c) 2024 Adguard Software Ltd.
4
+ * Released under the MIT license
5
+ * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
+ */
7
+ 'use strict';
8
+
9
+ var constants = require('../../utils/constants.js');
10
+ var index = require('../../nodes/index.js');
11
+ var baseDeserializer = require('../base-deserializer.js');
12
+ var metadataCommentCommon = require('../../marshalling-utils/comment/metadata-comment-common.js');
13
+ var adblockers = require('../../utils/adblockers.js');
14
+ var valueDeserializer = require('../misc/value-deserializer.js');
15
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
16
+
17
+ /* eslint-disable no-param-reassign */
18
+ /**
19
+ * `MetadataCommentDeserializer` is responsible for deserializing metadata comments.
20
+ * Metadata comments are special comments that specify some properties of the list.
21
+ *
22
+ * @example
23
+ * For example, in the case of
24
+ * ```adblock
25
+ * ! Title: My List
26
+ * ```
27
+ * the name of the header is `Title`, and the value is `My List`, which means that
28
+ * the list title is `My List`, and it can be used in the adblocker UI.
29
+ * @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#special-comments}
30
+ */
31
+ class MetadataCommentDeserializer extends baseDeserializer.BaseDeserializer {
32
+ /**
33
+ * Deserializes a metadata comment node from binary format.
34
+ *
35
+ * @param buffer ByteBuffer for reading binary data.
36
+ * @param node Destination node.
37
+ * @throws If the binary data is malformed.
38
+ */
39
+ static deserialize(buffer, node) {
40
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.MetadataCommentRuleNode);
41
+ node.type = index.CommentRuleType.MetadataCommentRule;
42
+ node.category = index.RuleCategory.Comment;
43
+ node.syntax = adblockers.AdblockSyntax.Common;
44
+ let prop = buffer.readUint8();
45
+ while (prop !== constants.NULL) {
46
+ switch (prop) {
47
+ case metadataCommentCommon.MetadataCommentMarshallingMap.Marker:
48
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.marker = {});
49
+ break;
50
+ case metadataCommentCommon.MetadataCommentMarshallingMap.Header:
51
+ // eslint-disable-next-line max-len
52
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.header = {}, metadataCommentCommon.FREQUENT_HEADERS_DESERIALIZATION_MAP);
53
+ break;
54
+ case metadataCommentCommon.MetadataCommentMarshallingMap.Value:
55
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.value = {});
56
+ break;
57
+ case metadataCommentCommon.MetadataCommentMarshallingMap.Start:
58
+ node.start = buffer.readUint32();
59
+ break;
60
+ case metadataCommentCommon.MetadataCommentMarshallingMap.End:
61
+ node.end = buffer.readUint32();
62
+ break;
63
+ default:
64
+ throw new Error(`Invalid property: ${prop}`);
65
+ }
66
+ prop = buffer.readUint8();
67
+ }
68
+ }
69
+ }
70
+
71
+ exports.MetadataCommentDeserializer = MetadataCommentDeserializer;
@@ -0,0 +1,114 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 GMT)
3
+ * (c) 2024 Adguard Software Ltd.
4
+ * Released under the MIT license
5
+ * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
+ */
7
+ 'use strict';
8
+
9
+ var constants = require('../../utils/constants.js');
10
+ var index = require('../../nodes/index.js');
11
+ var baseDeserializer = require('../base-deserializer.js');
12
+ var preProcessorCommentCommon = require('../../marshalling-utils/comment/pre-processor-comment-common.js');
13
+ var adblockers = require('../../utils/adblockers.js');
14
+ var valueDeserializer = require('../misc/value-deserializer.js');
15
+ var logicalExpressionDeserializer = require('../misc/logical-expression-deserializer.js');
16
+ var parameterListDeserializer = require('../misc/parameter-list-deserializer.js');
17
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
18
+ var syntaxDeserializationMap = require('../syntax-deserialization-map.js');
19
+
20
+ /* eslint-disable no-param-reassign */
21
+ /**
22
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
23
+ * as it allows us to use a single byte to represent frequently used values.
24
+ */
25
+ let frequentDirectivesDeserializationMap;
26
+ const getFrequentDirectivesDeserializationMap = () => {
27
+ if (!frequentDirectivesDeserializationMap) {
28
+ frequentDirectivesDeserializationMap = new Map(Array.from(preProcessorCommentCommon.FREQUENT_DIRECTIVES_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
29
+ }
30
+ return frequentDirectivesDeserializationMap;
31
+ };
32
+ /**
33
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
34
+ * as it allows us to use a single byte to represent frequently used values.
35
+ */
36
+ let frequentParamsDeserializationMap;
37
+ const getFrequentParamsDeserializationMap = () => {
38
+ if (!frequentParamsDeserializationMap) {
39
+ frequentParamsDeserializationMap = new Map(Array.from(preProcessorCommentCommon.FREQUENT_PARAMS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
40
+ }
41
+ return frequentParamsDeserializationMap;
42
+ };
43
+ /**
44
+ * `PreProcessorCommentDeserializer` is responsible for deserializing preprocessor rules.
45
+ * Pre-processor comments are special comments that are used to control the behavior of the filter list processor.
46
+ * Please note that this parser only handles general syntax for now, and does not validate the parameters at
47
+ * the parsing stage.
48
+ *
49
+ * @example
50
+ * If your rule is
51
+ * ```adblock
52
+ * !#if (adguard)
53
+ * ```
54
+ * then the directive's name is `if` and its value is `(adguard)`, but the parameter list
55
+ * is not parsed / validated further.
56
+ * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#pre-processor-directives}
57
+ * @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#pre-parsing-directives}
58
+ */
59
+ class PreProcessorCommentDeserializer extends baseDeserializer.BaseDeserializer {
60
+ /**
61
+ * Deserializes a pre-processor comment node from binary format.
62
+ *
63
+ * @param buffer ByteBuffer for reading binary data.
64
+ * @param node Destination node.
65
+ * @throws If the binary data is malformed.
66
+ */
67
+ static deserialize(buffer, node) {
68
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.PreProcessorCommentRuleNode);
69
+ node.type = index.CommentRuleType.PreProcessorCommentRule;
70
+ node.category = index.RuleCategory.Comment;
71
+ node.syntax = adblockers.AdblockSyntax.Common;
72
+ let prop = buffer.readUint8();
73
+ while (prop !== constants.NULL) {
74
+ switch (prop) {
75
+ case preProcessorCommentCommon.PreProcessorRuleMarshallingMap.Name:
76
+ // eslint-disable-next-line max-len
77
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.name = {}, getFrequentDirectivesDeserializationMap());
78
+ break;
79
+ case preProcessorCommentCommon.PreProcessorRuleMarshallingMap.Syntax:
80
+ node.syntax = syntaxDeserializationMap.getSyntaxDeserializationMap().get(buffer.readUint8()) ?? adblockers.AdblockSyntax.Common;
81
+ break;
82
+ case preProcessorCommentCommon.PreProcessorRuleMarshallingMap.Params:
83
+ switch (buffer.peekUint8()) {
84
+ case binaryTypeCommon.BinaryTypeMarshallingMap.ValueNode:
85
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.params = {});
86
+ break;
87
+ case binaryTypeCommon.BinaryTypeMarshallingMap.ParameterListNode:
88
+ // eslint-disable-next-line max-len
89
+ parameterListDeserializer.ParameterListDeserializer.deserialize(buffer, node.params = {}, getFrequentParamsDeserializationMap());
90
+ break;
91
+ case binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionOperatorNode:
92
+ case binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionParenthesisNode:
93
+ case binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionVariableNode:
94
+ logicalExpressionDeserializer.LogicalExpressionDeserializer.deserialize(buffer, node.params = {});
95
+ break;
96
+ default:
97
+ throw new Error(`Invalid binary type: ${prop}`);
98
+ }
99
+ break;
100
+ case preProcessorCommentCommon.PreProcessorRuleMarshallingMap.Start:
101
+ node.start = buffer.readUint32();
102
+ break;
103
+ case preProcessorCommentCommon.PreProcessorRuleMarshallingMap.End:
104
+ node.end = buffer.readUint32();
105
+ break;
106
+ default:
107
+ throw new Error(`Invalid property: ${prop}`);
108
+ }
109
+ prop = buffer.readUint8();
110
+ }
111
+ }
112
+ }
113
+
114
+ exports.PreProcessorCommentDeserializer = PreProcessorCommentDeserializer;
@@ -0,0 +1,67 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 GMT)
3
+ * (c) 2024 Adguard Software Ltd.
4
+ * Released under the MIT license
5
+ * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
+ */
7
+ 'use strict';
8
+
9
+ var constants = require('../../utils/constants.js');
10
+ var index = require('../../nodes/index.js');
11
+ var baseDeserializer = require('../base-deserializer.js');
12
+ var adblockers = require('../../utils/adblockers.js');
13
+ var simpleCommentCommon = require('../../marshalling-utils/comment/simple-comment-common.js');
14
+ var valueDeserializer = require('../misc/value-deserializer.js');
15
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
16
+
17
+ /* eslint-disable no-param-reassign */
18
+ /**
19
+ * `SimpleCommentDeserializer` is responsible for deserializing simple comments.
20
+ *
21
+ * Some comments have a special meaning in adblock syntax, like agent comments or hints,
22
+ * but this parser is only responsible for parsing regular comments,
23
+ * whose only purpose is to provide some human-readable information.
24
+ *
25
+ * @example
26
+ * ```adblock
27
+ * ! This is a simple comment
28
+ * # This is a simple comment, but in host-like syntax
29
+ * ```
30
+ */
31
+ class SimpleCommentDeserializer extends baseDeserializer.BaseDeserializer {
32
+ /**
33
+ * Deserializes a simple comment node from binary format.
34
+ *
35
+ * @param buffer ByteBuffer for reading binary data.
36
+ * @param node Destination node.
37
+ * @throws If the binary data is malformed.
38
+ */
39
+ static deserialize(buffer, node) {
40
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.CommentRuleNode);
41
+ node.type = index.CommentRuleType.CommentRule;
42
+ node.category = index.RuleCategory.Comment;
43
+ node.syntax = adblockers.AdblockSyntax.Common;
44
+ let prop = buffer.readUint8();
45
+ while (prop !== constants.NULL) {
46
+ switch (prop) {
47
+ case simpleCommentCommon.SimpleCommentMarshallingMap.Marker:
48
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.marker = {});
49
+ break;
50
+ case simpleCommentCommon.SimpleCommentMarshallingMap.Text:
51
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.text = {});
52
+ break;
53
+ case simpleCommentCommon.SimpleCommentMarshallingMap.Start:
54
+ node.start = buffer.readUint32();
55
+ break;
56
+ case simpleCommentCommon.SimpleCommentMarshallingMap.End:
57
+ node.end = buffer.readUint32();
58
+ break;
59
+ default:
60
+ throw new Error(`Invalid property: ${prop}`);
61
+ }
62
+ prop = buffer.readUint8();
63
+ }
64
+ }
65
+ }
66
+
67
+ exports.SimpleCommentDeserializer = SimpleCommentDeserializer;
@@ -0,0 +1,127 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 GMT)
3
+ * (c) 2024 Adguard Software Ltd.
4
+ * Released under the MIT license
5
+ * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
+ */
7
+ 'use strict';
8
+
9
+ var adblockers = require('../../utils/adblockers.js');
10
+ var domainListDeserializer = require('../misc/domain-list-deserializer.js');
11
+ var constants = require('../../utils/constants.js');
12
+ var index = require('../../nodes/index.js');
13
+ var abpSnippetInjectionBodyDeserializer = require('./scriptlet-body/abp-snippet-injection-body-deserializer.js');
14
+ var uboScriptletInjectionBodyDeserializer = require('./scriptlet-body/ubo-scriptlet-injection-body-deserializer.js');
15
+ var adgScriptletInjectionBodyDeserializer = require('./scriptlet-body/adg-scriptlet-injection-body-deserializer.js');
16
+ var valueDeserializer = require('../misc/value-deserializer.js');
17
+ var typeGuards = require('../../utils/type-guards.js');
18
+ var baseDeserializer = require('../base-deserializer.js');
19
+ var elementHidingBodyDeserializer = require('./element-hiding-body-deserializer.js');
20
+ var cssInjectionBodyDeserializer = require('./css-injection-body-deserializer.js');
21
+ var modifierListDeserializer = require('../misc/modifier-list-deserializer.js');
22
+ var cosmeticRuleCommon = require('../../marshalling-utils/cosmetic/cosmetic-rule-common.js');
23
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
24
+ var syntaxDeserializationMap = require('../syntax-deserialization-map.js');
25
+
26
+ /* eslint-disable no-param-reassign */
27
+ /**
28
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
29
+ * as it allows us to use a single byte to represent frequently used values.
30
+ */
31
+ let cosmeticRuleSeparatorDeserializationMap;
32
+ const getCosmeticRuleSeparatorDeserializationMap = () => {
33
+ if (!cosmeticRuleSeparatorDeserializationMap) {
34
+ cosmeticRuleSeparatorDeserializationMap = new Map(Array.from(cosmeticRuleCommon.COSMETIC_RULE_SEPARATOR_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
35
+ }
36
+ return cosmeticRuleSeparatorDeserializationMap;
37
+ };
38
+ /**
39
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
40
+ * as it allows us to use a single byte to represent frequently used values.
41
+ */
42
+ const COSMETIC_RULE_TYPE_DESERIALIZATION_MAP = new Map([
43
+ [binaryTypeCommon.BinaryTypeMarshallingMap.ElementHidingRule, index.CosmeticRuleType.ElementHidingRule],
44
+ [binaryTypeCommon.BinaryTypeMarshallingMap.CssInjectionRule, index.CosmeticRuleType.CssInjectionRule],
45
+ [binaryTypeCommon.BinaryTypeMarshallingMap.ScriptletInjectionRule, index.CosmeticRuleType.ScriptletInjectionRule],
46
+ [binaryTypeCommon.BinaryTypeMarshallingMap.JsInjectionRule, index.CosmeticRuleType.JsInjectionRule],
47
+ [binaryTypeCommon.BinaryTypeMarshallingMap.HtmlFilteringRule, index.CosmeticRuleType.HtmlFilteringRule],
48
+ ]);
49
+ class CosmeticRuleDeserializer extends baseDeserializer.BaseDeserializer {
50
+ /**
51
+ * Deserializes a cosmetic rule node from binary format.
52
+ *
53
+ * @param buffer ByteBuffer for reading binary data.
54
+ * @param node Destination node.
55
+ */
56
+ static deserialize(buffer, node) {
57
+ const type = COSMETIC_RULE_TYPE_DESERIALIZATION_MAP.get(buffer.readUint8());
58
+ if (typeGuards.isUndefined(type)) {
59
+ throw new Error(`Unknown rule type: ${type}`);
60
+ }
61
+ node.type = type;
62
+ node.category = index.RuleCategory.Cosmetic;
63
+ const syntax = syntaxDeserializationMap.getSyntaxDeserializationMap().get(buffer.readUint8()) ?? adblockers.AdblockSyntax.Common;
64
+ node.syntax = syntax;
65
+ node.modifiers = undefined;
66
+ switch (type) {
67
+ case index.CosmeticRuleType.ElementHidingRule:
68
+ elementHidingBodyDeserializer.ElementHidingBodyDeserializer.deserializeElementHidingBody(buffer, node.body = {});
69
+ break;
70
+ case index.CosmeticRuleType.CssInjectionRule:
71
+ cssInjectionBodyDeserializer.CssInjectionBodyDeserializer.deserialize(buffer, node.body = {});
72
+ break;
73
+ case index.CosmeticRuleType.JsInjectionRule:
74
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.body = {});
75
+ break;
76
+ case index.CosmeticRuleType.HtmlFilteringRule:
77
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.body = {});
78
+ break;
79
+ case index.CosmeticRuleType.ScriptletInjectionRule:
80
+ switch (syntax) {
81
+ case adblockers.AdblockSyntax.Adg:
82
+ adgScriptletInjectionBodyDeserializer.AdgScriptletInjectionBodyDeserializer.deserialize(buffer, node.body = {});
83
+ break;
84
+ case adblockers.AdblockSyntax.Abp:
85
+ abpSnippetInjectionBodyDeserializer.AbpSnippetInjectionBodyDeserializer.deserialize(buffer, node.body = {});
86
+ break;
87
+ case adblockers.AdblockSyntax.Ubo:
88
+ uboScriptletInjectionBodyDeserializer.UboScriptletInjectionBodyDeserializer.deserialize(buffer, node.body = {});
89
+ break;
90
+ default:
91
+ throw new Error('Scriptlet rule should have an explicit syntax');
92
+ }
93
+ break;
94
+ default:
95
+ throw new Error('Unknown cosmetic rule type');
96
+ }
97
+ let prop = buffer.readUint8();
98
+ while (prop !== constants.NULL) {
99
+ switch (prop) {
100
+ case cosmeticRuleCommon.CosmeticRuleMarshallingMap.Exception:
101
+ node.exception = buffer.readUint8() === 1;
102
+ break;
103
+ case cosmeticRuleCommon.CosmeticRuleMarshallingMap.Separator:
104
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.separator = {}, getCosmeticRuleSeparatorDeserializationMap());
105
+ break;
106
+ case cosmeticRuleCommon.CosmeticRuleMarshallingMap.Modifiers:
107
+ node.modifiers = {};
108
+ modifierListDeserializer.ModifierListDeserializer.deserialize(buffer, node.modifiers);
109
+ break;
110
+ case cosmeticRuleCommon.CosmeticRuleMarshallingMap.Domains:
111
+ domainListDeserializer.DomainListDeserializer.deserialize(buffer, node.domains = {});
112
+ break;
113
+ case cosmeticRuleCommon.CosmeticRuleMarshallingMap.Start:
114
+ node.start = buffer.readUint32();
115
+ break;
116
+ case cosmeticRuleCommon.CosmeticRuleMarshallingMap.End:
117
+ node.end = buffer.readUint32();
118
+ break;
119
+ default:
120
+ throw new Error(`Unknown property: ${prop}`);
121
+ }
122
+ prop = buffer.readUint8();
123
+ }
124
+ }
125
+ }
126
+
127
+ exports.CosmeticRuleDeserializer = CosmeticRuleDeserializer;
@@ -0,0 +1,55 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 GMT)
3
+ * (c) 2024 Adguard Software Ltd.
4
+ * Released under the MIT license
5
+ * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
+ */
7
+ 'use strict';
8
+
9
+ var valueDeserializer = require('../misc/value-deserializer.js');
10
+ var constants = require('../../utils/constants.js');
11
+ var baseDeserializer = require('../base-deserializer.js');
12
+ var cssInjectionBodyCommon = require('../../marshalling-utils/cosmetic/body/css-injection-body-common.js');
13
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
14
+
15
+ class CssInjectionBodyDeserializer extends baseDeserializer.BaseDeserializer {
16
+ /**
17
+ * Deserializes CSS injection rule body node from binary format.
18
+ *
19
+ * @param buffer ByteBuffer for reading binary data.
20
+ * @param node Destination node.
21
+ */
22
+ static deserialize(buffer, node) {
23
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.CssInjectionRuleBody);
24
+ node.type = 'CssInjectionRuleBody';
25
+ node.remove = false;
26
+ let prop = buffer.readUint8();
27
+ while (prop !== constants.NULL) {
28
+ switch (prop) {
29
+ case cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.MediaQueryList:
30
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.mediaQueryList = {});
31
+ break;
32
+ case cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.SelectorList:
33
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.selectorList = {});
34
+ break;
35
+ case cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.DeclarationList:
36
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.declarationList = {});
37
+ break;
38
+ case cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.Remove:
39
+ node.remove = true;
40
+ break;
41
+ case cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.Start:
42
+ node.start = buffer.readUint32();
43
+ break;
44
+ case cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.End:
45
+ node.end = buffer.readUint32();
46
+ break;
47
+ default:
48
+ throw new Error(`Unknown property: ${prop}`);
49
+ }
50
+ prop = buffer.readUint8();
51
+ }
52
+ }
53
+ }
54
+
55
+ exports.CssInjectionBodyDeserializer = CssInjectionBodyDeserializer;
@@ -0,0 +1,46 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 GMT)
3
+ * (c) 2024 Adguard Software Ltd.
4
+ * Released under the MIT license
5
+ * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
+ */
7
+ 'use strict';
8
+
9
+ var baseDeserializer = require('../base-deserializer.js');
10
+ var constants = require('../../utils/constants.js');
11
+ var elementHidingBodyCommon = require('../../marshalling-utils/cosmetic/body/element-hiding-body-common.js');
12
+ var valueDeserializer = require('../misc/value-deserializer.js');
13
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
14
+
15
+ /* eslint-disable no-param-reassign */
16
+ class ElementHidingBodyDeserializer extends baseDeserializer.BaseDeserializer {
17
+ /**
18
+ * Deserializes an element hiding rule body node from binary format.
19
+ *
20
+ * @param buffer ByteBuffer for reading binary data.
21
+ * @param node Destination node.
22
+ */
23
+ static deserializeElementHidingBody(buffer, node) {
24
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ElementHidingRuleBody);
25
+ node.type = 'ElementHidingRuleBody';
26
+ let prop = buffer.readUint8();
27
+ while (prop !== constants.NULL) {
28
+ switch (prop) {
29
+ case elementHidingBodyCommon.ElementHidingRuleMarshallingMap.SelectorList:
30
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.selectorList = {});
31
+ break;
32
+ case elementHidingBodyCommon.ElementHidingRuleMarshallingMap.Start:
33
+ node.start = buffer.readUint32();
34
+ break;
35
+ case elementHidingBodyCommon.ElementHidingRuleMarshallingMap.End:
36
+ node.end = buffer.readUint32();
37
+ break;
38
+ default:
39
+ throw new Error(`Unknown property: ${prop}`);
40
+ }
41
+ prop = buffer.readUint8();
42
+ }
43
+ }
44
+ }
45
+
46
+ exports.ElementHidingBodyDeserializer = ElementHidingBodyDeserializer;
@@ -0,0 +1,37 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 GMT)
3
+ * (c) 2024 Adguard Software Ltd.
4
+ * Released under the MIT license
5
+ * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
+ */
7
+ 'use strict';
8
+
9
+ var baseDeserializer = require('../../base-deserializer.js');
10
+ var scriptletBodyDeserializer = require('./scriptlet-body-deserializer.js');
11
+ var abpSnippetInjectionBodyCommon = require('../../../marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js');
12
+
13
+ /**
14
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
15
+ * as it allows us to use a single byte to represent frequently used values.
16
+ */
17
+ let frequentAbpSnippetArgsDeserializationMap;
18
+ const getFrequentAbpSnippetArgsDeserializationMap = () => {
19
+ if (!frequentAbpSnippetArgsDeserializationMap) {
20
+ frequentAbpSnippetArgsDeserializationMap = new Map(Array.from(abpSnippetInjectionBodyCommon.FREQUENT_ABP_SNIPPET_ARGS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
21
+ }
22
+ return frequentAbpSnippetArgsDeserializationMap;
23
+ };
24
+ class AbpSnippetInjectionBodyDeserializer extends baseDeserializer.BaseDeserializer {
25
+ /**
26
+ * Deserializes a scriptlet call body node from binary format.
27
+ *
28
+ * @param buffer ByteBuffer for reading binary data.
29
+ * @param node Destination node.
30
+ * @throws If the binary data is malformed.
31
+ */
32
+ static deserialize(buffer, node) {
33
+ scriptletBodyDeserializer.ScriptletBodyDeserializer.deserialize(buffer, node, getFrequentAbpSnippetArgsDeserializationMap());
34
+ }
35
+ }
36
+
37
+ exports.AbpSnippetInjectionBodyDeserializer = AbpSnippetInjectionBodyDeserializer;
@@ -0,0 +1,37 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 GMT)
3
+ * (c) 2024 Adguard Software Ltd.
4
+ * Released under the MIT license
5
+ * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
+ */
7
+ 'use strict';
8
+
9
+ var baseDeserializer = require('../../base-deserializer.js');
10
+ var scriptletBodyDeserializer = require('./scriptlet-body-deserializer.js');
11
+ var adgScriptletInjectionBodyCommon = require('../../../marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js');
12
+
13
+ /**
14
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
15
+ * as it allows us to use a single byte to represent frequently used values.
16
+ */
17
+ let frequentAdgScriptletArgsDeserializationMap;
18
+ const getFrequentAdgScriptletArgsDeserializationMap = () => {
19
+ if (!frequentAdgScriptletArgsDeserializationMap) {
20
+ frequentAdgScriptletArgsDeserializationMap = new Map(Array.from(adgScriptletInjectionBodyCommon.FREQUENT_ADG_SCRIPTLET_ARGS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
21
+ }
22
+ return frequentAdgScriptletArgsDeserializationMap;
23
+ };
24
+ class AdgScriptletInjectionBodyDeserializer extends baseDeserializer.BaseDeserializer {
25
+ /**
26
+ * Deserializes a scriptlet call body node from binary format.
27
+ *
28
+ * @param buffer ByteBuffer for reading binary data.
29
+ * @param node Destination node.
30
+ * @throws If the binary data is malformed.
31
+ */
32
+ static deserialize(buffer, node) {
33
+ scriptletBodyDeserializer.ScriptletBodyDeserializer.deserialize(buffer, node, getFrequentAdgScriptletArgsDeserializationMap());
34
+ }
35
+ }
36
+
37
+ exports.AdgScriptletInjectionBodyDeserializer = AdgScriptletInjectionBodyDeserializer;