@adguard/agtree 2.2.0 → 3.0.0-alpha.2

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 (495) hide show
  1. package/README.md +1 -1
  2. package/dist/ast-utils/clone.js +61 -0
  3. package/dist/ast-utils/modifiers.js +53 -0
  4. package/dist/ast-utils/network-rules.js +41 -0
  5. package/dist/ast-utils/scriptlets.js +87 -0
  6. package/dist/common/abp-snippet-injection-body-common.js +23 -0
  7. package/dist/common/agent-common.js +56 -0
  8. package/dist/common/ubo-selector-common.js +17 -0
  9. package/dist/compatibility-tables/base.js +262 -0
  10. package/dist/compatibility-tables/compatibility-table-data.js +11 -0
  11. package/dist/compatibility-tables/modifiers.js +55 -0
  12. package/dist/compatibility-tables/platforms.js +76 -0
  13. package/dist/compatibility-tables/redirects.js +100 -0
  14. package/dist/compatibility-tables/schemas/base.js +111 -0
  15. package/dist/compatibility-tables/schemas/modifier.js +129 -0
  16. package/dist/compatibility-tables/schemas/platform.js +69 -0
  17. package/dist/compatibility-tables/schemas/redirect.js +29 -0
  18. package/dist/compatibility-tables/schemas/resource-type.js +36 -0
  19. package/dist/compatibility-tables/schemas/scriptlet.js +79 -0
  20. package/dist/compatibility-tables/scriptlets.js +28 -0
  21. package/dist/compatibility-tables/utils/platform-helpers.js +105 -0
  22. package/dist/compatibility-tables/utils/resource-type-helpers.js +61 -0
  23. package/dist/compatibility-tables/utils/zod-camelcase.js +25 -0
  24. package/dist/converter/base-interfaces/base-converter.js +59 -0
  25. package/dist/converter/base-interfaces/conversion-result.js +38 -0
  26. package/dist/converter/base-interfaces/rule-converter-base.js +60 -0
  27. package/dist/converter/comment/index.js +54 -0
  28. package/dist/converter/cosmetic/css.js +69 -0
  29. package/dist/converter/cosmetic/element-hiding.js +62 -0
  30. package/dist/converter/cosmetic/header-removal.js +123 -0
  31. package/dist/converter/cosmetic/html.js +379 -0
  32. package/dist/converter/cosmetic/index.js +118 -0
  33. package/dist/converter/cosmetic/rule-modifiers/adg.js +79 -0
  34. package/dist/converter/cosmetic/scriptlet.js +354 -0
  35. package/dist/converter/css/index.js +188 -0
  36. package/dist/converter/data/css.js +126 -0
  37. package/dist/converter/filter-list.js +88 -0
  38. package/dist/converter/index.js +8 -0
  39. package/dist/converter/misc/network-rule-modifier.js +311 -0
  40. package/dist/converter/network/index.js +99 -0
  41. package/dist/converter/raw-filter-list.js +56 -0
  42. package/dist/converter/rule.js +81 -0
  43. package/dist/deserializer/base-deserializer.js +29 -0
  44. package/dist/deserializer/comment/agent-comment-deserializer.js +79 -0
  45. package/dist/deserializer/comment/agent-deserializer.js +65 -0
  46. package/dist/deserializer/comment/comment-rule-deserializer.js +54 -0
  47. package/dist/deserializer/comment/config-comment-deserializer.js +111 -0
  48. package/dist/deserializer/comment/hint-comment-deserializer.js +72 -0
  49. package/dist/deserializer/comment/hint-deserializer.js +85 -0
  50. package/dist/deserializer/comment/metadata-comment-deserializer.js +69 -0
  51. package/dist/deserializer/comment/pre-processor-comment-deserializer.js +112 -0
  52. package/dist/deserializer/comment/simple-comment-deserializer.js +65 -0
  53. package/dist/deserializer/cosmetic/cosmetic-rule-deserializer.js +131 -0
  54. package/dist/deserializer/cosmetic/css-injection-body-deserializer.js +56 -0
  55. package/dist/deserializer/cosmetic/element-hiding-body-deserializer.js +48 -0
  56. package/dist/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +39 -0
  57. package/dist/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +40 -0
  58. package/dist/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +54 -0
  59. package/dist/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +38 -0
  60. package/dist/deserializer/empty-rule-deserializer.js +48 -0
  61. package/dist/deserializer/filterlist-deserializer.js +85 -0
  62. package/dist/deserializer/index.js +8 -0
  63. package/dist/deserializer/invalid-rule-deserializer.js +50 -0
  64. package/dist/deserializer/invalid-rule-error-node-deserializer.js +50 -0
  65. package/dist/deserializer/misc/domain-list-deserializer.js +64 -0
  66. package/dist/deserializer/misc/list-item-deserializer.js +69 -0
  67. package/dist/deserializer/misc/list-items-deserializer.js +30 -0
  68. package/dist/deserializer/misc/logical-expression-deserializer.js +196 -0
  69. package/dist/deserializer/misc/modifier-deserializer.js +87 -0
  70. package/dist/deserializer/misc/modifier-list-deserializer.js +61 -0
  71. package/dist/deserializer/misc/parameter-list-deserializer.js +64 -0
  72. package/dist/deserializer/misc/value-deserializer.js +50 -0
  73. package/dist/deserializer/network/host-rule-deserializer.js +67 -0
  74. package/dist/deserializer/network/hostname-list-deserializer.js +56 -0
  75. package/dist/deserializer/network/network-rule-deserializer.js +65 -0
  76. package/dist/deserializer/rule-deserializer.js +65 -0
  77. package/dist/deserializer/syntax-deserialization-map.js +21 -0
  78. package/dist/errors/adblock-syntax-error.js +39 -0
  79. package/dist/errors/binary-schema-mismatch-error.js +37 -0
  80. package/dist/errors/not-implemented-error.js +31 -0
  81. package/dist/errors/rule-conversion-error.js +26 -0
  82. package/dist/generator/base-generator.js +27 -0
  83. package/dist/generator/comment/agent-comment-generator.js +31 -0
  84. package/dist/generator/comment/agent-generator.js +36 -0
  85. package/dist/generator/comment/comment-rule-generator.js +47 -0
  86. package/dist/generator/comment/config-comment-generator.js +45 -0
  87. package/dist/generator/comment/hint-comment-generator.js +28 -0
  88. package/dist/generator/comment/hint-generator.js +33 -0
  89. package/dist/generator/comment/metadata-comment-generator.js +33 -0
  90. package/dist/generator/comment/pre-processor-comment-generator.js +48 -0
  91. package/dist/generator/comment/simple-comment-generator.js +29 -0
  92. package/dist/generator/cosmetic/body/abp-snippet-injection-body-generator.js +38 -0
  93. package/dist/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +43 -0
  94. package/dist/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +45 -0
  95. package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +94 -0
  96. package/dist/generator/cosmetic/cosmetic-rule-generator.js +54 -0
  97. package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +42 -0
  98. package/dist/generator/css/adg-css-injection-generator.js +42 -0
  99. package/dist/generator/filterlist-generator.js +67 -0
  100. package/dist/generator/index.js +9 -0
  101. package/dist/generator/misc/domain-list-generator.js +26 -0
  102. package/dist/generator/misc/list-items-generator.js +39 -0
  103. package/dist/generator/misc/logical-expression-generator.js +48 -0
  104. package/dist/generator/misc/modifier-generator.js +34 -0
  105. package/dist/generator/misc/modifier-list-generator.js +29 -0
  106. package/dist/generator/misc/parameter-list-generator.js +41 -0
  107. package/dist/generator/misc/value-generator.js +24 -0
  108. package/dist/generator/network/host-rule-generator.js +39 -0
  109. package/dist/generator/network/network-rule-generator.js +38 -0
  110. package/dist/generator/rule-generator.js +65 -0
  111. package/dist/index.js +70 -0
  112. package/dist/marshalling-utils/comment/agent-comment-common.js +21 -0
  113. package/dist/marshalling-utils/comment/agent-common.js +40 -0
  114. package/dist/marshalling-utils/comment/config-comment-common.js +54 -0
  115. package/dist/marshalling-utils/comment/hint-comment-common.js +22 -0
  116. package/dist/marshalling-utils/comment/hint-common.js +56 -0
  117. package/dist/marshalling-utils/comment/metadata-comment-common.js +41 -0
  118. package/dist/marshalling-utils/comment/pre-processor-comment-common.js +59 -0
  119. package/dist/marshalling-utils/comment/simple-comment-common.js +22 -0
  120. package/dist/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +61 -0
  121. package/dist/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +66 -0
  122. package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +24 -0
  123. package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +21 -0
  124. package/dist/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +114 -0
  125. package/dist/marshalling-utils/cosmetic/cosmetic-rule-common.js +48 -0
  126. package/dist/marshalling-utils/empty-rule-common.js +20 -0
  127. package/dist/marshalling-utils/filter-list-common.js +21 -0
  128. package/dist/marshalling-utils/invalid-rule-common.js +21 -0
  129. package/dist/marshalling-utils/invalid-rule-error-node-common.js +22 -0
  130. package/dist/marshalling-utils/misc/binary-type-common.js +66 -0
  131. package/dist/marshalling-utils/misc/domain-list-common.js +36 -0
  132. package/dist/marshalling-utils/misc/host-rule-common.js +25 -0
  133. package/dist/marshalling-utils/misc/hostname-list-common.js +21 -0
  134. package/dist/marshalling-utils/misc/list-item-common.js +22 -0
  135. package/dist/marshalling-utils/misc/logical-expression-common.js +83 -0
  136. package/dist/marshalling-utils/misc/modifier-common.js +231 -0
  137. package/dist/marshalling-utils/misc/modifier-list-common.js +21 -0
  138. package/dist/marshalling-utils/misc/parameter-list-common.js +21 -0
  139. package/dist/marshalling-utils/misc/value-common.js +22 -0
  140. package/dist/marshalling-utils/network/network-rule-common.js +25 -0
  141. package/dist/marshalling-utils/syntax-serialization-map.js +30 -0
  142. package/dist/nodes/index.js +168 -0
  143. package/dist/package.json.js +9 -0
  144. package/dist/parser/base-parser.js +30 -0
  145. package/dist/parser/comment/agent-comment-parser.js +119 -0
  146. package/dist/parser/comment/agent-parser.js +110 -0
  147. package/dist/parser/comment/comment-parser.js +108 -0
  148. package/dist/parser/comment/config-comment-parser.js +137 -0
  149. package/dist/parser/comment/hint-comment-parser.js +117 -0
  150. package/dist/parser/comment/hint-parser.js +129 -0
  151. package/dist/parser/comment/metadata-comment-parser.js +129 -0
  152. package/dist/parser/comment/preprocessor-parser.js +199 -0
  153. package/dist/parser/comment/simple-comment-parser.js +106 -0
  154. package/dist/parser/cosmetic/body/abp-snippet-injection-body-parser.js +79 -0
  155. package/dist/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +149 -0
  156. package/dist/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +110 -0
  157. package/dist/parser/cosmetic/cosmetic-rule-parser.js +453 -0
  158. package/dist/parser/css/adg-css-injection-parser.js +208 -0
  159. package/dist/parser/css/balancing.js +94 -0
  160. package/dist/parser/css/constants.js +18 -0
  161. package/dist/parser/css/css-token-stream.js +343 -0
  162. package/dist/parser/css/ubo-selector-parser.js +369 -0
  163. package/dist/parser/filterlist-parser.js +102 -0
  164. package/dist/parser/index.js +12 -0
  165. package/dist/parser/misc/app-list-parser.js +45 -0
  166. package/dist/parser/misc/domain-list-parser.js +52 -0
  167. package/dist/parser/misc/list-items-parser.js +116 -0
  168. package/dist/parser/misc/logical-expression-parser.js +279 -0
  169. package/dist/parser/misc/method-list-parser.js +46 -0
  170. package/dist/parser/misc/modifier-list.js +70 -0
  171. package/dist/parser/misc/modifier-parser.js +89 -0
  172. package/dist/parser/misc/parameter-list-parser.js +75 -0
  173. package/dist/parser/misc/stealth-option-list-parser.js +46 -0
  174. package/dist/parser/misc/ubo-parameter-list-parser.js +149 -0
  175. package/dist/parser/misc/value-parser.js +37 -0
  176. package/dist/parser/network/host-rule-parser.js +130 -0
  177. package/dist/parser/network/network-rule-parser.js +117 -0
  178. package/dist/parser/options.js +23 -0
  179. package/dist/parser/rule-parser.js +192 -0
  180. package/dist/serializer/base-serializer.js +29 -0
  181. package/dist/serializer/comment/agent-comment-serializer.js +74 -0
  182. package/dist/serializer/comment/agent-serializer.js +59 -0
  183. package/dist/serializer/comment/comment-rule-serializer.js +105 -0
  184. package/dist/serializer/comment/config-comment-serializer.js +82 -0
  185. package/dist/serializer/comment/hint-comment-serializer.js +65 -0
  186. package/dist/serializer/comment/hint-serializer.js +54 -0
  187. package/dist/serializer/comment/metadata-comment-serializer.js +73 -0
  188. package/dist/serializer/comment/pre-processor-comment-serializer.js +71 -0
  189. package/dist/serializer/comment/simple-comment-serializer.js +52 -0
  190. package/dist/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +36 -0
  191. package/dist/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +36 -0
  192. package/dist/serializer/cosmetic/body/scriptlet-body-serializer.js +50 -0
  193. package/dist/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +36 -0
  194. package/dist/serializer/cosmetic/cosmetic-rule-serializer.js +120 -0
  195. package/dist/serializer/cosmetic/css-injection-body-serializer.js +51 -0
  196. package/dist/serializer/cosmetic/element-hiding-body-serializer.js +40 -0
  197. package/dist/serializer/empty-rule-serializer.js +37 -0
  198. package/dist/serializer/filterlist-serializer.js +45 -0
  199. package/dist/serializer/index.js +7 -0
  200. package/dist/serializer/invalid-rule-error-node-serializer.js +41 -0
  201. package/dist/serializer/invalid-rule-serializer.js +40 -0
  202. package/dist/serializer/misc/domain-list-serializer.js +64 -0
  203. package/dist/serializer/misc/list-item-serializer.js +58 -0
  204. package/dist/serializer/misc/list-items-serializer.js +29 -0
  205. package/dist/serializer/misc/logical-expression-serializer.js +136 -0
  206. package/dist/serializer/misc/modifier-list-serializer.js +58 -0
  207. package/dist/serializer/misc/modifier-serializer.js +49 -0
  208. package/dist/serializer/misc/parameter-list-serializer.js +52 -0
  209. package/dist/serializer/misc/value-serializer.js +50 -0
  210. package/dist/serializer/network/host-rule-serializer.js +70 -0
  211. package/dist/serializer/network/hostname-list-serializer.js +53 -0
  212. package/dist/serializer/network/network-rule-serializer.js +54 -0
  213. package/dist/serializer/rule-serializer.js +61 -0
  214. package/dist/types/ast-utils/clone.d.ts +26 -0
  215. package/dist/types/ast-utils/filter-list.d.ts +11 -0
  216. package/dist/types/ast-utils/modifiers.d.ts +20 -0
  217. package/dist/types/ast-utils/network-rules.d.ts +15 -0
  218. package/dist/types/ast-utils/scriptlets.d.ts +52 -0
  219. package/dist/types/common/abp-snippet-injection-body-common.d.ts +15 -0
  220. package/dist/types/common/agent-common.d.ts +10 -0
  221. package/dist/types/common/ubo-selector-common.d.ts +10 -0
  222. package/dist/types/compatibility-tables/base.d.ts +157 -0
  223. package/dist/types/compatibility-tables/compatibility-table-data.d.ts +68 -0
  224. package/dist/types/compatibility-tables/index.d.ts +13 -0
  225. package/dist/types/compatibility-tables/modifiers.d.ts +22 -0
  226. package/dist/types/compatibility-tables/platforms.d.ts +49 -0
  227. package/dist/types/compatibility-tables/redirects.d.ts +33 -0
  228. package/dist/types/compatibility-tables/schemas/base.d.ts +124 -0
  229. package/dist/types/compatibility-tables/schemas/index.d.ts +8 -0
  230. package/dist/types/compatibility-tables/schemas/modifier.d.ts +36 -0
  231. package/dist/types/compatibility-tables/schemas/platform.d.ts +16 -0
  232. package/dist/types/compatibility-tables/schemas/redirect.d.ts +25 -0
  233. package/dist/types/compatibility-tables/schemas/resource-type.d.ts +41 -0
  234. package/dist/types/compatibility-tables/schemas/scriptlet.d.ts +31 -0
  235. package/dist/types/compatibility-tables/scriptlets.d.ts +15 -0
  236. package/dist/types/compatibility-tables/types.d.ts +34 -0
  237. package/dist/types/compatibility-tables/utils/platform-helpers.d.ts +44 -0
  238. package/dist/types/compatibility-tables/utils/resource-type-helpers.d.ts +20 -0
  239. package/dist/types/compatibility-tables/utils/zod-camelcase.d.ts +15 -0
  240. package/dist/types/converter/base-interfaces/base-converter.d.ts +42 -0
  241. package/dist/types/converter/base-interfaces/conversion-result.d.ts +43 -0
  242. package/dist/types/converter/base-interfaces/rule-converter-base.d.ts +44 -0
  243. package/dist/types/converter/comment/index.d.ts +23 -0
  244. package/dist/types/converter/cosmetic/css.d.ts +23 -0
  245. package/dist/types/converter/cosmetic/element-hiding.d.ts +23 -0
  246. package/dist/types/converter/cosmetic/header-removal.d.ts +37 -0
  247. package/dist/types/converter/cosmetic/html.d.ts +54 -0
  248. package/dist/types/converter/cosmetic/index.d.ts +33 -0
  249. package/dist/types/converter/cosmetic/rule-modifiers/adg.d.ts +21 -0
  250. package/dist/types/converter/cosmetic/scriptlet.d.ts +33 -0
  251. package/dist/types/converter/css/index.d.ts +40 -0
  252. package/dist/types/converter/data/css.d.ts +48 -0
  253. package/dist/types/converter/filter-list.d.ts +31 -0
  254. package/dist/types/converter/index.d.ts +5 -0
  255. package/dist/types/converter/misc/network-rule-modifier.d.ts +35 -0
  256. package/dist/types/converter/network/index.d.ts +33 -0
  257. package/dist/types/converter/raw-filter-list.d.ts +31 -0
  258. package/dist/types/converter/raw-rule.d.ts +28 -0
  259. package/dist/types/converter/rule.d.ts +37 -0
  260. package/dist/types/deserializer/base-deserializer.d.ts +15 -0
  261. package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +34 -0
  262. package/dist/types/deserializer/comment/agent-deserializer.d.ts +25 -0
  263. package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +16 -0
  264. package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +27 -0
  265. package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +24 -0
  266. package/dist/types/deserializer/comment/hint-deserializer.d.ts +26 -0
  267. package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +26 -0
  268. package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +29 -0
  269. package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +26 -0
  270. package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +18 -0
  271. package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +15 -0
  272. package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +16 -0
  273. package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +17 -0
  274. package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +18 -0
  275. package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +19 -0
  276. package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +17 -0
  277. package/dist/types/deserializer/empty-rule-deserializer.d.ts +16 -0
  278. package/dist/types/deserializer/filterlist-deserializer.d.ts +34 -0
  279. package/dist/types/deserializer/index.d.ts +2 -0
  280. package/dist/types/deserializer/invalid-rule-deserializer.d.ts +16 -0
  281. package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +16 -0
  282. package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +15 -0
  283. package/dist/types/deserializer/misc/list-item-deserializer.d.ts +19 -0
  284. package/dist/types/deserializer/misc/list-items-deserializer.d.ts +16 -0
  285. package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +55 -0
  286. package/dist/types/deserializer/misc/modifier-deserializer.d.ts +18 -0
  287. package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +20 -0
  288. package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +18 -0
  289. package/dist/types/deserializer/misc/value-deserializer.d.ts +17 -0
  290. package/dist/types/deserializer/network/host-rule-deserializer.d.ts +18 -0
  291. package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +15 -0
  292. package/dist/types/deserializer/network/network-rule-deserializer.d.ts +18 -0
  293. package/dist/types/deserializer/rule-deserializer.d.ts +17 -0
  294. package/dist/types/deserializer/syntax-deserialization-map.d.ts +2 -0
  295. package/dist/types/errors/adblock-syntax-error.d.ts +25 -0
  296. package/dist/types/errors/binary-schema-mismatch-error.d.ts +23 -0
  297. package/dist/types/errors/not-implemented-error.d.ts +14 -0
  298. package/dist/types/errors/rule-conversion-error.d.ts +14 -0
  299. package/dist/types/generator/base-generator.d.ts +12 -0
  300. package/dist/types/generator/comment/agent-comment-generator.d.ts +14 -0
  301. package/dist/types/generator/comment/agent-generator.d.ts +15 -0
  302. package/dist/types/generator/comment/comment-rule-generator.d.ts +14 -0
  303. package/dist/types/generator/comment/config-comment-generator.d.ts +14 -0
  304. package/dist/types/generator/comment/hint-comment-generator.d.ts +14 -0
  305. package/dist/types/generator/comment/hint-generator.d.ts +14 -0
  306. package/dist/types/generator/comment/index.d.ts +1 -0
  307. package/dist/types/generator/comment/metadata-comment-generator.d.ts +14 -0
  308. package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +14 -0
  309. package/dist/types/generator/comment/simple-comment-generator.d.ts +14 -0
  310. package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +15 -0
  311. package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +21 -0
  312. package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +21 -0
  313. package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +20 -0
  314. package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +28 -0
  315. package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +18 -0
  316. package/dist/types/generator/cosmetic/index.d.ts +1 -0
  317. package/dist/types/generator/css/adg-css-injection-generator.d.ts +15 -0
  318. package/dist/types/generator/css/ubo-selector-generator.d.ts +14 -0
  319. package/dist/types/generator/filterlist-generator.d.ts +18 -0
  320. package/dist/types/generator/index.d.ts +3 -0
  321. package/dist/types/generator/misc/domain-list-generator.d.ts +15 -0
  322. package/dist/types/generator/misc/list-items-generator.d.ts +25 -0
  323. package/dist/types/generator/misc/logical-expression-generator.d.ts +14 -0
  324. package/dist/types/generator/misc/modifier-generator.d.ts +14 -0
  325. package/dist/types/generator/misc/modifier-list-generator.d.ts +14 -0
  326. package/dist/types/generator/misc/parameter-list-generator.d.ts +15 -0
  327. package/dist/types/generator/misc/value-generator.d.ts +14 -0
  328. package/dist/types/generator/network/host-rule-generator.d.ts +14 -0
  329. package/dist/types/generator/network/index.d.ts +2 -0
  330. package/dist/types/generator/network/network-rule-generator.d.ts +14 -0
  331. package/dist/types/generator/rule-generator.d.ts +24 -0
  332. package/dist/types/index.d.ts +55 -0
  333. package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +14 -0
  334. package/dist/types/marshalling-utils/comment/agent-common.d.ts +20 -0
  335. package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +42 -0
  336. package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +15 -0
  337. package/dist/types/marshalling-utils/comment/hint-common.d.ts +33 -0
  338. package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +21 -0
  339. package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +37 -0
  340. package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +15 -0
  341. package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +23 -0
  342. package/dist/types/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.d.ts +9 -0
  343. package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +17 -0
  344. package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +14 -0
  345. package/dist/types/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.d.ts +9 -0
  346. package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +28 -0
  347. package/dist/types/marshalling-utils/empty-rule-common.d.ts +13 -0
  348. package/dist/types/marshalling-utils/filter-list-common.d.ts +14 -0
  349. package/dist/types/marshalling-utils/invalid-rule-common.d.ts +14 -0
  350. package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +15 -0
  351. package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +57 -0
  352. package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +24 -0
  353. package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +18 -0
  354. package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +14 -0
  355. package/dist/types/marshalling-utils/misc/list-item-common.d.ts +15 -0
  356. package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +47 -0
  357. package/dist/types/marshalling-utils/misc/modifier-common.d.ts +41 -0
  358. package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +14 -0
  359. package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +14 -0
  360. package/dist/types/marshalling-utils/misc/value-common.d.ts +15 -0
  361. package/dist/types/marshalling-utils/network/network-rule-common.d.ts +18 -0
  362. package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +2 -0
  363. package/dist/types/nodes/index.d.ts +1183 -0
  364. package/dist/types/parser/base-parser.d.ts +16 -0
  365. package/dist/types/parser/comment/agent-comment-parser.d.ts +42 -0
  366. package/dist/types/parser/comment/agent-parser.d.ts +33 -0
  367. package/dist/types/parser/comment/comment-parser.d.ts +76 -0
  368. package/dist/types/parser/comment/config-comment-parser.d.ts +31 -0
  369. package/dist/types/parser/comment/hint-comment-parser.d.ts +33 -0
  370. package/dist/types/parser/comment/hint-parser.d.ts +30 -0
  371. package/dist/types/parser/comment/metadata-comment-parser.d.ts +29 -0
  372. package/dist/types/parser/comment/preprocessor-parser.d.ts +43 -0
  373. package/dist/types/parser/comment/simple-comment-parser.d.ts +33 -0
  374. package/dist/types/parser/cosmetic/body/abp-snippet-injection-body-parser.d.ts +34 -0
  375. package/dist/types/parser/cosmetic/body/adg-scriptlet-injection-body-parser.d.ts +47 -0
  376. package/dist/types/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.d.ts +44 -0
  377. package/dist/types/parser/cosmetic/cosmetic-rule-parser.d.ts +51 -0
  378. package/dist/types/parser/css/adg-css-injection-parser.d.ts +28 -0
  379. package/dist/types/parser/css/balancing.d.ts +36 -0
  380. package/dist/types/parser/css/constants.d.ts +10 -0
  381. package/dist/types/parser/css/css-token-stream.d.ts +210 -0
  382. package/dist/types/parser/css/ubo-selector-parser.d.ts +46 -0
  383. package/dist/types/parser/filterlist-parser.d.ts +29 -0
  384. package/dist/types/parser/index.d.ts +6 -0
  385. package/dist/types/parser/misc/app-list-parser.d.ts +22 -0
  386. package/dist/types/parser/misc/domain-list-parser.d.ts +26 -0
  387. package/dist/types/parser/misc/list-items-parser.d.ts +37 -0
  388. package/dist/types/parser/misc/logical-expression-parser.d.ts +42 -0
  389. package/dist/types/parser/misc/method-list-parser.d.ts +22 -0
  390. package/dist/types/parser/misc/modifier-list.d.ts +24 -0
  391. package/dist/types/parser/misc/modifier-parser.d.ts +21 -0
  392. package/dist/types/parser/misc/parameter-list-parser.d.ts +17 -0
  393. package/dist/types/parser/misc/stealth-option-list-parser.d.ts +22 -0
  394. package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +21 -0
  395. package/dist/types/parser/misc/value-parser.d.ts +18 -0
  396. package/dist/types/parser/network/host-rule-parser.d.ts +35 -0
  397. package/dist/types/parser/network/network-rule-parser.d.ts +31 -0
  398. package/dist/types/parser/options.d.ts +41 -0
  399. package/dist/types/parser/rule-parser.d.ts +78 -0
  400. package/dist/types/serializer/base-serializer.d.ts +15 -0
  401. package/dist/types/serializer/comment/agent-comment-serializer.d.ts +34 -0
  402. package/dist/types/serializer/comment/agent-serializer.d.ts +15 -0
  403. package/dist/types/serializer/comment/comment-rule-serializer.d.ts +68 -0
  404. package/dist/types/serializer/comment/config-comment-serializer.d.ts +25 -0
  405. package/dist/types/serializer/comment/hint-comment-serializer.d.ts +23 -0
  406. package/dist/types/serializer/comment/hint-serializer.d.ts +24 -0
  407. package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +25 -0
  408. package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +28 -0
  409. package/dist/types/serializer/comment/simple-comment-serializer.d.ts +24 -0
  410. package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +25 -0
  411. package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +25 -0
  412. package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +17 -0
  413. package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +25 -0
  414. package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +19 -0
  415. package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +15 -0
  416. package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +15 -0
  417. package/dist/types/serializer/empty-rule-serializer.d.ts +15 -0
  418. package/dist/types/serializer/filterlist-serializer.d.ts +15 -0
  419. package/dist/types/serializer/index.d.ts +1 -0
  420. package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +15 -0
  421. package/dist/types/serializer/invalid-rule-serializer.d.ts +15 -0
  422. package/dist/types/serializer/misc/domain-list-serializer.d.ts +21 -0
  423. package/dist/types/serializer/misc/list-item-serializer.d.ts +16 -0
  424. package/dist/types/serializer/misc/list-items-serializer.d.ts +15 -0
  425. package/dist/types/serializer/misc/logical-expression-serializer.d.ts +52 -0
  426. package/dist/types/serializer/misc/modifier-list-serializer.d.ts +20 -0
  427. package/dist/types/serializer/misc/modifier-serializer.d.ts +18 -0
  428. package/dist/types/serializer/misc/parameter-list-serializer.d.ts +17 -0
  429. package/dist/types/serializer/misc/value-serializer.d.ts +17 -0
  430. package/dist/types/serializer/network/host-rule-serializer.d.ts +30 -0
  431. package/dist/types/serializer/network/hostname-list-serializer.d.ts +15 -0
  432. package/dist/types/serializer/network/network-rule-serializer.d.ts +18 -0
  433. package/dist/types/serializer/rule-serializer.d.ts +17 -0
  434. package/dist/types/utils/adblockers.d.ts +49 -0
  435. package/dist/types/utils/binary-schema-version.d.ts +9 -0
  436. package/dist/types/utils/byte-buffer.d.ts +54 -0
  437. package/dist/types/utils/categorizer.d.ts +14 -0
  438. package/dist/types/utils/clone.d.ts +15 -0
  439. package/dist/types/utils/constants.d.ts +188 -0
  440. package/dist/types/utils/cosmetic-rule-separator.d.ts +45 -0
  441. package/dist/types/utils/deep-freeze.d.ts +13 -0
  442. package/dist/types/utils/domain.d.ts +29 -0
  443. package/dist/types/utils/error.d.ts +8 -0
  444. package/dist/types/utils/index.d.ts +15 -0
  445. package/dist/types/utils/input-byte-buffer.d.ts +146 -0
  446. package/dist/types/utils/is-chromium.d.ts +7 -0
  447. package/dist/types/utils/logical-expression.d.ts +45 -0
  448. package/dist/types/utils/multi-value-map.d.ts +16 -0
  449. package/dist/types/utils/output-byte-buffer.d.ts +132 -0
  450. package/dist/types/utils/position-provider.d.ts +46 -0
  451. package/dist/types/utils/quotes.d.ts +94 -0
  452. package/dist/types/utils/regexp.d.ts +54 -0
  453. package/dist/types/utils/storage-interface.d.ts +23 -0
  454. package/dist/types/utils/string.d.ts +280 -0
  455. package/dist/types/utils/text-decoder-polyfill.d.ts +14 -0
  456. package/dist/types/utils/text-encoder-polyfill.d.ts +18 -0
  457. package/dist/types/utils/type-guards.d.ts +47 -0
  458. package/dist/types/validator/constants.d.ts +89 -0
  459. package/dist/types/validator/helpers.d.ts +37 -0
  460. package/dist/types/validator/index.d.ts +38 -0
  461. package/dist/types/validator/value.d.ts +12 -0
  462. package/dist/types/version.d.ts +5 -0
  463. package/dist/utils/adblockers.js +56 -0
  464. package/dist/utils/binary-schema-version.js +17 -0
  465. package/dist/utils/byte-buffer.js +91 -0
  466. package/dist/utils/categorizer.js +44 -0
  467. package/dist/utils/clone.js +28 -0
  468. package/dist/utils/constants.js +249 -0
  469. package/dist/utils/cosmetic-rule-separator.js +127 -0
  470. package/dist/utils/deep-freeze.js +32 -0
  471. package/dist/utils/domain.js +59 -0
  472. package/dist/utils/error.js +49 -0
  473. package/dist/utils/index.js +21 -0
  474. package/dist/utils/input-byte-buffer.js +265 -0
  475. package/dist/utils/is-chromium.js +20 -0
  476. package/dist/utils/logical-expression.js +92 -0
  477. package/dist/utils/multi-value-map.js +33 -0
  478. package/dist/utils/output-byte-buffer.js +231 -0
  479. package/dist/utils/position-provider.js +73 -0
  480. package/dist/utils/quotes.js +214 -0
  481. package/dist/utils/regexp.js +176 -0
  482. package/dist/utils/string.js +559 -0
  483. package/dist/utils/text-decoder-polyfill.js +107 -0
  484. package/dist/utils/text-encoder-polyfill.js +78 -0
  485. package/dist/utils/type-guards.js +47 -0
  486. package/dist/validator/constants.js +210 -0
  487. package/dist/validator/helpers.js +45 -0
  488. package/dist/validator/index.js +174 -0
  489. package/dist/validator/value.js +568 -0
  490. package/dist/version.js +18 -0
  491. package/package.json +61 -39
  492. package/dist/agtree.d.ts +0 -4155
  493. package/dist/agtree.js +0 -15819
  494. package/dist/agtree.mjs +0 -15720
  495. package/dist/compatibility-table-data.js +0 -12782
