@adguard/agtree 3.4.1 → 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 +4 -4
  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 +9 -3
  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 +8 -16
  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,56 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ValueDeserializer } from '../misc/value-deserializer.js';
8
- import { NULL } from '../../utils/constants.js';
9
- import { BaseDeserializer } from '../base-deserializer.js';
10
- import { CssInjectionRuleMarshallingMap } from '../../marshalling-utils/cosmetic/body/css-injection-body-common.js';
11
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /**
14
- * Deserializes CSS injection rule body nodes from binary format.
15
- */
16
- class CssInjectionBodyDeserializer extends BaseDeserializer {
17
- /**
18
- * Deserializes CSS injection rule body node from binary format.
19
- *
20
- * @param buffer ByteBuffer for reading binary data.
21
- * @param node Destination node.
22
- */
23
- static deserialize(buffer, node) {
24
- buffer.assertUint8(BinaryTypeMarshallingMap.CssInjectionRuleBody);
25
- node.type = 'CssInjectionRuleBody';
26
- node.remove = false;
27
- let prop = buffer.readUint8();
28
- while (prop !== NULL) {
29
- switch (prop) {
30
- case CssInjectionRuleMarshallingMap.MediaQueryList:
31
- ValueDeserializer.deserialize(buffer, node.mediaQueryList = {});
32
- break;
33
- case CssInjectionRuleMarshallingMap.SelectorList:
34
- ValueDeserializer.deserialize(buffer, node.selectorList = {});
35
- break;
36
- case CssInjectionRuleMarshallingMap.DeclarationList:
37
- ValueDeserializer.deserialize(buffer, node.declarationList = {});
38
- break;
39
- case CssInjectionRuleMarshallingMap.Remove:
40
- node.remove = true;
41
- break;
42
- case CssInjectionRuleMarshallingMap.Start:
43
- node.start = buffer.readUint32();
44
- break;
45
- case CssInjectionRuleMarshallingMap.End:
46
- node.end = buffer.readUint32();
47
- break;
48
- default:
49
- throw new Error(`Unknown property: ${prop}`);
50
- }
51
- prop = buffer.readUint8();
52
- }
53
- }
54
- }
55
-
56
- export { CssInjectionBodyDeserializer };
@@ -1,48 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ElementHidingRuleMarshallingMap } from '../../marshalling-utils/cosmetic/body/element-hiding-body-common.js';
10
- import { ValueDeserializer } from '../misc/value-deserializer.js';
11
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /* eslint-disable no-param-reassign */
14
- /**
15
- * Deserializes element hiding rule body nodes from binary data.
16
- * Populates the provided node with the deserialized data.
17
- */
18
- class ElementHidingBodyDeserializer extends BaseDeserializer {
19
- /**
20
- * Deserializes an element hiding rule body node from binary format.
21
- *
22
- * @param buffer ByteBuffer for reading binary data.
23
- * @param node Destination node.
24
- */
25
- static deserializeElementHidingBody(buffer, node) {
26
- buffer.assertUint8(BinaryTypeMarshallingMap.ElementHidingRuleBody);
27
- node.type = 'ElementHidingRuleBody';
28
- let prop = buffer.readUint8();
29
- while (prop !== NULL) {
30
- switch (prop) {
31
- case ElementHidingRuleMarshallingMap.SelectorList:
32
- ValueDeserializer.deserialize(buffer, node.selectorList = {});
33
- break;
34
- case ElementHidingRuleMarshallingMap.Start:
35
- node.start = buffer.readUint32();
36
- break;
37
- case ElementHidingRuleMarshallingMap.End:
38
- node.end = buffer.readUint32();
39
- break;
40
- default:
41
- throw new Error(`Unknown property: ${prop}`);
42
- }
43
- prop = buffer.readUint8();
44
- }
45
- }
46
- }
47
-
48
- export { ElementHidingBodyDeserializer };
@@ -1,39 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ScriptletBodyDeserializer } from './scriptlet-body-deserializer.js';
9
- import { FREQUENT_ABP_SNIPPET_ARGS_SERIALIZATION_MAP } from '../../../marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js';
10
-
11
- /**
12
- * Value map for binary deserialization. This helps to reduce the size of the serialized data,
13
- * as it allows us to use a single byte to represent frequently used values.
14
- */
15
- let frequentAbpSnippetArgsDeserializationMap;
16
- const getFrequentAbpSnippetArgsDeserializationMap = () => {
17
- if (!frequentAbpSnippetArgsDeserializationMap) {
18
- frequentAbpSnippetArgsDeserializationMap = new Map(Array.from(FREQUENT_ABP_SNIPPET_ARGS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
19
- }
20
- return frequentAbpSnippetArgsDeserializationMap;
21
- };
22
- /**
23
- * Deserializer for ABP snippet injection rule body nodes.
24
- * Converts binary data into a structured format using a map of frequently used arguments.
25
- */
26
- class AbpSnippetInjectionBodyDeserializer extends BaseDeserializer {
27
- /**
28
- * Deserializes a scriptlet call body node from binary format.
29
- *
30
- * @param buffer ByteBuffer for reading binary data.
31
- * @param node Destination node.
32
- * @throws If the binary data is malformed.
33
- */
34
- static deserialize(buffer, node) {
35
- ScriptletBodyDeserializer.deserialize(buffer, node, getFrequentAbpSnippetArgsDeserializationMap());
36
- }
37
- }
38
-
39
- export { AbpSnippetInjectionBodyDeserializer };
@@ -1,40 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ScriptletBodyDeserializer } from './scriptlet-body-deserializer.js';
9
- import { FREQUENT_ADG_SCRIPTLET_ARGS_SERIALIZATION_MAP } from '../../../marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js';
10
-
11
- /**
12
- * Value map for binary deserialization. This helps to reduce the size of the serialized data,
13
- * as it allows us to use a single byte to represent frequently used values.
14
- */
15
- let frequentAdgScriptletArgsDeserializationMap;
16
- const getFrequentAdgScriptletArgsDeserializationMap = () => {
17
- if (!frequentAdgScriptletArgsDeserializationMap) {
18
- frequentAdgScriptletArgsDeserializationMap = new Map(Array.from(FREQUENT_ADG_SCRIPTLET_ARGS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
19
- }
20
- return frequentAdgScriptletArgsDeserializationMap;
21
- };
22
- /**
23
- * Deserializer for AdGuard scriptlet injection body nodes.
24
- * Converts binary data into a structured scriptlet call body node specific to AdGuard,
25
- * using a predefined deserialization map for frequently used scriptlet arguments.
26
- */
27
- class AdgScriptletInjectionBodyDeserializer extends BaseDeserializer {
28
- /**
29
- * Deserializes a scriptlet call body node from binary format.
30
- *
31
- * @param buffer ByteBuffer for reading binary data.
32
- * @param node Destination node.
33
- * @throws If the binary data is malformed.
34
- */
35
- static deserialize(buffer, node) {
36
- ScriptletBodyDeserializer.deserialize(buffer, node, getFrequentAdgScriptletArgsDeserializationMap());
37
- }
38
- }
39
-
40
- export { AdgScriptletInjectionBodyDeserializer };
@@ -1,54 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ParameterListDeserializer } from '../../misc/parameter-list-deserializer.js';
9
- import { BaseDeserializer } from '../../base-deserializer.js';
10
- import { AbpSnippetBodyMarshallingMap } from '../../../marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js';
11
- import { BinaryTypeMarshallingMap } from '../../../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /**
14
- * Deserializes binary data into scriptlet body nodes.
15
- * Optionally uses a map of frequently used scriptlet arguments.
16
- */
17
- class ScriptletBodyDeserializer extends BaseDeserializer {
18
- /**
19
- * Deserializes a hint rule node from binary format.
20
- *
21
- * @param buffer ByteBuffer for reading binary data.
22
- * @param node Destination node.
23
- * @param frequentScriptletArgs Map of frequently used scriptlet names / arguments
24
- * and their serialization index (optional).
25
- * @throws If the binary data is malformed.
26
- */
27
- static deserialize = (buffer, node, frequentScriptletArgs) => {
28
- buffer.assertUint8(BinaryTypeMarshallingMap.ScriptletInjectionRuleBodyNode);
29
- node.type = 'ScriptletInjectionRuleBody';
30
- let prop = buffer.readUint8();
31
- while (prop !== NULL) {
32
- switch (prop) {
33
- case AbpSnippetBodyMarshallingMap.Children:
34
- node.children = new Array(buffer.readUint8());
35
- // read children
36
- for (let i = 0; i < node.children.length; i += 1) {
37
- ParameterListDeserializer.deserialize(buffer, node.children[i] = {}, frequentScriptletArgs);
38
- }
39
- break;
40
- case AbpSnippetBodyMarshallingMap.Start:
41
- node.start = buffer.readUint32();
42
- break;
43
- case AbpSnippetBodyMarshallingMap.End:
44
- node.end = buffer.readUint32();
45
- break;
46
- default:
47
- throw new Error(`Invalid property: ${prop}`);
48
- }
49
- prop = buffer.readUint8();
50
- }
51
- };
52
- }
53
-
54
- export { ScriptletBodyDeserializer };
@@ -1,38 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ScriptletBodyDeserializer } from './scriptlet-body-deserializer.js';
9
- import { FREQUENT_UBO_SCRIPTLET_ARGS_SERIALIZATION_MAP } from '../../../marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js';
10
-
11
- /**
12
- * Value map for binary deserialization. This helps to reduce the size of the serialized data,
13
- * as it allows us to use a single byte to represent frequently used values.
14
- */
15
- let frequentUboScriptletArgsDeserializationMap;
16
- const getFrequentPlatformsDeserializationMap = () => {
17
- if (!frequentUboScriptletArgsDeserializationMap) {
18
- frequentUboScriptletArgsDeserializationMap = new Map(Array.from(FREQUENT_UBO_SCRIPTLET_ARGS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
19
- }
20
- return frequentUboScriptletArgsDeserializationMap;
21
- };
22
- /**
23
- * Deserializes uBlock Origin scriptlet injection body nodes from binary data.
24
- */
25
- class UboScriptletInjectionBodyDeserializer extends BaseDeserializer {
26
- /**
27
- * Deserializes a scriptlet call body node from binary format.
28
- *
29
- * @param buffer ByteBuffer for reading binary data.
30
- * @param node Destination node to populate with deserialized data.
31
- * @throws If the binary data is malformed.
32
- */
33
- static deserialize(buffer, node) {
34
- ScriptletBodyDeserializer.deserialize(buffer, node, getFrequentPlatformsDeserializationMap());
35
- }
36
- }
37
-
38
- export { UboScriptletInjectionBodyDeserializer, getFrequentPlatformsDeserializationMap };
@@ -1,48 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { RuleCategory } from '../nodes/index.js';
9
- import { NULL } from '../utils/constants.js';
10
- import { EmptyRuleMarshallingMap } from '../marshalling-utils/empty-rule-common.js';
11
- import { AdblockSyntax } from '../utils/adblockers.js';
12
- import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
13
-
14
- /* eslint-disable no-param-reassign */
15
- /**
16
- * Deserializer for empty rule nodes.
17
- * This class handles the deserialization of empty rule nodes from binary format.
18
- */
19
- class EmptyRuleDeserializer extends BaseDeserializer {
20
- /**
21
- * Deserializes an empty rule node from binary format.
22
- *
23
- * @param buffer ByteBuffer for reading binary data.
24
- * @param node Destination node.
25
- */
26
- static deserialize(buffer, node) {
27
- buffer.assertUint8(BinaryTypeMarshallingMap.EmptyRule);
28
- node.type = 'EmptyRule';
29
- node.category = RuleCategory.Empty;
30
- node.syntax = AdblockSyntax.Common;
31
- let prop = buffer.readUint8();
32
- while (prop !== NULL) {
33
- switch (prop) {
34
- case EmptyRuleMarshallingMap.Start:
35
- node.start = buffer.readUint32();
36
- break;
37
- case EmptyRuleMarshallingMap.End:
38
- node.end = buffer.readUint32();
39
- break;
40
- default:
41
- throw new Error(`Invalid property: ${prop}.`);
42
- }
43
- prop = buffer.readUint8();
44
- }
45
- }
46
- }
47
-
48
- export { EmptyRuleDeserializer };
@@ -1,85 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { RuleDeserializer } from './rule-deserializer.js';
10
- import { FilterListNodeMarshallingMap } from '../marshalling-utils/filter-list-common.js';
11
- import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /**
14
- * Deserializer for filter lists.
15
- * Converts binary data into filter list nodes.
16
- */
17
- class FilterListDeserializer extends BaseDeserializer {
18
- /**
19
- * Deserializes a filter 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.FilterListNode);
26
- node.type = 'FilterList';
27
- let prop = buffer.readUint8();
28
- while (prop !== NULL) {
29
- switch (prop) {
30
- case FilterListNodeMarshallingMap.Children:
31
- node.children = new Array(buffer.readUint32());
32
- for (let i = 0; i < node.children.length; i += 1) {
33
- RuleDeserializer.deserialize(buffer, node.children[i] = {});
34
- }
35
- break;
36
- case FilterListNodeMarshallingMap.Start:
37
- node.start = buffer.readUint32();
38
- break;
39
- case FilterListNodeMarshallingMap.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
- * Helper method to jump to the children of the filter list node.
50
- *
51
- * Filter lists serialized in binary format are structured as follows:
52
- * - `FilterListNode` filter list node indicator (1 byte)
53
- * - Properties:
54
- * - `Children` (1 byte) - children count, followed by children nodes
55
- * - `Start` (1 byte) - start offset, if present, followed by the value
56
- * - `End` (1 byte) - end offset, if present, followed by the value
57
- * - `NULL` (1 byte) - closing indicator
58
- *
59
- * This method skips indicators, reads the children count and returns it.
60
- * This way the buffer is positioned at the beginning of the children nodes.
61
- *
62
- * @param buffer Reference to the input byte buffer.
63
- * @returns Number of children nodes.
64
- */
65
- static jumpToChildren(buffer) {
66
- buffer.assertUint8(BinaryTypeMarshallingMap.FilterListNode); // filter list indicator
67
- let prop = buffer.readUint8();
68
- while (prop) {
69
- switch (prop) {
70
- case FilterListNodeMarshallingMap.Children:
71
- return buffer.readUint32();
72
- case FilterListNodeMarshallingMap.Start:
73
- case FilterListNodeMarshallingMap.End:
74
- buffer.readUint32(); // ignore value
75
- break;
76
- default:
77
- throw new Error(`Invalid property: ${prop}.`);
78
- }
79
- prop = buffer.readUint8();
80
- }
81
- return 0;
82
- }
83
- }
84
-
85
- export { FilterListDeserializer };
@@ -1,8 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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
- export { RuleDeserializer } from './rule-deserializer.js';
8
- export { getSyntaxDeserializationMap } from './syntax-deserialization-map.js';
@@ -1,50 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { RuleCategory } from '../nodes/index.js';
9
- import { NULL } from '../utils/constants.js';
10
- import { InvalidRuleErrorNodeDeserializer } from './invalid-rule-error-node-deserializer.js';
11
- import { InvalidRuleMarshallingMap } from '../marshalling-utils/invalid-rule-common.js';
12
- import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
13
-
14
- /* eslint-disable no-param-reassign */
15
- /**
16
- * Deserializer for invalid rule nodes.
17
- * Converts binary data into invalid rule nodes.
18
- */
19
- class InvalidRuleDeserializer extends BaseDeserializer {
20
- /**
21
- * Deserializes an invalid rule node from binary format.
22
- *
23
- * @param buffer ByteBuffer for reading binary data.
24
- * @param node Destination node.
25
- */
26
- static deserialize(buffer, node) {
27
- buffer.assertUint8(BinaryTypeMarshallingMap.InvalidRule);
28
- node.type = 'InvalidRule';
29
- node.category = RuleCategory.Invalid;
30
- let prop = buffer.readUint8();
31
- while (prop !== NULL) {
32
- switch (prop) {
33
- case InvalidRuleMarshallingMap.Error:
34
- InvalidRuleErrorNodeDeserializer.deserialize(buffer, node.error = {});
35
- break;
36
- case InvalidRuleMarshallingMap.Start:
37
- node.start = buffer.readUint32();
38
- break;
39
- case InvalidRuleMarshallingMap.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 { InvalidRuleDeserializer };
@@ -1,50 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { InvalidRuleErrorNodeMarshallingMap } from '../marshalling-utils/invalid-rule-error-node-common.js';
10
- import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
11
-
12
- /* eslint-disable no-param-reassign */
13
- /**
14
- * Deserializer for invalid rule error nodes.
15
- * Converts binary data into invalid rule error nodes.
16
- */
17
- class InvalidRuleErrorNodeDeserializer extends BaseDeserializer {
18
- /**
19
- * Deserializes an invalid rule error 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.InvalidRuleErrorNode);
26
- node.type = 'InvalidRuleError';
27
- let prop = buffer.readUint8();
28
- while (prop !== NULL) {
29
- switch (prop) {
30
- case InvalidRuleErrorNodeMarshallingMap.Name:
31
- node.name = buffer.readString();
32
- break;
33
- case InvalidRuleErrorNodeMarshallingMap.Message:
34
- node.message = buffer.readString();
35
- break;
36
- case InvalidRuleErrorNodeMarshallingMap.Start:
37
- node.start = buffer.readUint32();
38
- break;
39
- case InvalidRuleErrorNodeMarshallingMap.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 { InvalidRuleErrorNodeDeserializer };
@@ -1,64 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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, COMMA } from '../../utils/constants.js';
8
- import { ListNodeType } from '../../nodes/index.js';
9
- import { BaseDeserializer } from '../base-deserializer.js';
10
- import { DomainListMarshallingMap, SEPARATOR_SERIALIZATION_MAP } from '../../marshalling-utils/misc/domain-list-common.js';
11
- import { ListItemsDeserializer } from './list-items-deserializer.js';
12
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
13
-
14
- /* eslint-disable no-param-reassign */
15
- /**
16
- * Value map for binary deserialization. This helps to reduce the size of the serialized data,
17
- * as it allows us to use a single byte to represent frequently used values.
18
- */
19
- let separatorDeserializationMap;
20
- const getSeparatorDeserializationMap = () => {
21
- if (!separatorDeserializationMap) {
22
- separatorDeserializationMap = new Map(Array.from(SEPARATOR_SERIALIZATION_MAP)
23
- .map(([key, value]) => [value, key]));
24
- }
25
- return separatorDeserializationMap;
26
- };
27
- /**
28
- * `DomainListDeserializer` is responsible for deserializing a domain list.
29
- */
30
- class DomainListDeserializer extends BaseDeserializer {
31
- /**
32
- * Deserializes a modifier list node from binary format.
33
- *
34
- * @param buffer ByteBuffer for reading binary data.
35
- * @param node Destination node.
36
- */
37
- static deserialize(buffer, node) {
38
- buffer.assertUint8(BinaryTypeMarshallingMap.DomainListNode);
39
- node.type = ListNodeType.DomainList;
40
- let prop = buffer.readUint8();
41
- while (prop !== NULL) {
42
- switch (prop) {
43
- case DomainListMarshallingMap.Separator:
44
- // eslint-disable-next-line max-len
45
- node.separator = (getSeparatorDeserializationMap().get(buffer.readUint8()) ?? COMMA);
46
- break;
47
- case DomainListMarshallingMap.Children:
48
- ListItemsDeserializer.deserialize(buffer, node.children = []);
49
- break;
50
- case DomainListMarshallingMap.Start:
51
- node.start = buffer.readUint32();
52
- break;
53
- case DomainListMarshallingMap.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 { DomainListDeserializer };
@@ -1,69 +0,0 @@
1
- /*
2
- * AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ListItemNodeType } from '../../nodes/index.js';
9
- import { NULL } from '../../utils/constants.js';
10
- import { ListItemMarshallingMap } from '../../marshalling-utils/misc/list-item-common.js';
11
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /* eslint-disable no-param-reassign */
14
- /**
15
- * `ListItemDeserializer` is responsible for deserializing list item nodes from binary format.
16
- *
17
- * @example
18
- * `app`, `domain`, `method`, `stealth-option`
19
- */
20
- class ListItemDeserializer extends BaseDeserializer {
21
- /**
22
- * Deserializes a list item from binary format.
23
- *
24
- * @param buffer Input byte buffer.
25
- * @param node Partial list item to deserialize.
26
- * @template T Type of the list item.
27
- */
28
- static deserialize = (buffer, node) => {
29
- const type = buffer.readUint8();
30
- switch (type) {
31
- case BinaryTypeMarshallingMap.AppNode:
32
- node.type = ListItemNodeType.App;
33
- break;
34
- case BinaryTypeMarshallingMap.DomainNode:
35
- node.type = ListItemNodeType.Domain;
36
- break;
37
- case BinaryTypeMarshallingMap.MethodNode:
38
- node.type = ListItemNodeType.Method;
39
- break;
40
- case BinaryTypeMarshallingMap.StealthOptionNode:
41
- node.type = ListItemNodeType.StealthOption;
42
- break;
43
- default:
44
- throw new Error(`Invalid list item type: ${type}`);
45
- }
46
- let prop = buffer.readUint8();
47
- while (prop !== NULL) {
48
- switch (prop) {
49
- case ListItemMarshallingMap.Exception:
50
- node.exception = buffer.readUint8() === 1;
51
- break;
52
- case ListItemMarshallingMap.Value:
53
- node.value = buffer.readString();
54
- break;
55
- case ListItemMarshallingMap.Start:
56
- node.start = buffer.readUint32();
57
- break;
58
- case ListItemMarshallingMap.End:
59
- node.end = buffer.readUint32();
60
- break;
61
- default:
62
- throw new Error(`Invalid property: ${type}`);
63
- }
64
- prop = buffer.readUint8();
65
- }
66
- };
67
- }
68
-
69
- export { ListItemDeserializer };