@adguard/agtree 3.4.3 → 4.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 (421) hide show
  1. package/dist/ast-utils/clone.js +2 -2
  2. package/dist/ast-utils/modifiers.js +2 -2
  3. package/dist/ast-utils/network-rules.js +2 -2
  4. package/dist/ast-utils/scriptlets.js +2 -2
  5. package/dist/common/abp-snippet-injection-body-common.js +2 -2
  6. package/dist/common/agent-common.js +2 -2
  7. package/dist/common/ubo-html-filtering-body-common.js +40 -0
  8. package/dist/common/ubo-selector-common.js +2 -2
  9. package/dist/compatibility-tables/base.js +2 -2
  10. package/dist/compatibility-tables/compatibility-table-data.js +2 -2
  11. package/dist/compatibility-tables/modifiers.js +2 -2
  12. package/dist/compatibility-tables/platforms.js +2 -2
  13. package/dist/compatibility-tables/redirects.js +2 -2
  14. package/dist/compatibility-tables/schemas/base.js +2 -2
  15. package/dist/compatibility-tables/schemas/modifier.js +2 -2
  16. package/dist/compatibility-tables/schemas/platform.js +2 -2
  17. package/dist/compatibility-tables/schemas/redirect.js +2 -2
  18. package/dist/compatibility-tables/schemas/resource-type.js +2 -2
  19. package/dist/compatibility-tables/schemas/scriptlet.js +2 -2
  20. package/dist/compatibility-tables/scriptlets.js +2 -2
  21. package/dist/compatibility-tables/utils/platform-helpers.js +2 -2
  22. package/dist/compatibility-tables/utils/resource-type-helpers.js +2 -2
  23. package/dist/compatibility-tables/utils/zod-camelcase.js +2 -2
  24. package/dist/converter/base-interfaces/base-converter.js +2 -2
  25. package/dist/converter/base-interfaces/conversion-result.js +2 -2
  26. package/dist/converter/base-interfaces/rule-converter-base.js +2 -2
  27. package/dist/converter/comment/index.js +2 -2
  28. package/dist/converter/cosmetic/css.js +2 -2
  29. package/dist/converter/cosmetic/element-hiding.js +2 -2
  30. package/dist/converter/cosmetic/header-removal.js +24 -42
  31. package/dist/converter/cosmetic/html.js +580 -438
  32. package/dist/converter/cosmetic/index.js +3 -2
  33. package/dist/converter/cosmetic/rule-modifiers/adg.js +2 -2
  34. package/dist/converter/cosmetic/rule-modifiers/ubo.js +2 -2
  35. package/dist/converter/cosmetic/scriptlet.js +2 -2
  36. package/dist/converter/css/index.js +3 -2
  37. package/dist/converter/data/css.js +32 -54
  38. package/dist/converter/filter-list.js +2 -2
  39. package/dist/converter/index.js +2 -2
  40. package/dist/converter/misc/network-rule-modifier.js +2 -2
  41. package/dist/converter/network/index.js +2 -2
  42. package/dist/converter/raw-filter-list.js +2 -2
  43. package/dist/converter/raw-rule.js +6 -3
  44. package/dist/converter/rule.js +2 -2
  45. package/dist/errors/adblock-syntax-error.js +2 -2
  46. package/dist/errors/binary-schema-mismatch-error.js +2 -2
  47. package/dist/errors/not-implemented-error.js +2 -2
  48. package/dist/errors/rule-conversion-error.js +2 -2
  49. package/dist/generator/base-generator.js +2 -2
  50. package/dist/generator/comment/agent-comment-generator.js +2 -2
  51. package/dist/generator/comment/agent-generator.js +2 -2
  52. package/dist/generator/comment/comment-rule-generator.js +2 -2
  53. package/dist/generator/comment/config-comment-generator.js +2 -2
  54. package/dist/generator/comment/hint-comment-generator.js +2 -2
  55. package/dist/generator/comment/hint-generator.js +2 -2
  56. package/dist/generator/comment/metadata-comment-generator.js +2 -2
  57. package/dist/generator/comment/pre-processor-comment-generator.js +2 -2
  58. package/dist/generator/comment/simple-comment-generator.js +2 -2
  59. package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +21 -6
  60. package/dist/generator/cosmetic/cosmetic-rule-generator.js +2 -2
  61. package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +2 -2
  62. package/dist/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.js +38 -0
  63. package/dist/generator/cosmetic/html-filtering-body/html-filtering-body-generator.js +32 -0
  64. package/dist/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.js +65 -0
  65. package/dist/generator/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-generator.js +2 -2
  66. package/dist/generator/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-generator.js +2 -2
  67. package/dist/generator/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-generator.js +2 -2
  68. package/dist/generator/cosmetic/selector/attribute-selector-generator.js +42 -0
  69. package/dist/generator/cosmetic/selector/class-selector-generator.js +26 -0
  70. package/dist/generator/cosmetic/selector/complex-selector-generator.js +71 -0
  71. package/dist/generator/cosmetic/selector/id-selector-generator.js +26 -0
  72. package/dist/generator/cosmetic/selector/pseudo-class-selector-generator.js +35 -0
  73. package/dist/generator/cosmetic/selector/selector-combinator-generator.js +30 -0
  74. package/dist/generator/cosmetic/selector/selector-list-generator.js +41 -0
  75. package/dist/generator/cosmetic/selector/type-selector-generator.js +25 -0
  76. package/dist/generator/css/adg-css-injection-generator.js +5 -6
  77. package/dist/generator/filterlist-generator.js +2 -2
  78. package/dist/generator/index.js +2 -2
  79. package/dist/generator/misc/domain-list-generator.js +2 -2
  80. package/dist/generator/misc/list-items-generator.js +2 -2
  81. package/dist/generator/misc/logical-expression-generator.js +2 -2
  82. package/dist/generator/misc/modifier-generator.js +2 -2
  83. package/dist/generator/misc/modifier-list-generator.js +2 -2
  84. package/dist/generator/misc/parameter-list-generator.js +2 -2
  85. package/dist/generator/misc/value-generator.js +2 -2
  86. package/dist/generator/network/host-rule-generator.js +2 -2
  87. package/dist/generator/network/network-rule-generator.js +2 -2
  88. package/dist/generator/rule-generator.js +2 -2
  89. package/dist/index.js +4 -14
  90. package/dist/nodes/index.js +2 -2
  91. package/dist/package.json.js +3 -3
  92. package/dist/parser/base-parser.js +2 -2
  93. package/dist/parser/comment/agent-comment-parser.js +2 -2
  94. package/dist/parser/comment/agent-parser.js +2 -2
  95. package/dist/parser/comment/comment-parser.js +2 -2
  96. package/dist/parser/comment/config-comment-parser.js +2 -2
  97. package/dist/parser/comment/hint-comment-parser.js +2 -2
  98. package/dist/parser/comment/hint-parser.js +2 -2
  99. package/dist/parser/comment/metadata-comment-parser.js +2 -2
  100. package/dist/parser/comment/preprocessor-parser.js +2 -2
  101. package/dist/parser/comment/simple-comment-parser.js +2 -2
  102. package/dist/parser/cosmetic/cosmetic-rule-parser.js +10 -21
  103. package/dist/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.js +49 -0
  104. package/dist/parser/cosmetic/html-filtering-body/html-filtering-body-parser.js +70 -0
  105. package/dist/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.js +180 -0
  106. package/dist/parser/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-parser.js +2 -2
  107. package/dist/parser/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-parser.js +2 -2
  108. package/dist/parser/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-parser.js +2 -2
  109. package/dist/parser/cosmetic/selector/handlers/attribute-selector-handler.js +206 -0
  110. package/dist/parser/cosmetic/selector/handlers/class-selector-handler.js +48 -0
  111. package/dist/parser/cosmetic/selector/handlers/complex-selector-handler.js +67 -0
  112. package/dist/parser/cosmetic/selector/handlers/compound-selector-handler.js +97 -0
  113. package/dist/parser/cosmetic/selector/handlers/id-selector-handler.js +42 -0
  114. package/dist/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.js +128 -0
  115. package/dist/parser/cosmetic/selector/handlers/type-selector-handler.js +58 -0
  116. package/dist/parser/cosmetic/selector/selector-list-parser.js +164 -0
  117. package/dist/parser/css/adg-css-injection-parser.js +4 -5
  118. package/dist/parser/css/balancing.js +2 -2
  119. package/dist/parser/css/constants.js +2 -2
  120. package/dist/parser/css/css-token-stream.js +41 -4
  121. package/dist/parser/css/ubo-selector-parser.js +2 -2
  122. package/dist/parser/filterlist-parser.js +2 -2
  123. package/dist/parser/index.js +2 -2
  124. package/dist/parser/misc/app-list-parser.js +2 -2
  125. package/dist/parser/misc/domain-list-parser.js +2 -2
  126. package/dist/parser/misc/list-items-parser.js +2 -2
  127. package/dist/parser/misc/logical-expression-parser.js +2 -2
  128. package/dist/parser/misc/method-list-parser.js +2 -2
  129. package/dist/parser/misc/modifier-list.js +2 -2
  130. package/dist/parser/misc/modifier-parser.js +2 -2
  131. package/dist/parser/misc/parameter-list-parser.js +2 -2
  132. package/dist/parser/misc/stealth-option-list-parser.js +2 -2
  133. package/dist/parser/misc/ubo-parameter-list-parser.js +2 -2
  134. package/dist/parser/misc/value-parser.js +2 -2
  135. package/dist/parser/network/host-rule-parser.js +2 -2
  136. package/dist/parser/network/network-rule-parser.js +2 -2
  137. package/dist/parser/options.js +3 -2
  138. package/dist/parser/rule-parser.js +2 -2
  139. package/dist/types/common/ubo-html-filtering-body-common.d.ts +12 -0
  140. package/dist/types/compatibility-tables/compatibility-table-data.d.ts +3 -3
  141. package/dist/types/compatibility-tables/schemas/redirect.d.ts +1 -1
  142. package/dist/types/compatibility-tables/schemas/scriptlet.d.ts +2 -2
  143. package/dist/types/converter/cosmetic/html.d.ts +167 -42
  144. package/dist/types/converter/data/css.d.ts +18 -6
  145. package/dist/types/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.d.ts +17 -0
  146. package/dist/types/generator/cosmetic/html-filtering-body/html-filtering-body-generator.d.ts +17 -0
  147. package/dist/types/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.d.ts +30 -0
  148. package/dist/types/generator/cosmetic/selector/attribute-selector-generator.d.ts +15 -0
  149. package/dist/types/generator/cosmetic/selector/class-selector-generator.d.ts +15 -0
  150. package/dist/types/generator/cosmetic/selector/complex-selector-generator.d.ts +17 -0
  151. package/dist/types/generator/cosmetic/selector/id-selector-generator.d.ts +15 -0
  152. package/dist/types/generator/cosmetic/selector/pseudo-class-selector-generator.d.ts +15 -0
  153. package/dist/types/generator/cosmetic/selector/selector-combinator-generator.d.ts +15 -0
  154. package/dist/types/generator/cosmetic/selector/selector-list-generator.d.ts +17 -0
  155. package/dist/types/generator/cosmetic/selector/type-selector-generator.d.ts +15 -0
  156. package/dist/types/generator/css/adg-css-injection-generator.d.ts +1 -1
  157. package/dist/types/index.d.ts +3 -13
  158. package/dist/types/nodes/index.d.ts +159 -3
  159. package/dist/types/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.d.ts +35 -0
  160. package/dist/types/parser/cosmetic/html-filtering-body/html-filtering-body-parser.d.ts +39 -0
  161. package/dist/types/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.d.ts +63 -0
  162. package/dist/types/parser/cosmetic/selector/context.d.ts +42 -0
  163. package/dist/types/parser/cosmetic/selector/handlers/attribute-selector-handler.d.ts +35 -0
  164. package/dist/types/parser/cosmetic/selector/handlers/class-selector-handler.d.ts +15 -0
  165. package/dist/types/parser/cosmetic/selector/handlers/complex-selector-handler.d.ts +20 -0
  166. package/dist/types/parser/cosmetic/selector/handlers/compound-selector-handler.d.ts +25 -0
  167. package/dist/types/parser/cosmetic/selector/handlers/id-selector-handler.d.ts +15 -0
  168. package/dist/types/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.d.ts +15 -0
  169. package/dist/types/parser/cosmetic/selector/handlers/type-selector-handler.d.ts +15 -0
  170. package/dist/types/parser/cosmetic/selector/selector-list-parser.d.ts +38 -0
  171. package/dist/types/parser/css/adg-css-injection-parser.d.ts +0 -2
  172. package/dist/types/parser/css/css-token-stream.d.ts +18 -0
  173. package/dist/types/parser/network/network-rule-parser.d.ts +1 -1
  174. package/dist/types/parser/options.d.ts +5 -0
  175. package/dist/types/utils/constants.d.ts +1 -0
  176. package/dist/types/utils/index.d.ts +0 -6
  177. package/dist/types/utils/quotes.d.ts +44 -0
  178. package/dist/types/utils/regexp.d.ts +24 -0
  179. package/dist/utils/adblockers.js +2 -2
  180. package/dist/utils/bit-count.js +2 -2
  181. package/dist/utils/categorizer.js +2 -2
  182. package/dist/utils/clone.js +2 -2
  183. package/dist/utils/constants.js +6 -9
  184. package/dist/utils/cosmetic-rule-separator.js +2 -2
  185. package/dist/utils/deep-freeze.js +2 -2
  186. package/dist/utils/domain.js +2 -2
  187. package/dist/utils/error.js +2 -2
  188. package/dist/utils/index.js +2 -8
  189. package/dist/utils/logical-expression.js +2 -2
  190. package/dist/utils/multi-value-map.js +2 -2
  191. package/dist/utils/noop-modifier.js +2 -2
  192. package/dist/utils/position-provider.js +2 -2
  193. package/dist/utils/quotes.js +163 -10
  194. package/dist/utils/regexp.js +31 -2
  195. package/dist/utils/string.js +2 -2
  196. package/dist/utils/type-guards.js +3 -13
  197. package/dist/validator/constants.js +2 -2
  198. package/dist/validator/helpers.js +2 -2
  199. package/dist/validator/index.js +2 -2
  200. package/dist/validator/value.js +2 -2
  201. package/dist/version.js +2 -2
  202. package/package.json +6 -14
  203. package/dist/deserializer/base-deserializer.js +0 -29
  204. package/dist/deserializer/comment/agent-comment-deserializer.js +0 -79
  205. package/dist/deserializer/comment/agent-deserializer.js +0 -65
  206. package/dist/deserializer/comment/comment-rule-deserializer.js +0 -54
  207. package/dist/deserializer/comment/config-comment-deserializer.js +0 -111
  208. package/dist/deserializer/comment/hint-comment-deserializer.js +0 -72
  209. package/dist/deserializer/comment/hint-deserializer.js +0 -85
  210. package/dist/deserializer/comment/metadata-comment-deserializer.js +0 -69
  211. package/dist/deserializer/comment/pre-processor-comment-deserializer.js +0 -112
  212. package/dist/deserializer/comment/simple-comment-deserializer.js +0 -65
  213. package/dist/deserializer/cosmetic/cosmetic-rule-deserializer.js +0 -131
  214. package/dist/deserializer/cosmetic/css-injection-body-deserializer.js +0 -56
  215. package/dist/deserializer/cosmetic/element-hiding-body-deserializer.js +0 -48
  216. package/dist/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +0 -39
  217. package/dist/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +0 -40
  218. package/dist/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +0 -54
  219. package/dist/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +0 -38
  220. package/dist/deserializer/empty-rule-deserializer.js +0 -48
  221. package/dist/deserializer/filterlist-deserializer.js +0 -85
  222. package/dist/deserializer/index.js +0 -8
  223. package/dist/deserializer/invalid-rule-deserializer.js +0 -50
  224. package/dist/deserializer/invalid-rule-error-node-deserializer.js +0 -50
  225. package/dist/deserializer/misc/domain-list-deserializer.js +0 -64
  226. package/dist/deserializer/misc/list-item-deserializer.js +0 -69
  227. package/dist/deserializer/misc/list-items-deserializer.js +0 -30
  228. package/dist/deserializer/misc/logical-expression-deserializer.js +0 -196
  229. package/dist/deserializer/misc/modifier-deserializer.js +0 -87
  230. package/dist/deserializer/misc/modifier-list-deserializer.js +0 -61
  231. package/dist/deserializer/misc/parameter-list-deserializer.js +0 -64
  232. package/dist/deserializer/misc/value-deserializer.js +0 -50
  233. package/dist/deserializer/network/host-rule-deserializer.js +0 -67
  234. package/dist/deserializer/network/hostname-list-deserializer.js +0 -56
  235. package/dist/deserializer/network/network-rule-deserializer.js +0 -65
  236. package/dist/deserializer/rule-deserializer.js +0 -65
  237. package/dist/deserializer/syntax-deserialization-map.js +0 -21
  238. package/dist/marshalling-utils/comment/agent-comment-common.js +0 -21
  239. package/dist/marshalling-utils/comment/agent-common.js +0 -40
  240. package/dist/marshalling-utils/comment/config-comment-common.js +0 -54
  241. package/dist/marshalling-utils/comment/hint-comment-common.js +0 -22
  242. package/dist/marshalling-utils/comment/hint-common.js +0 -56
  243. package/dist/marshalling-utils/comment/metadata-comment-common.js +0 -41
  244. package/dist/marshalling-utils/comment/pre-processor-comment-common.js +0 -59
  245. package/dist/marshalling-utils/comment/simple-comment-common.js +0 -22
  246. package/dist/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +0 -61
  247. package/dist/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +0 -66
  248. package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +0 -24
  249. package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +0 -21
  250. package/dist/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +0 -114
  251. package/dist/marshalling-utils/cosmetic/cosmetic-rule-common.js +0 -46
  252. package/dist/marshalling-utils/empty-rule-common.js +0 -20
  253. package/dist/marshalling-utils/filter-list-common.js +0 -21
  254. package/dist/marshalling-utils/invalid-rule-common.js +0 -21
  255. package/dist/marshalling-utils/invalid-rule-error-node-common.js +0 -22
  256. package/dist/marshalling-utils/misc/binary-type-common.js +0 -54
  257. package/dist/marshalling-utils/misc/domain-list-common.js +0 -36
  258. package/dist/marshalling-utils/misc/host-rule-common.js +0 -24
  259. package/dist/marshalling-utils/misc/hostname-list-common.js +0 -21
  260. package/dist/marshalling-utils/misc/list-item-common.js +0 -22
  261. package/dist/marshalling-utils/misc/logical-expression-common.js +0 -83
  262. package/dist/marshalling-utils/misc/modifier-common.js +0 -231
  263. package/dist/marshalling-utils/misc/modifier-list-common.js +0 -21
  264. package/dist/marshalling-utils/misc/parameter-list-common.js +0 -21
  265. package/dist/marshalling-utils/misc/value-common.js +0 -22
  266. package/dist/marshalling-utils/network/network-rule-common.js +0 -24
  267. package/dist/marshalling-utils/syntax-serialization-map.js +0 -30
  268. package/dist/serializer/base-serializer.js +0 -29
  269. package/dist/serializer/comment/agent-comment-serializer.js +0 -74
  270. package/dist/serializer/comment/agent-serializer.js +0 -59
  271. package/dist/serializer/comment/comment-rule-serializer.js +0 -105
  272. package/dist/serializer/comment/config-comment-serializer.js +0 -82
  273. package/dist/serializer/comment/hint-comment-serializer.js +0 -65
  274. package/dist/serializer/comment/hint-serializer.js +0 -54
  275. package/dist/serializer/comment/metadata-comment-serializer.js +0 -73
  276. package/dist/serializer/comment/pre-processor-comment-serializer.js +0 -71
  277. package/dist/serializer/comment/simple-comment-serializer.js +0 -52
  278. package/dist/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +0 -36
  279. package/dist/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +0 -36
  280. package/dist/serializer/cosmetic/body/scriptlet-body-serializer.js +0 -50
  281. package/dist/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +0 -36
  282. package/dist/serializer/cosmetic/cosmetic-rule-serializer.js +0 -120
  283. package/dist/serializer/cosmetic/css-injection-body-serializer.js +0 -51
  284. package/dist/serializer/cosmetic/element-hiding-body-serializer.js +0 -40
  285. package/dist/serializer/empty-rule-serializer.js +0 -37
  286. package/dist/serializer/filterlist-serializer.js +0 -45
  287. package/dist/serializer/index.js +0 -7
  288. package/dist/serializer/invalid-rule-error-node-serializer.js +0 -41
  289. package/dist/serializer/invalid-rule-serializer.js +0 -40
  290. package/dist/serializer/misc/domain-list-serializer.js +0 -64
  291. package/dist/serializer/misc/list-item-serializer.js +0 -58
  292. package/dist/serializer/misc/list-items-serializer.js +0 -29
  293. package/dist/serializer/misc/logical-expression-serializer.js +0 -136
  294. package/dist/serializer/misc/modifier-list-serializer.js +0 -58
  295. package/dist/serializer/misc/modifier-serializer.js +0 -49
  296. package/dist/serializer/misc/parameter-list-serializer.js +0 -52
  297. package/dist/serializer/misc/value-serializer.js +0 -50
  298. package/dist/serializer/network/host-rule-serializer.js +0 -70
  299. package/dist/serializer/network/hostname-list-serializer.js +0 -53
  300. package/dist/serializer/network/network-rule-serializer.js +0 -54
  301. package/dist/serializer/rule-serializer.js +0 -61
  302. package/dist/types/deserializer/base-deserializer.d.ts +0 -15
  303. package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +0 -34
  304. package/dist/types/deserializer/comment/agent-deserializer.d.ts +0 -25
  305. package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +0 -16
  306. package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +0 -27
  307. package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +0 -24
  308. package/dist/types/deserializer/comment/hint-deserializer.d.ts +0 -26
  309. package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +0 -26
  310. package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +0 -29
  311. package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +0 -26
  312. package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +0 -18
  313. package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +0 -15
  314. package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +0 -16
  315. package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +0 -17
  316. package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +0 -18
  317. package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +0 -19
  318. package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +0 -17
  319. package/dist/types/deserializer/empty-rule-deserializer.d.ts +0 -16
  320. package/dist/types/deserializer/filterlist-deserializer.d.ts +0 -34
  321. package/dist/types/deserializer/index.d.ts +0 -2
  322. package/dist/types/deserializer/invalid-rule-deserializer.d.ts +0 -16
  323. package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +0 -16
  324. package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +0 -15
  325. package/dist/types/deserializer/misc/list-item-deserializer.d.ts +0 -19
  326. package/dist/types/deserializer/misc/list-items-deserializer.d.ts +0 -16
  327. package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +0 -55
  328. package/dist/types/deserializer/misc/modifier-deserializer.d.ts +0 -18
  329. package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +0 -20
  330. package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +0 -18
  331. package/dist/types/deserializer/misc/value-deserializer.d.ts +0 -17
  332. package/dist/types/deserializer/network/host-rule-deserializer.d.ts +0 -18
  333. package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +0 -15
  334. package/dist/types/deserializer/network/network-rule-deserializer.d.ts +0 -18
  335. package/dist/types/deserializer/rule-deserializer.d.ts +0 -17
  336. package/dist/types/deserializer/syntax-deserialization-map.d.ts +0 -2
  337. package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +0 -14
  338. package/dist/types/marshalling-utils/comment/agent-common.d.ts +0 -20
  339. package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +0 -42
  340. package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +0 -15
  341. package/dist/types/marshalling-utils/comment/hint-common.d.ts +0 -33
  342. package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +0 -21
  343. package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +0 -37
  344. package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +0 -15
  345. package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +0 -23
  346. package/dist/types/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.d.ts +0 -9
  347. package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +0 -17
  348. package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +0 -14
  349. package/dist/types/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.d.ts +0 -9
  350. package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +0 -28
  351. package/dist/types/marshalling-utils/empty-rule-common.d.ts +0 -13
  352. package/dist/types/marshalling-utils/filter-list-common.d.ts +0 -14
  353. package/dist/types/marshalling-utils/invalid-rule-common.d.ts +0 -14
  354. package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +0 -15
  355. package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +0 -57
  356. package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +0 -24
  357. package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +0 -18
  358. package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +0 -14
  359. package/dist/types/marshalling-utils/misc/list-item-common.d.ts +0 -15
  360. package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +0 -47
  361. package/dist/types/marshalling-utils/misc/modifier-common.d.ts +0 -41
  362. package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +0 -14
  363. package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +0 -14
  364. package/dist/types/marshalling-utils/misc/value-common.d.ts +0 -15
  365. package/dist/types/marshalling-utils/network/network-rule-common.d.ts +0 -18
  366. package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +0 -2
  367. package/dist/types/serializer/base-serializer.d.ts +0 -15
  368. package/dist/types/serializer/comment/agent-comment-serializer.d.ts +0 -34
  369. package/dist/types/serializer/comment/agent-serializer.d.ts +0 -15
  370. package/dist/types/serializer/comment/comment-rule-serializer.d.ts +0 -68
  371. package/dist/types/serializer/comment/config-comment-serializer.d.ts +0 -25
  372. package/dist/types/serializer/comment/hint-comment-serializer.d.ts +0 -23
  373. package/dist/types/serializer/comment/hint-serializer.d.ts +0 -24
  374. package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +0 -25
  375. package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +0 -28
  376. package/dist/types/serializer/comment/simple-comment-serializer.d.ts +0 -24
  377. package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +0 -25
  378. package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +0 -25
  379. package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +0 -17
  380. package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +0 -25
  381. package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +0 -19
  382. package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +0 -15
  383. package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +0 -15
  384. package/dist/types/serializer/empty-rule-serializer.d.ts +0 -15
  385. package/dist/types/serializer/filterlist-serializer.d.ts +0 -15
  386. package/dist/types/serializer/index.d.ts +0 -1
  387. package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +0 -15
  388. package/dist/types/serializer/invalid-rule-serializer.d.ts +0 -15
  389. package/dist/types/serializer/misc/domain-list-serializer.d.ts +0 -21
  390. package/dist/types/serializer/misc/list-item-serializer.d.ts +0 -16
  391. package/dist/types/serializer/misc/list-items-serializer.d.ts +0 -15
  392. package/dist/types/serializer/misc/logical-expression-serializer.d.ts +0 -52
  393. package/dist/types/serializer/misc/modifier-list-serializer.d.ts +0 -20
  394. package/dist/types/serializer/misc/modifier-serializer.d.ts +0 -18
  395. package/dist/types/serializer/misc/parameter-list-serializer.d.ts +0 -17
  396. package/dist/types/serializer/misc/value-serializer.d.ts +0 -17
  397. package/dist/types/serializer/network/host-rule-serializer.d.ts +0 -30
  398. package/dist/types/serializer/network/hostname-list-serializer.d.ts +0 -15
  399. package/dist/types/serializer/network/network-rule-serializer.d.ts +0 -18
  400. package/dist/types/serializer/rule-serializer.d.ts +0 -17
  401. package/dist/types/utils/binary-schema-version.d.ts +0 -9
  402. package/dist/types/utils/byte-buffer.d.ts +0 -54
  403. package/dist/types/utils/input-byte-buffer.d.ts +0 -146
  404. package/dist/types/utils/is-chromium.d.ts +0 -7
  405. package/dist/types/utils/output-byte-buffer.d.ts +0 -132
  406. package/dist/types/utils/storage-interface.d.ts +0 -23
  407. package/dist/types/utils/text-decoder-polyfill.d.ts +0 -14
  408. package/dist/types/utils/text-encoder-polyfill.d.ts +0 -18
  409. package/dist/utils/binary-schema-version.js +0 -17
  410. package/dist/utils/byte-buffer.js +0 -91
  411. package/dist/utils/input-byte-buffer.js +0 -266
  412. package/dist/utils/is-chromium.js +0 -20
  413. package/dist/utils/output-byte-buffer.js +0 -231
  414. package/dist/utils/text-decoder-polyfill.js +0 -107
  415. package/dist/utils/text-encoder-polyfill.js +0 -78
  416. /package/dist/types/generator/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-generator.d.ts +0 -0
  417. /package/dist/types/generator/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-generator.d.ts +0 -0
  418. /package/dist/types/generator/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-generator.d.ts +0 -0
  419. /package/dist/types/parser/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-parser.d.ts +0 -0
  420. /package/dist/types/parser/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-parser.d.ts +0 -0
  421. /package/dist/types/parser/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-parser.d.ts +0 -0
