@adguard/agtree 2.1.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (734) hide show
  1. package/dist/cjs/ast-utils/clone.js +65 -0
  2. package/dist/cjs/ast-utils/modifiers.js +56 -0
  3. package/dist/cjs/ast-utils/network-rules.js +43 -0
  4. package/dist/cjs/ast-utils/scriptlets.js +93 -0
  5. package/dist/cjs/common/abp-snippet-injection-body-common.js +18 -0
  6. package/dist/cjs/common/agent-common.js +58 -0
  7. package/dist/cjs/common/ubo-selector-common.js +18 -0
  8. package/dist/cjs/compatibility-tables/base.js +264 -0
  9. package/dist/cjs/compatibility-tables/compatibility-table-data.js +15 -0
  10. package/dist/cjs/compatibility-tables/modifiers.js +57 -0
  11. package/dist/cjs/compatibility-tables/platforms.js +58 -0
  12. package/dist/cjs/compatibility-tables/redirects.js +102 -0
  13. package/dist/cjs/compatibility-tables/schemas/base.js +116 -0
  14. package/dist/cjs/compatibility-tables/schemas/modifier.js +107 -0
  15. package/dist/cjs/compatibility-tables/schemas/platform.js +71 -0
  16. package/dist/cjs/compatibility-tables/schemas/redirect.js +31 -0
  17. package/dist/cjs/compatibility-tables/schemas/resource-type.js +39 -0
  18. package/dist/cjs/compatibility-tables/schemas/scriptlet.js +81 -0
  19. package/dist/cjs/compatibility-tables/scriptlets.js +30 -0
  20. package/dist/cjs/compatibility-tables/utils/platform-helpers.js +112 -0
  21. package/dist/cjs/compatibility-tables/utils/resource-type-helpers.js +64 -0
  22. package/dist/cjs/compatibility-tables/utils/zod-camelcase.js +27 -0
  23. package/dist/cjs/converter/base-interfaces/base-converter.js +61 -0
  24. package/dist/cjs/converter/base-interfaces/conversion-result.js +41 -0
  25. package/dist/cjs/converter/base-interfaces/rule-converter-base.js +62 -0
  26. package/dist/cjs/converter/comment/index.js +56 -0
  27. package/dist/cjs/converter/cosmetic/css.js +71 -0
  28. package/dist/cjs/converter/cosmetic/element-hiding.js +64 -0
  29. package/dist/cjs/converter/cosmetic/header-removal.js +126 -0
  30. package/dist/cjs/converter/cosmetic/html.js +384 -0
  31. package/dist/cjs/converter/cosmetic/index.js +120 -0
  32. package/dist/cjs/converter/cosmetic/rule-modifiers/adg.js +81 -0
  33. package/dist/cjs/converter/cosmetic/scriptlet.js +356 -0
  34. package/dist/cjs/converter/css/index.js +193 -0
  35. package/dist/cjs/converter/data/css.js +133 -0
  36. package/dist/cjs/converter/filter-list.js +90 -0
  37. package/dist/cjs/converter/index.js +15 -0
  38. package/dist/cjs/converter/misc/network-rule-modifier.js +313 -0
  39. package/dist/cjs/converter/network/index.js +101 -0
  40. package/dist/cjs/converter/raw-filter-list.js +58 -0
  41. package/dist/cjs/converter/rule.js +83 -0
  42. package/dist/cjs/deserializer/base-deserializer.js +31 -0
  43. package/dist/cjs/deserializer/comment/agent-comment-deserializer.js +76 -0
  44. package/dist/cjs/deserializer/comment/agent-deserializer.js +67 -0
  45. package/dist/cjs/deserializer/comment/comment-rule-deserializer.js +109 -0
  46. package/dist/cjs/deserializer/comment/config-comment-deserializer.js +113 -0
  47. package/dist/cjs/deserializer/comment/hint-comment-deserializer.js +69 -0
  48. package/dist/cjs/deserializer/comment/hint-deserializer.js +88 -0
  49. package/dist/cjs/deserializer/comment/metadata-comment-deserializer.js +71 -0
  50. package/dist/cjs/deserializer/comment/pre-processor-comment-deserializer.js +114 -0
  51. package/dist/cjs/deserializer/comment/simple-comment-deserializer.js +67 -0
  52. package/dist/cjs/deserializer/cosmetic/cosmetic-rule-deserializer.js +127 -0
  53. package/dist/cjs/deserializer/cosmetic/css-injection-body-deserializer.js +55 -0
  54. package/dist/cjs/deserializer/cosmetic/element-hiding-body-deserializer.js +46 -0
  55. package/dist/cjs/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +37 -0
  56. package/dist/cjs/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +37 -0
  57. package/dist/cjs/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +52 -0
  58. package/dist/cjs/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +38 -0
  59. package/dist/cjs/deserializer/empty-rule-deserializer.js +46 -0
  60. package/dist/cjs/deserializer/filterlist-deserializer.js +83 -0
  61. package/dist/cjs/deserializer/index.js +15 -0
  62. package/dist/cjs/deserializer/invalid-rule-deserializer.js +48 -0
  63. package/dist/cjs/deserializer/invalid-rule-error-node-deserializer.js +48 -0
  64. package/dist/cjs/deserializer/misc/domain-list-deserializer.js +66 -0
  65. package/dist/cjs/deserializer/misc/list-item-deserializer.js +65 -0
  66. package/dist/cjs/deserializer/misc/list-items-deserializer.js +28 -0
  67. package/dist/cjs/deserializer/misc/logical-expression-deserializer.js +199 -0
  68. package/dist/cjs/deserializer/misc/modifier-deserializer.js +89 -0
  69. package/dist/cjs/deserializer/misc/modifier-list-deserializer.js +58 -0
  70. package/dist/cjs/deserializer/misc/parameter-list-deserializer.js +62 -0
  71. package/dist/cjs/deserializer/misc/value-deserializer.js +52 -0
  72. package/dist/cjs/deserializer/network/host-rule-deserializer.js +81 -0
  73. package/dist/cjs/deserializer/network/hostname-list-deserializer.js +50 -0
  74. package/dist/cjs/deserializer/network/network-rule-deserializer.js +67 -0
  75. package/dist/cjs/deserializer/rule-deserializer.js +67 -0
  76. package/dist/cjs/deserializer/syntax-deserialization-map.js +23 -0
  77. package/dist/cjs/errors/adblock-syntax-error.js +41 -0
  78. package/dist/cjs/errors/binary-schema-mismatch-error.js +39 -0
  79. package/dist/cjs/errors/not-implemented-error.js +33 -0
  80. package/dist/cjs/errors/rule-conversion-error.js +28 -0
  81. package/dist/cjs/generator/base-generator.js +29 -0
  82. package/dist/cjs/generator/comment/agent-comment-generator.js +30 -0
  83. package/dist/cjs/generator/comment/agent-generator.js +34 -0
  84. package/dist/cjs/generator/comment/comment-rule-generator.js +102 -0
  85. package/dist/cjs/generator/comment/config-comment-generator.js +44 -0
  86. package/dist/cjs/generator/comment/hint-comment-generator.js +27 -0
  87. package/dist/cjs/generator/comment/hint-generator.js +32 -0
  88. package/dist/cjs/generator/comment/metadata-comment-generator.js +32 -0
  89. package/dist/cjs/generator/comment/pre-processor-comment-generator.js +47 -0
  90. package/dist/cjs/generator/comment/simple-comment-generator.js +28 -0
  91. package/dist/cjs/generator/cosmetic/body/abp-snippet-injection-body-generator.js +36 -0
  92. package/dist/cjs/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +41 -0
  93. package/dist/cjs/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +43 -0
  94. package/dist/cjs/generator/cosmetic/cosmetic-rule-body-generator.js +92 -0
  95. package/dist/cjs/generator/cosmetic/cosmetic-rule-generator.js +66 -0
  96. package/dist/cjs/generator/cosmetic/cosmetic-rule-pattern-generator.js +41 -0
  97. package/dist/cjs/generator/css/adg-css-injection-generator.js +41 -0
  98. package/dist/cjs/generator/filterlist-generator.js +57 -0
  99. package/dist/cjs/generator/index.js +17 -0
  100. package/dist/cjs/generator/misc/domain-list-generator.js +25 -0
  101. package/dist/cjs/generator/misc/list-items-generator.js +38 -0
  102. package/dist/cjs/generator/misc/logical-expression-generator.js +47 -0
  103. package/dist/cjs/generator/misc/modifier-generator.js +33 -0
  104. package/dist/cjs/generator/misc/modifier-list-generator.js +28 -0
  105. package/dist/cjs/generator/misc/parameter-list-generator.js +41 -0
  106. package/dist/cjs/generator/misc/value-generator.js +23 -0
  107. package/dist/cjs/generator/network/host-rule-generator.js +38 -0
  108. package/dist/cjs/generator/network/network-rule-generator.js +37 -0
  109. package/dist/cjs/generator/rule-generator.js +64 -0
  110. package/dist/cjs/index.js +201 -0
  111. package/dist/cjs/marshalling-utils/comment/agent-comment-common.js +22 -0
  112. package/dist/cjs/marshalling-utils/comment/agent-common.js +43 -0
  113. package/dist/cjs/marshalling-utils/comment/config-comment-common.js +58 -0
  114. package/dist/cjs/marshalling-utils/comment/hint-comment-common.js +23 -0
  115. package/dist/cjs/marshalling-utils/comment/hint-common.js +60 -0
  116. package/dist/cjs/marshalling-utils/comment/metadata-comment-common.js +44 -0
  117. package/dist/cjs/marshalling-utils/comment/pre-processor-comment-common.js +63 -0
  118. package/dist/cjs/marshalling-utils/comment/simple-comment-common.js +23 -0
  119. package/dist/cjs/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +64 -0
  120. package/dist/cjs/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +68 -0
  121. package/dist/cjs/marshalling-utils/cosmetic/body/css-injection-body-common.js +25 -0
  122. package/dist/cjs/marshalling-utils/cosmetic/body/element-hiding-body-common.js +22 -0
  123. package/dist/cjs/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +116 -0
  124. package/dist/cjs/marshalling-utils/cosmetic/cosmetic-rule-common.js +51 -0
  125. package/dist/cjs/marshalling-utils/empty-rule-common.js +21 -0
  126. package/dist/cjs/marshalling-utils/filter-list-common.js +22 -0
  127. package/dist/cjs/marshalling-utils/invalid-rule-common.js +22 -0
  128. package/dist/cjs/marshalling-utils/invalid-rule-error-node-common.js +23 -0
  129. package/dist/cjs/marshalling-utils/misc/binary-type-common.js +67 -0
  130. package/dist/cjs/marshalling-utils/misc/domain-list-common.js +39 -0
  131. package/dist/cjs/marshalling-utils/misc/host-rule-common.js +26 -0
  132. package/dist/cjs/marshalling-utils/misc/hostname-list-common.js +22 -0
  133. package/dist/cjs/marshalling-utils/misc/list-item-common.js +23 -0
  134. package/dist/cjs/marshalling-utils/misc/logical-expression-common.js +89 -0
  135. package/dist/cjs/marshalling-utils/misc/modifier-common.js +236 -0
  136. package/dist/cjs/marshalling-utils/misc/modifier-list-common.js +22 -0
  137. package/dist/cjs/marshalling-utils/misc/parameter-list-common.js +22 -0
  138. package/dist/cjs/marshalling-utils/misc/value-common.js +23 -0
  139. package/dist/cjs/marshalling-utils/network/network-rule-common.js +26 -0
  140. package/dist/cjs/marshalling-utils/syntax-serialization-map.js +32 -0
  141. package/dist/cjs/nodes/index.js +180 -0
  142. package/dist/cjs/package.json.js +11 -0
  143. package/dist/cjs/parser/base-parser.js +32 -0
  144. package/dist/cjs/parser/comment/agent-comment-parser.js +121 -0
  145. package/dist/cjs/parser/comment/agent-parser.js +111 -0
  146. package/dist/cjs/parser/comment/comment-parser.js +110 -0
  147. package/dist/cjs/parser/comment/config-comment-parser.js +139 -0
  148. package/dist/cjs/parser/comment/hint-comment-parser.js +119 -0
  149. package/dist/cjs/parser/comment/hint-parser.js +131 -0
  150. package/dist/cjs/parser/comment/metadata-comment-parser.js +131 -0
  151. package/dist/cjs/parser/comment/preprocessor-parser.js +201 -0
  152. package/dist/cjs/parser/comment/simple-comment-parser.js +108 -0
  153. package/dist/cjs/parser/cosmetic/body/abp-snippet-injection-body-parser.js +81 -0
  154. package/dist/cjs/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +151 -0
  155. package/dist/cjs/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +112 -0
  156. package/dist/cjs/parser/cosmetic/cosmetic-rule-parser.js +456 -0
  157. package/dist/cjs/parser/css/adg-css-injection-parser.js +213 -0
  158. package/dist/cjs/parser/css/balancing.js +97 -0
  159. package/dist/cjs/parser/css/constants.js +21 -0
  160. package/dist/cjs/parser/css/css-token-stream.js +345 -0
  161. package/dist/cjs/parser/css/ubo-selector-parser.js +373 -0
  162. package/dist/cjs/parser/filterlist-parser.js +104 -0
  163. package/dist/cjs/parser/index.js +21 -0
  164. package/dist/cjs/parser/misc/app-list-parser.js +47 -0
  165. package/dist/cjs/parser/misc/domain-list-parser.js +54 -0
  166. package/dist/cjs/parser/misc/list-items-parser.js +116 -0
  167. package/dist/cjs/parser/misc/logical-expression-parser.js +283 -0
  168. package/dist/cjs/parser/misc/method-list-parser.js +48 -0
  169. package/dist/cjs/parser/misc/modifier-list.js +72 -0
  170. package/dist/cjs/parser/misc/modifier-parser.js +91 -0
  171. package/dist/cjs/parser/misc/parameter-list-parser.js +74 -0
  172. package/dist/cjs/parser/misc/stealth-option-list-parser.js +48 -0
  173. package/dist/cjs/parser/misc/ubo-parameter-list-parser.js +148 -0
  174. package/dist/cjs/parser/misc/value-parser.js +39 -0
  175. package/dist/cjs/parser/network/host-rule-parser.js +151 -0
  176. package/dist/cjs/parser/network/network-rule-parser.js +113 -0
  177. package/dist/cjs/parser/options.js +25 -0
  178. package/dist/cjs/parser/rule-parser.js +194 -0
  179. package/dist/cjs/serializer/base-serializer.js +31 -0
  180. package/dist/cjs/serializer/comment/agent-comment-serializer.js +73 -0
  181. package/dist/cjs/serializer/comment/agent-serializer.js +70 -0
  182. package/dist/cjs/serializer/comment/comment-rule-serializer.js +107 -0
  183. package/dist/cjs/serializer/comment/config-comment-serializer.js +84 -0
  184. package/dist/cjs/serializer/comment/hint-comment-serializer.js +64 -0
  185. package/dist/cjs/serializer/comment/hint-serializer.js +56 -0
  186. package/dist/cjs/serializer/comment/metadata-comment-serializer.js +75 -0
  187. package/dist/cjs/serializer/comment/pre-processor-comment-serializer.js +73 -0
  188. package/dist/cjs/serializer/comment/simple-comment-serializer.js +54 -0
  189. package/dist/cjs/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +38 -0
  190. package/dist/cjs/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +38 -0
  191. package/dist/cjs/serializer/cosmetic/body/scriptlet-body-serializer.js +49 -0
  192. package/dist/cjs/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +38 -0
  193. package/dist/cjs/serializer/cosmetic/cosmetic-rule-serializer.js +131 -0
  194. package/dist/cjs/serializer/cosmetic/css-injection-body-serializer.js +50 -0
  195. package/dist/cjs/serializer/cosmetic/element-hiding-body-serializer.js +39 -0
  196. package/dist/cjs/serializer/empty-rule-serializer.js +36 -0
  197. package/dist/cjs/serializer/filterlist-serializer.js +48 -0
  198. package/dist/cjs/serializer/index.js +13 -0
  199. package/dist/cjs/serializer/invalid-rule-error-node-serializer.js +40 -0
  200. package/dist/cjs/serializer/invalid-rule-serializer.js +39 -0
  201. package/dist/cjs/serializer/misc/domain-list-serializer.js +66 -0
  202. package/dist/cjs/serializer/misc/list-item-serializer.js +57 -0
  203. package/dist/cjs/serializer/misc/list-items-serializer.js +28 -0
  204. package/dist/cjs/serializer/misc/logical-expression-serializer.js +138 -0
  205. package/dist/cjs/serializer/misc/modifier-list-serializer.js +57 -0
  206. package/dist/cjs/serializer/misc/modifier-serializer.js +51 -0
  207. package/dist/cjs/serializer/misc/parameter-list-serializer.js +51 -0
  208. package/dist/cjs/serializer/misc/value-serializer.js +52 -0
  209. package/dist/cjs/serializer/network/host-rule-serializer.js +72 -0
  210. package/dist/cjs/serializer/network/hostname-list-serializer.js +49 -0
  211. package/dist/cjs/serializer/network/network-rule-serializer.js +56 -0
  212. package/dist/cjs/serializer/rule-serializer.js +63 -0
  213. package/dist/cjs/utils/adblockers.js +57 -0
  214. package/dist/cjs/utils/binary-schema-version.js +19 -0
  215. package/dist/cjs/utils/byte-buffer.js +93 -0
  216. package/dist/cjs/utils/categorizer.js +46 -0
  217. package/dist/cjs/utils/clone.js +30 -0
  218. package/dist/cjs/utils/constants.js +380 -0
  219. package/dist/cjs/utils/cosmetic-rule-separator.js +129 -0
  220. package/dist/cjs/utils/deep-freeze.js +34 -0
  221. package/dist/cjs/utils/domain.js +60 -0
  222. package/dist/cjs/utils/error.js +51 -0
  223. package/dist/cjs/utils/index.js +69 -0
  224. package/dist/cjs/utils/input-byte-buffer.js +259 -0
  225. package/dist/cjs/utils/is-chromium.js +22 -0
  226. package/dist/cjs/utils/logical-expression.js +94 -0
  227. package/dist/cjs/utils/multi-value-map.js +35 -0
  228. package/dist/cjs/utils/output-byte-buffer.js +225 -0
  229. package/dist/cjs/utils/position-provider.js +75 -0
  230. package/dist/cjs/utils/quotes.js +218 -0
  231. package/dist/cjs/utils/regexp.js +190 -0
  232. package/dist/cjs/utils/string.js +560 -0
  233. package/dist/cjs/utils/text-decoder-polyfill.js +109 -0
  234. package/dist/cjs/utils/text-encoder-polyfill.js +80 -0
  235. package/dist/cjs/utils/type-guards.js +52 -0
  236. package/dist/cjs/validator/constants.js +222 -0
  237. package/dist/cjs/validator/helpers.js +49 -0
  238. package/dist/cjs/validator/index.js +176 -0
  239. package/dist/cjs/validator/value.js +565 -0
  240. package/dist/cjs/version.js +20 -0
  241. package/dist/esm/ast-utils/clone.mjs +61 -0
  242. package/dist/esm/ast-utils/modifiers.mjs +53 -0
  243. package/dist/esm/ast-utils/network-rules.mjs +41 -0
  244. package/dist/esm/ast-utils/scriptlets.mjs +87 -0
  245. package/dist/esm/common/abp-snippet-injection-body-common.mjs +16 -0
  246. package/dist/esm/common/agent-common.mjs +56 -0
  247. package/dist/esm/common/ubo-selector-common.mjs +18 -0
  248. package/dist/esm/compatibility-tables/base.mjs +262 -0
  249. package/dist/esm/compatibility-tables/compatibility-table-data.mjs +11 -0
  250. package/dist/esm/compatibility-tables/modifiers.mjs +55 -0
  251. package/dist/esm/compatibility-tables/platforms.mjs +58 -0
  252. package/dist/esm/compatibility-tables/redirects.mjs +100 -0
  253. package/dist/esm/compatibility-tables/schemas/base.mjs +111 -0
  254. package/dist/esm/compatibility-tables/schemas/modifier.mjs +105 -0
  255. package/dist/esm/compatibility-tables/schemas/platform.mjs +69 -0
  256. package/dist/esm/compatibility-tables/schemas/redirect.mjs +29 -0
  257. package/dist/esm/compatibility-tables/schemas/resource-type.mjs +37 -0
  258. package/dist/esm/compatibility-tables/schemas/scriptlet.mjs +79 -0
  259. package/dist/esm/compatibility-tables/scriptlets.mjs +28 -0
  260. package/dist/esm/compatibility-tables/utils/platform-helpers.mjs +105 -0
  261. package/dist/esm/compatibility-tables/utils/resource-type-helpers.mjs +61 -0
  262. package/dist/esm/compatibility-tables/utils/zod-camelcase.mjs +25 -0
  263. package/dist/esm/converter/base-interfaces/base-converter.mjs +59 -0
  264. package/dist/esm/converter/base-interfaces/conversion-result.mjs +38 -0
  265. package/dist/esm/converter/base-interfaces/rule-converter-base.mjs +60 -0
  266. package/dist/esm/converter/comment/index.mjs +54 -0
  267. package/dist/esm/converter/cosmetic/css.mjs +69 -0
  268. package/dist/esm/converter/cosmetic/element-hiding.mjs +62 -0
  269. package/dist/esm/converter/cosmetic/header-removal.mjs +123 -0
  270. package/dist/esm/converter/cosmetic/html.mjs +381 -0
  271. package/dist/esm/converter/cosmetic/index.mjs +118 -0
  272. package/dist/esm/converter/cosmetic/rule-modifiers/adg.mjs +79 -0
  273. package/dist/esm/converter/cosmetic/scriptlet.mjs +354 -0
  274. package/dist/esm/converter/css/index.mjs +190 -0
  275. package/dist/esm/converter/data/css.mjs +126 -0
  276. package/dist/esm/converter/filter-list.mjs +88 -0
  277. package/dist/esm/converter/index.mjs +8 -0
  278. package/dist/esm/converter/misc/network-rule-modifier.mjs +311 -0
  279. package/dist/esm/converter/network/index.mjs +99 -0
  280. package/dist/esm/converter/raw-filter-list.mjs +56 -0
  281. package/dist/esm/converter/rule.mjs +81 -0
  282. package/dist/esm/deserializer/base-deserializer.mjs +29 -0
  283. package/dist/esm/deserializer/comment/agent-comment-deserializer.mjs +74 -0
  284. package/dist/esm/deserializer/comment/agent-deserializer.mjs +65 -0
  285. package/dist/esm/deserializer/comment/comment-rule-deserializer.mjs +107 -0
  286. package/dist/esm/deserializer/comment/config-comment-deserializer.mjs +111 -0
  287. package/dist/esm/deserializer/comment/hint-comment-deserializer.mjs +67 -0
  288. package/dist/esm/deserializer/comment/hint-deserializer.mjs +85 -0
  289. package/dist/esm/deserializer/comment/metadata-comment-deserializer.mjs +69 -0
  290. package/dist/esm/deserializer/comment/pre-processor-comment-deserializer.mjs +112 -0
  291. package/dist/esm/deserializer/comment/simple-comment-deserializer.mjs +65 -0
  292. package/dist/esm/deserializer/cosmetic/cosmetic-rule-deserializer.mjs +125 -0
  293. package/dist/esm/deserializer/cosmetic/css-injection-body-deserializer.mjs +53 -0
  294. package/dist/esm/deserializer/cosmetic/element-hiding-body-deserializer.mjs +44 -0
  295. package/dist/esm/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.mjs +35 -0
  296. package/dist/esm/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.mjs +35 -0
  297. package/dist/esm/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.mjs +50 -0
  298. package/dist/esm/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.mjs +35 -0
  299. package/dist/esm/deserializer/empty-rule-deserializer.mjs +44 -0
  300. package/dist/esm/deserializer/filterlist-deserializer.mjs +81 -0
  301. package/dist/esm/deserializer/index.mjs +8 -0
  302. package/dist/esm/deserializer/invalid-rule-deserializer.mjs +46 -0
  303. package/dist/esm/deserializer/invalid-rule-error-node-deserializer.mjs +46 -0
  304. package/dist/esm/deserializer/misc/domain-list-deserializer.mjs +64 -0
  305. package/dist/esm/deserializer/misc/list-item-deserializer.mjs +63 -0
  306. package/dist/esm/deserializer/misc/list-items-deserializer.mjs +26 -0
  307. package/dist/esm/deserializer/misc/logical-expression-deserializer.mjs +196 -0
  308. package/dist/esm/deserializer/misc/modifier-deserializer.mjs +87 -0
  309. package/dist/esm/deserializer/misc/modifier-list-deserializer.mjs +56 -0
  310. package/dist/esm/deserializer/misc/parameter-list-deserializer.mjs +60 -0
  311. package/dist/esm/deserializer/misc/value-deserializer.mjs +50 -0
  312. package/dist/esm/deserializer/network/host-rule-deserializer.mjs +79 -0
  313. package/dist/esm/deserializer/network/hostname-list-deserializer.mjs +48 -0
  314. package/dist/esm/deserializer/network/network-rule-deserializer.mjs +65 -0
  315. package/dist/esm/deserializer/rule-deserializer.mjs +65 -0
  316. package/dist/esm/deserializer/syntax-deserialization-map.mjs +21 -0
  317. package/dist/esm/errors/adblock-syntax-error.mjs +39 -0
  318. package/dist/esm/errors/binary-schema-mismatch-error.mjs +37 -0
  319. package/dist/esm/errors/not-implemented-error.mjs +31 -0
  320. package/dist/esm/errors/rule-conversion-error.mjs +26 -0
  321. package/dist/esm/generator/base-generator.mjs +27 -0
  322. package/dist/esm/generator/comment/agent-comment-generator.mjs +28 -0
  323. package/dist/esm/generator/comment/agent-generator.mjs +32 -0
  324. package/dist/esm/generator/comment/comment-rule-generator.mjs +100 -0
  325. package/dist/esm/generator/comment/config-comment-generator.mjs +42 -0
  326. package/dist/esm/generator/comment/hint-comment-generator.mjs +25 -0
  327. package/dist/esm/generator/comment/hint-generator.mjs +30 -0
  328. package/dist/esm/generator/comment/metadata-comment-generator.mjs +30 -0
  329. package/dist/esm/generator/comment/pre-processor-comment-generator.mjs +45 -0
  330. package/dist/esm/generator/comment/simple-comment-generator.mjs +26 -0
  331. package/dist/esm/generator/cosmetic/body/abp-snippet-injection-body-generator.mjs +34 -0
  332. package/dist/esm/generator/cosmetic/body/adg-scriptlet-injection-body-generator.mjs +39 -0
  333. package/dist/esm/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.mjs +41 -0
  334. package/dist/esm/generator/cosmetic/cosmetic-rule-body-generator.mjs +90 -0
  335. package/dist/esm/generator/cosmetic/cosmetic-rule-generator.mjs +64 -0
  336. package/dist/esm/generator/cosmetic/cosmetic-rule-pattern-generator.mjs +39 -0
  337. package/dist/esm/generator/css/adg-css-injection-generator.mjs +39 -0
  338. package/dist/esm/generator/filterlist-generator.mjs +55 -0
  339. package/dist/esm/generator/index.mjs +9 -0
  340. package/dist/esm/generator/misc/domain-list-generator.mjs +23 -0
  341. package/dist/esm/generator/misc/list-items-generator.mjs +36 -0
  342. package/dist/esm/generator/misc/logical-expression-generator.mjs +45 -0
  343. package/dist/esm/generator/misc/modifier-generator.mjs +31 -0
  344. package/dist/esm/generator/misc/modifier-list-generator.mjs +26 -0
  345. package/dist/esm/generator/misc/parameter-list-generator.mjs +39 -0
  346. package/dist/esm/generator/misc/value-generator.mjs +21 -0
  347. package/dist/esm/generator/network/host-rule-generator.mjs +36 -0
  348. package/dist/esm/generator/network/network-rule-generator.mjs +35 -0
  349. package/dist/esm/generator/rule-generator.mjs +62 -0
  350. package/dist/esm/index.mjs +70 -0
  351. package/dist/esm/marshalling-utils/comment/agent-comment-common.mjs +22 -0
  352. package/dist/esm/marshalling-utils/comment/agent-common.mjs +41 -0
  353. package/dist/esm/marshalling-utils/comment/config-comment-common.mjs +56 -0
  354. package/dist/esm/marshalling-utils/comment/hint-comment-common.mjs +23 -0
  355. package/dist/esm/marshalling-utils/comment/hint-common.mjs +57 -0
  356. package/dist/esm/marshalling-utils/comment/metadata-comment-common.mjs +42 -0
  357. package/dist/esm/marshalling-utils/comment/pre-processor-comment-common.mjs +60 -0
  358. package/dist/esm/marshalling-utils/comment/simple-comment-common.mjs +23 -0
  359. package/dist/esm/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.mjs +62 -0
  360. package/dist/esm/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.mjs +66 -0
  361. package/dist/esm/marshalling-utils/cosmetic/body/css-injection-body-common.mjs +25 -0
  362. package/dist/esm/marshalling-utils/cosmetic/body/element-hiding-body-common.mjs +22 -0
  363. package/dist/esm/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.mjs +114 -0
  364. package/dist/esm/marshalling-utils/cosmetic/cosmetic-rule-common.mjs +49 -0
  365. package/dist/esm/marshalling-utils/empty-rule-common.mjs +21 -0
  366. package/dist/esm/marshalling-utils/filter-list-common.mjs +22 -0
  367. package/dist/esm/marshalling-utils/invalid-rule-common.mjs +22 -0
  368. package/dist/esm/marshalling-utils/invalid-rule-error-node-common.mjs +23 -0
  369. package/dist/esm/marshalling-utils/misc/binary-type-common.mjs +67 -0
  370. package/dist/esm/marshalling-utils/misc/domain-list-common.mjs +37 -0
  371. package/dist/esm/marshalling-utils/misc/host-rule-common.mjs +26 -0
  372. package/dist/esm/marshalling-utils/misc/hostname-list-common.mjs +22 -0
  373. package/dist/esm/marshalling-utils/misc/list-item-common.mjs +23 -0
  374. package/dist/esm/marshalling-utils/misc/logical-expression-common.mjs +86 -0
  375. package/dist/esm/marshalling-utils/misc/modifier-common.mjs +232 -0
  376. package/dist/esm/marshalling-utils/misc/modifier-list-common.mjs +22 -0
  377. package/dist/esm/marshalling-utils/misc/parameter-list-common.mjs +22 -0
  378. package/dist/esm/marshalling-utils/misc/value-common.mjs +23 -0
  379. package/dist/esm/marshalling-utils/network/network-rule-common.mjs +26 -0
  380. package/dist/esm/marshalling-utils/syntax-serialization-map.mjs +30 -0
  381. package/dist/esm/nodes/index.mjs +180 -0
  382. package/dist/esm/package.json.mjs +9 -0
  383. package/dist/esm/parser/base-parser.mjs +30 -0
  384. package/dist/esm/parser/comment/agent-comment-parser.mjs +119 -0
  385. package/dist/esm/parser/comment/agent-parser.mjs +109 -0
  386. package/dist/esm/parser/comment/comment-parser.mjs +108 -0
  387. package/dist/esm/parser/comment/config-comment-parser.mjs +137 -0
  388. package/dist/esm/parser/comment/hint-comment-parser.mjs +117 -0
  389. package/dist/esm/parser/comment/hint-parser.mjs +129 -0
  390. package/dist/esm/parser/comment/metadata-comment-parser.mjs +129 -0
  391. package/dist/esm/parser/comment/preprocessor-parser.mjs +199 -0
  392. package/dist/esm/parser/comment/simple-comment-parser.mjs +106 -0
  393. package/dist/esm/parser/cosmetic/body/abp-snippet-injection-body-parser.mjs +79 -0
  394. package/dist/esm/parser/cosmetic/body/adg-scriptlet-injection-body-parser.mjs +149 -0
  395. package/dist/esm/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.mjs +110 -0
  396. package/dist/esm/parser/cosmetic/cosmetic-rule-parser.mjs +453 -0
  397. package/dist/esm/parser/css/adg-css-injection-parser.mjs +208 -0
  398. package/dist/esm/parser/css/balancing.mjs +94 -0
  399. package/dist/esm/parser/css/constants.mjs +18 -0
  400. package/dist/esm/parser/css/css-token-stream.mjs +343 -0
  401. package/dist/esm/parser/css/ubo-selector-parser.mjs +369 -0
  402. package/dist/esm/parser/filterlist-parser.mjs +102 -0
  403. package/dist/esm/parser/index.mjs +11 -0
  404. package/dist/esm/parser/misc/app-list-parser.mjs +45 -0
  405. package/dist/esm/parser/misc/domain-list-parser.mjs +52 -0
  406. package/dist/esm/parser/misc/list-items-parser.mjs +113 -0
  407. package/dist/esm/parser/misc/logical-expression-parser.mjs +281 -0
  408. package/dist/esm/parser/misc/method-list-parser.mjs +46 -0
  409. package/dist/esm/parser/misc/modifier-list.mjs +70 -0
  410. package/dist/esm/parser/misc/modifier-parser.mjs +89 -0
  411. package/dist/esm/parser/misc/parameter-list-parser.mjs +72 -0
  412. package/dist/esm/parser/misc/stealth-option-list-parser.mjs +46 -0
  413. package/dist/esm/parser/misc/ubo-parameter-list-parser.mjs +146 -0
  414. package/dist/esm/parser/misc/value-parser.mjs +37 -0
  415. package/dist/esm/parser/network/host-rule-parser.mjs +130 -0
  416. package/dist/esm/parser/network/network-rule-parser.mjs +111 -0
  417. package/dist/esm/parser/options.mjs +23 -0
  418. package/dist/esm/parser/rule-parser.mjs +192 -0
  419. package/dist/esm/serializer/base-serializer.mjs +29 -0
  420. package/dist/esm/serializer/comment/agent-comment-serializer.mjs +71 -0
  421. package/dist/esm/serializer/comment/agent-serializer.mjs +68 -0
  422. package/dist/esm/serializer/comment/comment-rule-serializer.mjs +105 -0
  423. package/dist/esm/serializer/comment/config-comment-serializer.mjs +82 -0
  424. package/dist/esm/serializer/comment/hint-comment-serializer.mjs +62 -0
  425. package/dist/esm/serializer/comment/hint-serializer.mjs +54 -0
  426. package/dist/esm/serializer/comment/metadata-comment-serializer.mjs +73 -0
  427. package/dist/esm/serializer/comment/pre-processor-comment-serializer.mjs +71 -0
  428. package/dist/esm/serializer/comment/simple-comment-serializer.mjs +52 -0
  429. package/dist/esm/serializer/cosmetic/body/abp-snippet-injection-body-serializer.mjs +36 -0
  430. package/dist/esm/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.mjs +36 -0
  431. package/dist/esm/serializer/cosmetic/body/scriptlet-body-serializer.mjs +47 -0
  432. package/dist/esm/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.mjs +36 -0
  433. package/dist/esm/serializer/cosmetic/cosmetic-rule-serializer.mjs +129 -0
  434. package/dist/esm/serializer/cosmetic/css-injection-body-serializer.mjs +48 -0
  435. package/dist/esm/serializer/cosmetic/element-hiding-body-serializer.mjs +37 -0
  436. package/dist/esm/serializer/empty-rule-serializer.mjs +34 -0
  437. package/dist/esm/serializer/filterlist-serializer.mjs +46 -0
  438. package/dist/esm/serializer/index.mjs +7 -0
  439. package/dist/esm/serializer/invalid-rule-error-node-serializer.mjs +38 -0
  440. package/dist/esm/serializer/invalid-rule-serializer.mjs +37 -0
  441. package/dist/esm/serializer/misc/domain-list-serializer.mjs +64 -0
  442. package/dist/esm/serializer/misc/list-item-serializer.mjs +55 -0
  443. package/dist/esm/serializer/misc/list-items-serializer.mjs +26 -0
  444. package/dist/esm/serializer/misc/logical-expression-serializer.mjs +136 -0
  445. package/dist/esm/serializer/misc/modifier-list-serializer.mjs +55 -0
  446. package/dist/esm/serializer/misc/modifier-serializer.mjs +49 -0
  447. package/dist/esm/serializer/misc/parameter-list-serializer.mjs +49 -0
  448. package/dist/esm/serializer/misc/value-serializer.mjs +50 -0
  449. package/dist/esm/serializer/network/host-rule-serializer.mjs +70 -0
  450. package/dist/esm/serializer/network/hostname-list-serializer.mjs +47 -0
  451. package/dist/esm/serializer/network/network-rule-serializer.mjs +54 -0
  452. package/dist/esm/serializer/rule-serializer.mjs +61 -0
  453. package/dist/esm/utils/adblockers.mjs +57 -0
  454. package/dist/esm/utils/binary-schema-version.mjs +17 -0
  455. package/dist/esm/utils/byte-buffer.mjs +91 -0
  456. package/dist/esm/utils/categorizer.mjs +44 -0
  457. package/dist/esm/utils/clone.mjs +28 -0
  458. package/dist/esm/utils/constants.mjs +249 -0
  459. package/dist/esm/utils/cosmetic-rule-separator.mjs +127 -0
  460. package/dist/esm/utils/deep-freeze.mjs +32 -0
  461. package/dist/esm/utils/domain.mjs +56 -0
  462. package/dist/esm/utils/error.mjs +49 -0
  463. package/dist/esm/utils/index.mjs +21 -0
  464. package/dist/esm/utils/input-byte-buffer.mjs +257 -0
  465. package/dist/esm/utils/is-chromium.mjs +20 -0
  466. package/dist/esm/utils/logical-expression.mjs +92 -0
  467. package/dist/esm/utils/multi-value-map.mjs +33 -0
  468. package/dist/esm/utils/output-byte-buffer.mjs +223 -0
  469. package/dist/esm/utils/position-provider.mjs +73 -0
  470. package/dist/esm/utils/quotes.mjs +215 -0
  471. package/dist/esm/utils/regexp.mjs +176 -0
  472. package/dist/esm/utils/string.mjs +556 -0
  473. package/dist/esm/utils/text-decoder-polyfill.mjs +107 -0
  474. package/dist/esm/utils/text-encoder-polyfill.mjs +78 -0
  475. package/dist/esm/utils/type-guards.mjs +47 -0
  476. package/dist/esm/validator/constants.mjs +210 -0
  477. package/dist/esm/validator/helpers.mjs +45 -0
  478. package/dist/esm/validator/index.mjs +174 -0
  479. package/dist/esm/validator/value.mjs +563 -0
  480. package/dist/esm/version.mjs +18 -0
  481. package/dist/types/ast-utils/clone.d.ts +26 -0
  482. package/dist/types/ast-utils/filter-list.d.ts +11 -0
  483. package/dist/types/ast-utils/modifiers.d.ts +20 -0
  484. package/dist/types/ast-utils/network-rules.d.ts +15 -0
  485. package/dist/types/ast-utils/scriptlets.d.ts +52 -0
  486. package/dist/types/common/abp-snippet-injection-body-common.d.ts +8 -0
  487. package/dist/types/common/agent-common.d.ts +10 -0
  488. package/dist/types/common/ubo-selector-common.d.ts +9 -0
  489. package/dist/types/compatibility-tables/base.d.ts +157 -0
  490. package/dist/types/compatibility-tables/compatibility-table-data.d.ts +67 -0
  491. package/dist/types/compatibility-tables/index.d.ts +13 -0
  492. package/dist/types/compatibility-tables/modifiers.d.ts +22 -0
  493. package/dist/types/compatibility-tables/platforms.d.ts +47 -0
  494. package/dist/types/compatibility-tables/redirects.d.ts +33 -0
  495. package/dist/types/compatibility-tables/schemas/base.d.ts +135 -0
  496. package/dist/types/compatibility-tables/schemas/index.d.ts +8 -0
  497. package/dist/types/compatibility-tables/schemas/modifier.d.ts +31 -0
  498. package/dist/types/compatibility-tables/schemas/platform.d.ts +16 -0
  499. package/dist/types/compatibility-tables/schemas/redirect.d.ts +25 -0
  500. package/dist/types/compatibility-tables/schemas/resource-type.d.ts +27 -0
  501. package/dist/types/compatibility-tables/schemas/scriptlet.d.ts +31 -0
  502. package/dist/types/compatibility-tables/scriptlets.d.ts +15 -0
  503. package/dist/types/compatibility-tables/types.d.ts +34 -0
  504. package/dist/types/compatibility-tables/utils/platform-helpers.d.ts +44 -0
  505. package/dist/types/compatibility-tables/utils/resource-type-helpers.d.ts +20 -0
  506. package/dist/types/compatibility-tables/utils/zod-camelcase.d.ts +15 -0
  507. package/dist/types/converter/base-interfaces/base-converter.d.ts +42 -0
  508. package/dist/types/converter/base-interfaces/conversion-result.d.ts +43 -0
  509. package/dist/types/converter/base-interfaces/rule-converter-base.d.ts +44 -0
  510. package/dist/types/converter/comment/index.d.ts +23 -0
  511. package/dist/types/converter/cosmetic/css.d.ts +23 -0
  512. package/dist/types/converter/cosmetic/element-hiding.d.ts +23 -0
  513. package/dist/types/converter/cosmetic/header-removal.d.ts +37 -0
  514. package/dist/types/converter/cosmetic/html.d.ts +54 -0
  515. package/dist/types/converter/cosmetic/index.d.ts +33 -0
  516. package/dist/types/converter/cosmetic/rule-modifiers/adg.d.ts +21 -0
  517. package/dist/types/converter/cosmetic/scriptlet.d.ts +33 -0
  518. package/dist/types/converter/css/index.d.ts +23 -0
  519. package/dist/types/converter/data/css.d.ts +48 -0
  520. package/dist/types/converter/filter-list.d.ts +31 -0
  521. package/dist/types/converter/index.d.ts +5 -0
  522. package/dist/types/converter/misc/network-rule-modifier.d.ts +35 -0
  523. package/dist/types/converter/network/index.d.ts +33 -0
  524. package/dist/types/converter/raw-filter-list.d.ts +31 -0
  525. package/dist/types/converter/raw-rule.d.ts +28 -0
  526. package/dist/types/converter/rule.d.ts +37 -0
  527. package/dist/types/deserializer/base-deserializer.d.ts +15 -0
  528. package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +34 -0
  529. package/dist/types/deserializer/comment/agent-deserializer.d.ts +25 -0
  530. package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +69 -0
  531. package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +27 -0
  532. package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +24 -0
  533. package/dist/types/deserializer/comment/hint-deserializer.d.ts +26 -0
  534. package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +26 -0
  535. package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +29 -0
  536. package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +26 -0
  537. package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +12 -0
  538. package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +12 -0
  539. package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +12 -0
  540. package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +13 -0
  541. package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +13 -0
  542. package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +15 -0
  543. package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +14 -0
  544. package/dist/types/deserializer/empty-rule-deserializer.d.ts +12 -0
  545. package/dist/types/deserializer/filterlist-deserializer.d.ts +30 -0
  546. package/dist/types/deserializer/index.d.ts +2 -0
  547. package/dist/types/deserializer/invalid-rule-deserializer.d.ts +12 -0
  548. package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +12 -0
  549. package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +15 -0
  550. package/dist/types/deserializer/misc/list-item-deserializer.d.ts +13 -0
  551. package/dist/types/deserializer/misc/list-items-deserializer.d.ts +12 -0
  552. package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +55 -0
  553. package/dist/types/deserializer/misc/modifier-deserializer.d.ts +18 -0
  554. package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +20 -0
  555. package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +14 -0
  556. package/dist/types/deserializer/misc/value-deserializer.d.ts +17 -0
  557. package/dist/types/deserializer/network/host-rule-deserializer.d.ts +30 -0
  558. package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +12 -0
  559. package/dist/types/deserializer/network/network-rule-deserializer.d.ts +18 -0
  560. package/dist/types/deserializer/rule-deserializer.d.ts +17 -0
  561. package/dist/types/deserializer/syntax-deserialization-map.d.ts +2 -0
  562. package/dist/types/errors/adblock-syntax-error.d.ts +25 -0
  563. package/dist/types/errors/binary-schema-mismatch-error.d.ts +23 -0
  564. package/dist/types/errors/not-implemented-error.d.ts +14 -0
  565. package/dist/types/errors/rule-conversion-error.d.ts +14 -0
  566. package/dist/types/generator/base-generator.d.ts +12 -0
  567. package/dist/types/generator/comment/agent-comment-generator.d.ts +11 -0
  568. package/dist/types/generator/comment/agent-generator.d.ts +11 -0
  569. package/dist/types/generator/comment/comment-rule-generator.d.ts +67 -0
  570. package/dist/types/generator/comment/config-comment-generator.d.ts +11 -0
  571. package/dist/types/generator/comment/hint-comment-generator.d.ts +11 -0
  572. package/dist/types/generator/comment/hint-generator.d.ts +11 -0
  573. package/dist/types/generator/comment/index.d.ts +2 -0
  574. package/dist/types/generator/comment/metadata-comment-generator.d.ts +11 -0
  575. package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +11 -0
  576. package/dist/types/generator/comment/simple-comment-generator.d.ts +11 -0
  577. package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +11 -0
  578. package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +17 -0
  579. package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +17 -0
  580. package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +15 -0
  581. package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +36 -0
  582. package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +15 -0
  583. package/dist/types/generator/cosmetic/index.d.ts +1 -0
  584. package/dist/types/generator/css/adg-css-injection-generator.d.ts +12 -0
  585. package/dist/types/generator/css/ubo-selector-generator.d.ts +11 -0
  586. package/dist/types/generator/filterlist-generator.d.ts +17 -0
  587. package/dist/types/generator/index.d.ts +3 -0
  588. package/dist/types/generator/misc/domain-list-generator.d.ts +12 -0
  589. package/dist/types/generator/misc/list-items-generator.d.ts +22 -0
  590. package/dist/types/generator/misc/logical-expression-generator.d.ts +11 -0
  591. package/dist/types/generator/misc/modifier-generator.d.ts +11 -0
  592. package/dist/types/generator/misc/modifier-list-generator.d.ts +11 -0
  593. package/dist/types/generator/misc/parameter-list-generator.d.ts +12 -0
  594. package/dist/types/generator/misc/value-generator.d.ts +11 -0
  595. package/dist/types/generator/network/host-rule-generator.d.ts +11 -0
  596. package/dist/types/generator/network/index.d.ts +2 -0
  597. package/dist/types/generator/network/network-rule-generator.d.ts +11 -0
  598. package/dist/types/generator/rule-generator.d.ts +21 -0
  599. package/dist/types/index.d.ts +55 -0
  600. package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +13 -0
  601. package/dist/types/marshalling-utils/comment/agent-common.d.ts +19 -0
  602. package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +40 -0
  603. package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +14 -0
  604. package/dist/types/marshalling-utils/comment/hint-common.d.ts +32 -0
  605. package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +20 -0
  606. package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +36 -0
  607. package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +14 -0
  608. package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +22 -0
  609. package/dist/types/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.d.ts +9 -0
  610. package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +16 -0
  611. package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +13 -0
  612. package/dist/types/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.d.ts +9 -0
  613. package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +27 -0
  614. package/dist/types/marshalling-utils/empty-rule-common.d.ts +12 -0
  615. package/dist/types/marshalling-utils/filter-list-common.d.ts +13 -0
  616. package/dist/types/marshalling-utils/invalid-rule-common.d.ts +13 -0
  617. package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +14 -0
  618. package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +56 -0
  619. package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +23 -0
  620. package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +17 -0
  621. package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +13 -0
  622. package/dist/types/marshalling-utils/misc/list-item-common.d.ts +14 -0
  623. package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +44 -0
  624. package/dist/types/marshalling-utils/misc/modifier-common.d.ts +40 -0
  625. package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +13 -0
  626. package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +13 -0
  627. package/dist/types/marshalling-utils/misc/value-common.d.ts +14 -0
  628. package/dist/types/marshalling-utils/network/network-rule-common.d.ts +17 -0
  629. package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +2 -0
  630. package/dist/types/nodes/index.d.ts +1177 -0
  631. package/dist/types/parser/base-parser.d.ts +16 -0
  632. package/dist/types/parser/comment/agent-comment-parser.d.ts +42 -0
  633. package/dist/types/parser/comment/agent-parser.d.ts +33 -0
  634. package/dist/types/parser/comment/comment-parser.d.ts +76 -0
  635. package/dist/types/parser/comment/config-comment-parser.d.ts +31 -0
  636. package/dist/types/parser/comment/hint-comment-parser.d.ts +33 -0
  637. package/dist/types/parser/comment/hint-parser.d.ts +30 -0
  638. package/dist/types/parser/comment/metadata-comment-parser.d.ts +29 -0
  639. package/dist/types/parser/comment/preprocessor-parser.d.ts +43 -0
  640. package/dist/types/parser/comment/simple-comment-parser.d.ts +33 -0
  641. package/dist/types/parser/cosmetic/body/abp-snippet-injection-body-parser.d.ts +34 -0
  642. package/dist/types/parser/cosmetic/body/adg-scriptlet-injection-body-parser.d.ts +47 -0
  643. package/dist/types/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.d.ts +44 -0
  644. package/dist/types/parser/cosmetic/cosmetic-rule-parser.d.ts +51 -0
  645. package/dist/types/parser/css/adg-css-injection-parser.d.ts +28 -0
  646. package/dist/types/parser/css/balancing.d.ts +36 -0
  647. package/dist/types/parser/css/constants.d.ts +10 -0
  648. package/dist/types/parser/css/css-token-stream.d.ts +210 -0
  649. package/dist/types/parser/css/ubo-selector-parser.d.ts +46 -0
  650. package/dist/types/parser/filterlist-parser.d.ts +29 -0
  651. package/dist/types/parser/index.d.ts +5 -0
  652. package/dist/types/parser/misc/app-list-parser.d.ts +22 -0
  653. package/dist/types/parser/misc/domain-list-parser.d.ts +26 -0
  654. package/dist/types/parser/misc/list-items-parser.d.ts +34 -0
  655. package/dist/types/parser/misc/logical-expression-parser.d.ts +41 -0
  656. package/dist/types/parser/misc/method-list-parser.d.ts +22 -0
  657. package/dist/types/parser/misc/modifier-list.d.ts +24 -0
  658. package/dist/types/parser/misc/modifier-parser.d.ts +21 -0
  659. package/dist/types/parser/misc/parameter-list-parser.d.ts +14 -0
  660. package/dist/types/parser/misc/stealth-option-list-parser.d.ts +22 -0
  661. package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +18 -0
  662. package/dist/types/parser/misc/value-parser.d.ts +18 -0
  663. package/dist/types/parser/network/host-rule-parser.d.ts +35 -0
  664. package/dist/types/parser/network/network-rule-parser.d.ts +31 -0
  665. package/dist/types/parser/options.d.ts +41 -0
  666. package/dist/types/parser/rule-parser.d.ts +78 -0
  667. package/dist/types/serializer/base-serializer.d.ts +15 -0
  668. package/dist/types/serializer/comment/agent-comment-serializer.d.ts +34 -0
  669. package/dist/types/serializer/comment/agent-serializer.d.ts +24 -0
  670. package/dist/types/serializer/comment/comment-rule-serializer.d.ts +68 -0
  671. package/dist/types/serializer/comment/config-comment-serializer.d.ts +25 -0
  672. package/dist/types/serializer/comment/hint-comment-serializer.d.ts +23 -0
  673. package/dist/types/serializer/comment/hint-serializer.d.ts +24 -0
  674. package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +25 -0
  675. package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +28 -0
  676. package/dist/types/serializer/comment/simple-comment-serializer.d.ts +24 -0
  677. package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +25 -0
  678. package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +25 -0
  679. package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +14 -0
  680. package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +25 -0
  681. package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +26 -0
  682. package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +12 -0
  683. package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +12 -0
  684. package/dist/types/serializer/empty-rule-serializer.d.ts +12 -0
  685. package/dist/types/serializer/filterlist-serializer.d.ts +16 -0
  686. package/dist/types/serializer/index.d.ts +1 -0
  687. package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +12 -0
  688. package/dist/types/serializer/invalid-rule-serializer.d.ts +12 -0
  689. package/dist/types/serializer/misc/domain-list-serializer.d.ts +21 -0
  690. package/dist/types/serializer/misc/list-item-serializer.d.ts +13 -0
  691. package/dist/types/serializer/misc/list-items-serializer.d.ts +12 -0
  692. package/dist/types/serializer/misc/logical-expression-serializer.d.ts +51 -0
  693. package/dist/types/serializer/misc/modifier-list-serializer.d.ts +20 -0
  694. package/dist/types/serializer/misc/modifier-serializer.d.ts +18 -0
  695. package/dist/types/serializer/misc/parameter-list-serializer.d.ts +14 -0
  696. package/dist/types/serializer/misc/value-serializer.d.ts +17 -0
  697. package/dist/types/serializer/network/host-rule-serializer.d.ts +30 -0
  698. package/dist/types/serializer/network/hostname-list-serializer.d.ts +12 -0
  699. package/dist/types/serializer/network/network-rule-serializer.d.ts +18 -0
  700. package/dist/types/serializer/rule-serializer.d.ts +17 -0
  701. package/dist/types/utils/adblockers.d.ts +48 -0
  702. package/dist/types/utils/binary-schema-version.d.ts +9 -0
  703. package/dist/types/utils/byte-buffer.d.ts +54 -0
  704. package/dist/types/utils/categorizer.d.ts +14 -0
  705. package/dist/types/utils/clone.d.ts +15 -0
  706. package/dist/types/utils/constants.d.ts +188 -0
  707. package/dist/types/utils/cosmetic-rule-separator.d.ts +45 -0
  708. package/dist/types/utils/deep-freeze.d.ts +13 -0
  709. package/dist/types/utils/domain.d.ts +26 -0
  710. package/dist/types/utils/error.d.ts +8 -0
  711. package/dist/types/utils/index.d.ts +15 -0
  712. package/dist/types/utils/input-byte-buffer.d.ts +140 -0
  713. package/dist/types/utils/is-chromium.d.ts +7 -0
  714. package/dist/types/utils/logical-expression.d.ts +45 -0
  715. package/dist/types/utils/multi-value-map.d.ts +16 -0
  716. package/dist/types/utils/output-byte-buffer.d.ts +126 -0
  717. package/dist/types/utils/position-provider.d.ts +46 -0
  718. package/dist/types/utils/quotes.d.ts +93 -0
  719. package/dist/types/utils/regexp.d.ts +54 -0
  720. package/dist/types/utils/storage-interface.d.ts +23 -0
  721. package/dist/types/utils/string.d.ts +277 -0
  722. package/dist/types/utils/text-decoder-polyfill.d.ts +14 -0
  723. package/dist/types/utils/text-encoder-polyfill.d.ts +18 -0
  724. package/dist/types/utils/type-guards.d.ts +47 -0
  725. package/dist/types/validator/constants.d.ts +89 -0
  726. package/dist/types/validator/helpers.d.ts +37 -0
  727. package/dist/types/validator/index.d.ts +38 -0
  728. package/dist/types/validator/value.d.ts +11 -0
  729. package/dist/types/version.d.ts +5 -0
  730. package/package.json +91 -37
  731. package/dist/agtree.d.ts +0 -4152
  732. package/dist/agtree.js +0 -15741
  733. package/dist/agtree.mjs +0 -15642
  734. package/dist/compatibility-table-data.js +0 -12634
