@adguard/agtree 2.2.0 → 3.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/ast-utils/clone.js +61 -0
- package/dist/ast-utils/modifiers.js +53 -0
- package/dist/ast-utils/network-rules.js +41 -0
- package/dist/ast-utils/scriptlets.js +87 -0
- package/dist/common/abp-snippet-injection-body-common.js +23 -0
- package/dist/common/agent-common.js +56 -0
- package/dist/common/ubo-selector-common.js +17 -0
- package/dist/compatibility-tables/base.js +262 -0
- package/dist/compatibility-tables/compatibility-table-data.js +11 -0
- package/dist/compatibility-tables/modifiers.js +55 -0
- package/dist/compatibility-tables/platforms.js +76 -0
- package/dist/compatibility-tables/redirects.js +100 -0
- package/dist/compatibility-tables/schemas/base.js +111 -0
- package/dist/compatibility-tables/schemas/modifier.js +129 -0
- package/dist/compatibility-tables/schemas/platform.js +69 -0
- package/dist/compatibility-tables/schemas/redirect.js +29 -0
- package/dist/compatibility-tables/schemas/resource-type.js +36 -0
- package/dist/compatibility-tables/schemas/scriptlet.js +79 -0
- package/dist/compatibility-tables/scriptlets.js +28 -0
- package/dist/compatibility-tables/utils/platform-helpers.js +105 -0
- package/dist/compatibility-tables/utils/resource-type-helpers.js +61 -0
- package/dist/compatibility-tables/utils/zod-camelcase.js +25 -0
- package/dist/converter/base-interfaces/base-converter.js +59 -0
- package/dist/converter/base-interfaces/conversion-result.js +38 -0
- package/dist/converter/base-interfaces/rule-converter-base.js +60 -0
- package/dist/converter/comment/index.js +54 -0
- package/dist/converter/cosmetic/css.js +69 -0
- package/dist/converter/cosmetic/element-hiding.js +62 -0
- package/dist/converter/cosmetic/header-removal.js +123 -0
- package/dist/converter/cosmetic/html.js +379 -0
- package/dist/converter/cosmetic/index.js +118 -0
- package/dist/converter/cosmetic/rule-modifiers/adg.js +79 -0
- package/dist/converter/cosmetic/scriptlet.js +354 -0
- package/dist/converter/css/index.js +188 -0
- package/dist/converter/data/css.js +126 -0
- package/dist/converter/filter-list.js +88 -0
- package/dist/converter/index.js +8 -0
- package/dist/converter/misc/network-rule-modifier.js +311 -0
- package/dist/converter/network/index.js +99 -0
- package/dist/converter/raw-filter-list.js +56 -0
- package/dist/converter/rule.js +81 -0
- package/dist/deserializer/base-deserializer.js +29 -0
- package/dist/deserializer/comment/agent-comment-deserializer.js +79 -0
- package/dist/deserializer/comment/agent-deserializer.js +65 -0
- package/dist/deserializer/comment/comment-rule-deserializer.js +54 -0
- package/dist/deserializer/comment/config-comment-deserializer.js +111 -0
- package/dist/deserializer/comment/hint-comment-deserializer.js +72 -0
- package/dist/deserializer/comment/hint-deserializer.js +85 -0
- package/dist/deserializer/comment/metadata-comment-deserializer.js +69 -0
- package/dist/deserializer/comment/pre-processor-comment-deserializer.js +112 -0
- package/dist/deserializer/comment/simple-comment-deserializer.js +65 -0
- package/dist/deserializer/cosmetic/cosmetic-rule-deserializer.js +131 -0
- package/dist/deserializer/cosmetic/css-injection-body-deserializer.js +56 -0
- package/dist/deserializer/cosmetic/element-hiding-body-deserializer.js +48 -0
- package/dist/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +39 -0
- package/dist/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +40 -0
- package/dist/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +54 -0
- package/dist/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +38 -0
- package/dist/deserializer/empty-rule-deserializer.js +48 -0
- package/dist/deserializer/filterlist-deserializer.js +85 -0
- package/dist/deserializer/index.js +8 -0
- package/dist/deserializer/invalid-rule-deserializer.js +50 -0
- package/dist/deserializer/invalid-rule-error-node-deserializer.js +50 -0
- package/dist/deserializer/misc/domain-list-deserializer.js +64 -0
- package/dist/deserializer/misc/list-item-deserializer.js +69 -0
- package/dist/deserializer/misc/list-items-deserializer.js +30 -0
- package/dist/deserializer/misc/logical-expression-deserializer.js +196 -0
- package/dist/deserializer/misc/modifier-deserializer.js +87 -0
- package/dist/deserializer/misc/modifier-list-deserializer.js +61 -0
- package/dist/deserializer/misc/parameter-list-deserializer.js +64 -0
- package/dist/deserializer/misc/value-deserializer.js +50 -0
- package/dist/deserializer/network/host-rule-deserializer.js +67 -0
- package/dist/deserializer/network/hostname-list-deserializer.js +56 -0
- package/dist/deserializer/network/network-rule-deserializer.js +65 -0
- package/dist/deserializer/rule-deserializer.js +65 -0
- package/dist/deserializer/syntax-deserialization-map.js +21 -0
- package/dist/errors/adblock-syntax-error.js +39 -0
- package/dist/errors/binary-schema-mismatch-error.js +37 -0
- package/dist/errors/not-implemented-error.js +31 -0
- package/dist/errors/rule-conversion-error.js +26 -0
- package/dist/generator/base-generator.js +27 -0
- package/dist/generator/comment/agent-comment-generator.js +31 -0
- package/dist/generator/comment/agent-generator.js +36 -0
- package/dist/generator/comment/comment-rule-generator.js +47 -0
- package/dist/generator/comment/config-comment-generator.js +45 -0
- package/dist/generator/comment/hint-comment-generator.js +28 -0
- package/dist/generator/comment/hint-generator.js +33 -0
- package/dist/generator/comment/metadata-comment-generator.js +33 -0
- package/dist/generator/comment/pre-processor-comment-generator.js +48 -0
- package/dist/generator/comment/simple-comment-generator.js +29 -0
- package/dist/generator/cosmetic/body/abp-snippet-injection-body-generator.js +38 -0
- package/dist/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +43 -0
- package/dist/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +45 -0
- package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +94 -0
- package/dist/generator/cosmetic/cosmetic-rule-generator.js +54 -0
- package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +42 -0
- package/dist/generator/css/adg-css-injection-generator.js +42 -0
- package/dist/generator/filterlist-generator.js +67 -0
- package/dist/generator/index.js +9 -0
- package/dist/generator/misc/domain-list-generator.js +26 -0
- package/dist/generator/misc/list-items-generator.js +39 -0
- package/dist/generator/misc/logical-expression-generator.js +48 -0
- package/dist/generator/misc/modifier-generator.js +34 -0
- package/dist/generator/misc/modifier-list-generator.js +29 -0
- package/dist/generator/misc/parameter-list-generator.js +41 -0
- package/dist/generator/misc/value-generator.js +24 -0
- package/dist/generator/network/host-rule-generator.js +39 -0
- package/dist/generator/network/network-rule-generator.js +38 -0
- package/dist/generator/rule-generator.js +65 -0
- package/dist/index.js +70 -0
- package/dist/marshalling-utils/comment/agent-comment-common.js +21 -0
- package/dist/marshalling-utils/comment/agent-common.js +40 -0
- package/dist/marshalling-utils/comment/config-comment-common.js +54 -0
- package/dist/marshalling-utils/comment/hint-comment-common.js +22 -0
- package/dist/marshalling-utils/comment/hint-common.js +56 -0
- package/dist/marshalling-utils/comment/metadata-comment-common.js +41 -0
- package/dist/marshalling-utils/comment/pre-processor-comment-common.js +59 -0
- package/dist/marshalling-utils/comment/simple-comment-common.js +22 -0
- package/dist/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +61 -0
- package/dist/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +66 -0
- package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +24 -0
- package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +21 -0
- package/dist/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +114 -0
- package/dist/marshalling-utils/cosmetic/cosmetic-rule-common.js +48 -0
- package/dist/marshalling-utils/empty-rule-common.js +20 -0
- package/dist/marshalling-utils/filter-list-common.js +21 -0
- package/dist/marshalling-utils/invalid-rule-common.js +21 -0
- package/dist/marshalling-utils/invalid-rule-error-node-common.js +22 -0
- package/dist/marshalling-utils/misc/binary-type-common.js +66 -0
- package/dist/marshalling-utils/misc/domain-list-common.js +36 -0
- package/dist/marshalling-utils/misc/host-rule-common.js +25 -0
- package/dist/marshalling-utils/misc/hostname-list-common.js +21 -0
- package/dist/marshalling-utils/misc/list-item-common.js +22 -0
- package/dist/marshalling-utils/misc/logical-expression-common.js +83 -0
- package/dist/marshalling-utils/misc/modifier-common.js +231 -0
- package/dist/marshalling-utils/misc/modifier-list-common.js +21 -0
- package/dist/marshalling-utils/misc/parameter-list-common.js +21 -0
- package/dist/marshalling-utils/misc/value-common.js +22 -0
- package/dist/marshalling-utils/network/network-rule-common.js +25 -0
- package/dist/marshalling-utils/syntax-serialization-map.js +30 -0
- package/dist/nodes/index.js +168 -0
- package/dist/package.json.js +9 -0
- package/dist/parser/base-parser.js +30 -0
- package/dist/parser/comment/agent-comment-parser.js +119 -0
- package/dist/parser/comment/agent-parser.js +110 -0
- package/dist/parser/comment/comment-parser.js +108 -0
- package/dist/parser/comment/config-comment-parser.js +137 -0
- package/dist/parser/comment/hint-comment-parser.js +117 -0
- package/dist/parser/comment/hint-parser.js +129 -0
- package/dist/parser/comment/metadata-comment-parser.js +129 -0
- package/dist/parser/comment/preprocessor-parser.js +199 -0
- package/dist/parser/comment/simple-comment-parser.js +106 -0
- package/dist/parser/cosmetic/body/abp-snippet-injection-body-parser.js +79 -0
- package/dist/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +149 -0
- package/dist/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +110 -0
- package/dist/parser/cosmetic/cosmetic-rule-parser.js +453 -0
- package/dist/parser/css/adg-css-injection-parser.js +208 -0
- package/dist/parser/css/balancing.js +94 -0
- package/dist/parser/css/constants.js +18 -0
- package/dist/parser/css/css-token-stream.js +343 -0
- package/dist/parser/css/ubo-selector-parser.js +369 -0
- package/dist/parser/filterlist-parser.js +102 -0
- package/dist/parser/index.js +12 -0
- package/dist/parser/misc/app-list-parser.js +45 -0
- package/dist/parser/misc/domain-list-parser.js +52 -0
- package/dist/parser/misc/list-items-parser.js +116 -0
- package/dist/parser/misc/logical-expression-parser.js +279 -0
- package/dist/parser/misc/method-list-parser.js +46 -0
- package/dist/parser/misc/modifier-list.js +70 -0
- package/dist/parser/misc/modifier-parser.js +89 -0
- package/dist/parser/misc/parameter-list-parser.js +75 -0
- package/dist/parser/misc/stealth-option-list-parser.js +46 -0
- package/dist/parser/misc/ubo-parameter-list-parser.js +149 -0
- package/dist/parser/misc/value-parser.js +37 -0
- package/dist/parser/network/host-rule-parser.js +130 -0
- package/dist/parser/network/network-rule-parser.js +117 -0
- package/dist/parser/options.js +23 -0
- package/dist/parser/rule-parser.js +192 -0
- package/dist/serializer/base-serializer.js +29 -0
- package/dist/serializer/comment/agent-comment-serializer.js +74 -0
- package/dist/serializer/comment/agent-serializer.js +59 -0
- package/dist/serializer/comment/comment-rule-serializer.js +105 -0
- package/dist/serializer/comment/config-comment-serializer.js +82 -0
- package/dist/serializer/comment/hint-comment-serializer.js +65 -0
- package/dist/serializer/comment/hint-serializer.js +54 -0
- package/dist/serializer/comment/metadata-comment-serializer.js +73 -0
- package/dist/serializer/comment/pre-processor-comment-serializer.js +71 -0
- package/dist/serializer/comment/simple-comment-serializer.js +52 -0
- package/dist/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +36 -0
- package/dist/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +36 -0
- package/dist/serializer/cosmetic/body/scriptlet-body-serializer.js +50 -0
- package/dist/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +36 -0
- package/dist/serializer/cosmetic/cosmetic-rule-serializer.js +120 -0
- package/dist/serializer/cosmetic/css-injection-body-serializer.js +51 -0
- package/dist/serializer/cosmetic/element-hiding-body-serializer.js +40 -0
- package/dist/serializer/empty-rule-serializer.js +37 -0
- package/dist/serializer/filterlist-serializer.js +45 -0
- package/dist/serializer/index.js +7 -0
- package/dist/serializer/invalid-rule-error-node-serializer.js +41 -0
- package/dist/serializer/invalid-rule-serializer.js +40 -0
- package/dist/serializer/misc/domain-list-serializer.js +64 -0
- package/dist/serializer/misc/list-item-serializer.js +58 -0
- package/dist/serializer/misc/list-items-serializer.js +29 -0
- package/dist/serializer/misc/logical-expression-serializer.js +136 -0
- package/dist/serializer/misc/modifier-list-serializer.js +58 -0
- package/dist/serializer/misc/modifier-serializer.js +49 -0
- package/dist/serializer/misc/parameter-list-serializer.js +52 -0
- package/dist/serializer/misc/value-serializer.js +50 -0
- package/dist/serializer/network/host-rule-serializer.js +70 -0
- package/dist/serializer/network/hostname-list-serializer.js +53 -0
- package/dist/serializer/network/network-rule-serializer.js +54 -0
- package/dist/serializer/rule-serializer.js +61 -0
- package/dist/types/ast-utils/clone.d.ts +26 -0
- package/dist/types/ast-utils/filter-list.d.ts +11 -0
- package/dist/types/ast-utils/modifiers.d.ts +20 -0
- package/dist/types/ast-utils/network-rules.d.ts +15 -0
- package/dist/types/ast-utils/scriptlets.d.ts +52 -0
- package/dist/types/common/abp-snippet-injection-body-common.d.ts +15 -0
- package/dist/types/common/agent-common.d.ts +10 -0
- package/dist/types/common/ubo-selector-common.d.ts +10 -0
- package/dist/types/compatibility-tables/base.d.ts +157 -0
- package/dist/types/compatibility-tables/compatibility-table-data.d.ts +68 -0
- package/dist/types/compatibility-tables/index.d.ts +13 -0
- package/dist/types/compatibility-tables/modifiers.d.ts +22 -0
- package/dist/types/compatibility-tables/platforms.d.ts +49 -0
- package/dist/types/compatibility-tables/redirects.d.ts +33 -0
- package/dist/types/compatibility-tables/schemas/base.d.ts +124 -0
- package/dist/types/compatibility-tables/schemas/index.d.ts +8 -0
- package/dist/types/compatibility-tables/schemas/modifier.d.ts +36 -0
- package/dist/types/compatibility-tables/schemas/platform.d.ts +16 -0
- package/dist/types/compatibility-tables/schemas/redirect.d.ts +25 -0
- package/dist/types/compatibility-tables/schemas/resource-type.d.ts +41 -0
- package/dist/types/compatibility-tables/schemas/scriptlet.d.ts +31 -0
- package/dist/types/compatibility-tables/scriptlets.d.ts +15 -0
- package/dist/types/compatibility-tables/types.d.ts +34 -0
- package/dist/types/compatibility-tables/utils/platform-helpers.d.ts +44 -0
- package/dist/types/compatibility-tables/utils/resource-type-helpers.d.ts +20 -0
- package/dist/types/compatibility-tables/utils/zod-camelcase.d.ts +15 -0
- package/dist/types/converter/base-interfaces/base-converter.d.ts +42 -0
- package/dist/types/converter/base-interfaces/conversion-result.d.ts +43 -0
- package/dist/types/converter/base-interfaces/rule-converter-base.d.ts +44 -0
- package/dist/types/converter/comment/index.d.ts +23 -0
- package/dist/types/converter/cosmetic/css.d.ts +23 -0
- package/dist/types/converter/cosmetic/element-hiding.d.ts +23 -0
- package/dist/types/converter/cosmetic/header-removal.d.ts +37 -0
- package/dist/types/converter/cosmetic/html.d.ts +54 -0
- package/dist/types/converter/cosmetic/index.d.ts +33 -0
- package/dist/types/converter/cosmetic/rule-modifiers/adg.d.ts +21 -0
- package/dist/types/converter/cosmetic/scriptlet.d.ts +33 -0
- package/dist/types/converter/css/index.d.ts +40 -0
- package/dist/types/converter/data/css.d.ts +48 -0
- package/dist/types/converter/filter-list.d.ts +31 -0
- package/dist/types/converter/index.d.ts +5 -0
- package/dist/types/converter/misc/network-rule-modifier.d.ts +35 -0
- package/dist/types/converter/network/index.d.ts +33 -0
- package/dist/types/converter/raw-filter-list.d.ts +31 -0
- package/dist/types/converter/raw-rule.d.ts +28 -0
- package/dist/types/converter/rule.d.ts +37 -0
- package/dist/types/deserializer/base-deserializer.d.ts +15 -0
- package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +34 -0
- package/dist/types/deserializer/comment/agent-deserializer.d.ts +25 -0
- package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +16 -0
- package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +27 -0
- package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +24 -0
- package/dist/types/deserializer/comment/hint-deserializer.d.ts +26 -0
- package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +26 -0
- package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +29 -0
- package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +26 -0
- package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +18 -0
- package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +15 -0
- package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +16 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +17 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +18 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +19 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +17 -0
- package/dist/types/deserializer/empty-rule-deserializer.d.ts +16 -0
- package/dist/types/deserializer/filterlist-deserializer.d.ts +34 -0
- package/dist/types/deserializer/index.d.ts +2 -0
- package/dist/types/deserializer/invalid-rule-deserializer.d.ts +16 -0
- package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +16 -0
- package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +15 -0
- package/dist/types/deserializer/misc/list-item-deserializer.d.ts +19 -0
- package/dist/types/deserializer/misc/list-items-deserializer.d.ts +16 -0
- package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +55 -0
- package/dist/types/deserializer/misc/modifier-deserializer.d.ts +18 -0
- package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +20 -0
- package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +18 -0
- package/dist/types/deserializer/misc/value-deserializer.d.ts +17 -0
- package/dist/types/deserializer/network/host-rule-deserializer.d.ts +18 -0
- package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +15 -0
- package/dist/types/deserializer/network/network-rule-deserializer.d.ts +18 -0
- package/dist/types/deserializer/rule-deserializer.d.ts +17 -0
- package/dist/types/deserializer/syntax-deserialization-map.d.ts +2 -0
- package/dist/types/errors/adblock-syntax-error.d.ts +25 -0
- package/dist/types/errors/binary-schema-mismatch-error.d.ts +23 -0
- package/dist/types/errors/not-implemented-error.d.ts +14 -0
- package/dist/types/errors/rule-conversion-error.d.ts +14 -0
- package/dist/types/generator/base-generator.d.ts +12 -0
- package/dist/types/generator/comment/agent-comment-generator.d.ts +14 -0
- package/dist/types/generator/comment/agent-generator.d.ts +15 -0
- package/dist/types/generator/comment/comment-rule-generator.d.ts +14 -0
- package/dist/types/generator/comment/config-comment-generator.d.ts +14 -0
- package/dist/types/generator/comment/hint-comment-generator.d.ts +14 -0
- package/dist/types/generator/comment/hint-generator.d.ts +14 -0
- package/dist/types/generator/comment/index.d.ts +1 -0
- package/dist/types/generator/comment/metadata-comment-generator.d.ts +14 -0
- package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +14 -0
- package/dist/types/generator/comment/simple-comment-generator.d.ts +14 -0
- package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +21 -0
- package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +21 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +20 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +28 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +18 -0
- package/dist/types/generator/cosmetic/index.d.ts +1 -0
- package/dist/types/generator/css/adg-css-injection-generator.d.ts +15 -0
- package/dist/types/generator/css/ubo-selector-generator.d.ts +14 -0
- package/dist/types/generator/filterlist-generator.d.ts +18 -0
- package/dist/types/generator/index.d.ts +3 -0
- package/dist/types/generator/misc/domain-list-generator.d.ts +15 -0
- package/dist/types/generator/misc/list-items-generator.d.ts +25 -0
- package/dist/types/generator/misc/logical-expression-generator.d.ts +14 -0
- package/dist/types/generator/misc/modifier-generator.d.ts +14 -0
- package/dist/types/generator/misc/modifier-list-generator.d.ts +14 -0
- package/dist/types/generator/misc/parameter-list-generator.d.ts +15 -0
- package/dist/types/generator/misc/value-generator.d.ts +14 -0
- package/dist/types/generator/network/host-rule-generator.d.ts +14 -0
- package/dist/types/generator/network/index.d.ts +2 -0
- package/dist/types/generator/network/network-rule-generator.d.ts +14 -0
- package/dist/types/generator/rule-generator.d.ts +24 -0
- package/dist/types/index.d.ts +55 -0
- package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +14 -0
- package/dist/types/marshalling-utils/comment/agent-common.d.ts +20 -0
- package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +42 -0
- package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +15 -0
- package/dist/types/marshalling-utils/comment/hint-common.d.ts +33 -0
- package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +21 -0
- package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +37 -0
- package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +15 -0
- package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +23 -0
- package/dist/types/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.d.ts +9 -0
- package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +17 -0
- package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +14 -0
- package/dist/types/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.d.ts +9 -0
- package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +28 -0
- package/dist/types/marshalling-utils/empty-rule-common.d.ts +13 -0
- package/dist/types/marshalling-utils/filter-list-common.d.ts +14 -0
- package/dist/types/marshalling-utils/invalid-rule-common.d.ts +14 -0
- package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +15 -0
- package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +57 -0
- package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +24 -0
- package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +18 -0
- package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/list-item-common.d.ts +15 -0
- package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +47 -0
- package/dist/types/marshalling-utils/misc/modifier-common.d.ts +41 -0
- package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/value-common.d.ts +15 -0
- package/dist/types/marshalling-utils/network/network-rule-common.d.ts +18 -0
- package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +2 -0
- package/dist/types/nodes/index.d.ts +1183 -0
- package/dist/types/parser/base-parser.d.ts +16 -0
- package/dist/types/parser/comment/agent-comment-parser.d.ts +42 -0
- package/dist/types/parser/comment/agent-parser.d.ts +33 -0
- package/dist/types/parser/comment/comment-parser.d.ts +76 -0
- package/dist/types/parser/comment/config-comment-parser.d.ts +31 -0
- package/dist/types/parser/comment/hint-comment-parser.d.ts +33 -0
- package/dist/types/parser/comment/hint-parser.d.ts +30 -0
- package/dist/types/parser/comment/metadata-comment-parser.d.ts +29 -0
- package/dist/types/parser/comment/preprocessor-parser.d.ts +43 -0
- package/dist/types/parser/comment/simple-comment-parser.d.ts +33 -0
- package/dist/types/parser/cosmetic/body/abp-snippet-injection-body-parser.d.ts +34 -0
- package/dist/types/parser/cosmetic/body/adg-scriptlet-injection-body-parser.d.ts +47 -0
- package/dist/types/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.d.ts +44 -0
- package/dist/types/parser/cosmetic/cosmetic-rule-parser.d.ts +51 -0
- package/dist/types/parser/css/adg-css-injection-parser.d.ts +28 -0
- package/dist/types/parser/css/balancing.d.ts +36 -0
- package/dist/types/parser/css/constants.d.ts +10 -0
- package/dist/types/parser/css/css-token-stream.d.ts +210 -0
- package/dist/types/parser/css/ubo-selector-parser.d.ts +46 -0
- package/dist/types/parser/filterlist-parser.d.ts +29 -0
- package/dist/types/parser/index.d.ts +6 -0
- package/dist/types/parser/misc/app-list-parser.d.ts +22 -0
- package/dist/types/parser/misc/domain-list-parser.d.ts +26 -0
- package/dist/types/parser/misc/list-items-parser.d.ts +37 -0
- package/dist/types/parser/misc/logical-expression-parser.d.ts +42 -0
- package/dist/types/parser/misc/method-list-parser.d.ts +22 -0
- package/dist/types/parser/misc/modifier-list.d.ts +24 -0
- package/dist/types/parser/misc/modifier-parser.d.ts +21 -0
- package/dist/types/parser/misc/parameter-list-parser.d.ts +17 -0
- package/dist/types/parser/misc/stealth-option-list-parser.d.ts +22 -0
- package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +21 -0
- package/dist/types/parser/misc/value-parser.d.ts +18 -0
- package/dist/types/parser/network/host-rule-parser.d.ts +35 -0
- package/dist/types/parser/network/network-rule-parser.d.ts +31 -0
- package/dist/types/parser/options.d.ts +41 -0
- package/dist/types/parser/rule-parser.d.ts +78 -0
- package/dist/types/serializer/base-serializer.d.ts +15 -0
- package/dist/types/serializer/comment/agent-comment-serializer.d.ts +34 -0
- package/dist/types/serializer/comment/agent-serializer.d.ts +15 -0
- package/dist/types/serializer/comment/comment-rule-serializer.d.ts +68 -0
- package/dist/types/serializer/comment/config-comment-serializer.d.ts +25 -0
- package/dist/types/serializer/comment/hint-comment-serializer.d.ts +23 -0
- package/dist/types/serializer/comment/hint-serializer.d.ts +24 -0
- package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +25 -0
- package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +28 -0
- package/dist/types/serializer/comment/simple-comment-serializer.d.ts +24 -0
- package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +25 -0
- package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +25 -0
- package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +17 -0
- package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +25 -0
- package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +19 -0
- package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +15 -0
- package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +15 -0
- package/dist/types/serializer/empty-rule-serializer.d.ts +15 -0
- package/dist/types/serializer/filterlist-serializer.d.ts +15 -0
- package/dist/types/serializer/index.d.ts +1 -0
- package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +15 -0
- package/dist/types/serializer/invalid-rule-serializer.d.ts +15 -0
- package/dist/types/serializer/misc/domain-list-serializer.d.ts +21 -0
- package/dist/types/serializer/misc/list-item-serializer.d.ts +16 -0
- package/dist/types/serializer/misc/list-items-serializer.d.ts +15 -0
- package/dist/types/serializer/misc/logical-expression-serializer.d.ts +52 -0
- package/dist/types/serializer/misc/modifier-list-serializer.d.ts +20 -0
- package/dist/types/serializer/misc/modifier-serializer.d.ts +18 -0
- package/dist/types/serializer/misc/parameter-list-serializer.d.ts +17 -0
- package/dist/types/serializer/misc/value-serializer.d.ts +17 -0
- package/dist/types/serializer/network/host-rule-serializer.d.ts +30 -0
- package/dist/types/serializer/network/hostname-list-serializer.d.ts +15 -0
- package/dist/types/serializer/network/network-rule-serializer.d.ts +18 -0
- package/dist/types/serializer/rule-serializer.d.ts +17 -0
- package/dist/types/utils/adblockers.d.ts +49 -0
- package/dist/types/utils/binary-schema-version.d.ts +9 -0
- package/dist/types/utils/byte-buffer.d.ts +54 -0
- package/dist/types/utils/categorizer.d.ts +14 -0
- package/dist/types/utils/clone.d.ts +15 -0
- package/dist/types/utils/constants.d.ts +188 -0
- package/dist/types/utils/cosmetic-rule-separator.d.ts +45 -0
- package/dist/types/utils/deep-freeze.d.ts +13 -0
- package/dist/types/utils/domain.d.ts +29 -0
- package/dist/types/utils/error.d.ts +8 -0
- package/dist/types/utils/index.d.ts +15 -0
- package/dist/types/utils/input-byte-buffer.d.ts +146 -0
- package/dist/types/utils/is-chromium.d.ts +7 -0
- package/dist/types/utils/logical-expression.d.ts +45 -0
- package/dist/types/utils/multi-value-map.d.ts +16 -0
- package/dist/types/utils/output-byte-buffer.d.ts +132 -0
- package/dist/types/utils/position-provider.d.ts +46 -0
- package/dist/types/utils/quotes.d.ts +94 -0
- package/dist/types/utils/regexp.d.ts +54 -0
- package/dist/types/utils/storage-interface.d.ts +23 -0
- package/dist/types/utils/string.d.ts +280 -0
- package/dist/types/utils/text-decoder-polyfill.d.ts +14 -0
- package/dist/types/utils/text-encoder-polyfill.d.ts +18 -0
- package/dist/types/utils/type-guards.d.ts +47 -0
- package/dist/types/validator/constants.d.ts +89 -0
- package/dist/types/validator/helpers.d.ts +37 -0
- package/dist/types/validator/index.d.ts +38 -0
- package/dist/types/validator/value.d.ts +12 -0
- package/dist/types/version.d.ts +5 -0
- package/dist/utils/adblockers.js +56 -0
- package/dist/utils/binary-schema-version.js +17 -0
- package/dist/utils/byte-buffer.js +91 -0
- package/dist/utils/categorizer.js +44 -0
- package/dist/utils/clone.js +28 -0
- package/dist/utils/constants.js +249 -0
- package/dist/utils/cosmetic-rule-separator.js +127 -0
- package/dist/utils/deep-freeze.js +32 -0
- package/dist/utils/domain.js +59 -0
- package/dist/utils/error.js +49 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/input-byte-buffer.js +265 -0
- package/dist/utils/is-chromium.js +20 -0
- package/dist/utils/logical-expression.js +92 -0
- package/dist/utils/multi-value-map.js +33 -0
- package/dist/utils/output-byte-buffer.js +231 -0
- package/dist/utils/position-provider.js +73 -0
- package/dist/utils/quotes.js +214 -0
- package/dist/utils/regexp.js +176 -0
- package/dist/utils/string.js +559 -0
- package/dist/utils/text-decoder-polyfill.js +107 -0
- package/dist/utils/text-encoder-polyfill.js +78 -0
- package/dist/utils/type-guards.js +47 -0
- package/dist/validator/constants.js +210 -0
- package/dist/validator/helpers.js +45 -0
- package/dist/validator/index.js +174 -0
- package/dist/validator/value.js +568 -0
- package/dist/version.js +18 -0
- package/package.json +61 -39
- package/dist/agtree.d.ts +0 -4155
- package/dist/agtree.js +0 -15819
- package/dist/agtree.mjs +0 -15720
- package/dist/compatibility-table-data.js +0 -12782
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Common options for all parsers.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Common options for all parsers.
|
|
6
|
+
*/
|
|
7
|
+
export interface ParserOptions {
|
|
8
|
+
/**
|
|
9
|
+
* If `true`, then the parser will not throw an error if the rule is syntactically invalid, instead it will
|
|
10
|
+
* return an `InvalidRule` object with the error attached to it.
|
|
11
|
+
*/
|
|
12
|
+
tolerant?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Whether to include location information in the AST nodes.
|
|
15
|
+
*/
|
|
16
|
+
isLocIncluded?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Whether to parse AdBlock-specific rules.
|
|
19
|
+
*/
|
|
20
|
+
parseAbpSpecificRules?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to parse uBlock Origin-specific rules.
|
|
23
|
+
*/
|
|
24
|
+
parseUboSpecificRules?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to parse raw parts.
|
|
27
|
+
*/
|
|
28
|
+
includeRaws?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether to ignore comment-rules.
|
|
31
|
+
*/
|
|
32
|
+
ignoreComments?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Whether to parse host rules.
|
|
35
|
+
*/
|
|
36
|
+
parseHostRules?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Default parser options.
|
|
40
|
+
*/
|
|
41
|
+
export declare const defaultParserOptions: ParserOptions;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { type AnyRule } from '../nodes';
|
|
2
|
+
import { BaseParser } from './base-parser';
|
|
3
|
+
/**
|
|
4
|
+
* `RuleParser` is responsible for parsing the rules.
|
|
5
|
+
*
|
|
6
|
+
* It automatically determines the category and syntax of the rule, so you can pass any kind of rule to it.
|
|
7
|
+
*/
|
|
8
|
+
export declare class RuleParser extends BaseParser {
|
|
9
|
+
/**
|
|
10
|
+
* Helper method to parse host rules if the `parseHostRules` option is enabled, otherwise it will
|
|
11
|
+
* parse network rules.
|
|
12
|
+
*
|
|
13
|
+
* @param raw Raw input to parse.
|
|
14
|
+
* @param options Global parser options.
|
|
15
|
+
* @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
|
|
16
|
+
* @returns Host rule or network rule node.
|
|
17
|
+
*/
|
|
18
|
+
private static parseHostOrNetworkRule;
|
|
19
|
+
/**
|
|
20
|
+
* Parse an adblock rule. You can pass any kind of rule to this method, since it will automatically determine
|
|
21
|
+
* the category and syntax. If the rule is syntactically invalid, then an error will be thrown. If the
|
|
22
|
+
* syntax / compatibility cannot be determined clearly, then the value of the `syntax` property will be
|
|
23
|
+
* `Common`.
|
|
24
|
+
*
|
|
25
|
+
* For example, let's have this network rule:
|
|
26
|
+
* ```adblock
|
|
27
|
+
* ||example.org^$important
|
|
28
|
+
* ```
|
|
29
|
+
* The `syntax` property will be `Common`, since the rule is syntactically correct in every adblockers, but we
|
|
30
|
+
* cannot determine at parsing level whether `important` is an existing option or not, nor if it exists, then
|
|
31
|
+
* which adblocker supports it. This is why the `syntax` property is simply `Common` at this point.
|
|
32
|
+
* The concrete COMPATIBILITY of the rule will be determined later, in a different, higher-level layer, called
|
|
33
|
+
* "Compatibility table".
|
|
34
|
+
*
|
|
35
|
+
* But we can determinate the concrete syntax of this rule:
|
|
36
|
+
* ```adblock
|
|
37
|
+
* example.org#%#//scriptlet("scriptlet0", "arg0")
|
|
38
|
+
* ```
|
|
39
|
+
* since it is clearly an AdGuard-specific rule and no other adblockers uses this syntax natively. However, we also
|
|
40
|
+
* cannot determine the COMPATIBILITY of this rule, as it is not clear at this point whether the `scriptlet0`
|
|
41
|
+
* scriptlet is supported by AdGuard or not. This is also the task of the "Compatibility table". Here, we simply
|
|
42
|
+
* mark the rule with the `AdGuard` syntax in this case.
|
|
43
|
+
*
|
|
44
|
+
* @param raw Raw input to parse.
|
|
45
|
+
* @param options Global parser options.
|
|
46
|
+
* @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
|
|
47
|
+
* @returns Adblock rule node
|
|
48
|
+
* @throws If the input matches a pattern but syntactically invalid
|
|
49
|
+
* @example
|
|
50
|
+
* Take a look at the following example:
|
|
51
|
+
* ```js
|
|
52
|
+
* // Parse a network rule
|
|
53
|
+
* const ast1 = RuleParser.parse("||example.org^$important");
|
|
54
|
+
*
|
|
55
|
+
* // Parse another network rule
|
|
56
|
+
* const ast2 = RuleParser.parse("/ads.js^$important,third-party,domain=example.org|~example.com");
|
|
57
|
+
*
|
|
58
|
+
* // Parse a cosmetic rule
|
|
59
|
+
* const ast2 = RuleParser.parse("example.org##.banner");
|
|
60
|
+
*
|
|
61
|
+
* // Parse another cosmetic rule
|
|
62
|
+
* const ast3 = RuleParser.parse("example.org#?#.banner:-abp-has(.ad)");
|
|
63
|
+
*
|
|
64
|
+
* // Parse a comment rule
|
|
65
|
+
* const ast4 = RuleParser.parse("! Comment");
|
|
66
|
+
*
|
|
67
|
+
* // Parse an empty rule
|
|
68
|
+
* const ast5 = RuleParser.parse("");
|
|
69
|
+
*
|
|
70
|
+
* // Parse a comment rule (with metadata)
|
|
71
|
+
* const ast6 = RuleParser.parse("! Title: Example");
|
|
72
|
+
*
|
|
73
|
+
* // Parse a pre-processor rule
|
|
74
|
+
* const ast7 = RuleParser.parse("!#if (adguard)");
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
static parse(raw: string, options?: import("./options").ParserOptions, baseOffset?: number): AnyRule;
|
|
78
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type OutputByteBuffer } from '../utils/output-byte-buffer';
|
|
2
|
+
import { type Node } from '../nodes';
|
|
3
|
+
/**
|
|
4
|
+
* Base class for serializers. Each serializer should extend this class.
|
|
5
|
+
*/
|
|
6
|
+
export declare class BaseSerializer {
|
|
7
|
+
/**
|
|
8
|
+
* Serializes the AST node to a byte buffer.
|
|
9
|
+
*
|
|
10
|
+
* @param node AST node to serialize.
|
|
11
|
+
* @param buffer Output byte buffer to write to.
|
|
12
|
+
* @param args Additional, parser-specific arguments, if needed.
|
|
13
|
+
*/
|
|
14
|
+
static serialize(node: Node, buffer: OutputByteBuffer, ...args: unknown[]): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type AgentCommentRule } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `AgentCommentSerializer` is responsible for serializing an Adblock agent comments.
|
|
6
|
+
* Adblock agent comment marks that the filter list is supposed to
|
|
7
|
+
* be used by the specified ad blockers.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* - ```adblock
|
|
11
|
+
* [AdGuard]
|
|
12
|
+
* ```
|
|
13
|
+
* - ```adblock
|
|
14
|
+
* [Adblock Plus 2.0]
|
|
15
|
+
* ```
|
|
16
|
+
* - ```adblock
|
|
17
|
+
* [uBlock Origin]
|
|
18
|
+
* ```
|
|
19
|
+
* - ```adblock
|
|
20
|
+
* [uBlock Origin 1.45.3]
|
|
21
|
+
* ```
|
|
22
|
+
* - ```adblock
|
|
23
|
+
* [Adblock Plus 2.0; AdGuard]
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare class AgentCommentSerializer extends BaseSerializer {
|
|
27
|
+
/**
|
|
28
|
+
* Serializes an adblock agent list node to binary format.
|
|
29
|
+
*
|
|
30
|
+
* @param node Node to serialize.
|
|
31
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
32
|
+
*/
|
|
33
|
+
static serialize(node: AgentCommentRule, buffer: OutputByteBuffer): void;
|
|
34
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Agent } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `AgentSerializer` is responsible for serializing single adblock agent elements into a binary format.
|
|
6
|
+
*/
|
|
7
|
+
export declare class AgentSerializer extends BaseSerializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes an agent node to binary format.
|
|
10
|
+
*
|
|
11
|
+
* @param node Node to serialize.
|
|
12
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
13
|
+
*/
|
|
14
|
+
static serialize(node: Agent, buffer: OutputByteBuffer): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type AnyCommentRule } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `CommentRuleSerializer` is responsible for serializing any comment-like adblock rules.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* Example rules:
|
|
9
|
+
* - Adblock agent rules:
|
|
10
|
+
* - ```adblock
|
|
11
|
+
* [AdGuard]
|
|
12
|
+
* ```
|
|
13
|
+
* - ```adblock
|
|
14
|
+
* [Adblock Plus 2.0]
|
|
15
|
+
* ```
|
|
16
|
+
* - etc.
|
|
17
|
+
* - AdGuard hint rules:
|
|
18
|
+
* - ```adblock
|
|
19
|
+
* !+ NOT_OPTIMIZED
|
|
20
|
+
* ```
|
|
21
|
+
* - ```adblock
|
|
22
|
+
* !+ NOT_OPTIMIZED PLATFORM(windows)
|
|
23
|
+
* ```
|
|
24
|
+
* - etc.
|
|
25
|
+
* - Pre-processor rules:
|
|
26
|
+
* - ```adblock
|
|
27
|
+
* !#if (adguard)
|
|
28
|
+
* ```
|
|
29
|
+
* - ```adblock
|
|
30
|
+
* !#endif
|
|
31
|
+
* ```
|
|
32
|
+
* - etc.
|
|
33
|
+
* - Metadata rules:
|
|
34
|
+
* - ```adblock
|
|
35
|
+
* ! Title: My List
|
|
36
|
+
* ```
|
|
37
|
+
* - ```adblock
|
|
38
|
+
* ! Version: 2.0.150
|
|
39
|
+
* ```
|
|
40
|
+
* - etc.
|
|
41
|
+
* - AGLint inline config rules:
|
|
42
|
+
* - ```adblock
|
|
43
|
+
* ! aglint-enable some-rule
|
|
44
|
+
* ```
|
|
45
|
+
* - ```adblock
|
|
46
|
+
* ! aglint-disable some-rule
|
|
47
|
+
* ```
|
|
48
|
+
* - etc.
|
|
49
|
+
* - Simple comments:
|
|
50
|
+
* - Regular version:
|
|
51
|
+
* ```adblock
|
|
52
|
+
* ! This is just a comment
|
|
53
|
+
* ```
|
|
54
|
+
* - uBlock Origin / "hostlist" version:
|
|
55
|
+
* ```adblock
|
|
56
|
+
* # This is just a comment
|
|
57
|
+
* ```
|
|
58
|
+
* - etc.
|
|
59
|
+
*/
|
|
60
|
+
export declare class CommentRuleSerializer extends BaseSerializer {
|
|
61
|
+
/**
|
|
62
|
+
* Serializes a comment rule node to binary format.
|
|
63
|
+
*
|
|
64
|
+
* @param node Node to serialize.
|
|
65
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
66
|
+
*/
|
|
67
|
+
static serialize(node: AnyCommentRule, buffer: OutputByteBuffer): void;
|
|
68
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ConfigCommentRule } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `ConfigCommentSerializer` is responsible for serializing inline AGLint configuration rules into a binary format.
|
|
6
|
+
* Generally, the idea is inspired by ESLint inline configuration comments.
|
|
7
|
+
*
|
|
8
|
+
* @see {@link https://eslint.org/docs/latest/user-guide/configuring/rules#using-configuration-comments}
|
|
9
|
+
*/
|
|
10
|
+
export declare class ConfigCommentSerializer extends BaseSerializer {
|
|
11
|
+
/**
|
|
12
|
+
* Serializes a config node to binary format.
|
|
13
|
+
*
|
|
14
|
+
* @param node Node to serialize.
|
|
15
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
16
|
+
*/
|
|
17
|
+
private static serializeConfigNode;
|
|
18
|
+
/**
|
|
19
|
+
* Serializes a metadata comment node to binary format.
|
|
20
|
+
*
|
|
21
|
+
* @param node Node to serialize.
|
|
22
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
23
|
+
*/
|
|
24
|
+
static serialize(node: ConfigCommentRule, buffer: OutputByteBuffer): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type HintCommentRule } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `HintCommentSerializer` is responsible for serializing AdGuard hint rules.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* The following hint rule
|
|
9
|
+
* ```adblock
|
|
10
|
+
* !+ NOT_OPTIMIZED PLATFORM(windows)
|
|
11
|
+
* ```
|
|
12
|
+
* contains two hints: `NOT_OPTIMIZED` and `PLATFORM`.
|
|
13
|
+
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#hints}
|
|
14
|
+
*/
|
|
15
|
+
export declare class HintCommentSerializer extends BaseSerializer {
|
|
16
|
+
/**
|
|
17
|
+
* Serializes a hint rule node to binary format.
|
|
18
|
+
*
|
|
19
|
+
* @param node Node to serialize.
|
|
20
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
21
|
+
*/
|
|
22
|
+
static serialize(node: HintCommentRule, buffer: OutputByteBuffer): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type Hint } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `HintSerializer` is responsible for serializing AdGuard hints.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* If the hint rule is
|
|
9
|
+
* ```adblock
|
|
10
|
+
* !+ NOT_OPTIMIZED PLATFORM(windows)
|
|
11
|
+
* ```
|
|
12
|
+
* then the hints are `NOT_OPTIMIZED` and `PLATFORM(windows)`, and this
|
|
13
|
+
* class is responsible for parsing them. The rule itself is parsed by
|
|
14
|
+
* the `HintRuleParser`, which uses this class to parse single hints.
|
|
15
|
+
*/
|
|
16
|
+
export declare class HintSerializer extends BaseSerializer {
|
|
17
|
+
/**
|
|
18
|
+
* Serializes a hint node to binary format.
|
|
19
|
+
*
|
|
20
|
+
* @param node Node to serialize.
|
|
21
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
22
|
+
*/
|
|
23
|
+
static serialize(node: Hint, buffer: OutputByteBuffer): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type MetadataCommentRule } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `MetadataCommentSerializer` is responsible for serializing metadata comments.
|
|
6
|
+
* Metadata comments are special comments that specify some properties of the list.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* For example, in the case of
|
|
10
|
+
* ```adblock
|
|
11
|
+
* ! Title: My List
|
|
12
|
+
* ```
|
|
13
|
+
* the name of the header is `Title`, and the value is `My List`, which means that
|
|
14
|
+
* the list title is `My List`, and it can be used in the adblocker UI.
|
|
15
|
+
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#special-comments}
|
|
16
|
+
*/
|
|
17
|
+
export declare class MetadataCommentSerializer extends BaseSerializer {
|
|
18
|
+
/**
|
|
19
|
+
* Serializes a metadata comment node to binary format.
|
|
20
|
+
*
|
|
21
|
+
* @param node Node to serialize.
|
|
22
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
23
|
+
*/
|
|
24
|
+
static serialize(node: MetadataCommentRule, buffer: OutputByteBuffer): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { PreProcessorCommentRule } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `PreProcessorSerializer` is responsible for serializing preprocessor rules.
|
|
6
|
+
* Pre-processor comments are special comments that are used to control the behavior of the filter list processor.
|
|
7
|
+
* Please note that this parser only handles general syntax for now, and does not validate the parameters at
|
|
8
|
+
* the parsing stage.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* If your rule is
|
|
12
|
+
* ```adblock
|
|
13
|
+
* !#if (adguard)
|
|
14
|
+
* ```
|
|
15
|
+
* then the directive's name is `if` and its value is `(adguard)`, but the parameter list
|
|
16
|
+
* is not parsed / validated further.
|
|
17
|
+
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#pre-processor-directives}
|
|
18
|
+
* @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#pre-parsing-directives}
|
|
19
|
+
*/
|
|
20
|
+
export declare class PreProcessorCommentSerializer extends BaseSerializer {
|
|
21
|
+
/**
|
|
22
|
+
* Serializes a pre-processor comment node to binary format.
|
|
23
|
+
*
|
|
24
|
+
* @param node Node to serialize.
|
|
25
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
26
|
+
*/
|
|
27
|
+
static serialize(node: PreProcessorCommentRule, buffer: OutputByteBuffer): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
2
|
+
import { type CommentRule } from '../../nodes';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `SimpleCommentSerializer` is responsible for serializing simple comments.
|
|
6
|
+
* Some comments have a special meaning in adblock syntax, like agent comments or hints,
|
|
7
|
+
* but this serializer is only responsible for serializing regular comments,
|
|
8
|
+
* whose only purpose is to provide some human-readable information.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```adblock
|
|
12
|
+
* ! This is a simple comment
|
|
13
|
+
* # This is a simple comment, but in host-like syntax
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare class SimpleCommentSerializer extends BaseSerializer {
|
|
17
|
+
/**
|
|
18
|
+
* Serializes a simple comment 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: CommentRule, buffer: OutputByteBuffer): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ScriptletInjectionRuleBody } from '../../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `AbpSnippetInjectionBodySerializer` is responsible for serializing the body of an Adblock Plus-style snippet rule.
|
|
6
|
+
*
|
|
7
|
+
* Please note that the serializer will serialize any scriptlet rule if it is syntactically correct.
|
|
8
|
+
* For example, it will serialize this:
|
|
9
|
+
* ```adblock
|
|
10
|
+
* example.com#$#snippet0 arg0
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* but it doesn't check if the scriptlet `snippet0` is actually supported by any adblocker.
|
|
14
|
+
*
|
|
15
|
+
* @see {@link https://help.eyeo.com/adblockplus/snippet-filters-tutorial}
|
|
16
|
+
*/
|
|
17
|
+
export declare class AbpSnippetInjectionBodySerializer extends BaseSerializer {
|
|
18
|
+
/**
|
|
19
|
+
* Serializes a scriptlet call 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: ScriptletInjectionRuleBody, buffer: OutputByteBuffer): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type OutputByteBuffer } from '../../../utils/output-byte-buffer';
|
|
2
|
+
import { type ScriptletInjectionRuleBody } from '../../../nodes';
|
|
3
|
+
import { BaseSerializer } from '../../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `AdgScriptletInjectionBodySerializer` is responsible for serializing the body of an AdGuard-style scriptlet rule.
|
|
6
|
+
*
|
|
7
|
+
* Please note that the serializer will serialize any scriptlet rule if it is syntactically correct.
|
|
8
|
+
* For example, it will serialize this:
|
|
9
|
+
* ```adblock
|
|
10
|
+
* example.com#%#//scriptlet('scriptlet0', 'arg0')
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* but it doesn't check if the scriptlet `scriptlet0` is actually supported by any adblocker.
|
|
14
|
+
*
|
|
15
|
+
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#scriptlets}
|
|
16
|
+
*/
|
|
17
|
+
export declare class AdgScriptletInjectionBodySerializer extends BaseSerializer {
|
|
18
|
+
/**
|
|
19
|
+
* Serializes a scriptlet call 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: ScriptletInjectionRuleBody, buffer: OutputByteBuffer): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ScriptletInjectionRuleBody } from '../../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* Serializer for scriptlet injection rule body nodes.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ScriptletBodySerializer extends BaseSerializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes a scriptlet injection rule body node into a compact binary format.
|
|
10
|
+
*
|
|
11
|
+
* @param node The ScriptletInjectionRuleBody node to serialize.
|
|
12
|
+
* @param buffer The OutputByteBuffer used for writing the binary data.
|
|
13
|
+
* @param frequentScriptletArgs An optional map of frequently used scriptlet names and their arguments,
|
|
14
|
+
* along with their corresponding serialization index.
|
|
15
|
+
*/
|
|
16
|
+
static serialize: (node: ScriptletInjectionRuleBody, buffer: OutputByteBuffer, frequentScriptletArgs?: Map<string, number>) => void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ScriptletInjectionRuleBody } from '../../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `UboScriptletInjectionBodySerializer` is responsible for serializing the body of a uBlock-style scriptlet rule.
|
|
6
|
+
*
|
|
7
|
+
* Please note that the parser will parse any scriptlet rule if it is syntactically correct.
|
|
8
|
+
* For example, it will parse this:
|
|
9
|
+
* ```adblock
|
|
10
|
+
* example.com##+js(scriptlet0, arg0)
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* but it didn't check if the scriptlet `scriptlet0` actually supported by any adblocker.
|
|
14
|
+
*
|
|
15
|
+
* @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#scriptlet-injection}
|
|
16
|
+
*/
|
|
17
|
+
export declare class UboScriptletInjectionBodySerializer extends BaseSerializer {
|
|
18
|
+
/**
|
|
19
|
+
* Serializes a scriptlet call 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: ScriptletInjectionRuleBody, buffer: OutputByteBuffer): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type AnyCosmeticRule } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `CosmeticRuleSerializer` is responsible for serializing cosmetic rules into a binary format.
|
|
6
|
+
*
|
|
7
|
+
* This class takes a cosmetic rule Abstract Syntax Tree (AST) and converts it into a compact binary representation.
|
|
8
|
+
* It handles the serialization of different types of cosmetic rules, including element hiding, CSS injection,
|
|
9
|
+
* JavaScript injection, HTML filtering, and scriptlet injection rules.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CosmeticRuleSerializer extends BaseSerializer {
|
|
12
|
+
/**
|
|
13
|
+
* Serializes a cosmetic rule node to binary format.
|
|
14
|
+
*
|
|
15
|
+
* @param node Node to serialize.
|
|
16
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
17
|
+
*/
|
|
18
|
+
static serialize(node: AnyCosmeticRule, buffer: OutputByteBuffer): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type CssInjectionRuleBody } from '../../nodes';
|
|
2
|
+
import type { OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* Serializer for CSS injection rule body nodes.
|
|
6
|
+
*/
|
|
7
|
+
export declare class CssInjectionBodySerializer extends BaseSerializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes a CSS injection rule body node to binary format.
|
|
10
|
+
*
|
|
11
|
+
* @param node Node to serialize.
|
|
12
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
13
|
+
*/
|
|
14
|
+
static serialize(node: CssInjectionRuleBody, buffer: OutputByteBuffer): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseSerializer } from '../base-serializer';
|
|
2
|
+
import { type ElementHidingRuleBody } from '../../nodes';
|
|
3
|
+
import type { OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
4
|
+
/**
|
|
5
|
+
* Serializer for element hiding rule body nodes.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ElementHidingBodySerializer extends BaseSerializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes an element hiding rule body node to binary format.
|
|
10
|
+
*
|
|
11
|
+
* @param node Node to serialize.
|
|
12
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
13
|
+
*/
|
|
14
|
+
static serialize(node: ElementHidingRuleBody, buffer: OutputByteBuffer): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseSerializer } from './base-serializer';
|
|
2
|
+
import { type EmptyRule } from '../nodes';
|
|
3
|
+
import type { OutputByteBuffer } from '../utils/output-byte-buffer';
|
|
4
|
+
/**
|
|
5
|
+
* Serializer for empty rule nodes.
|
|
6
|
+
*/
|
|
7
|
+
export declare class EmptyRuleSerializer extends BaseSerializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes an empty rule node to binary format.
|
|
10
|
+
*
|
|
11
|
+
* @param node Node to serialize.
|
|
12
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
13
|
+
*/
|
|
14
|
+
static serialize(node: EmptyRule, buffer: OutputByteBuffer): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type FilterList } from '../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from './base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* Serializes filter list nodes to binary format.
|
|
6
|
+
*/
|
|
7
|
+
export declare class FilterListSerializer extends BaseSerializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes a filter list node to binary format.
|
|
10
|
+
*
|
|
11
|
+
* @param node Node to serialize.
|
|
12
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
13
|
+
*/
|
|
14
|
+
static serialize(node: FilterList, buffer: OutputByteBuffer): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { RuleSerializer } from './rule-serializer';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseSerializer } from './base-serializer';
|
|
2
|
+
import { type InvalidRuleError } from '../nodes';
|
|
3
|
+
import type { OutputByteBuffer } from '../utils/output-byte-buffer';
|
|
4
|
+
/**
|
|
5
|
+
* Serializer for invalid rule error nodes.
|
|
6
|
+
*/
|
|
7
|
+
export declare class InvalidRuleErrorNodeSerializer extends BaseSerializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes an invalid rule error node to binary format.
|
|
10
|
+
*
|
|
11
|
+
* @param node Node to serialize.
|
|
12
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
13
|
+
*/
|
|
14
|
+
static serialize(node: InvalidRuleError, buffer: OutputByteBuffer): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseSerializer } from './base-serializer';
|
|
2
|
+
import { type InvalidRule } from '../nodes';
|
|
3
|
+
import type { OutputByteBuffer } from '../utils/output-byte-buffer';
|
|
4
|
+
/**
|
|
5
|
+
* Serializer for invalid rule nodes.
|
|
6
|
+
*/
|
|
7
|
+
export declare class InvalidRuleSerializer extends BaseSerializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes an invalid rule node to binary format.
|
|
10
|
+
*
|
|
11
|
+
* @param node Node to serialize.
|
|
12
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
13
|
+
*/
|
|
14
|
+
static serialize(node: InvalidRule, buffer: OutputByteBuffer): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type DomainList } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `DomainListSerializer` is responsible for serializing a domain list.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* - If the rule is `example.com,~example.net##.ads`, the domain list is `example.com,~example.net`.
|
|
9
|
+
* - If the rule is `ads.js^$script,domains=example.com|~example.org`, the domain list is `example.com|~example.org`.
|
|
10
|
+
* This serializer is responsible for serializing these domain lists.
|
|
11
|
+
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#elemhide_domains}
|
|
12
|
+
*/
|
|
13
|
+
export declare class DomainListSerializer extends BaseSerializer {
|
|
14
|
+
/**
|
|
15
|
+
* Serializes a domain list node to binary format.
|
|
16
|
+
*
|
|
17
|
+
* @param node Node to serialize.
|
|
18
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
19
|
+
*/
|
|
20
|
+
static serialize(node: DomainList, buffer: OutputByteBuffer): void;
|
|
21
|
+
}
|