@@ -0,0 +1,21 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const InvalidRuleMarshallingMap = {
16
+ Error: 1,
17
+ Start: 2,
18
+ End: 3,
19
+ };
20
+
21
+ export { InvalidRuleMarshallingMap };
@@ -0,0 +1,22 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const InvalidRuleErrorNodeMarshallingMap = {
16
+ Name: 1,
17
+ Message: 2,
18
+ Start: 3,
19
+ End: 4,
20
+ };
21
+
22
+ export { InvalidRuleErrorNodeMarshallingMap };
@@ -0,0 +1,66 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Type map for binary serialization.
9
+ *
10
+ * @note Values should be fit into 8 bits.
11
+ */
12
+ const BinaryTypeMarshallingMap = {
13
+ // Basic types
14
+ Null: 1,
15
+ Undefined: 2,
16
+ Boolean: 3,
17
+ Int: 4,
18
+ Float: 5,
19
+ NotANumber: 6,
20
+ String: 7,
21
+ // AGTree nodes
22
+ FilterListNode: 8,
23
+ EmptyRule: 9,
24
+ InvalidRule: 10,
25
+ CommentRuleNode: 11,
26
+ AgentNode: 12,
27
+ AgentRuleNode: 13,
28
+ HintNode: 14,
29
+ HintRuleNode: 15,
30
+ MetadataCommentRuleNode: 16,
31
+ ConfigCommentRuleNode: 17,
32
+ PreProcessorCommentRuleNode: 18,
33
+ ConfigNode: 19,
34
+ NetworkRuleNode: 20,
35
+ HostRuleNode: 21,
36
+ ElementHidingRule: 22,
37
+ CssInjectionRule: 23,
38
+ ScriptletInjectionRule: 24,
39
+ JsInjectionRule: 25,
40
+ HtmlFilteringRule: 26,
41
+ ScriptletInjectionRuleBodyNode: 27,
42
+ ElementHidingRuleBody: 28,
43
+ CssInjectionRuleBody: 29,
44
+ HtmlFilteringRuleBody: 30,
45
+ JsInjectionRuleBody: 31,
46
+ ValueNode: 32,
47
+ RawNode: 33,
48
+ ModifierNode: 34,
49
+ ModifierListNode: 35,
50
+ ParameterListNode: 36,
51
+ DomainListNode: 37,
52
+ DomainNode: 38,
53
+ MethodListNode: 39,
54
+ MethodNode: 40,
55
+ StealthOptionListNode: 41,
56
+ StealthOptionNode: 42,
57
+ AppListNode: 43,
58
+ AppNode: 44,
59
+ HostnameListNode: 45,
60
+ InvalidRuleErrorNode: 46,
61
+ ExpressionVariableNode: 47,
62
+ ExpressionOperatorNode: 48,
63
+ ExpressionParenthesisNode: 49,
64
+ };
65
+
66
+ export { BinaryTypeMarshallingMap };
@@ -0,0 +1,36 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ import { COMMA, PIPE } from '../../utils/constants.js';
8
+
9
+ /**
10
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
11
+ * as it allows us to use a single byte to represent a property.
12
+ *
13
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
14
+ *
15
+ * @note Only 256 values can be represented this way.
16
+ */
17
+ const DomainListMarshallingMap = {
18
+ Separator: 1,
19
+ Children: 2,
20
+ Start: 3,
21
+ End: 4,
22
+ };
23
+ /**
24
+ * Value map for binary serialization. This helps to reduce the size of the serialized data,
25
+ * as it allows us to use a single byte to represent frequently used values.
26
+ *
27
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
28
+ *
29
+ * @note Only 256 values can be represented this way.
30
+ */
31
+ const SEPARATOR_SERIALIZATION_MAP = new Map([
32
+ [COMMA, 0],
33
+ [PIPE, 1],
34
+ ]);
35
+
36
+ export { DomainListMarshallingMap, SEPARATOR_SERIALIZATION_MAP };
@@ -0,0 +1,25 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const HostRuleMarshallingMap = {
16
+ Syntax: 1,
17
+ Raws: 2,
18
+ Ip: 3,
19
+ HostnameList: 4,
20
+ Comment: 5,
21
+ Start: 6,
22
+ End: 7,
23
+ };
24
+
25
+ export { HostRuleMarshallingMap };
@@ -0,0 +1,21 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const HostnameListNodeMarshallingMap = {
16
+ Children: 1,
17
+ Start: 2,
18
+ End: 3,
19
+ };
20
+
21
+ export { HostnameListNodeMarshallingMap };
@@ -0,0 +1,22 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const ListItemMarshallingMap = {
16
+ Exception: 1,
17
+ Value: 2,
18
+ Start: 3,
19
+ End: 4,
20
+ };
21
+
22
+ export { ListItemMarshallingMap };
@@ -0,0 +1,83 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ import { OperatorValue } from '../../nodes/index.js';
8
+
9
+ /**
10
+ * Property map for binary serialization.
11
+ *
12
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION} !
13
+ */
14
+ const VariableNodeBinaryPropMarshallingMap = {
15
+ Name: 1,
16
+ FrequentName: 2,
17
+ Start: 3,
18
+ End: 4,
19
+ };
20
+ /**
21
+ * Property map for binary serialization.
22
+ *
23
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION} !
24
+ */
25
+ const OperatorNodeBinaryPropMarshallingMap = {
26
+ Operator: 1,
27
+ Left: 2,
28
+ Right: 3,
29
+ Start: 4,
30
+ End: 5,
31
+ };
32
+ /**
33
+ * Property map for binary serialization.
34
+ *
35
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION} !
36
+ */
37
+ const ParenthesisNodeBinaryPropMarshallingMap = {
38
+ Expression: 1,
39
+ Start: 2,
40
+ End: 3,
41
+ };
42
+ /**
43
+ * Property map for binary serialization.
44
+ *
45
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION} !
46
+ */
47
+ const LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP = new Map([
48
+ [OperatorValue.Not, 0],
49
+ [OperatorValue.And, 1],
50
+ [OperatorValue.Or, 2],
51
+ ]);
52
+ /**
53
+ * Serialization map for known variables.
54
+ */
55
+ const KNOWN_VARIABLES_SERIALIZATION_MAP = new Map([
56
+ ['ext_abp', 0],
57
+ ['ext_ublock', 1],
58
+ ['ext_ubol', 2],
59
+ ['ext_devbuild', 3],
60
+ ['env_chromium', 4],
61
+ ['env_edge', 5],
62
+ ['env_firefox', 6],
63
+ ['env_mobile', 7],
64
+ ['env_safari', 8],
65
+ ['env_mv3', 9],
66
+ ['false', 10],
67
+ ['cap_html_filtering', 11],
68
+ ['cap_user_stylesheet', 12],
69
+ ['adguard', 13],
70
+ ['adguard_app_windows', 14],
71
+ ['adguard_app_mac', 15],
72
+ ['adguard_app_android', 16],
73
+ ['adguard_app_ios', 17],
74
+ ['adguard_ext_safari', 18],
75
+ ['adguard_ext_chromium', 19],
76
+ ['adguard_ext_firefox', 20],
77
+ ['adguard_ext_edge', 21],
78
+ ['adguard_ext_opera', 22],
79
+ ['adguard_ext_android_cb', 23],
80
+ // TODO: Add 'adguard_ext_chromium_mv3' to the list
81
+ ]);
82
+
83
+ export { KNOWN_VARIABLES_SERIALIZATION_MAP, LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP, OperatorNodeBinaryPropMarshallingMap, ParenthesisNodeBinaryPropMarshallingMap, VariableNodeBinaryPropMarshallingMap };
@@ -0,0 +1,231 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const ModifierNodeMarshallingMap = {
16
+ Name: 1,
17
+ Value: 2,
18
+ Exception: 3,
19
+ Start: 4,
20
+ End: 5,
21
+ };
22
+ /**
23
+ * Value map for binary serialization. This helps to reduce the size of the serialized data,
24
+ * as it allows us to use a single byte to represent frequently used values.
25
+ *
26
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
27
+ *
28
+ * @note Only 256 values can be represented this way.
29
+ */
30
+ const FREQUENT_MODIFIERS_SERIALIZATION_MAP = new Map([
31
+ ['_', 0],
32
+ ['all', 1],
33
+ ['app', 2],
34
+ ['badfilter', 3],
35
+ ['cname', 4],
36
+ ['content', 5],
37
+ ['cookie', 6],
38
+ ['csp', 7],
39
+ ['denyallow', 8],
40
+ ['document', 9],
41
+ ['doc', 10],
42
+ ['domain', 11],
43
+ ['from', 12],
44
+ ['elemhide', 13],
45
+ ['ehide', 14],
46
+ ['empty', 15],
47
+ ['first-party', 16],
48
+ ['1p', 17],
49
+ ['extension', 18],
50
+ ['font', 19],
51
+ ['genericblock', 20],
52
+ ['generichide', 21],
53
+ ['ghide', 22],
54
+ ['header', 23],
55
+ ['hls', 24],
56
+ ['image', 25],
57
+ ['important', 26],
58
+ ['inline-font', 27],
59
+ ['inline-script', 28],
60
+ ['jsinject', 29],
61
+ ['jsonprune', 30],
62
+ ['match-case', 31],
63
+ ['media', 32],
64
+ ['method', 33],
65
+ ['mp4', 34],
66
+ ['network', 35],
67
+ ['object-subrequest', 36],
68
+ ['object', 37],
69
+ ['other', 38],
70
+ ['permissions', 39],
71
+ ['ping', 40],
72
+ ['popunder', 41],
73
+ ['popup', 42],
74
+ ['redirect-rule', 43],
75
+ ['redirect', 44],
76
+ ['rewrite', 45],
77
+ ['referrerpolicy', 46],
78
+ ['removeheader', 47],
79
+ ['removeparam', 48],
80
+ ['replace', 49],
81
+ ['script', 50],
82
+ ['specifichide', 51],
83
+ ['shide', 52],
84
+ ['stealth', 53],
85
+ ['strict1p', 54],
86
+ ['strict3p', 55],
87
+ ['stylesheet', 56],
88
+ ['css', 57],
89
+ ['subdocument', 58],
90
+ ['frame', 59],
91
+ ['third-party', 60],
92
+ ['3p', 61],
93
+ ['to', 62],
94
+ ['urlblock', 63],
95
+ ['webrtc', 64],
96
+ ['websocket', 65],
97
+ ['xmlhttprequest', 66],
98
+ ['xhr', 67],
99
+ // TODO: add new modifiers here
100
+ ]);
101
+ /**
102
+ * Value map for binary serialization. This helps to reduce the size of the serialized data,
103
+ * as it allows us to use a single byte to represent frequently used values.
104
+ *
105
+ * ! IMPORTANT: If you change values here, please update the binary schema version
106
+ *
107
+ * @note Only 256 values can be represented this way.
108
+ */
109
+ const FREQUENT_REDIRECT_VALUES_SERIALIZATION_MAP = new Map([
110
+ // AdGuard
111
+ ['1x1-transparent.gif', 0],
112
+ ['2x2-transparent.png', 1],
113
+ ['3x2-transparent.png', 2],
114
+ ['32x32-transparent.png', 3],
115
+ ['amazon-apstag', 4],
116
+ ['ati-smarttag', 5],
117
+ ['didomi-loader', 6],
118
+ ['click2load.html', 7],
119
+ ['fingerprintjs2', 8],
120
+ ['fingerprintjs3', 9],
121
+ ['google-analytics', 10],
122
+ ['google-analytics-ga', 11],
123
+ ['googlesyndication-adsbygoogle', 12],
124
+ ['googlesyndication-adsbygoogle', 13],
125
+ ['googletagmanager-gtm', 14],
126
+ ['googletagmanager-gtm', 15],
127
+ ['googletagservices-gpt', 16],
128
+ ['google-ima3', 17],
129
+ ['gemius', 18],
130
+ ['matomo', 19],
131
+ ['metrika-yandex-watch', 20],
132
+ ['metrika-yandex-tag', 21],
133
+ ['naver-wcslog', 22],
134
+ ['noeval', 23],
135
+ ['noopcss', 24],
136
+ ['noopframe', 25],
137
+ ['noopjs', 26],
138
+ ['noopjson', 27],
139
+ ['nooptext', 28],
140
+ ['noopmp3-0.1s', 29],
141
+ ['noopmp4-1s', 30],
142
+ ['noopvmap-1.0', 31],
143
+ ['noopvast-2.0', 32],
144
+ ['noopvast-3.0', 33],
145
+ ['noopvast-4.0', 34],
146
+ ['prebid', 35],
147
+ ['pardot-1.0', 36],
148
+ ['prevent-bab', 37],
149
+ ['prevent-bab2', 38],
150
+ ['prevent-fab-3.2.0', 39],
151
+ ['prevent-fab-3.2.0', 40],
152
+ ['prevent-popads-net', 41],
153
+ ['scorecardresearch-beacon', 42],
154
+ ['set-popads-dummy', 43],
155
+ ['empty', 44],
156
+ ['prebid-ads', 45],
157
+ // empty slots for future use
158
+ // uBlock Origin
159
+ ['1x1.gif', 60],
160
+ ['2x2.png', 61],
161
+ ['3x2.png', 62],
162
+ ['32x32.png', 63],
163
+ ['amazon_apstag.js', 64],
164
+ ['click2load.html', 65],
165
+ ['fingerprint2.js', 66],
166
+ ['fingerprint3.js', 67],
167
+ ['google-analytics_analytics.js', 68],
168
+ ['google-analytics_ga.js', 69],
169
+ ['googlesyndication_adsbygoogle.js', 70],
170
+ ['googlesyndication.com/adsbygoogle.js', 71],
171
+ ['google-analytics_ga.js', 72],
172
+ ['googletagmanager_gtm.js', 73],
173
+ ['googletagservices_gpt.js', 74],
174
+ ['google-ima.js', 75],
175
+ ['noeval-silent.js', 76],
176
+ ['noop.css', 77],
177
+ ['noop.html', 78],
178
+ ['noop.js', 79],
179
+ ['noop.json', 80],
180
+ ['noop.txt', 81],
181
+ ['noop-0.1s.mp3', 82],
182
+ ['noop-1s.mp4', 83],
183
+ ['noop-vmap1.0.xml', 84],
184
+ ['nobab.js', 85],
185
+ ['nobab2.js', 86],
186
+ ['nofab.js', 87],
187
+ ['fuckadblock.js-3.2.0', 88],
188
+ ['popads.js', 89],
189
+ ['scorecardresearch_beacon.js', 90],
190
+ ['popads-dummy.js', 91],
191
+ ['empty', 92],
192
+ ['prebid-ads.js', 93],
193
+ // empty slots for future use
194
+ // Adblock Plus
195
+ ['1x1-transparent-gif', 105],
196
+ ['2x2-transparent-png', 106],
197
+ ['3x2-transparent-png', 107],
198
+ ['32x32-transparent-png', 108],
199
+ ['blank-css', 109],
200
+ ['blank-html', 110],
201
+ ['blank-js', 111],
202
+ ['blank-text', 112],
203
+ ['blank-mp3', 113],
204
+ ['blank-mp4', 114],
205
+ // empty slots for future use
206
+ ['abp-resource:1x1-transparent-gif', 120],
207
+ ['abp-resource:2x2-transparent-png', 121],
208
+ ['abp-resource:3x2-transparent-png', 122],
209
+ ['abp-resource:32x32-transparent-png', 123],
210
+ ['abp-resource:blank-css', 124],
211
+ ['abp-resource:blank-html', 125],
212
+ ['abp-resource:blank-js', 126],
213
+ ['abp-resource:blank-text', 127],
214
+ ['abp-resource:blank-mp3', 128],
215
+ ['abp-resource:blank-mp4', 129],
216
+ // TODO: add other common values
217
+ ]);
218
+ /**
219
+ * Value map for binary serialization. This helps to reduce the size of the serialized data,
220
+ * as it allows us to use a single byte to represent frequently used values.
221
+ *
222
+ * @note This is a special map which allows us to use different value maps for different modifiers.
223
+ */
224
+ const FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP = new Map([
225
+ ['redirect', FREQUENT_REDIRECT_VALUES_SERIALIZATION_MAP],
226
+ ['redirect-rule', FREQUENT_REDIRECT_VALUES_SERIALIZATION_MAP],
227
+ ['rewrite', FREQUENT_REDIRECT_VALUES_SERIALIZATION_MAP],
228
+ // TODO: Add other modifiers here
229
+ ]);
230
+
231
+ export { FREQUENT_MODIFIERS_SERIALIZATION_MAP, FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP, FREQUENT_REDIRECT_VALUES_SERIALIZATION_MAP, ModifierNodeMarshallingMap };
@@ -0,0 +1,21 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const ModifierListNodeMarshallingMap = {
16
+ Children: 1,
17
+ Start: 2,
18
+ End: 3,
19
+ };
20
+
21
+ export { ModifierListNodeMarshallingMap };
@@ -0,0 +1,21 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const ParameterListNodeMarshallingMap = {
16
+ Children: 1,
17
+ Start: 2,
18
+ End: 3,
19
+ };
20
+
21
+ export { ParameterListNodeMarshallingMap };
@@ -0,0 +1,22 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const ValueNodeMarshallingMap = {
16
+ Value: 1,
17
+ FrequentValue: 2,
18
+ Start: 3,
19
+ End: 4,
20
+ };
21
+
22
+ export { ValueNodeMarshallingMap };
@@ -0,0 +1,25 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ /**
8
+ * Property map for binary serialization. This helps to reduce the size of the serialized data,
9
+ * as it allows us to use a single byte to represent a property.
10
+ *
11
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
12
+ *
13
+ * @note Only 256 values can be represented this way.
14
+ */
15
+ const NetworkRuleMarshallingMap = {
16
+ Syntax: 1,
17
+ Raws: 2,
18
+ Exception: 3,
19
+ Pattern: 4,
20
+ ModifierList: 5,
21
+ Start: 6,
22
+ End: 7,
23
+ };
24
+
25
+ export { NetworkRuleMarshallingMap };
@@ -0,0 +1,30 @@
1
+ /*
2
+ * AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
+ import { AdblockSyntax } from '../utils/adblockers.js';
8
+
9
+ /**
10
+ * Value map for binary serialization. This helps to reduce the size of the serialized data,
11
+ * as it allows us to use a single byte to represent frequently used values.
12
+ *
13
+ * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
14
+ *
15
+ * @note Only 256 values can be represented this way.
16
+ */
17
+ let syntaxSerializationMap;
18
+ const getSyntaxSerializationMap = () => {
19
+ if (!syntaxSerializationMap) {
20
+ syntaxSerializationMap = new Map([
21
+ [AdblockSyntax.Common, 0],
22
+ [AdblockSyntax.Abp, 1],
23
+ [AdblockSyntax.Adg, 2],
24
+ [AdblockSyntax.Ubo, 3],
25
+ ]);
26
+ }
27
+ return syntaxSerializationMap;
28
+ };
29
+
30
+ export { getSyntaxSerializationMap };