@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,120 +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 { AdblockSyntax } from '../../utils/adblockers.js';
8
- import { DomainListSerializer } from '../misc/domain-list-serializer.js';
9
- import { NULL } from '../../utils/constants.js';
10
- import { CosmeticRuleType } from '../../nodes/index.js';
11
- import { AbpSnippetInjectionBodySerializer } from './body/abp-snippet-injection-body-serializer.js';
12
- import { UboScriptletInjectionBodySerializer } from './body/ubo-scriptlet-injection-body-serializer.js';
13
- import { AdgScriptletInjectionBodySerializer } from './body/adg-scriptlet-injection-body-serializer.js';
14
- import { ValueSerializer } from '../misc/value-serializer.js';
15
- import { isUndefined } from '../../utils/type-guards.js';
16
- import { BaseSerializer } from '../base-serializer.js';
17
- import { ElementHidingBodySerializer } from './element-hiding-body-serializer.js';
18
- import { CssInjectionBodySerializer } from './css-injection-body-serializer.js';
19
- import { ModifierListSerializer } from '../misc/modifier-list-serializer.js';
20
- import { CosmeticRuleMarshallingMap, COSMETIC_RULE_SEPARATOR_SERIALIZATION_MAP } from '../../marshalling-utils/cosmetic/cosmetic-rule-common.js';
21
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
22
- import { getSyntaxSerializationMap } from '../../marshalling-utils/syntax-serialization-map.js';
23
-
24
- /**
25
- * `CosmeticRuleSerializer` is responsible for serializing cosmetic rules into a binary format.
26
- *
27
- * This class takes a cosmetic rule Abstract Syntax Tree (AST) and converts it into a compact binary representation.
28
- * It handles the serialization of different types of cosmetic rules, including element hiding, CSS injection,
29
- * JavaScript injection, HTML filtering, and scriptlet injection rules.
30
- */
31
- class CosmeticRuleSerializer extends BaseSerializer {
32
- /**
33
- * Serializes a cosmetic rule node to binary format.
34
- *
35
- * @param node Node to serialize.
36
- * @param buffer ByteBuffer for writing binary data.
37
- */
38
- // TODO: add support for raws, if ever needed
39
- static serialize(node, buffer) {
40
- // specific properties
41
- switch (node.type) {
42
- case CosmeticRuleType.ElementHidingRule:
43
- // rule type
44
- buffer.writeUint8(BinaryTypeMarshallingMap.ElementHidingRule);
45
- // syntax
46
- buffer.writeUint8(getSyntaxSerializationMap().get(node.syntax) ?? 0);
47
- // rule body
48
- ElementHidingBodySerializer.serialize(node.body, buffer);
49
- break;
50
- case CosmeticRuleType.CssInjectionRule:
51
- // rule type
52
- buffer.writeUint8(BinaryTypeMarshallingMap.CssInjectionRule);
53
- // syntax
54
- buffer.writeUint8(getSyntaxSerializationMap().get(node.syntax) ?? 0);
55
- // rule body
56
- CssInjectionBodySerializer.serialize(node.body, buffer);
57
- break;
58
- case CosmeticRuleType.JsInjectionRule:
59
- // rule type
60
- buffer.writeUint8(BinaryTypeMarshallingMap.JsInjectionRule);
61
- // syntax
62
- buffer.writeUint8(getSyntaxSerializationMap().get(node.syntax) ?? 0);
63
- // rule body
64
- ValueSerializer.serialize(node.body, buffer);
65
- break;
66
- case CosmeticRuleType.HtmlFilteringRule:
67
- // rule type
68
- buffer.writeUint8(BinaryTypeMarshallingMap.HtmlFilteringRule);
69
- // syntax
70
- buffer.writeUint8(getSyntaxSerializationMap().get(node.syntax) ?? 0);
71
- // rule body
72
- ValueSerializer.serialize(node.body, buffer);
73
- break;
74
- case CosmeticRuleType.ScriptletInjectionRule:
75
- // rule type
76
- buffer.writeUint8(BinaryTypeMarshallingMap.ScriptletInjectionRule);
77
- // syntax
78
- buffer.writeUint8(getSyntaxSerializationMap().get(node.syntax) ?? 0);
79
- // rule body
80
- switch (node.syntax) {
81
- case AdblockSyntax.Adg:
82
- AdgScriptletInjectionBodySerializer.serialize(node.body, buffer);
83
- break;
84
- case AdblockSyntax.Abp:
85
- AbpSnippetInjectionBodySerializer.serialize(node.body, buffer);
86
- break;
87
- case AdblockSyntax.Ubo:
88
- UboScriptletInjectionBodySerializer.serialize(node.body, buffer);
89
- break;
90
- default:
91
- throw new Error('Scriptlet rule should have an explicit syntax');
92
- }
93
- break;
94
- default:
95
- throw new Error('Unknown cosmetic rule type');
96
- }
97
- // common properties
98
- buffer.writeUint8(CosmeticRuleMarshallingMap.Exception);
99
- buffer.writeUint8(node.exception ? 1 : 0);
100
- buffer.writeUint8(CosmeticRuleMarshallingMap.Separator);
101
- ValueSerializer.serialize(node.separator, buffer, COSMETIC_RULE_SEPARATOR_SERIALIZATION_MAP);
102
- if (node.modifiers) {
103
- buffer.writeUint8(CosmeticRuleMarshallingMap.Modifiers);
104
- ModifierListSerializer.serialize(node.modifiers, buffer);
105
- }
106
- buffer.writeUint8(CosmeticRuleMarshallingMap.Domains);
107
- DomainListSerializer.serialize(node.domains, buffer);
108
- if (!isUndefined(node.start)) {
109
- buffer.writeUint8(CosmeticRuleMarshallingMap.Start);
110
- buffer.writeUint32(node.start);
111
- }
112
- if (!isUndefined(node.end)) {
113
- buffer.writeUint8(CosmeticRuleMarshallingMap.End);
114
- buffer.writeUint32(node.end);
115
- }
116
- buffer.writeUint8(NULL);
117
- }
118
- }
119
-
120
- export { CosmeticRuleSerializer };
@@ -1,51 +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 { ValueSerializer } from '../misc/value-serializer.js';
8
- import { isUndefined } from '../../utils/type-guards.js';
9
- import { NULL } from '../../utils/constants.js';
10
- import { BaseSerializer } from '../base-serializer.js';
11
- import { CssInjectionRuleMarshallingMap } from '../../marshalling-utils/cosmetic/body/css-injection-body-common.js';
12
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
13
-
14
- /**
15
- * Serializer for CSS injection rule body nodes.
16
- */
17
- class CssInjectionBodySerializer extends BaseSerializer {
18
- /**
19
- * Serializes a CSS injection rule body node to binary format.
20
- *
21
- * @param node Node to serialize.
22
- * @param buffer ByteBuffer for writing binary data.
23
- */
24
- static serialize(node, buffer) {
25
- buffer.writeUint8(BinaryTypeMarshallingMap.CssInjectionRuleBody);
26
- if (node.mediaQueryList) {
27
- buffer.writeUint8(CssInjectionRuleMarshallingMap.MediaQueryList);
28
- ValueSerializer.serialize(node.mediaQueryList, buffer);
29
- }
30
- buffer.writeUint8(CssInjectionRuleMarshallingMap.SelectorList);
31
- ValueSerializer.serialize(node.selectorList, buffer);
32
- if (node.declarationList) {
33
- buffer.writeUint8(CssInjectionRuleMarshallingMap.DeclarationList);
34
- ValueSerializer.serialize(node.declarationList, buffer);
35
- }
36
- if (node.remove) {
37
- buffer.writeUint8(CssInjectionRuleMarshallingMap.Remove);
38
- }
39
- if (!isUndefined(node.start)) {
40
- buffer.writeUint8(CssInjectionRuleMarshallingMap.Start);
41
- buffer.writeUint32(node.start);
42
- }
43
- if (!isUndefined(node.end)) {
44
- buffer.writeUint8(CssInjectionRuleMarshallingMap.End);
45
- buffer.writeUint32(node.end);
46
- }
47
- buffer.writeUint8(NULL);
48
- }
49
- }
50
-
51
- export { CssInjectionBodySerializer };
@@ -1,40 +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 { BaseSerializer } from '../base-serializer.js';
8
- import { ValueSerializer } from '../misc/value-serializer.js';
9
- import { isUndefined } from '../../utils/type-guards.js';
10
- import { NULL } from '../../utils/constants.js';
11
- import { ElementHidingRuleMarshallingMap } from '../../marshalling-utils/cosmetic/body/element-hiding-body-common.js';
12
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
13
-
14
- /**
15
- * Serializer for element hiding rule body nodes.
16
- */
17
- class ElementHidingBodySerializer extends BaseSerializer {
18
- /**
19
- * Serializes an element hiding rule body node to binary format.
20
- *
21
- * @param node Node to serialize.
22
- * @param buffer ByteBuffer for writing binary data.
23
- */
24
- static serialize(node, buffer) {
25
- buffer.writeUint8(BinaryTypeMarshallingMap.ElementHidingRuleBody);
26
- buffer.writeUint8(ElementHidingRuleMarshallingMap.SelectorList);
27
- ValueSerializer.serialize(node.selectorList, buffer);
28
- if (!isUndefined(node.start)) {
29
- buffer.writeUint8(ElementHidingRuleMarshallingMap.Start);
30
- buffer.writeUint32(node.start);
31
- }
32
- if (!isUndefined(node.end)) {
33
- buffer.writeUint8(ElementHidingRuleMarshallingMap.End);
34
- buffer.writeUint32(node.end);
35
- }
36
- buffer.writeUint8(NULL);
37
- }
38
- }
39
-
40
- export { ElementHidingBodySerializer };
@@ -1,37 +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 { BaseSerializer } from './base-serializer.js';
8
- import { isUndefined } from '../utils/type-guards.js';
9
- import { NULL } from '../utils/constants.js';
10
- import { EmptyRuleMarshallingMap } from '../marshalling-utils/empty-rule-common.js';
11
- import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /**
14
- * Serializer for empty rule nodes.
15
- */
16
- class EmptyRuleSerializer extends BaseSerializer {
17
- /**
18
- * Serializes an empty rule node to binary format.
19
- *
20
- * @param node Node to serialize.
21
- * @param buffer ByteBuffer for writing binary data.
22
- */
23
- static serialize(node, buffer) {
24
- buffer.writeUint8(BinaryTypeMarshallingMap.EmptyRule);
25
- if (!isUndefined(node.start)) {
26
- buffer.writeUint8(EmptyRuleMarshallingMap.Start);
27
- buffer.writeUint32(node.start);
28
- }
29
- if (!isUndefined(node.end)) {
30
- buffer.writeUint8(EmptyRuleMarshallingMap.End);
31
- buffer.writeUint32(node.end);
32
- }
33
- buffer.writeUint8(NULL);
34
- }
35
- }
36
-
37
- export { EmptyRuleSerializer };
@@ -1,45 +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 { isUndefined } from '../utils/type-guards.js';
9
- import { BaseSerializer } from './base-serializer.js';
10
- import { RuleSerializer } from './rule-serializer.js';
11
- import { FilterListNodeMarshallingMap } from '../marshalling-utils/filter-list-common.js';
12
- import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
13
-
14
- /**
15
- * Serializes filter list nodes to binary format.
16
- */
17
- class FilterListSerializer extends BaseSerializer {
18
- /**
19
- * Serializes a filter list node to binary format.
20
- *
21
- * @param node Node to serialize.
22
- * @param buffer ByteBuffer for writing binary data.
23
- */
24
- // TODO: add support for raws, if ever needed
25
- static serialize(node, buffer) {
26
- buffer.writeUint8(BinaryTypeMarshallingMap.FilterListNode);
27
- buffer.writeUint8(FilterListNodeMarshallingMap.Children);
28
- const count = node.children.length;
29
- buffer.writeUint32(count);
30
- for (let i = 0; i < count; i += 1) {
31
- RuleSerializer.serialize(node.children[i], buffer);
32
- }
33
- if (!isUndefined(node.start)) {
34
- buffer.writeUint8(FilterListNodeMarshallingMap.Start);
35
- buffer.writeUint32(node.start);
36
- }
37
- if (!isUndefined(node.end)) {
38
- buffer.writeUint8(FilterListNodeMarshallingMap.End);
39
- buffer.writeUint32(node.end);
40
- }
41
- buffer.writeUint8(NULL);
42
- }
43
- }
44
-
45
- export { FilterListSerializer };
@@ -1,7 +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
- export { RuleSerializer } from './rule-serializer.js';
@@ -1,41 +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 { BaseSerializer } from './base-serializer.js';
8
- import { isUndefined } from '../utils/type-guards.js';
9
- import { NULL } from '../utils/constants.js';
10
- import { InvalidRuleErrorNodeMarshallingMap } from '../marshalling-utils/invalid-rule-error-node-common.js';
11
- import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /**
14
- * Serializer for invalid rule error nodes.
15
- */
16
- class InvalidRuleErrorNodeSerializer extends BaseSerializer {
17
- /**
18
- * Serializes an invalid rule error node to binary format.
19
- *
20
- * @param node Node to serialize.
21
- * @param buffer ByteBuffer for writing binary data.
22
- */
23
- static serialize(node, buffer) {
24
- buffer.writeUint8(BinaryTypeMarshallingMap.InvalidRuleErrorNode);
25
- buffer.writeUint8(InvalidRuleErrorNodeMarshallingMap.Name);
26
- buffer.writeString(node.name);
27
- buffer.writeUint8(InvalidRuleErrorNodeMarshallingMap.Message);
28
- buffer.writeString(node.message);
29
- if (!isUndefined(node.start)) {
30
- buffer.writeUint8(InvalidRuleErrorNodeMarshallingMap.Start);
31
- buffer.writeUint32(node.start);
32
- }
33
- if (!isUndefined(node.end)) {
34
- buffer.writeUint8(InvalidRuleErrorNodeMarshallingMap.End);
35
- buffer.writeUint32(node.end);
36
- }
37
- buffer.writeUint8(NULL);
38
- }
39
- }
40
-
41
- export { InvalidRuleErrorNodeSerializer };
@@ -1,40 +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 { BaseSerializer } from './base-serializer.js';
8
- import { isUndefined } from '../utils/type-guards.js';
9
- import { NULL } from '../utils/constants.js';
10
- import { InvalidRuleErrorNodeSerializer } from './invalid-rule-error-node-serializer.js';
11
- import { InvalidRuleMarshallingMap } from '../marshalling-utils/invalid-rule-common.js';
12
- import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
13
-
14
- /**
15
- * Serializer for invalid rule nodes.
16
- */
17
- class InvalidRuleSerializer extends BaseSerializer {
18
- /**
19
- * Serializes an invalid rule node to binary format.
20
- *
21
- * @param node Node to serialize.
22
- * @param buffer ByteBuffer for writing binary data.
23
- */
24
- static serialize(node, buffer) {
25
- buffer.writeUint8(BinaryTypeMarshallingMap.InvalidRule);
26
- buffer.writeUint8(InvalidRuleMarshallingMap.Error);
27
- InvalidRuleErrorNodeSerializer.serialize(node.error, buffer);
28
- if (!isUndefined(node.start)) {
29
- buffer.writeUint8(InvalidRuleMarshallingMap.Start);
30
- buffer.writeUint32(node.start);
31
- }
32
- if (!isUndefined(node.end)) {
33
- buffer.writeUint8(InvalidRuleMarshallingMap.End);
34
- buffer.writeUint32(node.end);
35
- }
36
- buffer.writeUint8(NULL);
37
- }
38
- }
39
-
40
- export { InvalidRuleSerializer };
@@ -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, COMMA, PIPE } from '../../utils/constants.js';
8
- import { isUndefined } from '../../utils/type-guards.js';
9
- import { BaseSerializer } from '../base-serializer.js';
10
- import { ListItemsSerializer } from './list-items-serializer.js';
11
- import { DomainListMarshallingMap } from '../../marshalling-utils/misc/domain-list-common.js';
12
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
13
-
14
- /**
15
- * Value map for binary serialization. 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
- * ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
19
- *
20
- * @note Only 256 values can be represented this way.
21
- */
22
- const SEPARATOR_SERIALIZATION_MAP = new Map([
23
- [COMMA, 0],
24
- [PIPE, 1],
25
- ]);
26
- /**
27
- * `DomainListSerializer` is responsible for serializing a domain list.
28
- *
29
- * @example
30
- * - If the rule is `example.com,~example.net##.ads`, the domain list is `example.com,~example.net`.
31
- * - If the rule is `ads.js^$script,domains=example.com|~example.org`, the domain list is `example.com|~example.org`.
32
- * This serializer is responsible for serializing these domain lists.
33
- * @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#elemhide_domains}
34
- */
35
- class DomainListSerializer extends BaseSerializer {
36
- /**
37
- * Serializes a domain list node to binary format.
38
- *
39
- * @param node Node to serialize.
40
- * @param buffer ByteBuffer for writing binary data.
41
- */
42
- static serialize(node, buffer) {
43
- buffer.writeUint8(BinaryTypeMarshallingMap.DomainListNode);
44
- const separator = SEPARATOR_SERIALIZATION_MAP.get(node.separator);
45
- if (isUndefined(separator)) {
46
- throw new Error(`Invalid separator: ${node.separator}`);
47
- }
48
- buffer.writeUint8(DomainListMarshallingMap.Separator);
49
- buffer.writeUint8(separator);
50
- buffer.writeUint8(DomainListMarshallingMap.Children);
51
- ListItemsSerializer.serialize(node.children, buffer);
52
- if (!isUndefined(node.start)) {
53
- buffer.writeUint8(DomainListMarshallingMap.Start);
54
- buffer.writeUint32(node.start);
55
- }
56
- if (!isUndefined(node.end)) {
57
- buffer.writeUint8(DomainListMarshallingMap.End);
58
- buffer.writeUint32(node.end);
59
- }
60
- buffer.writeUint8(NULL);
61
- }
62
- }
63
-
64
- export { DomainListSerializer };
@@ -1,58 +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 { BaseSerializer } from '../base-serializer.js';
8
- import { ListItemNodeType } from '../../nodes/index.js';
9
- import { isUndefined } from '../../utils/type-guards.js';
10
- import { NULL } from '../../utils/constants.js';
11
- import { ListItemMarshallingMap } from '../../marshalling-utils/misc/list-item-common.js';
12
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
13
-
14
- /**
15
- * Serializer for list item nodes.
16
- */
17
- class ListItemSerializer extends BaseSerializer {
18
- /**
19
- * Serializes a list item to binary format.
20
- *
21
- * @param item List item to serialize.
22
- * @param buffer Output byte buffer.
23
- * @template T Type of the list item.
24
- */
25
- static serialize(item, buffer) {
26
- switch (item.type) {
27
- case ListItemNodeType.App:
28
- buffer.writeUint8(BinaryTypeMarshallingMap.AppNode);
29
- break;
30
- case ListItemNodeType.Domain:
31
- buffer.writeUint8(BinaryTypeMarshallingMap.DomainNode);
32
- break;
33
- case ListItemNodeType.Method:
34
- buffer.writeUint8(BinaryTypeMarshallingMap.MethodNode);
35
- break;
36
- case ListItemNodeType.StealthOption:
37
- buffer.writeUint8(BinaryTypeMarshallingMap.StealthOptionNode);
38
- break;
39
- default:
40
- throw new Error(`Invalid list item type: ${item.type}`);
41
- }
42
- buffer.writeUint8(ListItemMarshallingMap.Exception);
43
- buffer.writeUint8(item.exception ? 1 : 0);
44
- buffer.writeUint8(ListItemMarshallingMap.Value);
45
- buffer.writeString(item.value);
46
- if (!isUndefined(item.start)) {
47
- buffer.writeUint8(ListItemMarshallingMap.Start);
48
- buffer.writeUint32(item.start);
49
- }
50
- if (!isUndefined(item.end)) {
51
- buffer.writeUint8(ListItemMarshallingMap.End);
52
- buffer.writeUint32(item.end);
53
- }
54
- buffer.writeUint8(NULL);
55
- }
56
- }
57
-
58
- export { ListItemSerializer };
@@ -1,29 +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 { ListItemSerializer } from './list-item-serializer.js';
8
-
9
- /**
10
- * Serializer for list items.
11
- */
12
- class ListItemsSerializer {
13
- /**
14
- * Serializes a list of items to binary format.
15
- *
16
- * @param items List of items to serialize.
17
- * @param buffer Output byte buffer.
18
- * @template T Type of the list items.
19
- */
20
- static serialize(items, buffer) {
21
- const { length } = items;
22
- buffer.writeUint16(length);
23
- for (let i = 0; i < length; i += 1) {
24
- ListItemSerializer.serialize(items[i], buffer);
25
- }
26
- }
27
- }
28
-
29
- export { ListItemsSerializer };
@@ -1,136 +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 { isUndefined } from '../../utils/type-guards.js';
9
- import { BaseSerializer } from '../base-serializer.js';
10
- import { KNOWN_VARIABLES_SERIALIZATION_MAP, VariableNodeBinaryPropMarshallingMap, ParenthesisNodeBinaryPropMarshallingMap, OperatorNodeBinaryPropMarshallingMap, LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP } from '../../marshalling-utils/misc/logical-expression-common.js';
11
- import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
12
-
13
- /**
14
- * Possible node types in the logical expression.
15
- */
16
- const NodeType = {
17
- Variable: 'Variable',
18
- Operator: 'Operator',
19
- Parenthesis: 'Parenthesis',
20
- };
21
- /**
22
- * `LogicalExpressionSerializer` is responsible for serializing logical expressions.
23
- *
24
- * @example
25
- * From the following rule:
26
- * ```adblock
27
- * !#if (adguard_ext_android_cb || adguard_ext_safari)
28
- * ```
29
- * this parser will parse the expression `(adguard_ext_android_cb || adguard_ext_safari)`.
30
- */
31
- // TODO: Refactor this class
32
- class LogicalExpressionSerializer extends BaseSerializer {
33
- /**
34
- * Serializes a variable node to binary format.
35
- *
36
- * @param node Node to serialize.
37
- * @param buffer ByteBuffer for writing binary data.
38
- */
39
- // TODO: create a common serialize / deserialize interface for such nodes (Variable, Value, Parameter, etc.)
40
- static serializeVariableNode(node, buffer) {
41
- buffer.writeUint8(BinaryTypeMarshallingMap.ExpressionVariableNode);
42
- const frequentName = KNOWN_VARIABLES_SERIALIZATION_MAP.get(node.name);
43
- if (!isUndefined(frequentName)) {
44
- buffer.writeUint8(VariableNodeBinaryPropMarshallingMap.FrequentName);
45
- buffer.writeUint8(frequentName);
46
- }
47
- else {
48
- buffer.writeUint8(VariableNodeBinaryPropMarshallingMap.Name);
49
- buffer.writeString(node.name);
50
- }
51
- if (!isUndefined(node.start)) {
52
- buffer.writeUint8(VariableNodeBinaryPropMarshallingMap.Start);
53
- buffer.writeUint32(node.start);
54
- }
55
- if (!isUndefined(node.end)) {
56
- buffer.writeUint8(VariableNodeBinaryPropMarshallingMap.End);
57
- buffer.writeUint32(node.end);
58
- }
59
- buffer.writeUint8(NULL);
60
- }
61
- /**
62
- * Serializes a parenthesis node to binary format.
63
- *
64
- * @param node Node to serialize.
65
- * @param buffer ByteBuffer for writing binary data.
66
- */
67
- static serializeParenthesisNode(node, buffer) {
68
- buffer.writeUint8(BinaryTypeMarshallingMap.ExpressionParenthesisNode);
69
- buffer.writeUint8(ParenthesisNodeBinaryPropMarshallingMap.Expression);
70
- LogicalExpressionSerializer.serialize(node.expression, buffer);
71
- if (!isUndefined(node.start)) {
72
- buffer.writeUint8(ParenthesisNodeBinaryPropMarshallingMap.Start);
73
- buffer.writeUint32(node.start);
74
- }
75
- if (!isUndefined(node.end)) {
76
- buffer.writeUint8(ParenthesisNodeBinaryPropMarshallingMap.End);
77
- buffer.writeUint32(node.end);
78
- }
79
- buffer.writeUint8(NULL);
80
- }
81
- /**
82
- * Serializes an operator node to binary format.
83
- *
84
- * @param node Node to serialize.
85
- * @param buffer ByteBuffer for writing binary data.
86
- */
87
- static serializeOperatorNode(node, buffer) {
88
- buffer.writeUint8(BinaryTypeMarshallingMap.ExpressionOperatorNode);
89
- buffer.writeUint8(OperatorNodeBinaryPropMarshallingMap.Operator);
90
- const operatorBinary = LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP.get(node.operator);
91
- if (isUndefined(operatorBinary)) {
92
- throw new Error(`Unknown operator: ${node.operator}`);
93
- }
94
- buffer.writeUint8(operatorBinary);
95
- buffer.writeUint8(OperatorNodeBinaryPropMarshallingMap.Left);
96
- LogicalExpressionSerializer.serialize(node.left, buffer);
97
- if (node.right) {
98
- buffer.writeUint8(OperatorNodeBinaryPropMarshallingMap.Right);
99
- LogicalExpressionSerializer.serialize(node.right, buffer);
100
- }
101
- if (!isUndefined(node.start)) {
102
- buffer.writeUint8(OperatorNodeBinaryPropMarshallingMap.Start);
103
- buffer.writeUint32(node.start);
104
- }
105
- if (!isUndefined(node.end)) {
106
- buffer.writeUint8(OperatorNodeBinaryPropMarshallingMap.End);
107
- buffer.writeUint32(node.end);
108
- }
109
- buffer.writeUint8(NULL);
110
- }
111
- /**
112
- * Serializes a logical expression node to binary format.
113
- *
114
- * @param node Node to serialize.
115
- * @param buffer ByteBuffer for writing binary data.
116
- */
117
- static serialize(node, buffer) {
118
- switch (node.type) {
119
- case NodeType.Variable:
120
- LogicalExpressionSerializer.serializeVariableNode(node, buffer);
121
- break;
122
- case NodeType.Operator:
123
- LogicalExpressionSerializer.serializeOperatorNode(node, buffer);
124
- break;
125
- case NodeType.Parenthesis:
126
- LogicalExpressionSerializer.serializeParenthesisNode(node, buffer);
127
- break;
128
- default:
129
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
- throw new Error(`Unexpected node type: ${node.type}`);
131
- }
132
- buffer.writeUint8(NULL);
133
- }
134
- }
135
-
136
- export { LogicalExpressionSerializer, NodeType };