@adguard/agtree 2.1.3 → 3.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.
- package/dist/cjs/ast-utils/clone.js +65 -0
- package/dist/cjs/ast-utils/modifiers.js +56 -0
- package/dist/cjs/ast-utils/network-rules.js +43 -0
- package/dist/cjs/ast-utils/scriptlets.js +93 -0
- package/dist/cjs/common/abp-snippet-injection-body-common.js +18 -0
- package/dist/cjs/common/agent-common.js +58 -0
- package/dist/cjs/common/ubo-selector-common.js +18 -0
- package/dist/cjs/compatibility-tables/base.js +264 -0
- package/dist/cjs/compatibility-tables/compatibility-table-data.js +15 -0
- package/dist/cjs/compatibility-tables/modifiers.js +57 -0
- package/dist/cjs/compatibility-tables/platforms.js +58 -0
- package/dist/cjs/compatibility-tables/redirects.js +102 -0
- package/dist/cjs/compatibility-tables/schemas/base.js +116 -0
- package/dist/cjs/compatibility-tables/schemas/modifier.js +107 -0
- package/dist/cjs/compatibility-tables/schemas/platform.js +71 -0
- package/dist/cjs/compatibility-tables/schemas/redirect.js +31 -0
- package/dist/cjs/compatibility-tables/schemas/resource-type.js +39 -0
- package/dist/cjs/compatibility-tables/schemas/scriptlet.js +81 -0
- package/dist/cjs/compatibility-tables/scriptlets.js +30 -0
- package/dist/cjs/compatibility-tables/utils/platform-helpers.js +112 -0
- package/dist/cjs/compatibility-tables/utils/resource-type-helpers.js +64 -0
- package/dist/cjs/compatibility-tables/utils/zod-camelcase.js +27 -0
- package/dist/cjs/converter/base-interfaces/base-converter.js +61 -0
- package/dist/cjs/converter/base-interfaces/conversion-result.js +41 -0
- package/dist/cjs/converter/base-interfaces/rule-converter-base.js +62 -0
- package/dist/cjs/converter/comment/index.js +56 -0
- package/dist/cjs/converter/cosmetic/css.js +71 -0
- package/dist/cjs/converter/cosmetic/element-hiding.js +64 -0
- package/dist/cjs/converter/cosmetic/header-removal.js +126 -0
- package/dist/cjs/converter/cosmetic/html.js +384 -0
- package/dist/cjs/converter/cosmetic/index.js +120 -0
- package/dist/cjs/converter/cosmetic/rule-modifiers/adg.js +81 -0
- package/dist/cjs/converter/cosmetic/scriptlet.js +356 -0
- package/dist/cjs/converter/css/index.js +193 -0
- package/dist/cjs/converter/data/css.js +133 -0
- package/dist/cjs/converter/filter-list.js +90 -0
- package/dist/cjs/converter/index.js +15 -0
- package/dist/cjs/converter/misc/network-rule-modifier.js +313 -0
- package/dist/cjs/converter/network/index.js +101 -0
- package/dist/cjs/converter/raw-filter-list.js +58 -0
- package/dist/cjs/converter/rule.js +83 -0
- package/dist/cjs/deserializer/base-deserializer.js +31 -0
- package/dist/cjs/deserializer/comment/agent-comment-deserializer.js +76 -0
- package/dist/cjs/deserializer/comment/agent-deserializer.js +67 -0
- package/dist/cjs/deserializer/comment/comment-rule-deserializer.js +109 -0
- package/dist/cjs/deserializer/comment/config-comment-deserializer.js +113 -0
- package/dist/cjs/deserializer/comment/hint-comment-deserializer.js +69 -0
- package/dist/cjs/deserializer/comment/hint-deserializer.js +88 -0
- package/dist/cjs/deserializer/comment/metadata-comment-deserializer.js +71 -0
- package/dist/cjs/deserializer/comment/pre-processor-comment-deserializer.js +114 -0
- package/dist/cjs/deserializer/comment/simple-comment-deserializer.js +67 -0
- package/dist/cjs/deserializer/cosmetic/cosmetic-rule-deserializer.js +127 -0
- package/dist/cjs/deserializer/cosmetic/css-injection-body-deserializer.js +55 -0
- package/dist/cjs/deserializer/cosmetic/element-hiding-body-deserializer.js +46 -0
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +37 -0
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +37 -0
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +52 -0
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +38 -0
- package/dist/cjs/deserializer/empty-rule-deserializer.js +46 -0
- package/dist/cjs/deserializer/filterlist-deserializer.js +83 -0
- package/dist/cjs/deserializer/index.js +15 -0
- package/dist/cjs/deserializer/invalid-rule-deserializer.js +48 -0
- package/dist/cjs/deserializer/invalid-rule-error-node-deserializer.js +48 -0
- package/dist/cjs/deserializer/misc/domain-list-deserializer.js +66 -0
- package/dist/cjs/deserializer/misc/list-item-deserializer.js +65 -0
- package/dist/cjs/deserializer/misc/list-items-deserializer.js +28 -0
- package/dist/cjs/deserializer/misc/logical-expression-deserializer.js +199 -0
- package/dist/cjs/deserializer/misc/modifier-deserializer.js +89 -0
- package/dist/cjs/deserializer/misc/modifier-list-deserializer.js +58 -0
- package/dist/cjs/deserializer/misc/parameter-list-deserializer.js +62 -0
- package/dist/cjs/deserializer/misc/value-deserializer.js +52 -0
- package/dist/cjs/deserializer/network/host-rule-deserializer.js +81 -0
- package/dist/cjs/deserializer/network/hostname-list-deserializer.js +50 -0
- package/dist/cjs/deserializer/network/network-rule-deserializer.js +67 -0
- package/dist/cjs/deserializer/rule-deserializer.js +67 -0
- package/dist/cjs/deserializer/syntax-deserialization-map.js +23 -0
- package/dist/cjs/errors/adblock-syntax-error.js +41 -0
- package/dist/cjs/errors/binary-schema-mismatch-error.js +39 -0
- package/dist/cjs/errors/not-implemented-error.js +33 -0
- package/dist/cjs/errors/rule-conversion-error.js +28 -0
- package/dist/cjs/generator/base-generator.js +29 -0
- package/dist/cjs/generator/comment/agent-comment-generator.js +30 -0
- package/dist/cjs/generator/comment/agent-generator.js +34 -0
- package/dist/cjs/generator/comment/comment-rule-generator.js +102 -0
- package/dist/cjs/generator/comment/config-comment-generator.js +44 -0
- package/dist/cjs/generator/comment/hint-comment-generator.js +27 -0
- package/dist/cjs/generator/comment/hint-generator.js +32 -0
- package/dist/cjs/generator/comment/metadata-comment-generator.js +32 -0
- package/dist/cjs/generator/comment/pre-processor-comment-generator.js +47 -0
- package/dist/cjs/generator/comment/simple-comment-generator.js +28 -0
- package/dist/cjs/generator/cosmetic/body/abp-snippet-injection-body-generator.js +36 -0
- package/dist/cjs/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +41 -0
- package/dist/cjs/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +43 -0
- package/dist/cjs/generator/cosmetic/cosmetic-rule-body-generator.js +92 -0
- package/dist/cjs/generator/cosmetic/cosmetic-rule-generator.js +66 -0
- package/dist/cjs/generator/cosmetic/cosmetic-rule-pattern-generator.js +41 -0
- package/dist/cjs/generator/css/adg-css-injection-generator.js +41 -0
- package/dist/cjs/generator/filterlist-generator.js +57 -0
- package/dist/cjs/generator/index.js +17 -0
- package/dist/cjs/generator/misc/domain-list-generator.js +25 -0
- package/dist/cjs/generator/misc/list-items-generator.js +38 -0
- package/dist/cjs/generator/misc/logical-expression-generator.js +47 -0
- package/dist/cjs/generator/misc/modifier-generator.js +33 -0
- package/dist/cjs/generator/misc/modifier-list-generator.js +28 -0
- package/dist/cjs/generator/misc/parameter-list-generator.js +41 -0
- package/dist/cjs/generator/misc/value-generator.js +23 -0
- package/dist/cjs/generator/network/host-rule-generator.js +38 -0
- package/dist/cjs/generator/network/network-rule-generator.js +37 -0
- package/dist/cjs/generator/rule-generator.js +64 -0
- package/dist/cjs/index.js +201 -0
- package/dist/cjs/marshalling-utils/comment/agent-comment-common.js +22 -0
- package/dist/cjs/marshalling-utils/comment/agent-common.js +43 -0
- package/dist/cjs/marshalling-utils/comment/config-comment-common.js +58 -0
- package/dist/cjs/marshalling-utils/comment/hint-comment-common.js +23 -0
- package/dist/cjs/marshalling-utils/comment/hint-common.js +60 -0
- package/dist/cjs/marshalling-utils/comment/metadata-comment-common.js +44 -0
- package/dist/cjs/marshalling-utils/comment/pre-processor-comment-common.js +63 -0
- package/dist/cjs/marshalling-utils/comment/simple-comment-common.js +23 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +64 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +68 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/css-injection-body-common.js +25 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/element-hiding-body-common.js +22 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +116 -0
- package/dist/cjs/marshalling-utils/cosmetic/cosmetic-rule-common.js +51 -0
- package/dist/cjs/marshalling-utils/empty-rule-common.js +21 -0
- package/dist/cjs/marshalling-utils/filter-list-common.js +22 -0
- package/dist/cjs/marshalling-utils/invalid-rule-common.js +22 -0
- package/dist/cjs/marshalling-utils/invalid-rule-error-node-common.js +23 -0
- package/dist/cjs/marshalling-utils/misc/binary-type-common.js +67 -0
- package/dist/cjs/marshalling-utils/misc/domain-list-common.js +39 -0
- package/dist/cjs/marshalling-utils/misc/host-rule-common.js +26 -0
- package/dist/cjs/marshalling-utils/misc/hostname-list-common.js +22 -0
- package/dist/cjs/marshalling-utils/misc/list-item-common.js +23 -0
- package/dist/cjs/marshalling-utils/misc/logical-expression-common.js +89 -0
- package/dist/cjs/marshalling-utils/misc/modifier-common.js +236 -0
- package/dist/cjs/marshalling-utils/misc/modifier-list-common.js +22 -0
- package/dist/cjs/marshalling-utils/misc/parameter-list-common.js +22 -0
- package/dist/cjs/marshalling-utils/misc/value-common.js +23 -0
- package/dist/cjs/marshalling-utils/network/network-rule-common.js +26 -0
- package/dist/cjs/marshalling-utils/syntax-serialization-map.js +32 -0
- package/dist/cjs/nodes/index.js +180 -0
- package/dist/cjs/package.json.js +11 -0
- package/dist/cjs/parser/base-parser.js +32 -0
- package/dist/cjs/parser/comment/agent-comment-parser.js +121 -0
- package/dist/cjs/parser/comment/agent-parser.js +111 -0
- package/dist/cjs/parser/comment/comment-parser.js +110 -0
- package/dist/cjs/parser/comment/config-comment-parser.js +139 -0
- package/dist/cjs/parser/comment/hint-comment-parser.js +119 -0
- package/dist/cjs/parser/comment/hint-parser.js +131 -0
- package/dist/cjs/parser/comment/metadata-comment-parser.js +131 -0
- package/dist/cjs/parser/comment/preprocessor-parser.js +201 -0
- package/dist/cjs/parser/comment/simple-comment-parser.js +108 -0
- package/dist/cjs/parser/cosmetic/body/abp-snippet-injection-body-parser.js +81 -0
- package/dist/cjs/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +151 -0
- package/dist/cjs/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +112 -0
- package/dist/cjs/parser/cosmetic/cosmetic-rule-parser.js +456 -0
- package/dist/cjs/parser/css/adg-css-injection-parser.js +213 -0
- package/dist/cjs/parser/css/balancing.js +97 -0
- package/dist/cjs/parser/css/constants.js +21 -0
- package/dist/cjs/parser/css/css-token-stream.js +345 -0
- package/dist/cjs/parser/css/ubo-selector-parser.js +373 -0
- package/dist/cjs/parser/filterlist-parser.js +104 -0
- package/dist/cjs/parser/index.js +21 -0
- package/dist/cjs/parser/misc/app-list-parser.js +47 -0
- package/dist/cjs/parser/misc/domain-list-parser.js +54 -0
- package/dist/cjs/parser/misc/list-items-parser.js +116 -0
- package/dist/cjs/parser/misc/logical-expression-parser.js +283 -0
- package/dist/cjs/parser/misc/method-list-parser.js +48 -0
- package/dist/cjs/parser/misc/modifier-list.js +72 -0
- package/dist/cjs/parser/misc/modifier-parser.js +91 -0
- package/dist/cjs/parser/misc/parameter-list-parser.js +74 -0
- package/dist/cjs/parser/misc/stealth-option-list-parser.js +48 -0
- package/dist/cjs/parser/misc/ubo-parameter-list-parser.js +148 -0
- package/dist/cjs/parser/misc/value-parser.js +39 -0
- package/dist/cjs/parser/network/host-rule-parser.js +151 -0
- package/dist/cjs/parser/network/network-rule-parser.js +113 -0
- package/dist/cjs/parser/options.js +25 -0
- package/dist/cjs/parser/rule-parser.js +194 -0
- package/dist/cjs/serializer/base-serializer.js +31 -0
- package/dist/cjs/serializer/comment/agent-comment-serializer.js +73 -0
- package/dist/cjs/serializer/comment/agent-serializer.js +70 -0
- package/dist/cjs/serializer/comment/comment-rule-serializer.js +107 -0
- package/dist/cjs/serializer/comment/config-comment-serializer.js +84 -0
- package/dist/cjs/serializer/comment/hint-comment-serializer.js +64 -0
- package/dist/cjs/serializer/comment/hint-serializer.js +56 -0
- package/dist/cjs/serializer/comment/metadata-comment-serializer.js +75 -0
- package/dist/cjs/serializer/comment/pre-processor-comment-serializer.js +73 -0
- package/dist/cjs/serializer/comment/simple-comment-serializer.js +54 -0
- package/dist/cjs/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +38 -0
- package/dist/cjs/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +38 -0
- package/dist/cjs/serializer/cosmetic/body/scriptlet-body-serializer.js +49 -0
- package/dist/cjs/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +38 -0
- package/dist/cjs/serializer/cosmetic/cosmetic-rule-serializer.js +131 -0
- package/dist/cjs/serializer/cosmetic/css-injection-body-serializer.js +50 -0
- package/dist/cjs/serializer/cosmetic/element-hiding-body-serializer.js +39 -0
- package/dist/cjs/serializer/empty-rule-serializer.js +36 -0
- package/dist/cjs/serializer/filterlist-serializer.js +48 -0
- package/dist/cjs/serializer/index.js +13 -0
- package/dist/cjs/serializer/invalid-rule-error-node-serializer.js +40 -0
- package/dist/cjs/serializer/invalid-rule-serializer.js +39 -0
- package/dist/cjs/serializer/misc/domain-list-serializer.js +66 -0
- package/dist/cjs/serializer/misc/list-item-serializer.js +57 -0
- package/dist/cjs/serializer/misc/list-items-serializer.js +28 -0
- package/dist/cjs/serializer/misc/logical-expression-serializer.js +138 -0
- package/dist/cjs/serializer/misc/modifier-list-serializer.js +57 -0
- package/dist/cjs/serializer/misc/modifier-serializer.js +51 -0
- package/dist/cjs/serializer/misc/parameter-list-serializer.js +51 -0
- package/dist/cjs/serializer/misc/value-serializer.js +52 -0
- package/dist/cjs/serializer/network/host-rule-serializer.js +72 -0
- package/dist/cjs/serializer/network/hostname-list-serializer.js +49 -0
- package/dist/cjs/serializer/network/network-rule-serializer.js +56 -0
- package/dist/cjs/serializer/rule-serializer.js +63 -0
- package/dist/cjs/utils/adblockers.js +57 -0
- package/dist/cjs/utils/binary-schema-version.js +19 -0
- package/dist/cjs/utils/byte-buffer.js +93 -0
- package/dist/cjs/utils/categorizer.js +46 -0
- package/dist/cjs/utils/clone.js +30 -0
- package/dist/cjs/utils/constants.js +380 -0
- package/dist/cjs/utils/cosmetic-rule-separator.js +129 -0
- package/dist/cjs/utils/deep-freeze.js +34 -0
- package/dist/cjs/utils/domain.js +60 -0
- package/dist/cjs/utils/error.js +51 -0
- package/dist/cjs/utils/index.js +69 -0
- package/dist/cjs/utils/input-byte-buffer.js +259 -0
- package/dist/cjs/utils/is-chromium.js +22 -0
- package/dist/cjs/utils/logical-expression.js +94 -0
- package/dist/cjs/utils/multi-value-map.js +35 -0
- package/dist/cjs/utils/output-byte-buffer.js +225 -0
- package/dist/cjs/utils/position-provider.js +75 -0
- package/dist/cjs/utils/quotes.js +218 -0
- package/dist/cjs/utils/regexp.js +190 -0
- package/dist/cjs/utils/string.js +560 -0
- package/dist/cjs/utils/text-decoder-polyfill.js +109 -0
- package/dist/cjs/utils/text-encoder-polyfill.js +80 -0
- package/dist/cjs/utils/type-guards.js +52 -0
- package/dist/cjs/validator/constants.js +222 -0
- package/dist/cjs/validator/helpers.js +49 -0
- package/dist/cjs/validator/index.js +176 -0
- package/dist/cjs/validator/value.js +565 -0
- package/dist/cjs/version.js +20 -0
- package/dist/esm/ast-utils/clone.mjs +61 -0
- package/dist/esm/ast-utils/modifiers.mjs +53 -0
- package/dist/esm/ast-utils/network-rules.mjs +41 -0
- package/dist/esm/ast-utils/scriptlets.mjs +87 -0
- package/dist/esm/common/abp-snippet-injection-body-common.mjs +16 -0
- package/dist/esm/common/agent-common.mjs +56 -0
- package/dist/esm/common/ubo-selector-common.mjs +18 -0
- package/dist/esm/compatibility-tables/base.mjs +262 -0
- package/dist/esm/compatibility-tables/compatibility-table-data.mjs +11 -0
- package/dist/esm/compatibility-tables/modifiers.mjs +55 -0
- package/dist/esm/compatibility-tables/platforms.mjs +58 -0
- package/dist/esm/compatibility-tables/redirects.mjs +100 -0
- package/dist/esm/compatibility-tables/schemas/base.mjs +111 -0
- package/dist/esm/compatibility-tables/schemas/modifier.mjs +105 -0
- package/dist/esm/compatibility-tables/schemas/platform.mjs +69 -0
- package/dist/esm/compatibility-tables/schemas/redirect.mjs +29 -0
- package/dist/esm/compatibility-tables/schemas/resource-type.mjs +37 -0
- package/dist/esm/compatibility-tables/schemas/scriptlet.mjs +79 -0
- package/dist/esm/compatibility-tables/scriptlets.mjs +28 -0
- package/dist/esm/compatibility-tables/utils/platform-helpers.mjs +105 -0
- package/dist/esm/compatibility-tables/utils/resource-type-helpers.mjs +61 -0
- package/dist/esm/compatibility-tables/utils/zod-camelcase.mjs +25 -0
- package/dist/esm/converter/base-interfaces/base-converter.mjs +59 -0
- package/dist/esm/converter/base-interfaces/conversion-result.mjs +38 -0
- package/dist/esm/converter/base-interfaces/rule-converter-base.mjs +60 -0
- package/dist/esm/converter/comment/index.mjs +54 -0
- package/dist/esm/converter/cosmetic/css.mjs +69 -0
- package/dist/esm/converter/cosmetic/element-hiding.mjs +62 -0
- package/dist/esm/converter/cosmetic/header-removal.mjs +123 -0
- package/dist/esm/converter/cosmetic/html.mjs +381 -0
- package/dist/esm/converter/cosmetic/index.mjs +118 -0
- package/dist/esm/converter/cosmetic/rule-modifiers/adg.mjs +79 -0
- package/dist/esm/converter/cosmetic/scriptlet.mjs +354 -0
- package/dist/esm/converter/css/index.mjs +190 -0
- package/dist/esm/converter/data/css.mjs +126 -0
- package/dist/esm/converter/filter-list.mjs +88 -0
- package/dist/esm/converter/index.mjs +8 -0
- package/dist/esm/converter/misc/network-rule-modifier.mjs +311 -0
- package/dist/esm/converter/network/index.mjs +99 -0
- package/dist/esm/converter/raw-filter-list.mjs +56 -0
- package/dist/esm/converter/rule.mjs +81 -0
- package/dist/esm/deserializer/base-deserializer.mjs +29 -0
- package/dist/esm/deserializer/comment/agent-comment-deserializer.mjs +74 -0
- package/dist/esm/deserializer/comment/agent-deserializer.mjs +65 -0
- package/dist/esm/deserializer/comment/comment-rule-deserializer.mjs +107 -0
- package/dist/esm/deserializer/comment/config-comment-deserializer.mjs +111 -0
- package/dist/esm/deserializer/comment/hint-comment-deserializer.mjs +67 -0
- package/dist/esm/deserializer/comment/hint-deserializer.mjs +85 -0
- package/dist/esm/deserializer/comment/metadata-comment-deserializer.mjs +69 -0
- package/dist/esm/deserializer/comment/pre-processor-comment-deserializer.mjs +112 -0
- package/dist/esm/deserializer/comment/simple-comment-deserializer.mjs +65 -0
- package/dist/esm/deserializer/cosmetic/cosmetic-rule-deserializer.mjs +125 -0
- package/dist/esm/deserializer/cosmetic/css-injection-body-deserializer.mjs +53 -0
- package/dist/esm/deserializer/cosmetic/element-hiding-body-deserializer.mjs +44 -0
- package/dist/esm/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.mjs +35 -0
- package/dist/esm/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.mjs +35 -0
- package/dist/esm/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.mjs +50 -0
- package/dist/esm/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.mjs +35 -0
- package/dist/esm/deserializer/empty-rule-deserializer.mjs +44 -0
- package/dist/esm/deserializer/filterlist-deserializer.mjs +81 -0
- package/dist/esm/deserializer/index.mjs +8 -0
- package/dist/esm/deserializer/invalid-rule-deserializer.mjs +46 -0
- package/dist/esm/deserializer/invalid-rule-error-node-deserializer.mjs +46 -0
- package/dist/esm/deserializer/misc/domain-list-deserializer.mjs +64 -0
- package/dist/esm/deserializer/misc/list-item-deserializer.mjs +63 -0
- package/dist/esm/deserializer/misc/list-items-deserializer.mjs +26 -0
- package/dist/esm/deserializer/misc/logical-expression-deserializer.mjs +196 -0
- package/dist/esm/deserializer/misc/modifier-deserializer.mjs +87 -0
- package/dist/esm/deserializer/misc/modifier-list-deserializer.mjs +56 -0
- package/dist/esm/deserializer/misc/parameter-list-deserializer.mjs +60 -0
- package/dist/esm/deserializer/misc/value-deserializer.mjs +50 -0
- package/dist/esm/deserializer/network/host-rule-deserializer.mjs +79 -0
- package/dist/esm/deserializer/network/hostname-list-deserializer.mjs +48 -0
- package/dist/esm/deserializer/network/network-rule-deserializer.mjs +65 -0
- package/dist/esm/deserializer/rule-deserializer.mjs +65 -0
- package/dist/esm/deserializer/syntax-deserialization-map.mjs +21 -0
- package/dist/esm/errors/adblock-syntax-error.mjs +39 -0
- package/dist/esm/errors/binary-schema-mismatch-error.mjs +37 -0
- package/dist/esm/errors/not-implemented-error.mjs +31 -0
- package/dist/esm/errors/rule-conversion-error.mjs +26 -0
- package/dist/esm/generator/base-generator.mjs +27 -0
- package/dist/esm/generator/comment/agent-comment-generator.mjs +28 -0
- package/dist/esm/generator/comment/agent-generator.mjs +32 -0
- package/dist/esm/generator/comment/comment-rule-generator.mjs +100 -0
- package/dist/esm/generator/comment/config-comment-generator.mjs +42 -0
- package/dist/esm/generator/comment/hint-comment-generator.mjs +25 -0
- package/dist/esm/generator/comment/hint-generator.mjs +30 -0
- package/dist/esm/generator/comment/metadata-comment-generator.mjs +30 -0
- package/dist/esm/generator/comment/pre-processor-comment-generator.mjs +45 -0
- package/dist/esm/generator/comment/simple-comment-generator.mjs +26 -0
- package/dist/esm/generator/cosmetic/body/abp-snippet-injection-body-generator.mjs +34 -0
- package/dist/esm/generator/cosmetic/body/adg-scriptlet-injection-body-generator.mjs +39 -0
- package/dist/esm/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.mjs +41 -0
- package/dist/esm/generator/cosmetic/cosmetic-rule-body-generator.mjs +90 -0
- package/dist/esm/generator/cosmetic/cosmetic-rule-generator.mjs +64 -0
- package/dist/esm/generator/cosmetic/cosmetic-rule-pattern-generator.mjs +39 -0
- package/dist/esm/generator/css/adg-css-injection-generator.mjs +39 -0
- package/dist/esm/generator/filterlist-generator.mjs +55 -0
- package/dist/esm/generator/index.mjs +9 -0
- package/dist/esm/generator/misc/domain-list-generator.mjs +23 -0
- package/dist/esm/generator/misc/list-items-generator.mjs +36 -0
- package/dist/esm/generator/misc/logical-expression-generator.mjs +45 -0
- package/dist/esm/generator/misc/modifier-generator.mjs +31 -0
- package/dist/esm/generator/misc/modifier-list-generator.mjs +26 -0
- package/dist/esm/generator/misc/parameter-list-generator.mjs +39 -0
- package/dist/esm/generator/misc/value-generator.mjs +21 -0
- package/dist/esm/generator/network/host-rule-generator.mjs +36 -0
- package/dist/esm/generator/network/network-rule-generator.mjs +35 -0
- package/dist/esm/generator/rule-generator.mjs +62 -0
- package/dist/esm/index.mjs +70 -0
- package/dist/esm/marshalling-utils/comment/agent-comment-common.mjs +22 -0
- package/dist/esm/marshalling-utils/comment/agent-common.mjs +41 -0
- package/dist/esm/marshalling-utils/comment/config-comment-common.mjs +56 -0
- package/dist/esm/marshalling-utils/comment/hint-comment-common.mjs +23 -0
- package/dist/esm/marshalling-utils/comment/hint-common.mjs +57 -0
- package/dist/esm/marshalling-utils/comment/metadata-comment-common.mjs +42 -0
- package/dist/esm/marshalling-utils/comment/pre-processor-comment-common.mjs +60 -0
- package/dist/esm/marshalling-utils/comment/simple-comment-common.mjs +23 -0
- package/dist/esm/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.mjs +62 -0
- package/dist/esm/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.mjs +66 -0
- package/dist/esm/marshalling-utils/cosmetic/body/css-injection-body-common.mjs +25 -0
- package/dist/esm/marshalling-utils/cosmetic/body/element-hiding-body-common.mjs +22 -0
- package/dist/esm/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.mjs +114 -0
- package/dist/esm/marshalling-utils/cosmetic/cosmetic-rule-common.mjs +49 -0
- package/dist/esm/marshalling-utils/empty-rule-common.mjs +21 -0
- package/dist/esm/marshalling-utils/filter-list-common.mjs +22 -0
- package/dist/esm/marshalling-utils/invalid-rule-common.mjs +22 -0
- package/dist/esm/marshalling-utils/invalid-rule-error-node-common.mjs +23 -0
- package/dist/esm/marshalling-utils/misc/binary-type-common.mjs +67 -0
- package/dist/esm/marshalling-utils/misc/domain-list-common.mjs +37 -0
- package/dist/esm/marshalling-utils/misc/host-rule-common.mjs +26 -0
- package/dist/esm/marshalling-utils/misc/hostname-list-common.mjs +22 -0
- package/dist/esm/marshalling-utils/misc/list-item-common.mjs +23 -0
- package/dist/esm/marshalling-utils/misc/logical-expression-common.mjs +86 -0
- package/dist/esm/marshalling-utils/misc/modifier-common.mjs +232 -0
- package/dist/esm/marshalling-utils/misc/modifier-list-common.mjs +22 -0
- package/dist/esm/marshalling-utils/misc/parameter-list-common.mjs +22 -0
- package/dist/esm/marshalling-utils/misc/value-common.mjs +23 -0
- package/dist/esm/marshalling-utils/network/network-rule-common.mjs +26 -0
- package/dist/esm/marshalling-utils/syntax-serialization-map.mjs +30 -0
- package/dist/esm/nodes/index.mjs +180 -0
- package/dist/esm/package.json.mjs +9 -0
- package/dist/esm/parser/base-parser.mjs +30 -0
- package/dist/esm/parser/comment/agent-comment-parser.mjs +119 -0
- package/dist/esm/parser/comment/agent-parser.mjs +109 -0
- package/dist/esm/parser/comment/comment-parser.mjs +108 -0
- package/dist/esm/parser/comment/config-comment-parser.mjs +137 -0
- package/dist/esm/parser/comment/hint-comment-parser.mjs +117 -0
- package/dist/esm/parser/comment/hint-parser.mjs +129 -0
- package/dist/esm/parser/comment/metadata-comment-parser.mjs +129 -0
- package/dist/esm/parser/comment/preprocessor-parser.mjs +199 -0
- package/dist/esm/parser/comment/simple-comment-parser.mjs +106 -0
- package/dist/esm/parser/cosmetic/body/abp-snippet-injection-body-parser.mjs +79 -0
- package/dist/esm/parser/cosmetic/body/adg-scriptlet-injection-body-parser.mjs +149 -0
- package/dist/esm/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.mjs +110 -0
- package/dist/esm/parser/cosmetic/cosmetic-rule-parser.mjs +453 -0
- package/dist/esm/parser/css/adg-css-injection-parser.mjs +208 -0
- package/dist/esm/parser/css/balancing.mjs +94 -0
- package/dist/esm/parser/css/constants.mjs +18 -0
- package/dist/esm/parser/css/css-token-stream.mjs +343 -0
- package/dist/esm/parser/css/ubo-selector-parser.mjs +369 -0
- package/dist/esm/parser/filterlist-parser.mjs +102 -0
- package/dist/esm/parser/index.mjs +11 -0
- package/dist/esm/parser/misc/app-list-parser.mjs +45 -0
- package/dist/esm/parser/misc/domain-list-parser.mjs +52 -0
- package/dist/esm/parser/misc/list-items-parser.mjs +113 -0
- package/dist/esm/parser/misc/logical-expression-parser.mjs +281 -0
- package/dist/esm/parser/misc/method-list-parser.mjs +46 -0
- package/dist/esm/parser/misc/modifier-list.mjs +70 -0
- package/dist/esm/parser/misc/modifier-parser.mjs +89 -0
- package/dist/esm/parser/misc/parameter-list-parser.mjs +72 -0
- package/dist/esm/parser/misc/stealth-option-list-parser.mjs +46 -0
- package/dist/esm/parser/misc/ubo-parameter-list-parser.mjs +146 -0
- package/dist/esm/parser/misc/value-parser.mjs +37 -0
- package/dist/esm/parser/network/host-rule-parser.mjs +130 -0
- package/dist/esm/parser/network/network-rule-parser.mjs +111 -0
- package/dist/esm/parser/options.mjs +23 -0
- package/dist/esm/parser/rule-parser.mjs +192 -0
- package/dist/esm/serializer/base-serializer.mjs +29 -0
- package/dist/esm/serializer/comment/agent-comment-serializer.mjs +71 -0
- package/dist/esm/serializer/comment/agent-serializer.mjs +68 -0
- package/dist/esm/serializer/comment/comment-rule-serializer.mjs +105 -0
- package/dist/esm/serializer/comment/config-comment-serializer.mjs +82 -0
- package/dist/esm/serializer/comment/hint-comment-serializer.mjs +62 -0
- package/dist/esm/serializer/comment/hint-serializer.mjs +54 -0
- package/dist/esm/serializer/comment/metadata-comment-serializer.mjs +73 -0
- package/dist/esm/serializer/comment/pre-processor-comment-serializer.mjs +71 -0
- package/dist/esm/serializer/comment/simple-comment-serializer.mjs +52 -0
- package/dist/esm/serializer/cosmetic/body/abp-snippet-injection-body-serializer.mjs +36 -0
- package/dist/esm/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.mjs +36 -0
- package/dist/esm/serializer/cosmetic/body/scriptlet-body-serializer.mjs +47 -0
- package/dist/esm/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.mjs +36 -0
- package/dist/esm/serializer/cosmetic/cosmetic-rule-serializer.mjs +129 -0
- package/dist/esm/serializer/cosmetic/css-injection-body-serializer.mjs +48 -0
- package/dist/esm/serializer/cosmetic/element-hiding-body-serializer.mjs +37 -0
- package/dist/esm/serializer/empty-rule-serializer.mjs +34 -0
- package/dist/esm/serializer/filterlist-serializer.mjs +46 -0
- package/dist/esm/serializer/index.mjs +7 -0
- package/dist/esm/serializer/invalid-rule-error-node-serializer.mjs +38 -0
- package/dist/esm/serializer/invalid-rule-serializer.mjs +37 -0
- package/dist/esm/serializer/misc/domain-list-serializer.mjs +64 -0
- package/dist/esm/serializer/misc/list-item-serializer.mjs +55 -0
- package/dist/esm/serializer/misc/list-items-serializer.mjs +26 -0
- package/dist/esm/serializer/misc/logical-expression-serializer.mjs +136 -0
- package/dist/esm/serializer/misc/modifier-list-serializer.mjs +55 -0
- package/dist/esm/serializer/misc/modifier-serializer.mjs +49 -0
- package/dist/esm/serializer/misc/parameter-list-serializer.mjs +49 -0
- package/dist/esm/serializer/misc/value-serializer.mjs +50 -0
- package/dist/esm/serializer/network/host-rule-serializer.mjs +70 -0
- package/dist/esm/serializer/network/hostname-list-serializer.mjs +47 -0
- package/dist/esm/serializer/network/network-rule-serializer.mjs +54 -0
- package/dist/esm/serializer/rule-serializer.mjs +61 -0
- package/dist/esm/utils/adblockers.mjs +57 -0
- package/dist/esm/utils/binary-schema-version.mjs +17 -0
- package/dist/esm/utils/byte-buffer.mjs +91 -0
- package/dist/esm/utils/categorizer.mjs +44 -0
- package/dist/esm/utils/clone.mjs +28 -0
- package/dist/esm/utils/constants.mjs +249 -0
- package/dist/esm/utils/cosmetic-rule-separator.mjs +127 -0
- package/dist/esm/utils/deep-freeze.mjs +32 -0
- package/dist/esm/utils/domain.mjs +56 -0
- package/dist/esm/utils/error.mjs +49 -0
- package/dist/esm/utils/index.mjs +21 -0
- package/dist/esm/utils/input-byte-buffer.mjs +257 -0
- package/dist/esm/utils/is-chromium.mjs +20 -0
- package/dist/esm/utils/logical-expression.mjs +92 -0
- package/dist/esm/utils/multi-value-map.mjs +33 -0
- package/dist/esm/utils/output-byte-buffer.mjs +223 -0
- package/dist/esm/utils/position-provider.mjs +73 -0
- package/dist/esm/utils/quotes.mjs +215 -0
- package/dist/esm/utils/regexp.mjs +176 -0
- package/dist/esm/utils/string.mjs +556 -0
- package/dist/esm/utils/text-decoder-polyfill.mjs +107 -0
- package/dist/esm/utils/text-encoder-polyfill.mjs +78 -0
- package/dist/esm/utils/type-guards.mjs +47 -0
- package/dist/esm/validator/constants.mjs +210 -0
- package/dist/esm/validator/helpers.mjs +45 -0
- package/dist/esm/validator/index.mjs +174 -0
- package/dist/esm/validator/value.mjs +563 -0
- package/dist/esm/version.mjs +18 -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 +8 -0
- package/dist/types/common/agent-common.d.ts +10 -0
- package/dist/types/common/ubo-selector-common.d.ts +9 -0
- package/dist/types/compatibility-tables/base.d.ts +157 -0
- package/dist/types/compatibility-tables/compatibility-table-data.d.ts +67 -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 +47 -0
- package/dist/types/compatibility-tables/redirects.d.ts +33 -0
- package/dist/types/compatibility-tables/schemas/base.d.ts +135 -0
- package/dist/types/compatibility-tables/schemas/index.d.ts +8 -0
- package/dist/types/compatibility-tables/schemas/modifier.d.ts +31 -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 +27 -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 +23 -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 +69 -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 +12 -0
- package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +12 -0
- package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +12 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +13 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +13 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +15 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +14 -0
- package/dist/types/deserializer/empty-rule-deserializer.d.ts +12 -0
- package/dist/types/deserializer/filterlist-deserializer.d.ts +30 -0
- package/dist/types/deserializer/index.d.ts +2 -0
- package/dist/types/deserializer/invalid-rule-deserializer.d.ts +12 -0
- package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +12 -0
- package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +15 -0
- package/dist/types/deserializer/misc/list-item-deserializer.d.ts +13 -0
- package/dist/types/deserializer/misc/list-items-deserializer.d.ts +12 -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 +14 -0
- package/dist/types/deserializer/misc/value-deserializer.d.ts +17 -0
- package/dist/types/deserializer/network/host-rule-deserializer.d.ts +30 -0
- package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +12 -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 +11 -0
- package/dist/types/generator/comment/agent-generator.d.ts +11 -0
- package/dist/types/generator/comment/comment-rule-generator.d.ts +67 -0
- package/dist/types/generator/comment/config-comment-generator.d.ts +11 -0
- package/dist/types/generator/comment/hint-comment-generator.d.ts +11 -0
- package/dist/types/generator/comment/hint-generator.d.ts +11 -0
- package/dist/types/generator/comment/index.d.ts +2 -0
- package/dist/types/generator/comment/metadata-comment-generator.d.ts +11 -0
- package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +11 -0
- package/dist/types/generator/comment/simple-comment-generator.d.ts +11 -0
- package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +11 -0
- package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +36 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/index.d.ts +1 -0
- package/dist/types/generator/css/adg-css-injection-generator.d.ts +12 -0
- package/dist/types/generator/css/ubo-selector-generator.d.ts +11 -0
- package/dist/types/generator/filterlist-generator.d.ts +17 -0
- package/dist/types/generator/index.d.ts +3 -0
- package/dist/types/generator/misc/domain-list-generator.d.ts +12 -0
- package/dist/types/generator/misc/list-items-generator.d.ts +22 -0
- package/dist/types/generator/misc/logical-expression-generator.d.ts +11 -0
- package/dist/types/generator/misc/modifier-generator.d.ts +11 -0
- package/dist/types/generator/misc/modifier-list-generator.d.ts +11 -0
- package/dist/types/generator/misc/parameter-list-generator.d.ts +12 -0
- package/dist/types/generator/misc/value-generator.d.ts +11 -0
- package/dist/types/generator/network/host-rule-generator.d.ts +11 -0
- package/dist/types/generator/network/index.d.ts +2 -0
- package/dist/types/generator/network/network-rule-generator.d.ts +11 -0
- package/dist/types/generator/rule-generator.d.ts +21 -0
- package/dist/types/index.d.ts +55 -0
- package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +13 -0
- package/dist/types/marshalling-utils/comment/agent-common.d.ts +19 -0
- package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +40 -0
- package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +14 -0
- package/dist/types/marshalling-utils/comment/hint-common.d.ts +32 -0
- package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +20 -0
- package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +36 -0
- package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +14 -0
- package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +22 -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 +16 -0
- package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +13 -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 +27 -0
- package/dist/types/marshalling-utils/empty-rule-common.d.ts +12 -0
- package/dist/types/marshalling-utils/filter-list-common.d.ts +13 -0
- package/dist/types/marshalling-utils/invalid-rule-common.d.ts +13 -0
- package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +56 -0
- package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +23 -0
- package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +17 -0
- package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +13 -0
- package/dist/types/marshalling-utils/misc/list-item-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +44 -0
- package/dist/types/marshalling-utils/misc/modifier-common.d.ts +40 -0
- package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +13 -0
- package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +13 -0
- package/dist/types/marshalling-utils/misc/value-common.d.ts +14 -0
- package/dist/types/marshalling-utils/network/network-rule-common.d.ts +17 -0
- package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +2 -0
- package/dist/types/nodes/index.d.ts +1177 -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 +5 -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 +34 -0
- package/dist/types/parser/misc/logical-expression-parser.d.ts +41 -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 +14 -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 +18 -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 +24 -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 +14 -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 +26 -0
- package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +12 -0
- package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +12 -0
- package/dist/types/serializer/empty-rule-serializer.d.ts +12 -0
- package/dist/types/serializer/filterlist-serializer.d.ts +16 -0
- package/dist/types/serializer/index.d.ts +1 -0
- package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +12 -0
- package/dist/types/serializer/invalid-rule-serializer.d.ts +12 -0
- package/dist/types/serializer/misc/domain-list-serializer.d.ts +21 -0
- package/dist/types/serializer/misc/list-item-serializer.d.ts +13 -0
- package/dist/types/serializer/misc/list-items-serializer.d.ts +12 -0
- package/dist/types/serializer/misc/logical-expression-serializer.d.ts +51 -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 +14 -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 +12 -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 +48 -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 +26 -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 +140 -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 +126 -0
- package/dist/types/utils/position-provider.d.ts +46 -0
- package/dist/types/utils/quotes.d.ts +93 -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 +277 -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 +11 -0
- package/dist/types/version.d.ts +5 -0
- package/package.json +91 -37
- package/dist/agtree.d.ts +0 -4152
- package/dist/agtree.js +0 -15741
- package/dist/agtree.mjs +0 -15642
- package/dist/compatibility-table-data.js +0 -12634
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var constants = require('../../utils/constants.js');
|
|
10
|
+
var valueSerializer = require('../misc/value-serializer.js');
|
|
11
|
+
var typeGuards = require('../../utils/type-guards.js');
|
|
12
|
+
var baseSerializer = require('../base-serializer.js');
|
|
13
|
+
var metadataCommentCommon = require('../../marshalling-utils/comment/metadata-comment-common.js');
|
|
14
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Value map for binary serialization. This helps to reduce the size of the serialized data,
|
|
18
|
+
* as it allows us to use a single byte to represent frequently used values.
|
|
19
|
+
*
|
|
20
|
+
* ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
|
|
21
|
+
*
|
|
22
|
+
* @note Only 256 values can be represented this way.
|
|
23
|
+
* @note This map is generated from `FREQUENT_HEADERS_DESERIALIZATION_MAP` to keep uppercase characters
|
|
24
|
+
* while deserializing.
|
|
25
|
+
*/
|
|
26
|
+
let frequentHeadersSerializationMap;
|
|
27
|
+
const getFrequentHeadersSerializationMap = () => {
|
|
28
|
+
if (!frequentHeadersSerializationMap) {
|
|
29
|
+
frequentHeadersSerializationMap = new Map(Array.from(metadataCommentCommon.FREQUENT_HEADERS_DESERIALIZATION_MAP.entries())
|
|
30
|
+
.map(([key, value]) => [value.toLowerCase(), key]));
|
|
31
|
+
}
|
|
32
|
+
return frequentHeadersSerializationMap;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* `MetadataCommentSerializer` is responsible for serializing metadata comments.
|
|
36
|
+
* Metadata comments are special comments that specify some properties of the list.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* For example, in the case of
|
|
40
|
+
* ```adblock
|
|
41
|
+
* ! Title: My List
|
|
42
|
+
* ```
|
|
43
|
+
* the name of the header is `Title`, and the value is `My List`, which means that
|
|
44
|
+
* the list title is `My List`, and it can be used in the adblocker UI.
|
|
45
|
+
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#special-comments}
|
|
46
|
+
*/
|
|
47
|
+
class MetadataCommentSerializer extends baseSerializer.BaseSerializer {
|
|
48
|
+
/**
|
|
49
|
+
* Serializes a metadata comment node to binary format.
|
|
50
|
+
*
|
|
51
|
+
* @param node Node to serialize.
|
|
52
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
53
|
+
*/
|
|
54
|
+
// TODO: add support for raws, if ever needed
|
|
55
|
+
static serialize(node, buffer) {
|
|
56
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.MetadataCommentRuleNode);
|
|
57
|
+
buffer.writeUint8(metadataCommentCommon.MetadataCommentMarshallingMap.Marker);
|
|
58
|
+
valueSerializer.ValueSerializer.serialize(node.marker, buffer);
|
|
59
|
+
buffer.writeUint8(metadataCommentCommon.MetadataCommentMarshallingMap.Header);
|
|
60
|
+
valueSerializer.ValueSerializer.serialize(node.header, buffer, getFrequentHeadersSerializationMap(), true);
|
|
61
|
+
buffer.writeUint8(metadataCommentCommon.MetadataCommentMarshallingMap.Value);
|
|
62
|
+
valueSerializer.ValueSerializer.serialize(node.value, buffer);
|
|
63
|
+
if (!typeGuards.isUndefined(node.start)) {
|
|
64
|
+
buffer.writeUint8(metadataCommentCommon.MetadataCommentMarshallingMap.Start);
|
|
65
|
+
buffer.writeUint32(node.start);
|
|
66
|
+
}
|
|
67
|
+
if (!typeGuards.isUndefined(node.end)) {
|
|
68
|
+
buffer.writeUint8(metadataCommentCommon.MetadataCommentMarshallingMap.End);
|
|
69
|
+
buffer.writeUint32(node.end);
|
|
70
|
+
}
|
|
71
|
+
buffer.writeUint8(constants.NULL);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
exports.MetadataCommentSerializer = MetadataCommentSerializer;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var constants = require('../../utils/constants.js');
|
|
10
|
+
var logicalExpressionSerializer = require('../misc/logical-expression-serializer.js');
|
|
11
|
+
var parameterListSerializer = require('../misc/parameter-list-serializer.js');
|
|
12
|
+
var valueSerializer = require('../misc/value-serializer.js');
|
|
13
|
+
var typeGuards = require('../../utils/type-guards.js');
|
|
14
|
+
var baseSerializer = require('../base-serializer.js');
|
|
15
|
+
var preProcessorCommentCommon = require('../../marshalling-utils/comment/pre-processor-comment-common.js');
|
|
16
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
17
|
+
var syntaxSerializationMap = require('../../marshalling-utils/syntax-serialization-map.js');
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* `PreProcessorSerializer` is responsible for serializing preprocessor rules.
|
|
21
|
+
* Pre-processor comments are special comments that are used to control the behavior of the filter list processor.
|
|
22
|
+
* Please note that this parser only handles general syntax for now, and does not validate the parameters at
|
|
23
|
+
* the parsing stage.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* If your rule is
|
|
27
|
+
* ```adblock
|
|
28
|
+
* !#if (adguard)
|
|
29
|
+
* ```
|
|
30
|
+
* then the directive's name is `if` and its value is `(adguard)`, but the parameter list
|
|
31
|
+
* is not parsed / validated further.
|
|
32
|
+
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#pre-processor-directives}
|
|
33
|
+
* @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#pre-parsing-directives}
|
|
34
|
+
*/
|
|
35
|
+
class PreProcessorCommentSerializer extends baseSerializer.BaseSerializer {
|
|
36
|
+
/**
|
|
37
|
+
* Serializes a pre-processor comment node to binary format.
|
|
38
|
+
*
|
|
39
|
+
* @param node Node to serialize.
|
|
40
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
41
|
+
*/
|
|
42
|
+
// TODO: add support for raws, if ever needed
|
|
43
|
+
static serialize(node, buffer) {
|
|
44
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.PreProcessorCommentRuleNode);
|
|
45
|
+
buffer.writeUint8(preProcessorCommentCommon.PreProcessorRuleMarshallingMap.Name);
|
|
46
|
+
valueSerializer.ValueSerializer.serialize(node.name, buffer, preProcessorCommentCommon.FREQUENT_DIRECTIVES_SERIALIZATION_MAP);
|
|
47
|
+
buffer.writeUint8(preProcessorCommentCommon.PreProcessorRuleMarshallingMap.Syntax);
|
|
48
|
+
buffer.writeUint8(syntaxSerializationMap.getSyntaxSerializationMap().get(node.syntax) ?? 0);
|
|
49
|
+
if (!typeGuards.isUndefined(node.params)) {
|
|
50
|
+
buffer.writeUint8(preProcessorCommentCommon.PreProcessorRuleMarshallingMap.Params);
|
|
51
|
+
if (node.params.type === 'Value') {
|
|
52
|
+
valueSerializer.ValueSerializer.serialize(node.params, buffer);
|
|
53
|
+
}
|
|
54
|
+
else if (node.params.type === 'ParameterList') {
|
|
55
|
+
parameterListSerializer.ParameterListSerializer.serialize(node.params, buffer, preProcessorCommentCommon.FREQUENT_PARAMS_SERIALIZATION_MAP, true);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
logicalExpressionSerializer.LogicalExpressionSerializer.serialize(node.params, buffer);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (!typeGuards.isUndefined(node.start)) {
|
|
62
|
+
buffer.writeUint8(preProcessorCommentCommon.PreProcessorRuleMarshallingMap.Start);
|
|
63
|
+
buffer.writeUint32(node.start);
|
|
64
|
+
}
|
|
65
|
+
if (!typeGuards.isUndefined(node.end)) {
|
|
66
|
+
buffer.writeUint8(preProcessorCommentCommon.PreProcessorRuleMarshallingMap.End);
|
|
67
|
+
buffer.writeUint32(node.end);
|
|
68
|
+
}
|
|
69
|
+
buffer.writeUint8(constants.NULL);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
exports.PreProcessorCommentSerializer = PreProcessorCommentSerializer;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var constants = require('../../utils/constants.js');
|
|
10
|
+
var typeGuards = require('../../utils/type-guards.js');
|
|
11
|
+
var valueSerializer = require('../misc/value-serializer.js');
|
|
12
|
+
var baseSerializer = require('../base-serializer.js');
|
|
13
|
+
var simpleCommentCommon = require('../../marshalling-utils/comment/simple-comment-common.js');
|
|
14
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* `SimpleCommentSerializer` is responsible for parsing simple comments.
|
|
18
|
+
* Some comments have a special meaning in adblock syntax, like agent comments or hints,
|
|
19
|
+
* but this parser is only responsible for parsing regular comments,
|
|
20
|
+
* whose only purpose is to provide some human-readable information.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```adblock
|
|
24
|
+
* ! This is a simple comment
|
|
25
|
+
* # This is a simple comment, but in host-like syntax
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
class SimpleCommentSerializer extends baseSerializer.BaseSerializer {
|
|
29
|
+
/**
|
|
30
|
+
* Serializes a simple comment rule node to binary format.
|
|
31
|
+
*
|
|
32
|
+
* @param node Node to serialize.
|
|
33
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
34
|
+
*/
|
|
35
|
+
// TODO: add support for raws, if ever needed
|
|
36
|
+
static serialize(node, buffer) {
|
|
37
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.CommentRuleNode);
|
|
38
|
+
buffer.writeUint8(simpleCommentCommon.SimpleCommentMarshallingMap.Marker);
|
|
39
|
+
valueSerializer.ValueSerializer.serialize(node.marker, buffer);
|
|
40
|
+
buffer.writeUint8(simpleCommentCommon.SimpleCommentMarshallingMap.Text);
|
|
41
|
+
valueSerializer.ValueSerializer.serialize(node.text, buffer);
|
|
42
|
+
if (!typeGuards.isUndefined(node.start)) {
|
|
43
|
+
buffer.writeUint8(simpleCommentCommon.SimpleCommentMarshallingMap.Start);
|
|
44
|
+
buffer.writeUint32(node.start);
|
|
45
|
+
}
|
|
46
|
+
if (!typeGuards.isUndefined(node.end)) {
|
|
47
|
+
buffer.writeUint8(simpleCommentCommon.SimpleCommentMarshallingMap.End);
|
|
48
|
+
buffer.writeUint32(node.end);
|
|
49
|
+
}
|
|
50
|
+
buffer.writeUint8(constants.NULL);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
exports.SimpleCommentSerializer = SimpleCommentSerializer;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var baseSerializer = require('../../base-serializer.js');
|
|
10
|
+
var scriptletBodySerializer = require('./scriptlet-body-serializer.js');
|
|
11
|
+
var abpSnippetInjectionBodyCommon = require('../../../marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* `AbpSnippetInjectionBodyParser` is responsible for parsing the body of an Adblock Plus-style snippet rule.
|
|
15
|
+
*
|
|
16
|
+
* Please note that the parser will parse any scriptlet rule if it is syntactically correct.
|
|
17
|
+
* For example, it will parse this:
|
|
18
|
+
* ```adblock
|
|
19
|
+
* example.com#$#snippet0 arg0
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* but it didn't check if the scriptlet `snippet0` actually supported by any adblocker.
|
|
23
|
+
*
|
|
24
|
+
* @see {@link https://help.eyeo.com/adblockplus/snippet-filters-tutorial}
|
|
25
|
+
*/
|
|
26
|
+
class AbpSnippetInjectionBodySerializer extends baseSerializer.BaseSerializer {
|
|
27
|
+
/**
|
|
28
|
+
* Serializes a scriptlet call body node to binary format.
|
|
29
|
+
*
|
|
30
|
+
* @param node Node to serialize.
|
|
31
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
32
|
+
*/
|
|
33
|
+
static serialize(node, buffer) {
|
|
34
|
+
scriptletBodySerializer.ScriptletBodySerializer.serialize(node, buffer, abpSnippetInjectionBodyCommon.FREQUENT_ABP_SNIPPET_ARGS_SERIALIZATION_MAP);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.AbpSnippetInjectionBodySerializer = AbpSnippetInjectionBodySerializer;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var baseSerializer = require('../../base-serializer.js');
|
|
10
|
+
var scriptletBodySerializer = require('./scriptlet-body-serializer.js');
|
|
11
|
+
var adgScriptletInjectionBodyCommon = require('../../../marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* `AdgScriptletInjectionBodyParser` is responsible for parsing the body of an AdGuard-style scriptlet rule.
|
|
15
|
+
*
|
|
16
|
+
* Please note that the parser will parse any scriptlet rule if it is syntactically correct.
|
|
17
|
+
* For example, it will parse this:
|
|
18
|
+
* ```adblock
|
|
19
|
+
* example.com#%#//scriptlet('scriptlet0', 'arg0')
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* but it didn't check if the scriptlet `scriptlet0` actually supported by any adblocker.
|
|
23
|
+
*
|
|
24
|
+
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#scriptlets}
|
|
25
|
+
*/
|
|
26
|
+
class AdgScriptletInjectionBodySerializer extends baseSerializer.BaseSerializer {
|
|
27
|
+
/**
|
|
28
|
+
* Serializes a scriptlet call body node to binary format.
|
|
29
|
+
*
|
|
30
|
+
* @param node Node to serialize.
|
|
31
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
32
|
+
*/
|
|
33
|
+
static serialize(node, buffer) {
|
|
34
|
+
scriptletBodySerializer.ScriptletBodySerializer.serialize(node, buffer, adgScriptletInjectionBodyCommon.FREQUENT_ADG_SCRIPTLET_ARGS_SERIALIZATION_MAP);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.AdgScriptletInjectionBodySerializer = AdgScriptletInjectionBodySerializer;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var constants = require('../../../utils/constants.js');
|
|
10
|
+
var parameterListSerializer = require('../../misc/parameter-list-serializer.js');
|
|
11
|
+
var typeGuards = require('../../../utils/type-guards.js');
|
|
12
|
+
var baseSerializer = require('../../base-serializer.js');
|
|
13
|
+
var abpSnippetInjectionBodyCommon = require('../../../marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js');
|
|
14
|
+
var binaryTypeCommon = require('../../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
+
|
|
16
|
+
class ScriptletBodySerializer extends baseSerializer.BaseSerializer {
|
|
17
|
+
/**
|
|
18
|
+
* Serializes a hint rule node to binary format.
|
|
19
|
+
*
|
|
20
|
+
* @param node Node to serialize.
|
|
21
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
22
|
+
* @param frequentScriptletArgs Map of frequently used scriptlet names / arguments
|
|
23
|
+
* and their serialization index (optional).
|
|
24
|
+
*/
|
|
25
|
+
static serialize = (node, buffer, frequentScriptletArgs) => {
|
|
26
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ScriptletInjectionRuleBodyNode);
|
|
27
|
+
const { length } = node.children;
|
|
28
|
+
buffer.writeUint8(abpSnippetInjectionBodyCommon.AbpSnippetBodyMarshallingMap.Children);
|
|
29
|
+
// note: we store the count, because re-construction of the array is faster if we know the length
|
|
30
|
+
if (length > constants.UINT8_MAX) {
|
|
31
|
+
throw new Error(`Too many scriptlet children: ${length}, the limit is ${constants.UINT8_MAX}`);
|
|
32
|
+
}
|
|
33
|
+
buffer.writeUint8(length);
|
|
34
|
+
for (let i = 0; i < length; i += 1) {
|
|
35
|
+
parameterListSerializer.ParameterListSerializer.serialize(node.children[i], buffer, frequentScriptletArgs);
|
|
36
|
+
}
|
|
37
|
+
if (!typeGuards.isUndefined(node.start)) {
|
|
38
|
+
buffer.writeUint8(abpSnippetInjectionBodyCommon.AbpSnippetBodyMarshallingMap.Start);
|
|
39
|
+
buffer.writeUint32(node.start);
|
|
40
|
+
}
|
|
41
|
+
if (!typeGuards.isUndefined(node.end)) {
|
|
42
|
+
buffer.writeUint8(abpSnippetInjectionBodyCommon.AbpSnippetBodyMarshallingMap.End);
|
|
43
|
+
buffer.writeUint32(node.end);
|
|
44
|
+
}
|
|
45
|
+
buffer.writeUint8(constants.NULL);
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
exports.ScriptletBodySerializer = ScriptletBodySerializer;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var scriptletBodySerializer = require('./scriptlet-body-serializer.js');
|
|
10
|
+
var baseSerializer = require('../../base-serializer.js');
|
|
11
|
+
var uboScriptletInjectionBodyCommon = require('../../../marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* `UboScriptletInjectionBodySerializer` is responsible for serializing the body of a uBlock-style scriptlet rule.
|
|
15
|
+
*
|
|
16
|
+
* Please note that the parser will parse any scriptlet rule if it is syntactically correct.
|
|
17
|
+
* For example, it will parse this:
|
|
18
|
+
* ```adblock
|
|
19
|
+
* example.com##+js(scriptlet0, arg0)
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* but it didn't check if the scriptlet `scriptlet0` actually supported by any adblocker.
|
|
23
|
+
*
|
|
24
|
+
* @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#scriptlet-injection}
|
|
25
|
+
*/
|
|
26
|
+
class UboScriptletInjectionBodySerializer extends baseSerializer.BaseSerializer {
|
|
27
|
+
/**
|
|
28
|
+
* Serializes a scriptlet call body node to binary format.
|
|
29
|
+
*
|
|
30
|
+
* @param node Node to serialize.
|
|
31
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
32
|
+
*/
|
|
33
|
+
static serialize(node, buffer) {
|
|
34
|
+
scriptletBodySerializer.ScriptletBodySerializer.serialize(node, buffer, uboScriptletInjectionBodyCommon.FREQUENT_UBO_SCRIPTLET_ARGS_SERIALIZATION_MAP);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.UboScriptletInjectionBodySerializer = UboScriptletInjectionBodySerializer;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var adblockers = require('../../utils/adblockers.js');
|
|
10
|
+
var domainListSerializer = require('../misc/domain-list-serializer.js');
|
|
11
|
+
var constants = require('../../utils/constants.js');
|
|
12
|
+
var index = require('../../nodes/index.js');
|
|
13
|
+
var abpSnippetInjectionBodySerializer = require('./body/abp-snippet-injection-body-serializer.js');
|
|
14
|
+
var uboScriptletInjectionBodySerializer = require('./body/ubo-scriptlet-injection-body-serializer.js');
|
|
15
|
+
var adgScriptletInjectionBodySerializer = require('./body/adg-scriptlet-injection-body-serializer.js');
|
|
16
|
+
var valueSerializer = require('../misc/value-serializer.js');
|
|
17
|
+
var typeGuards = require('../../utils/type-guards.js');
|
|
18
|
+
var baseSerializer = require('../base-serializer.js');
|
|
19
|
+
var elementHidingBodySerializer = require('./element-hiding-body-serializer.js');
|
|
20
|
+
var cssInjectionBodySerializer = require('./css-injection-body-serializer.js');
|
|
21
|
+
var modifierListSerializer = require('../misc/modifier-list-serializer.js');
|
|
22
|
+
var cosmeticRuleCommon = require('../../marshalling-utils/cosmetic/cosmetic-rule-common.js');
|
|
23
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
24
|
+
var syntaxSerializationMap = require('../../marshalling-utils/syntax-serialization-map.js');
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* `CosmeticRuleParser` is responsible for parsing cosmetic rules.
|
|
28
|
+
*
|
|
29
|
+
* Where possible, it automatically detects the difference between supported syntaxes:
|
|
30
|
+
* - AdGuard
|
|
31
|
+
* - uBlock Origin
|
|
32
|
+
* - Adblock Plus
|
|
33
|
+
*
|
|
34
|
+
* If the syntax is common / cannot be determined, the parser gives `Common` syntax.
|
|
35
|
+
*
|
|
36
|
+
* Please note that syntactically correct rules are parsed even if they are not actually
|
|
37
|
+
* compatible with the given adblocker. This is a completely natural behavior, meaningful
|
|
38
|
+
* checking of compatibility is not done at the parser level.
|
|
39
|
+
*/
|
|
40
|
+
// TODO: Make raw body parsing optional
|
|
41
|
+
// TODO: Split into smaller sections
|
|
42
|
+
class CosmeticRuleSerializer extends baseSerializer.BaseSerializer {
|
|
43
|
+
/**
|
|
44
|
+
* Serializes a cosmetic rule node to binary format.
|
|
45
|
+
*
|
|
46
|
+
* @param node Node to serialize.
|
|
47
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
48
|
+
*/
|
|
49
|
+
// TODO: add support for raws, if ever needed
|
|
50
|
+
static serialize(node, buffer) {
|
|
51
|
+
// specific properties
|
|
52
|
+
switch (node.type) {
|
|
53
|
+
case index.CosmeticRuleType.ElementHidingRule:
|
|
54
|
+
// rule type
|
|
55
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ElementHidingRule);
|
|
56
|
+
// syntax
|
|
57
|
+
buffer.writeUint8(syntaxSerializationMap.getSyntaxSerializationMap().get(node.syntax) ?? 0);
|
|
58
|
+
// rule body
|
|
59
|
+
elementHidingBodySerializer.ElementHidingBodySerializer.serialize(node.body, buffer);
|
|
60
|
+
break;
|
|
61
|
+
case index.CosmeticRuleType.CssInjectionRule:
|
|
62
|
+
// rule type
|
|
63
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.CssInjectionRule);
|
|
64
|
+
// syntax
|
|
65
|
+
buffer.writeUint8(syntaxSerializationMap.getSyntaxSerializationMap().get(node.syntax) ?? 0);
|
|
66
|
+
// rule body
|
|
67
|
+
cssInjectionBodySerializer.CssInjectionBodySerializer.serialize(node.body, buffer);
|
|
68
|
+
break;
|
|
69
|
+
case index.CosmeticRuleType.JsInjectionRule:
|
|
70
|
+
// rule type
|
|
71
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.JsInjectionRule);
|
|
72
|
+
// syntax
|
|
73
|
+
buffer.writeUint8(syntaxSerializationMap.getSyntaxSerializationMap().get(node.syntax) ?? 0);
|
|
74
|
+
// rule body
|
|
75
|
+
valueSerializer.ValueSerializer.serialize(node.body, buffer);
|
|
76
|
+
break;
|
|
77
|
+
case index.CosmeticRuleType.HtmlFilteringRule:
|
|
78
|
+
// rule type
|
|
79
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.HtmlFilteringRule);
|
|
80
|
+
// syntax
|
|
81
|
+
buffer.writeUint8(syntaxSerializationMap.getSyntaxSerializationMap().get(node.syntax) ?? 0);
|
|
82
|
+
// rule body
|
|
83
|
+
valueSerializer.ValueSerializer.serialize(node.body, buffer);
|
|
84
|
+
break;
|
|
85
|
+
case index.CosmeticRuleType.ScriptletInjectionRule:
|
|
86
|
+
// rule type
|
|
87
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ScriptletInjectionRule);
|
|
88
|
+
// syntax
|
|
89
|
+
buffer.writeUint8(syntaxSerializationMap.getSyntaxSerializationMap().get(node.syntax) ?? 0);
|
|
90
|
+
// rule body
|
|
91
|
+
switch (node.syntax) {
|
|
92
|
+
case adblockers.AdblockSyntax.Adg:
|
|
93
|
+
adgScriptletInjectionBodySerializer.AdgScriptletInjectionBodySerializer.serialize(node.body, buffer);
|
|
94
|
+
break;
|
|
95
|
+
case adblockers.AdblockSyntax.Abp:
|
|
96
|
+
abpSnippetInjectionBodySerializer.AbpSnippetInjectionBodySerializer.serialize(node.body, buffer);
|
|
97
|
+
break;
|
|
98
|
+
case adblockers.AdblockSyntax.Ubo:
|
|
99
|
+
uboScriptletInjectionBodySerializer.UboScriptletInjectionBodySerializer.serialize(node.body, buffer);
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
throw new Error('Scriptlet rule should have an explicit syntax');
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
default:
|
|
106
|
+
throw new Error('Unknown cosmetic rule type');
|
|
107
|
+
}
|
|
108
|
+
// common properties
|
|
109
|
+
buffer.writeUint8(cosmeticRuleCommon.CosmeticRuleMarshallingMap.Exception);
|
|
110
|
+
buffer.writeUint8(node.exception ? 1 : 0);
|
|
111
|
+
buffer.writeUint8(cosmeticRuleCommon.CosmeticRuleMarshallingMap.Separator);
|
|
112
|
+
valueSerializer.ValueSerializer.serialize(node.separator, buffer, cosmeticRuleCommon.COSMETIC_RULE_SEPARATOR_SERIALIZATION_MAP);
|
|
113
|
+
if (node.modifiers) {
|
|
114
|
+
buffer.writeUint8(cosmeticRuleCommon.CosmeticRuleMarshallingMap.Modifiers);
|
|
115
|
+
modifierListSerializer.ModifierListSerializer.serialize(node.modifiers, buffer);
|
|
116
|
+
}
|
|
117
|
+
buffer.writeUint8(cosmeticRuleCommon.CosmeticRuleMarshallingMap.Domains);
|
|
118
|
+
domainListSerializer.DomainListSerializer.serialize(node.domains, buffer);
|
|
119
|
+
if (!typeGuards.isUndefined(node.start)) {
|
|
120
|
+
buffer.writeUint8(cosmeticRuleCommon.CosmeticRuleMarshallingMap.Start);
|
|
121
|
+
buffer.writeUint32(node.start);
|
|
122
|
+
}
|
|
123
|
+
if (!typeGuards.isUndefined(node.end)) {
|
|
124
|
+
buffer.writeUint8(cosmeticRuleCommon.CosmeticRuleMarshallingMap.End);
|
|
125
|
+
buffer.writeUint32(node.end);
|
|
126
|
+
}
|
|
127
|
+
buffer.writeUint8(constants.NULL);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
exports.CosmeticRuleSerializer = CosmeticRuleSerializer;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var valueSerializer = require('../misc/value-serializer.js');
|
|
10
|
+
var typeGuards = require('../../utils/type-guards.js');
|
|
11
|
+
var constants = require('../../utils/constants.js');
|
|
12
|
+
var baseSerializer = require('../base-serializer.js');
|
|
13
|
+
var cssInjectionBodyCommon = require('../../marshalling-utils/cosmetic/body/css-injection-body-common.js');
|
|
14
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
+
|
|
16
|
+
class CssInjectionBodySerializer extends baseSerializer.BaseSerializer {
|
|
17
|
+
/**
|
|
18
|
+
* Serializes a CSS injection rule body 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(binaryTypeCommon.BinaryTypeMarshallingMap.CssInjectionRuleBody);
|
|
25
|
+
if (node.mediaQueryList) {
|
|
26
|
+
buffer.writeUint8(cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.MediaQueryList);
|
|
27
|
+
valueSerializer.ValueSerializer.serialize(node.mediaQueryList, buffer);
|
|
28
|
+
}
|
|
29
|
+
buffer.writeUint8(cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.SelectorList);
|
|
30
|
+
valueSerializer.ValueSerializer.serialize(node.selectorList, buffer);
|
|
31
|
+
if (node.declarationList) {
|
|
32
|
+
buffer.writeUint8(cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.DeclarationList);
|
|
33
|
+
valueSerializer.ValueSerializer.serialize(node.declarationList, buffer);
|
|
34
|
+
}
|
|
35
|
+
if (node.remove) {
|
|
36
|
+
buffer.writeUint8(cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.Remove);
|
|
37
|
+
}
|
|
38
|
+
if (!typeGuards.isUndefined(node.start)) {
|
|
39
|
+
buffer.writeUint8(cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.Start);
|
|
40
|
+
buffer.writeUint32(node.start);
|
|
41
|
+
}
|
|
42
|
+
if (!typeGuards.isUndefined(node.end)) {
|
|
43
|
+
buffer.writeUint8(cssInjectionBodyCommon.CssInjectionRuleMarshallingMap.End);
|
|
44
|
+
buffer.writeUint32(node.end);
|
|
45
|
+
}
|
|
46
|
+
buffer.writeUint8(constants.NULL);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
exports.CssInjectionBodySerializer = CssInjectionBodySerializer;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var baseSerializer = require('../base-serializer.js');
|
|
10
|
+
var valueSerializer = require('../misc/value-serializer.js');
|
|
11
|
+
var typeGuards = require('../../utils/type-guards.js');
|
|
12
|
+
var constants = require('../../utils/constants.js');
|
|
13
|
+
var elementHidingBodyCommon = require('../../marshalling-utils/cosmetic/body/element-hiding-body-common.js');
|
|
14
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
+
|
|
16
|
+
class ElementHidingBodySerializer extends baseSerializer.BaseSerializer {
|
|
17
|
+
/**
|
|
18
|
+
* Serializes an element hiding rule body 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(binaryTypeCommon.BinaryTypeMarshallingMap.ElementHidingRuleBody);
|
|
25
|
+
buffer.writeUint8(elementHidingBodyCommon.ElementHidingRuleMarshallingMap.SelectorList);
|
|
26
|
+
valueSerializer.ValueSerializer.serialize(node.selectorList, buffer);
|
|
27
|
+
if (!typeGuards.isUndefined(node.start)) {
|
|
28
|
+
buffer.writeUint8(elementHidingBodyCommon.ElementHidingRuleMarshallingMap.Start);
|
|
29
|
+
buffer.writeUint32(node.start);
|
|
30
|
+
}
|
|
31
|
+
if (!typeGuards.isUndefined(node.end)) {
|
|
32
|
+
buffer.writeUint8(elementHidingBodyCommon.ElementHidingRuleMarshallingMap.End);
|
|
33
|
+
buffer.writeUint32(node.end);
|
|
34
|
+
}
|
|
35
|
+
buffer.writeUint8(constants.NULL);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
exports.ElementHidingBodySerializer = ElementHidingBodySerializer;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
+
* (c) 2024 Adguard Software Ltd.
|
|
4
|
+
* Released under the MIT license
|
|
5
|
+
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var baseSerializer = require('./base-serializer.js');
|
|
10
|
+
var typeGuards = require('../utils/type-guards.js');
|
|
11
|
+
var constants = require('../utils/constants.js');
|
|
12
|
+
var emptyRuleCommon = require('../marshalling-utils/empty-rule-common.js');
|
|
13
|
+
var binaryTypeCommon = require('../marshalling-utils/misc/binary-type-common.js');
|
|
14
|
+
|
|
15
|
+
class EmptyRuleSerializer extends baseSerializer.BaseSerializer {
|
|
16
|
+
/**
|
|
17
|
+
* Serializes an empty 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, buffer) {
|
|
23
|
+
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.EmptyRule);
|
|
24
|
+
if (!typeGuards.isUndefined(node.start)) {
|
|
25
|
+
buffer.writeUint8(emptyRuleCommon.EmptyRuleMarshallingMap.Start);
|
|
26
|
+
buffer.writeUint32(node.start);
|
|
27
|
+
}
|
|
28
|
+
if (!typeGuards.isUndefined(node.end)) {
|
|
29
|
+
buffer.writeUint8(emptyRuleCommon.EmptyRuleMarshallingMap.End);
|
|
30
|
+
buffer.writeUint32(node.end);
|
|
31
|
+
}
|
|
32
|
+
buffer.writeUint8(constants.NULL);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.EmptyRuleSerializer = EmptyRuleSerializer;
|