@@ -1,30 +0,0 @@
1
- /*
2
- * AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
3
- * (c) 2025 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- import { ListItemDeserializer } from './list-item-deserializer.js';
8
-
9
- /**
10
- * Deserializes lists of items from binary format.
11
- * Converts binary data to structured item nodes.
12
- */
13
- class ListItemsDeserializer {
14
- /**
15
- * Deserializes a list of items from binary format.
16
- *
17
- * @param buffer Input byte buffer.
18
- * @param items Partial list of items to deserialize.
19
- * @template T Type of the list items.
20
- */
21
- static deserialize = (buffer, items) => {
22
- const length = buffer.readUint16();
23
- items.length = length;
24
- for (let i = 0; i < length; i += 1) {
25
- ListItemDeserializer.deserialize(buffer, items[i] = {});
26
- }
27
- };
28
- }
29
-
30
- export { ListItemsDeserializer };
@@ -1,196 +0,0 @@
1
- /*
2
- * AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
3
- * (c) 2025 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- import { VariableNodeBinaryPropMarshallingMap, ParenthesisNodeBinaryPropMarshallingMap, OperatorNodeBinaryPropMarshallingMap, KNOWN_VARIABLES_SERIALIZATION_MAP, LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP } from '../../marshalling-utils/misc/logical-expression-common.js';
8
- import { NodeType } from '../../serializer/misc/logical-expression-serializer.js';
9
- import { NULL } from '../../utils/constants.js';
10
- import { isUndefined } from '../../utils/type-guards.js';
11
- import { BaseDeserializer } from '../base-deserializer.js';
12
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
13
-
14
- let logicalExpressionOperatorMarshallingMapReverse;
15
- const getOperatorBinaryMapReverse = () => {
16
- if (!logicalExpressionOperatorMarshallingMapReverse) {
17
- logicalExpressionOperatorMarshallingMapReverse = new Map(Array.from(LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP).map(([key, value]) => [value, key]));
18
- }
19
- return logicalExpressionOperatorMarshallingMapReverse;
20
- };
21
- /**
22
- * Gets the string representation of the operator from the binary representation.
23
- *
24
- * @param binary Binary representation of the operator
25
- * @returns String representation of the operator
26
- * @throws If the operator is unknown
27
- */
28
- const getOperatorOrFail = (binary) => {
29
- const operator = getOperatorBinaryMapReverse().get(binary);
30
- if (isUndefined(operator)) {
31
- throw new Error(`Unknown operator: ${binary}`);
32
- }
33
- return operator;
34
- };
35
- /**
36
- * Deserialization map for known variables.
37
- */
38
- let knownVariablesMapReverse;
39
- const getKnownVariablesMapReverse = () => {
40
- if (!knownVariablesMapReverse) {
41
- knownVariablesMapReverse = new Map(Array.from(KNOWN_VARIABLES_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
42
- }
43
- return knownVariablesMapReverse;
44
- };
45
- /**
46
- * Gets the frequent name of the variable from the binary representation.
47
- *
48
- * @param binary Binary representation of the variable
49
- * @returns Frequent name of the variable
50
- * @throws If the variable is unknown
51
- */
52
- const getFrequentNameOrFail = (binary) => {
53
- const name = getKnownVariablesMapReverse().get(binary);
54
- if (isUndefined(name)) {
55
- throw new Error(`Unknown frequent name: ${binary}`);
56
- }
57
- return name;
58
- };
59
- /**
60
- * `LogicalExpressionDeserializer` is responsible for deserializing logical expressions.
61
- *
62
- * @example
63
- * From the following rule:
64
- * ```adblock
65
- * !#if (adguard_ext_android_cb || adguard_ext_safari)
66
- * ```
67
- * this parser will parse the expression `(adguard_ext_android_cb || adguard_ext_safari)`.
68
- */
69
- // TODO: Refactor this class
70
- class LogicalExpressionDeserializer extends BaseDeserializer {
71
- /**
72
- * Deserializes a variable node from binary format.
73
- *
74
- * @param buffer ByteBuffer for reading binary data.
75
- * @param node Destination node.
76
- * @throws If the binary data is malformed.
77
- */
78
- static deserializeVariableNode(buffer, node) {
79
- buffer.assertUint8(BinaryTypeMarshallingMap.ExpressionVariableNode);
80
- node.type = NodeType.Variable;
81
- let prop = buffer.readUint8();
82
- while (prop !== NULL) {
83
- switch (prop) {
84
- case VariableNodeBinaryPropMarshallingMap.Name:
85
- node.name = buffer.readString();
86
- break;
87
- case VariableNodeBinaryPropMarshallingMap.FrequentName:
88
- node.name = getFrequentNameOrFail(buffer.readUint8());
89
- break;
90
- case VariableNodeBinaryPropMarshallingMap.Start:
91
- node.start = buffer.readUint32();
92
- break;
93
- case VariableNodeBinaryPropMarshallingMap.End:
94
- node.end = buffer.readUint32();
95
- break;
96
- default:
97
- throw new Error(`Invalid property: ${prop}`);
98
- }
99
- prop = buffer.readUint8();
100
- }
101
- }
102
- /**
103
- * Deserializes a parenthesis node from binary format.
104
- *
105
- * @param buffer ByteBuffer for reading binary data.
106
- * @param node Destination node.
107
- * @throws If the binary data is malformed.
108
- */
109
- static deserializeParenthesisNode(buffer, node) {
110
- buffer.assertUint8(BinaryTypeMarshallingMap.ExpressionParenthesisNode);
111
- node.type = NodeType.Parenthesis;
112
- let prop = buffer.readUint8();
113
- while (prop !== NULL) {
114
- switch (prop) {
115
- case ParenthesisNodeBinaryPropMarshallingMap.Expression:
116
- LogicalExpressionDeserializer.deserialize(buffer, node.expression = {});
117
- break;
118
- case ParenthesisNodeBinaryPropMarshallingMap.Start:
119
- node.start = buffer.readUint32();
120
- break;
121
- case ParenthesisNodeBinaryPropMarshallingMap.End:
122
- node.end = buffer.readUint32();
123
- break;
124
- default:
125
- throw new Error(`Invalid property: ${prop}`);
126
- }
127
- prop = buffer.readUint8();
128
- }
129
- }
130
- /**
131
- * Deserializes an operator node from binary format.
132
- *
133
- * @param buffer ByteBuffer for reading binary data.
134
- * @param node Destination node.
135
- * @throws If the binary data is malformed.
136
- */
137
- static deserializeOperatorNode(buffer, node) {
138
- buffer.assertUint8(BinaryTypeMarshallingMap.ExpressionOperatorNode);
139
- node.type = NodeType.Operator;
140
- let prop = buffer.readUint8();
141
- while (prop !== NULL) {
142
- switch (prop) {
143
- case OperatorNodeBinaryPropMarshallingMap.Operator:
144
- node.operator = getOperatorOrFail(buffer.readUint8());
145
- break;
146
- case OperatorNodeBinaryPropMarshallingMap.Left:
147
- LogicalExpressionDeserializer.deserialize(buffer, node.left = {});
148
- break;
149
- case OperatorNodeBinaryPropMarshallingMap.Right:
150
- LogicalExpressionDeserializer.deserialize(buffer, node.right = {});
151
- break;
152
- case OperatorNodeBinaryPropMarshallingMap.Start:
153
- node.start = buffer.readUint32();
154
- break;
155
- case OperatorNodeBinaryPropMarshallingMap.End:
156
- node.end = buffer.readUint32();
157
- break;
158
- default:
159
- throw new Error(`Invalid property: ${prop}`);
160
- }
161
- prop = buffer.readUint8();
162
- }
163
- }
164
- /**
165
- * Deserializes a logical expression node from binary format.
166
- *
167
- * @param buffer ByteBuffer for reading binary data.
168
- * @param node Destination node.
169
- * @throws If the binary data is malformed.
170
- */
171
- static deserialize(buffer, node) {
172
- // note: we just do a simple lookahead here, because advancing the buffer is done in the
173
- // 'sub-deserialize' methods
174
- let type = buffer.peekUint8();
175
- while (type !== NULL) {
176
- switch (type) {
177
- case BinaryTypeMarshallingMap.ExpressionVariableNode:
178
- LogicalExpressionDeserializer.deserializeVariableNode(buffer, node);
179
- break;
180
- case BinaryTypeMarshallingMap.ExpressionOperatorNode:
181
- LogicalExpressionDeserializer.deserializeOperatorNode(buffer, node);
182
- break;
183
- case BinaryTypeMarshallingMap.ExpressionParenthesisNode:
184
- LogicalExpressionDeserializer.deserializeParenthesisNode(buffer, node);
185
- break;
186
- default:
187
- throw new Error(`Unexpected node type: ${type}`);
188
- }
189
- type = buffer.peekUint8();
190
- }
191
- // consume NULL
192
- buffer.readUint8();
193
- }
194
- }
195
-
196
- export { LogicalExpressionDeserializer, getFrequentNameOrFail };
@@ -1,87 +0,0 @@
1
- /*
2
- * AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
3
- * (c) 2025 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- import { NULL } from '../../utils/constants.js';
8
- import { ValueDeserializer } from './value-deserializer.js';
9
- import { BaseDeserializer } from '../base-deserializer.js';
10
- import { ModifierNodeMarshallingMap, FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP, FREQUENT_MODIFIERS_SERIALIZATION_MAP } from '../../marshalling-utils/misc/modifier-common.js';
11
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /* eslint-disable no-param-reassign */
14
- /**
15
- * Value map for binary deserialization. This helps to reduce the size of the serialized data,
16
- * as it allows us to use a single byte to represent frequently used values.
17
- *
18
- * @note Only 256 values can be represented this way.
19
- */
20
- let frequentModifiersDeserializationMap;
21
- const getFrequentModifiersDeserializationMap = () => {
22
- if (!frequentModifiersDeserializationMap) {
23
- frequentModifiersDeserializationMap = new Map(Array.from(FREQUENT_MODIFIERS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
24
- }
25
- return frequentModifiersDeserializationMap;
26
- };
27
- /**
28
- * Value map for binary deserialization. This helps to reduce the size of the serialized data,
29
- * as it allows us to use a single byte to represent frequently used values.
30
- */
31
- let frequentValuesDeserializationMaps;
32
- const getFrequentValuesDeserializationMaps = () => {
33
- if (!frequentValuesDeserializationMaps) {
34
- frequentValuesDeserializationMaps = new Map(Array.from(FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP, ([modifier, valueMap]) => [modifier, new Map(Array.from(valueMap, ([key, value]) => [value, key]))]));
35
- }
36
- return frequentValuesDeserializationMaps;
37
- };
38
- /**
39
- * `ModifierDeserializer` is responsible for deserializing modifiers.
40
- *
41
- * @example
42
- * `match-case`, `~third-party`, `domain=example.com|~example.org`
43
- */
44
- class ModifierDeserializer extends BaseDeserializer {
45
- /**
46
- * Deserializes a modifier node from binary format.
47
- *
48
- * @param buffer ByteBuffer for reading binary data.
49
- * @param node Destination node.
50
- */
51
- static deserialize(buffer, node) {
52
- buffer.assertUint8(BinaryTypeMarshallingMap.ModifierNode);
53
- node.type = 'Modifier';
54
- let prop = buffer.readUint8();
55
- while (prop !== NULL) {
56
- switch (prop) {
57
- case ModifierNodeMarshallingMap.Name:
58
- // eslint-disable-next-line max-len
59
- ValueDeserializer.deserialize(buffer, node.name = {}, getFrequentModifiersDeserializationMap());
60
- break;
61
- case ModifierNodeMarshallingMap.Value:
62
- if (node.name) {
63
- // eslint-disable-next-line max-len
64
- ValueDeserializer.deserialize(buffer, node.value = {}, getFrequentValuesDeserializationMaps().get(node.name.value));
65
- }
66
- else {
67
- ValueDeserializer.deserialize(buffer, node.value = {});
68
- }
69
- break;
70
- case ModifierNodeMarshallingMap.Exception:
71
- node.exception = buffer.readUint8() === 1;
72
- break;
73
- case ModifierNodeMarshallingMap.Start:
74
- node.start = buffer.readUint32();
75
- break;
76
- case ModifierNodeMarshallingMap.End:
77
- node.end = buffer.readUint32();
78
- break;
79
- default:
80
- throw new Error(`Invalid property: ${prop}.`);
81
- }
82
- prop = buffer.readUint8();
83
- }
84
- }
85
- }
86
-
87
- export { ModifierDeserializer };
@@ -1,61 +0,0 @@
1
- /*
2
- * AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
3
- * (c) 2025 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- import { NULL } from '../../utils/constants.js';
8
- import { BaseDeserializer } from '../base-deserializer.js';
9
- import { ModifierDeserializer } from './modifier-deserializer.js';
10
- import { ModifierListNodeMarshallingMap } from '../../marshalling-utils/misc/modifier-list-common.js';
11
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /* eslint-disable no-param-reassign */
14
- /**
15
- * `ModifierListDeserializer` is responsible for deserializing modifier lists. Please note that the name is not
16
- * uniform, "modifiers" are also known as "options".
17
- *
18
- * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules-modifiers}
19
- * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#non-basic-rules-modifiers}
20
- * @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#options}
21
- */
22
- class ModifierListDeserializer extends BaseDeserializer {
23
- /**
24
- * Deserializes a modifier list node from binary format.
25
- *
26
- * @param buffer ByteBuffer for reading binary data.
27
- * @param node Destination node.
28
- */
29
- static deserialize(buffer, node) {
30
- buffer.assertUint8(BinaryTypeMarshallingMap.ModifierListNode);
31
- node.type = 'ModifierList';
32
- let prop = buffer.readUint8();
33
- while (prop !== NULL) {
34
- switch (prop) {
35
- case ModifierListNodeMarshallingMap.Children:
36
- node.children = new Array(buffer.readUint16());
37
- // read children
38
- for (let i = 0; i < node.children.length; i += 1) {
39
- ModifierDeserializer.deserialize(buffer, node.children[i] = {});
40
- }
41
- break;
42
- case ModifierListNodeMarshallingMap.Start:
43
- node.start = buffer.readUint32();
44
- break;
45
- case ModifierListNodeMarshallingMap.End:
46
- node.end = buffer.readUint32();
47
- break;
48
- default:
49
- throw new Error(`Invalid property: ${prop}.`);
50
- }
51
- prop = buffer.readUint8();
52
- }
53
- // Maybe children are not present in the binary data,
54
- // in this case, we should initialize it as an empty array.
55
- if (!node.children) {
56
- node.children = [];
57
- }
58
- }
59
- }
60
-
61
- export { ModifierListDeserializer };
@@ -1,64 +0,0 @@
1
- /*
2
- * AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
3
- * (c) 2025 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- import { NULL } from '../../utils/constants.js';
8
- import { ValueDeserializer } from './value-deserializer.js';
9
- import { BaseDeserializer } from '../base-deserializer.js';
10
- import { ParameterListNodeMarshallingMap } from '../../marshalling-utils/misc/parameter-list-common.js';
11
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /**
14
- * Deserializes binary data into parameter list nodes.
15
- * Optionally uses a map of frequent values for optimization.
16
- */
17
- class ParameterListDeserializer extends BaseDeserializer {
18
- /**
19
- * Deserializes a parameter list 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(BinaryTypeMarshallingMap.ParameterListNode);
28
- node.type = 'ParameterList';
29
- let prop = buffer.readUint8();
30
- while (prop !== NULL) {
31
- switch (prop) {
32
- case ParameterListNodeMarshallingMap.Children:
33
- node.children = new Array(buffer.readUint32());
34
- // read children
35
- for (let i = 0; i < node.children.length; i += 1) {
36
- switch (buffer.peekUint8()) {
37
- case BinaryTypeMarshallingMap.Null:
38
- buffer.readUint8();
39
- node.children[i] = null;
40
- break;
41
- case BinaryTypeMarshallingMap.ValueNode:
42
- // eslint-disable-next-line max-len
43
- ValueDeserializer.deserialize(buffer, node.children[i] = {}, frequentValuesMap);
44
- break;
45
- default:
46
- throw new Error(`Invalid child type: ${buffer.peekUint8()}`);
47
- }
48
- }
49
- break;
50
- case ParameterListNodeMarshallingMap.Start:
51
- node.start = buffer.readUint32();
52
- break;
53
- case ParameterListNodeMarshallingMap.End:
54
- node.end = buffer.readUint32();
55
- break;
56
- default:
57
- throw new Error(`Invalid property: ${prop}`);
58
- }
59
- prop = buffer.readUint8();
60
- }
61
- }
62
- }
63
-
64
- export { ParameterListDeserializer };
@@ -1,50 +0,0 @@
1
- /*
2
- * AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
3
- * (c) 2025 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- import { NULL, EMPTY } from '../../utils/constants.js';
8
- import { BaseDeserializer } from '../base-deserializer.js';
9
- import { ValueNodeMarshallingMap } from '../../marshalling-utils/misc/value-common.js';
10
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
11
-
12
- /**
13
- * Value deserializer.
14
- */
15
- class ValueDeserializer extends BaseDeserializer {
16
- /**
17
- * Deserializes a value 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(BinaryTypeMarshallingMap.ValueNode);
26
- node.type = 'Value';
27
- let prop = buffer.readUint8();
28
- while (prop !== NULL) {
29
- switch (prop) {
30
- case ValueNodeMarshallingMap.Value:
31
- node.value = buffer.readString();
32
- break;
33
- case ValueNodeMarshallingMap.FrequentValue:
34
- node.value = frequentValuesMap?.get(buffer.readUint8()) ?? EMPTY;
35
- break;
36
- case ValueNodeMarshallingMap.Start:
37
- node.start = buffer.readUint32();
38
- break;
39
- case ValueNodeMarshallingMap.End:
40
- node.end = buffer.readUint32();
41
- break;
42
- default:
43
- throw new Error(`Invalid property: ${prop}`);
44
- }
45
- prop = buffer.readUint8();
46
- }
47
- }
48
- }
49
-
50
- export { ValueDeserializer };
@@ -1,67 +0,0 @@
1
- /*
2
- * AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
3
- * (c) 2025 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- import { NULL } from '../../utils/constants.js';
8
- import { RuleCategory, NetworkRuleType } from '../../nodes/index.js';
9
- import { ValueDeserializer } from '../misc/value-deserializer.js';
10
- import { HostnameListDeserializer } from './hostname-list-deserializer.js';
11
- import { BaseDeserializer } from '../base-deserializer.js';
12
- import { HostRuleMarshallingMap } from '../../marshalling-utils/misc/host-rule-common.js';
13
- import { AdblockSyntax } from '../../utils/adblockers.js';
14
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
15
- import { getSyntaxDeserializationMap } from '../syntax-deserialization-map.js';
16
-
17
- /* eslint-disable no-param-reassign */
18
- /**
19
- * `HostRuleDeserializer` is responsible for deserializing hosts-like rules.
20
- *
21
- * HostRule is a structure for simple host-level rules (i.e. /etc/hosts syntax).
22
- * It also supports "just domain" syntax. In this case, the IP will be set to 0.0.0.0.
23
- */
24
- class HostRuleDeserializer extends BaseDeserializer {
25
- /**
26
- * Deserializes a host rule node from binary format.
27
- *
28
- * @param buffer Input byte buffer to read from.
29
- * @param node Destination node to write to.
30
- */
31
- static deserialize(buffer, node) {
32
- buffer.assertUint8(BinaryTypeMarshallingMap.HostRuleNode);
33
- node.category = RuleCategory.Network;
34
- node.type = NetworkRuleType.HostRule;
35
- let prop = buffer.readUint8();
36
- while (prop !== NULL) {
37
- switch (prop) {
38
- case HostRuleMarshallingMap.Syntax:
39
- node.syntax = getSyntaxDeserializationMap().get(buffer.readUint8()) ?? AdblockSyntax.Common;
40
- break;
41
- case HostRuleMarshallingMap.Ip:
42
- node.ip = {};
43
- ValueDeserializer.deserialize(buffer, node.ip);
44
- break;
45
- case HostRuleMarshallingMap.HostnameList:
46
- node.hostnames = {};
47
- HostnameListDeserializer.deserialize(buffer, node.hostnames);
48
- break;
49
- case HostRuleMarshallingMap.Comment:
50
- node.comment = {};
51
- ValueDeserializer.deserialize(buffer, node.comment);
52
- break;
53
- case HostRuleMarshallingMap.Start:
54
- node.start = buffer.readUint32();
55
- break;
56
- case HostRuleMarshallingMap.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
- export { HostRuleDeserializer };
@@ -1,56 +0,0 @@
1
- /*
2
- * AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
3
- * (c) 2025 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- import { BaseDeserializer } from '../base-deserializer.js';
8
- import { NULL } from '../../utils/constants.js';
9
- import { ValueDeserializer } from '../misc/value-deserializer.js';
10
- import { HostnameListNodeMarshallingMap } from '../../marshalling-utils/misc/hostname-list-common.js';
11
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /* eslint-disable no-param-reassign */
14
- /**
15
- * Deserializes hostname list nodes from binary format.
16
- */
17
- class HostnameListDeserializer extends BaseDeserializer {
18
- /**
19
- * Deserializes a hostname list node from binary format.
20
- *
21
- * @param buffer ByteBuffer for reading binary data.
22
- * @param node Destination node.
23
- */
24
- static deserialize(buffer, node) {
25
- buffer.assertUint8(BinaryTypeMarshallingMap.HostnameListNode);
26
- node.type = 'HostnameList';
27
- let prop = buffer.readUint8();
28
- while (prop !== NULL) {
29
- switch (prop) {
30
- case HostnameListNodeMarshallingMap.Children:
31
- node.children = new Array(buffer.readUint16());
32
- // read children
33
- for (let i = 0; i < node.children.length; i += 1) {
34
- ValueDeserializer.deserialize(buffer, node.children[i] = {});
35
- }
36
- break;
37
- case HostnameListNodeMarshallingMap.Start:
38
- node.start = buffer.readUint32();
39
- break;
40
- case HostnameListNodeMarshallingMap.End:
41
- node.end = buffer.readUint32();
42
- break;
43
- default:
44
- throw new Error(`Unknown property: ${prop}`);
45
- }
46
- prop = buffer.readUint8();
47
- }
48
- // Maybe children are not present in the binary data,
49
- // in this case, we should initialize it as an empty array.
50
- if (!node.children) {
51
- node.children = [];
52
- }
53
- }
54
- }
55
-
56
- export { HostnameListDeserializer };
@@ -1,65 +0,0 @@
1
- /*
2
- * AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
3
- * (c) 2025 Adguard Software Ltd.
4
- * Released under the MIT license
5
- * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
6
- */
7
- import { NULL } from '../../utils/constants.js';
8
- import { NetworkRuleType, RuleCategory } from '../../nodes/index.js';
9
- import { ValueDeserializer } from '../misc/value-deserializer.js';
10
- import { BaseDeserializer } from '../base-deserializer.js';
11
- import { ModifierListDeserializer } from '../misc/modifier-list-deserializer.js';
12
- import { NetworkRuleMarshallingMap } from '../../marshalling-utils/network/network-rule-common.js';
13
- import { AdblockSyntax } from '../../utils/adblockers.js';
14
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
15
- import { getSyntaxDeserializationMap } from '../syntax-deserialization-map.js';
16
-
17
- /* eslint-disable no-param-reassign */
18
- /**
19
- * `NetworkRuleDeserializer` is responsible for deserializing network rules.
20
- *
21
- * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules}
22
- * @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#basic}
23
- */
24
- class NetworkRuleDeserializer extends BaseDeserializer {
25
- /**
26
- * Deserializes a network rule 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(BinaryTypeMarshallingMap.NetworkRuleNode);
33
- node.type = NetworkRuleType.NetworkRule;
34
- node.category = RuleCategory.Network;
35
- node.modifiers = undefined;
36
- let prop = buffer.readUint8();
37
- while (prop !== NULL) {
38
- switch (prop) {
39
- case NetworkRuleMarshallingMap.Syntax:
40
- node.syntax = getSyntaxDeserializationMap().get(buffer.readUint8()) ?? AdblockSyntax.Common;
41
- break;
42
- case NetworkRuleMarshallingMap.Exception:
43
- node.exception = buffer.readUint8() === 1;
44
- break;
45
- case NetworkRuleMarshallingMap.Pattern:
46
- ValueDeserializer.deserialize(buffer, node.pattern = {});
47
- break;
48
- case NetworkRuleMarshallingMap.ModifierList:
49
- ModifierListDeserializer.deserialize(buffer, node.modifiers = {});
50
- break;
51
- case NetworkRuleMarshallingMap.Start:
52
- node.start = buffer.readUint32();
53
- break;
54
- case NetworkRuleMarshallingMap.End:
55
- node.end = buffer.readUint32();
56
- break;
57
- default:
58
- throw new Error(`Invalid property: ${prop}.`);
59
- }
60
- prop = buffer.readUint8();
61
- }
62
- }
63
- }
64
-
65
- export { NetworkRuleDeserializer };