@@ -0,0 +1,199 @@
1
+ /*
2
+ * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 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 logicalExpressionCommon = require('../../marshalling-utils/misc/logical-expression-common.js');
10
+ var logicalExpressionSerializer = require('../../serializer/misc/logical-expression-serializer.js');
11
+ var constants = require('../../utils/constants.js');
12
+ var typeGuards = require('../../utils/type-guards.js');
13
+ var baseDeserializer = require('../base-deserializer.js');
14
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
15
+
16
+ let logicalExpressionOperatorMarshallingMapReverse;
17
+ const getOperatorBinaryMapReverse = () => {
18
+ if (!logicalExpressionOperatorMarshallingMapReverse) {
19
+ logicalExpressionOperatorMarshallingMapReverse = new Map(Array.from(logicalExpressionCommon.LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP).map(([key, value]) => [value, key]));
20
+ }
21
+ return logicalExpressionOperatorMarshallingMapReverse;
22
+ };
23
+ /**
24
+ * Gets the string representation of the operator from the binary representation.
25
+ *
26
+ * @param binary Binary representation of the operator
27
+ * @returns String representation of the operator
28
+ * @throws If the operator is unknown
29
+ */
30
+ const getOperatorOrFail = (binary) => {
31
+ const operator = getOperatorBinaryMapReverse().get(binary);
32
+ if (typeGuards.isUndefined(operator)) {
33
+ throw new Error(`Unknown operator: ${binary}`);
34
+ }
35
+ return operator;
36
+ };
37
+ /**
38
+ * Deserialization map for known variables.
39
+ */
40
+ let knownVariablesMapReverse;
41
+ const getKnownVariablesMapReverse = () => {
42
+ if (!knownVariablesMapReverse) {
43
+ knownVariablesMapReverse = new Map(Array.from(logicalExpressionCommon.KNOWN_VARIABLES_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
44
+ }
45
+ return knownVariablesMapReverse;
46
+ };
47
+ /**
48
+ * Gets the frequent name of the variable from the binary representation.
49
+ *
50
+ * @param binary Binary representation of the variable
51
+ * @returns Frequent name of the variable
52
+ * @throws If the variable is unknown
53
+ */
54
+ const getFrequentNameOrFail = (binary) => {
55
+ const name = getKnownVariablesMapReverse().get(binary);
56
+ if (typeGuards.isUndefined(name)) {
57
+ throw new Error(`Unknown frequent name: ${binary}`);
58
+ }
59
+ return name;
60
+ };
61
+ /**
62
+ * `LogicalExpressionDeserializer` is responsible for deserializing logical expressions.
63
+ *
64
+ * @example
65
+ * From the following rule:
66
+ * ```adblock
67
+ * !#if (adguard_ext_android_cb || adguard_ext_safari)
68
+ * ```
69
+ * this parser will parse the expression `(adguard_ext_android_cb || adguard_ext_safari)`.
70
+ */
71
+ // TODO: Refactor this class
72
+ class LogicalExpressionDeserializer extends baseDeserializer.BaseDeserializer {
73
+ /**
74
+ * Deserializes a variable node from binary format.
75
+ *
76
+ * @param buffer ByteBuffer for reading binary data.
77
+ * @param node Destination node.
78
+ * @throws If the binary data is malformed.
79
+ */
80
+ static deserializeVariableNode(buffer, node) {
81
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionVariableNode);
82
+ node.type = logicalExpressionSerializer.NodeType.Variable;
83
+ let prop = buffer.readUint8();
84
+ while (prop !== constants.NULL) {
85
+ switch (prop) {
86
+ case logicalExpressionCommon.VariableNodeBinaryPropMarshallingMap.Name:
87
+ node.name = buffer.readString();
88
+ break;
89
+ case logicalExpressionCommon.VariableNodeBinaryPropMarshallingMap.FrequentName:
90
+ node.name = getFrequentNameOrFail(buffer.readUint8());
91
+ break;
92
+ case logicalExpressionCommon.VariableNodeBinaryPropMarshallingMap.Start:
93
+ node.start = buffer.readUint32();
94
+ break;
95
+ case logicalExpressionCommon.VariableNodeBinaryPropMarshallingMap.End:
96
+ node.end = buffer.readUint32();
97
+ break;
98
+ default:
99
+ throw new Error(`Invalid property: ${prop}`);
100
+ }
101
+ prop = buffer.readUint8();
102
+ }
103
+ }
104
+ /**
105
+ * Deserializes a parenthesis node from binary format.
106
+ *
107
+ * @param buffer ByteBuffer for reading binary data.
108
+ * @param node Destination node.
109
+ * @throws If the binary data is malformed.
110
+ */
111
+ static deserializeParenthesisNode(buffer, node) {
112
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionParenthesisNode);
113
+ node.type = logicalExpressionSerializer.NodeType.Parenthesis;
114
+ let prop = buffer.readUint8();
115
+ while (prop !== constants.NULL) {
116
+ switch (prop) {
117
+ case logicalExpressionCommon.ParenthesisNodeBinaryPropMarshallingMap.Expression:
118
+ LogicalExpressionDeserializer.deserialize(buffer, node.expression = {});
119
+ break;
120
+ case logicalExpressionCommon.ParenthesisNodeBinaryPropMarshallingMap.Start:
121
+ node.start = buffer.readUint32();
122
+ break;
123
+ case logicalExpressionCommon.ParenthesisNodeBinaryPropMarshallingMap.End:
124
+ node.end = buffer.readUint32();
125
+ break;
126
+ default:
127
+ throw new Error(`Invalid property: ${prop}`);
128
+ }
129
+ prop = buffer.readUint8();
130
+ }
131
+ }
132
+ /**
133
+ * Deserializes an operator node from binary format.
134
+ *
135
+ * @param buffer ByteBuffer for reading binary data.
136
+ * @param node Destination node.
137
+ * @throws If the binary data is malformed.
138
+ */
139
+ static deserializeOperatorNode(buffer, node) {
140
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionOperatorNode);
141
+ node.type = logicalExpressionSerializer.NodeType.Operator;
142
+ let prop = buffer.readUint8();
143
+ while (prop !== constants.NULL) {
144
+ switch (prop) {
145
+ case logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.Operator:
146
+ node.operator = getOperatorOrFail(buffer.readUint8());
147
+ break;
148
+ case logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.Left:
149
+ LogicalExpressionDeserializer.deserialize(buffer, node.left = {});
150
+ break;
151
+ case logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.Right:
152
+ LogicalExpressionDeserializer.deserialize(buffer, node.right = {});
153
+ break;
154
+ case logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.Start:
155
+ node.start = buffer.readUint32();
156
+ break;
157
+ case logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.End:
158
+ node.end = buffer.readUint32();
159
+ break;
160
+ default:
161
+ throw new Error(`Invalid property: ${prop}`);
162
+ }
163
+ prop = buffer.readUint8();
164
+ }
165
+ }
166
+ /**
167
+ * Deserializes a logical expression node from binary format.
168
+ *
169
+ * @param buffer ByteBuffer for reading binary data.
170
+ * @param node Destination node.
171
+ * @throws If the binary data is malformed.
172
+ */
173
+ static deserialize(buffer, node) {
174
+ // note: we just do a simple lookahead here, because advancing the buffer is done in the
175
+ // 'sub-deserialize' methods
176
+ let type = buffer.peekUint8();
177
+ while (type !== constants.NULL) {
178
+ switch (type) {
179
+ case binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionVariableNode:
180
+ LogicalExpressionDeserializer.deserializeVariableNode(buffer, node);
181
+ break;
182
+ case binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionOperatorNode:
183
+ LogicalExpressionDeserializer.deserializeOperatorNode(buffer, node);
184
+ break;
185
+ case binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionParenthesisNode:
186
+ LogicalExpressionDeserializer.deserializeParenthesisNode(buffer, node);
187
+ break;
188
+ default:
189
+ throw new Error(`Unexpected node type: ${type}`);
190
+ }
191
+ type = buffer.peekUint8();
192
+ }
193
+ // consume NULL
194
+ buffer.readUint8();
195
+ }
196
+ }
197
+
198
+ exports.LogicalExpressionDeserializer = LogicalExpressionDeserializer;
199
+ exports.getFrequentNameOrFail = getFrequentNameOrFail;
@@ -0,0 +1,89 @@
1
+ /*
2
+ * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 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 valueDeserializer = require('./value-deserializer.js');
11
+ var baseDeserializer = require('../base-deserializer.js');
12
+ var modifierCommon = require('../../marshalling-utils/misc/modifier-common.js');
13
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
14
+
15
+ /* eslint-disable no-param-reassign */
16
+ /**
17
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
18
+ * as it allows us to use a single byte to represent frequently used values.
19
+ *
20
+ * @note Only 256 values can be represented this way.
21
+ */
22
+ let frequentModifiersDeserializationMap;
23
+ const getFrequentModifiersDeserializationMap = () => {
24
+ if (!frequentModifiersDeserializationMap) {
25
+ frequentModifiersDeserializationMap = new Map(Array.from(modifierCommon.FREQUENT_MODIFIERS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
26
+ }
27
+ return frequentModifiersDeserializationMap;
28
+ };
29
+ /**
30
+ * Value map for binary deserialization. This helps to reduce the size of the serialized data,
31
+ * as it allows us to use a single byte to represent frequently used values.
32
+ */
33
+ let frequentValuesDeserializationMaps;
34
+ const getFrequentValuesDeserializationMaps = () => {
35
+ if (!frequentValuesDeserializationMaps) {
36
+ frequentValuesDeserializationMaps = new Map(Array.from(modifierCommon.FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP, ([modifier, valueMap]) => [modifier, new Map(Array.from(valueMap, ([key, value]) => [value, key]))]));
37
+ }
38
+ return frequentValuesDeserializationMaps;
39
+ };
40
+ /**
41
+ * `ModifierSerializer` is responsible for serializing modifiers.
42
+ *
43
+ * @example
44
+ * `match-case`, `~third-party`, `domain=example.com|~example.org`
45
+ */
46
+ class ModifierDeserializer extends baseDeserializer.BaseDeserializer {
47
+ /**
48
+ * Deserializes a modifier node from binary format.
49
+ *
50
+ * @param buffer ByteBuffer for reading binary data.
51
+ * @param node Destination node.
52
+ */
53
+ static deserialize(buffer, node) {
54
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ModifierNode);
55
+ node.type = 'Modifier';
56
+ let prop = buffer.readUint8();
57
+ while (prop !== constants.NULL) {
58
+ switch (prop) {
59
+ case modifierCommon.ModifierNodeMarshallingMap.Name:
60
+ // eslint-disable-next-line max-len
61
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.name = {}, getFrequentModifiersDeserializationMap());
62
+ break;
63
+ case modifierCommon.ModifierNodeMarshallingMap.Value:
64
+ if (node.name) {
65
+ // eslint-disable-next-line max-len
66
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.value = {}, getFrequentValuesDeserializationMaps().get(node.name.value));
67
+ }
68
+ else {
69
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.value = {});
70
+ }
71
+ break;
72
+ case modifierCommon.ModifierNodeMarshallingMap.Exception:
73
+ node.exception = buffer.readUint8() === 1;
74
+ break;
75
+ case modifierCommon.ModifierNodeMarshallingMap.Start:
76
+ node.start = buffer.readUint32();
77
+ break;
78
+ case modifierCommon.ModifierNodeMarshallingMap.End:
79
+ node.end = buffer.readUint32();
80
+ break;
81
+ default:
82
+ throw new Error(`Invalid property: ${prop}.`);
83
+ }
84
+ prop = buffer.readUint8();
85
+ }
86
+ }
87
+ }
88
+
89
+ exports.ModifierDeserializer = ModifierDeserializer;
@@ -0,0 +1,58 @@
1
+ /*
2
+ * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 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 modifierDeserializer = require('./modifier-deserializer.js');
12
+ var modifierListCommon = require('../../marshalling-utils/misc/modifier-list-common.js');
13
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
14
+
15
+ /* eslint-disable no-param-reassign */
16
+ /**
17
+ * `ModifierListDeserializer` is responsible for deserializing modifier lists. Please note that the name is not
18
+ * uniform, "modifiers" are also known as "options".
19
+ *
20
+ * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules-modifiers}
21
+ * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#non-basic-rules-modifiers}
22
+ * @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#options}
23
+ */
24
+ class ModifierListDeserializer extends baseDeserializer.BaseDeserializer {
25
+ /**
26
+ * Deserializes a modifier list node from binary format.
27
+ *
28
+ * @param buffer ByteBuffer for reading binary data.
29
+ * @param node Destination node.
30
+ */
31
+ static deserialize(buffer, node) {
32
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ModifierListNode);
33
+ node.type = 'ModifierList';
34
+ let prop = buffer.readUint8();
35
+ while (prop !== constants.NULL) {
36
+ switch (prop) {
37
+ case modifierListCommon.ModifierListNodeMarshallingMap.Children:
38
+ node.children = new Array(buffer.readUint16());
39
+ // read children
40
+ for (let i = 0; i < node.children.length; i += 1) {
41
+ modifierDeserializer.ModifierDeserializer.deserialize(buffer, node.children[i] = {});
42
+ }
43
+ break;
44
+ case modifierListCommon.ModifierListNodeMarshallingMap.Start:
45
+ node.start = buffer.readUint32();
46
+ break;
47
+ case modifierListCommon.ModifierListNodeMarshallingMap.End:
48
+ node.end = buffer.readUint32();
49
+ break;
50
+ default:
51
+ throw new Error(`Invalid property: ${prop}.`);
52
+ }
53
+ prop = buffer.readUint8();
54
+ }
55
+ }
56
+ }
57
+
58
+ exports.ModifierListDeserializer = ModifierListDeserializer;
@@ -0,0 +1,62 @@
1
+ /*
2
+ * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 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 valueDeserializer = require('./value-deserializer.js');
11
+ var baseDeserializer = require('../base-deserializer.js');
12
+ var parameterListCommon = require('../../marshalling-utils/misc/parameter-list-common.js');
13
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
14
+
15
+ class ParameterListDeserializer extends baseDeserializer.BaseDeserializer {
16
+ /**
17
+ * Deserializes a parameter list node from binary format.
18
+ *
19
+ * @param buffer ByteBuffer for reading binary data.
20
+ * @param node Destination node.
21
+ * @param frequentValuesMap Optional map of frequent values.
22
+ * @throws If the binary data is malformed.
23
+ */
24
+ static deserialize(buffer, node, frequentValuesMap) {
25
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ParameterListNode);
26
+ node.type = 'ParameterList';
27
+ let prop = buffer.readUint8();
28
+ while (prop !== constants.NULL) {
29
+ switch (prop) {
30
+ case parameterListCommon.ParameterListNodeMarshallingMap.Children:
31
+ node.children = new Array(buffer.readUint32());
32
+ // read children
33
+ for (let i = 0; i < node.children.length; i += 1) {
34
+ switch (buffer.peekUint8()) {
35
+ case binaryTypeCommon.BinaryTypeMarshallingMap.Null:
36
+ buffer.readUint8();
37
+ node.children[i] = null;
38
+ break;
39
+ case binaryTypeCommon.BinaryTypeMarshallingMap.ValueNode:
40
+ // eslint-disable-next-line max-len
41
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.children[i] = {}, frequentValuesMap);
42
+ break;
43
+ default:
44
+ throw new Error(`Invalid child type: ${buffer.peekUint8()}`);
45
+ }
46
+ }
47
+ break;
48
+ case parameterListCommon.ParameterListNodeMarshallingMap.Start:
49
+ node.start = buffer.readUint32();
50
+ break;
51
+ case parameterListCommon.ParameterListNodeMarshallingMap.End:
52
+ node.end = buffer.readUint32();
53
+ break;
54
+ default:
55
+ throw new Error(`Invalid property: ${prop}`);
56
+ }
57
+ prop = buffer.readUint8();
58
+ }
59
+ }
60
+ }
61
+
62
+ exports.ParameterListDeserializer = ParameterListDeserializer;
@@ -0,0 +1,52 @@
1
+ /*
2
+ * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 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 valueCommon = require('../../marshalling-utils/misc/value-common.js');
12
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
13
+
14
+ /**
15
+ * Value deserializer.
16
+ */
17
+ class ValueDeserializer extends baseDeserializer.BaseDeserializer {
18
+ /**
19
+ * Deserializes a value node from binary format.
20
+ *
21
+ * @param buffer ByteBuffer for reading binary data.
22
+ * @param node Destination node.
23
+ * @param frequentValuesMap Optional map of frequent values.
24
+ * @throws If the binary data is malformed.
25
+ */
26
+ static deserialize(buffer, node, frequentValuesMap) {
27
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ValueNode);
28
+ node.type = 'Value';
29
+ let prop = buffer.readUint8();
30
+ while (prop !== constants.NULL) {
31
+ switch (prop) {
32
+ case valueCommon.ValueNodeMarshallingMap.Value:
33
+ node.value = buffer.readString();
34
+ break;
35
+ case valueCommon.ValueNodeMarshallingMap.FrequentValue:
36
+ node.value = frequentValuesMap?.get(buffer.readUint8()) ?? constants.EMPTY;
37
+ break;
38
+ case valueCommon.ValueNodeMarshallingMap.Start:
39
+ node.start = buffer.readUint32();
40
+ break;
41
+ case valueCommon.ValueNodeMarshallingMap.End:
42
+ node.end = buffer.readUint32();
43
+ break;
44
+ default:
45
+ throw new Error(`Invalid property: ${prop}`);
46
+ }
47
+ prop = buffer.readUint8();
48
+ }
49
+ }
50
+ }
51
+
52
+ exports.ValueDeserializer = ValueDeserializer;
@@ -0,0 +1,81 @@
1
+ /*
2
+ * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 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 valueDeserializer = require('../misc/value-deserializer.js');
12
+ var hostnameListDeserializer = require('./hostname-list-deserializer.js');
13
+ var baseDeserializer = require('../base-deserializer.js');
14
+ var hostRuleCommon = require('../../marshalling-utils/misc/host-rule-common.js');
15
+ var adblockers = require('../../utils/adblockers.js');
16
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
17
+ var syntaxDeserializationMap = require('../syntax-deserialization-map.js');
18
+
19
+ /* eslint-disable no-param-reassign */
20
+ /**
21
+ * `HostRuleSerializer` is responsible for serializing hosts-like rules.
22
+ *
23
+ * HostRule is a structure for simple host-level rules (i.e. /etc/hosts syntax).
24
+ * It also supports "just domain" syntax. In this case, the IP will be set to 0.0.0.0.
25
+ *
26
+ * Rules syntax looks like this:
27
+ * ```text
28
+ * IP_address canonical_hostname [aliases...]
29
+ * ```
30
+ *
31
+ * @example
32
+ * `192.168.1.13 bar.mydomain.org bar` -- ipv4
33
+ * `ff02::1 ip6-allnodes` -- ipv6
34
+ * `::1 localhost ip6-localhost ip6-loopback` -- ipv6 aliases
35
+ * `example.org` -- "just domain" syntax
36
+ * @see {@link http://man7.org/linux/man-pages/man5/hosts.5.html}
37
+ */
38
+ class HostRuleDeserializer extends baseDeserializer.BaseDeserializer {
39
+ /**
40
+ * Deserializes a modifier node from binary format.
41
+ *
42
+ * @param buffer ByteBuffer for reading binary data.
43
+ * @param node Destination node.
44
+ */
45
+ static deserialize(buffer, node) {
46
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.HostRuleNode);
47
+ node.category = index.RuleCategory.Network;
48
+ node.type = index.NetworkRuleType.HostRule;
49
+ let prop = buffer.readUint8();
50
+ while (prop !== constants.NULL) {
51
+ switch (prop) {
52
+ case hostRuleCommon.HostRuleMarshallingMap.Syntax:
53
+ node.syntax = syntaxDeserializationMap.getSyntaxDeserializationMap().get(buffer.readUint8()) ?? adblockers.AdblockSyntax.Common;
54
+ break;
55
+ case hostRuleCommon.HostRuleMarshallingMap.Ip:
56
+ node.ip = {};
57
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.ip);
58
+ break;
59
+ case hostRuleCommon.HostRuleMarshallingMap.HostnameList:
60
+ node.hostnames = {};
61
+ hostnameListDeserializer.HostnameListDeserializer.deserialize(buffer, node.hostnames);
62
+ break;
63
+ case hostRuleCommon.HostRuleMarshallingMap.Comment:
64
+ node.comment = {};
65
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.comment);
66
+ break;
67
+ case hostRuleCommon.HostRuleMarshallingMap.Start:
68
+ node.start = buffer.readUint32();
69
+ break;
70
+ case hostRuleCommon.HostRuleMarshallingMap.End:
71
+ node.end = buffer.readUint32();
72
+ break;
73
+ default:
74
+ throw new Error(`Invalid property: ${prop}.`);
75
+ }
76
+ prop = buffer.readUint8();
77
+ }
78
+ }
79
+ }
80
+
81
+ exports.HostRuleDeserializer = HostRuleDeserializer;
@@ -0,0 +1,50 @@
1
+ /*
2
+ * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 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 valueDeserializer = require('../misc/value-deserializer.js');
12
+ var hostnameListCommon = require('../../marshalling-utils/misc/hostname-list-common.js');
13
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
14
+
15
+ /* eslint-disable no-param-reassign */
16
+ class HostnameListDeserializer extends baseDeserializer.BaseDeserializer {
17
+ /**
18
+ * Deserializes a hostname list node from binary format.
19
+ *
20
+ * @param buffer ByteBuffer for reading binary data.
21
+ * @param node Destination node.
22
+ */
23
+ static deserialize(buffer, node) {
24
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.HostnameListNode);
25
+ node.type = 'HostnameList';
26
+ let prop = buffer.readUint8();
27
+ while (prop !== constants.NULL) {
28
+ switch (prop) {
29
+ case hostnameListCommon.HostnameListNodeMarshallingMap.Children:
30
+ node.children = new Array(buffer.readUint16());
31
+ // read children
32
+ for (let i = 0; i < node.children.length; i += 1) {
33
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.children[i] = {});
34
+ }
35
+ break;
36
+ case hostnameListCommon.HostnameListNodeMarshallingMap.Start:
37
+ node.start = buffer.readUint32();
38
+ break;
39
+ case hostnameListCommon.HostnameListNodeMarshallingMap.End:
40
+ node.end = buffer.readUint32();
41
+ break;
42
+ default:
43
+ throw new Error(`Unknown property: ${prop}`);
44
+ }
45
+ prop = buffer.readUint8();
46
+ }
47
+ }
48
+ }
49
+
50
+ exports.HostnameListDeserializer = HostnameListDeserializer;
@@ -0,0 +1,67 @@
1
+ /*
2
+ * AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 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 valueDeserializer = require('../misc/value-deserializer.js');
12
+ var baseDeserializer = require('../base-deserializer.js');
13
+ var modifierListDeserializer = require('../misc/modifier-list-deserializer.js');
14
+ var networkRuleCommon = require('../../marshalling-utils/network/network-rule-common.js');
15
+ var adblockers = require('../../utils/adblockers.js');
16
+ var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
17
+ var syntaxDeserializationMap = require('../syntax-deserialization-map.js');
18
+
19
+ /* eslint-disable no-param-reassign */
20
+ /**
21
+ * `NetworkRuleDeserializer` is responsible for deserializing network rules.
22
+ *
23
+ * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules}
24
+ * @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#basic}
25
+ */
26
+ class NetworkRuleDeserializer extends baseDeserializer.BaseDeserializer {
27
+ /**
28
+ * Deserializes a network rule node from binary format.
29
+ *
30
+ * @param buffer ByteBuffer for reading binary data.
31
+ * @param node Destination node.
32
+ */
33
+ static deserialize(buffer, node) {
34
+ buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.NetworkRuleNode);
35
+ node.type = index.NetworkRuleType.NetworkRule;
36
+ node.category = index.RuleCategory.Network;
37
+ node.modifiers = undefined;
38
+ let prop = buffer.readUint8();
39
+ while (prop !== constants.NULL) {
40
+ switch (prop) {
41
+ case networkRuleCommon.NetworkRuleMarshallingMap.Syntax:
42
+ node.syntax = syntaxDeserializationMap.getSyntaxDeserializationMap().get(buffer.readUint8()) ?? adblockers.AdblockSyntax.Common;
43
+ break;
44
+ case networkRuleCommon.NetworkRuleMarshallingMap.Exception:
45
+ node.exception = buffer.readUint8() === 1;
46
+ break;
47
+ case networkRuleCommon.NetworkRuleMarshallingMap.Pattern:
48
+ valueDeserializer.ValueDeserializer.deserialize(buffer, node.pattern = {});
49
+ break;
50
+ case networkRuleCommon.NetworkRuleMarshallingMap.ModifierList:
51
+ modifierListDeserializer.ModifierListDeserializer.deserialize(buffer, node.modifiers = {});
52
+ break;
53
+ case networkRuleCommon.NetworkRuleMarshallingMap.Start:
54
+ node.start = buffer.readUint32();
55
+ break;
56
+ case networkRuleCommon.NetworkRuleMarshallingMap.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.NetworkRuleDeserializer = NetworkRuleDeserializer;