@adguard/agtree 2.1.3 → 3.0.0-alpha.1
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,563 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import XRegExp from 'xregexp';
|
|
8
|
+
import { AdblockSyntaxError } from '../errors/adblock-syntax-error.mjs';
|
|
9
|
+
import { AppListParser } from '../parser/misc/app-list-parser.mjs';
|
|
10
|
+
import { DomainListParser } from '../parser/misc/domain-list-parser.mjs';
|
|
11
|
+
import { MethodListParser } from '../parser/misc/method-list-parser.mjs';
|
|
12
|
+
import { StealthOptionListParser } from '../parser/misc/stealth-option-list-parser.mjs';
|
|
13
|
+
import { DomainUtils } from '../utils/domain.mjs';
|
|
14
|
+
import { QuoteUtils, QuoteType } from '../utils/quotes.mjs';
|
|
15
|
+
import { SEMICOLON, SPACE, BACKSLASH, COMMA, PIPE, EQUALS, WILDCARD, DOT, OPEN_PARENTHESIS, CLOSE_PARENTHESIS } from '../utils/constants.mjs';
|
|
16
|
+
import { getValueRequiredValidationResult, getInvalidValidationResult } from './helpers.mjs';
|
|
17
|
+
import { VALIDATION_ERROR_PREFIX, ALLOWED_CSP_DIRECTIVES, REFERRER_POLICY_DIRECTIVES, ALLOWED_PERMISSION_DIRECTIVES, ALLOWED_METHODS, ALLOWED_STEALTH_OPTIONS, EMPTY_PERMISSIONS_ALLOWLIST, APP_NAME_ALLOWED_CHARS, PERMISSIONS_TOKEN_SELF, SOURCE_DATA_ERROR_PREFIX } from './constants.mjs';
|
|
18
|
+
import { defaultParserOptions } from '../parser/options.mjs';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Pre-defined available validators for modifiers with custom `value_format`.
|
|
22
|
+
*/
|
|
23
|
+
var CustomValueFormatValidatorName;
|
|
24
|
+
(function (CustomValueFormatValidatorName) {
|
|
25
|
+
CustomValueFormatValidatorName["App"] = "pipe_separated_apps";
|
|
26
|
+
CustomValueFormatValidatorName["Csp"] = "csp_value";
|
|
27
|
+
// there are some differences between $domain and $denyallow
|
|
28
|
+
CustomValueFormatValidatorName["DenyAllow"] = "pipe_separated_denyallow_domains";
|
|
29
|
+
CustomValueFormatValidatorName["Domain"] = "pipe_separated_domains";
|
|
30
|
+
CustomValueFormatValidatorName["Method"] = "pipe_separated_methods";
|
|
31
|
+
CustomValueFormatValidatorName["Permissions"] = "permissions_value";
|
|
32
|
+
CustomValueFormatValidatorName["ReferrerPolicy"] = "referrerpolicy_value";
|
|
33
|
+
CustomValueFormatValidatorName["StealthOption"] = "pipe_separated_stealth_options";
|
|
34
|
+
})(CustomValueFormatValidatorName || (CustomValueFormatValidatorName = {}));
|
|
35
|
+
/**
|
|
36
|
+
* Checks whether the `chunk` of app name (which if splitted by dot `.`) is valid.
|
|
37
|
+
* Only letters, numbers, and underscore `_` are allowed.
|
|
38
|
+
*
|
|
39
|
+
* @param chunk Chunk of app name to check.
|
|
40
|
+
*
|
|
41
|
+
* @returns True if the `chunk` is valid part of app name, false otherwise.
|
|
42
|
+
*/
|
|
43
|
+
const isValidAppNameChunk = (chunk) => {
|
|
44
|
+
// e.g. 'Example..exe'
|
|
45
|
+
if (chunk.length === 0) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
for (let i = 0; i < chunk.length; i += 1) {
|
|
49
|
+
const char = chunk[i];
|
|
50
|
+
if (!APP_NAME_ALLOWED_CHARS.has(char)) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return true;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Checks whether the given `value` is valid app name as $app modifier value.
|
|
58
|
+
*
|
|
59
|
+
* @param value App name to check.
|
|
60
|
+
*
|
|
61
|
+
* @returns True if the `value` is valid app name, false otherwise.
|
|
62
|
+
*/
|
|
63
|
+
const isValidAppModifierValue = (value) => {
|
|
64
|
+
// $app modifier does not support wildcard tld
|
|
65
|
+
// https://adguard.app/kb/general/ad-filtering/create-own-filters/#app-modifier
|
|
66
|
+
if (value.includes(WILDCARD)) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return value
|
|
70
|
+
.split(DOT)
|
|
71
|
+
.every((chunk) => isValidAppNameChunk(chunk));
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Checks whether the given `value` is valid HTTP method as $method modifier value.
|
|
75
|
+
*
|
|
76
|
+
* @param value Method to check.
|
|
77
|
+
*
|
|
78
|
+
* @returns True if the `value` is valid HTTP method, false otherwise.
|
|
79
|
+
*/
|
|
80
|
+
const isValidMethodModifierValue = (value) => {
|
|
81
|
+
return ALLOWED_METHODS.has(value);
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Checks whether the given `value` is valid option as $stealth modifier value.
|
|
85
|
+
*
|
|
86
|
+
* @param value Stealth option to check.
|
|
87
|
+
*
|
|
88
|
+
* @returns True if the `value` is valid stealth option, false otherwise.
|
|
89
|
+
*/
|
|
90
|
+
const isValidStealthModifierValue = (value) => {
|
|
91
|
+
return ALLOWED_STEALTH_OPTIONS.has(value);
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Checks whether the given `rawOrigin` is valid as Permissions Allowlist origin.
|
|
95
|
+
*
|
|
96
|
+
* @see {@link https://w3c.github.io/webappsec-permissions-policy/#allowlists}
|
|
97
|
+
*
|
|
98
|
+
* @param rawOrigin The raw origin.
|
|
99
|
+
*
|
|
100
|
+
* @returns True if the origin is valid, false otherwise.
|
|
101
|
+
*/
|
|
102
|
+
const isValidPermissionsOrigin = (rawOrigin) => {
|
|
103
|
+
// origins should be quoted by double quote
|
|
104
|
+
const actualQuoteType = QuoteUtils.getStringQuoteType(rawOrigin);
|
|
105
|
+
if (actualQuoteType !== QuoteType.Double) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
const origin = QuoteUtils.removeQuotes(rawOrigin);
|
|
109
|
+
try {
|
|
110
|
+
// validate the origin by URL constructor
|
|
111
|
+
// https://w3c.github.io/webappsec-permissions-policy/#algo-parse-policy-directive
|
|
112
|
+
new URL(origin);
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
return true;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Checks whether the given `value` is valid domain as $denyallow modifier value.
|
|
121
|
+
* Important: wildcard tld are not supported, compared to $domain.
|
|
122
|
+
*
|
|
123
|
+
* @param value Value to check.
|
|
124
|
+
*
|
|
125
|
+
* @returns True if the `value` is valid domain and does not contain wildcard `*`, false otherwise.
|
|
126
|
+
*/
|
|
127
|
+
const isValidDenyAllowModifierValue = (value) => {
|
|
128
|
+
// $denyallow modifier does not support wildcard tld
|
|
129
|
+
// https://adguard.app/kb/general/ad-filtering/create-own-filters/#denyallow-modifier
|
|
130
|
+
// but here we are simply checking whether the value contains wildcard `*`, not ends with `.*`
|
|
131
|
+
if (value.includes(WILDCARD)) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
// TODO: add cache for domains validation
|
|
135
|
+
return DomainUtils.isValidDomainOrHostname(value);
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Checks whether the given `value` is valid domain as $domain modifier value.
|
|
139
|
+
*
|
|
140
|
+
* @param value Value to check.
|
|
141
|
+
*
|
|
142
|
+
* @returns True if the `value` is valid domain, false otherwise.
|
|
143
|
+
*/
|
|
144
|
+
const isValidDomainModifierValue = (value) => {
|
|
145
|
+
// TODO: add cache for domains validation
|
|
146
|
+
return DomainUtils.isValidDomainOrHostname(value);
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Checks whether the all list items' exceptions are `false`.
|
|
150
|
+
* Those items which `exception` is `true` is to be specified in the validation result error message.
|
|
151
|
+
*
|
|
152
|
+
* @param modifierName Modifier name.
|
|
153
|
+
* @param listItems List items to check.
|
|
154
|
+
*
|
|
155
|
+
* @returns Validation result.
|
|
156
|
+
*/
|
|
157
|
+
const customNoNegatedListItemsValidator = (modifierName, listItems) => {
|
|
158
|
+
const negatedValues = [];
|
|
159
|
+
listItems.forEach((listItem) => {
|
|
160
|
+
if (listItem.exception) {
|
|
161
|
+
negatedValues.push(listItem.value);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
if (negatedValues.length > 0) {
|
|
165
|
+
const valuesToStr = QuoteUtils.quoteAndJoinStrings(negatedValues);
|
|
166
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.NOT_NEGATABLE_VALUE}: '${modifierName}': ${valuesToStr}`);
|
|
167
|
+
}
|
|
168
|
+
return { valid: true };
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* Checks whether the all list items' exceptions are consistent,
|
|
172
|
+
* i.e. all items are either negated or not negated.
|
|
173
|
+
*
|
|
174
|
+
* The `exception` value of the first item is used as a reference, and all other items are checked against it.
|
|
175
|
+
* Those items which `exception` is not consistent with the first item
|
|
176
|
+
* is to be specified in the validation result error message.
|
|
177
|
+
*
|
|
178
|
+
* @see {@link https://adguard.com/kb/general/ad-filtering/create-own-filters/#method-modifier}
|
|
179
|
+
*
|
|
180
|
+
* @param modifierName Modifier name.
|
|
181
|
+
* @param listItems List items to check.
|
|
182
|
+
*
|
|
183
|
+
* @returns Validation result.
|
|
184
|
+
*/
|
|
185
|
+
const customConsistentExceptionsValidator = (modifierName, listItems) => {
|
|
186
|
+
const firstException = listItems[0].exception;
|
|
187
|
+
const nonConsistentItemValues = [];
|
|
188
|
+
listItems.forEach((listItem) => {
|
|
189
|
+
if (listItem.exception !== firstException) {
|
|
190
|
+
nonConsistentItemValues.push(listItem.value);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
if (nonConsistentItemValues.length > 0) {
|
|
194
|
+
const valuesToStr = QuoteUtils.quoteAndJoinStrings(nonConsistentItemValues);
|
|
195
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.MIXED_NEGATIONS}: '${modifierName}': ${valuesToStr}`);
|
|
196
|
+
}
|
|
197
|
+
return { valid: true };
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Checks whether the given `modifier` value is valid.
|
|
201
|
+
* Supposed to validate the value of modifiers which values are lists separated by pipe `|` —
|
|
202
|
+
* $app, $domain, $denyallow, $method.
|
|
203
|
+
*
|
|
204
|
+
* @param modifier Modifier AST node.
|
|
205
|
+
* @param listParser Parser function for parsing modifier value
|
|
206
|
+
* which is supposed to be a list separated by pipe `|`.
|
|
207
|
+
* @param isValidListItem Predicate function for checking of modifier's list item validity,
|
|
208
|
+
* e.g. $denyallow modifier does not support wildcard tld, but $domain does.
|
|
209
|
+
* @param customListValidator Optional; custom validator for specific modifier,
|
|
210
|
+
* e.g. $denyallow modifier does not support negated domains.
|
|
211
|
+
*
|
|
212
|
+
* @returns Result of modifier domains validation.
|
|
213
|
+
*/
|
|
214
|
+
const validateListItemsModifier = (modifier, listParser, isValidListItem, customListValidator) => {
|
|
215
|
+
const modifierName = modifier.name.value;
|
|
216
|
+
const defaultInvalidValueResult = getValueRequiredValidationResult(modifierName);
|
|
217
|
+
if (!modifier.value?.value) {
|
|
218
|
+
return defaultInvalidValueResult;
|
|
219
|
+
}
|
|
220
|
+
let theList;
|
|
221
|
+
try {
|
|
222
|
+
theList = listParser(modifier.value.value, defaultParserOptions, 0, PIPE);
|
|
223
|
+
}
|
|
224
|
+
catch (e) {
|
|
225
|
+
if (e instanceof AdblockSyntaxError) {
|
|
226
|
+
return {
|
|
227
|
+
valid: false,
|
|
228
|
+
error: e.message,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
return defaultInvalidValueResult;
|
|
232
|
+
}
|
|
233
|
+
const invalidListItems = [];
|
|
234
|
+
theList.children.forEach((item) => {
|
|
235
|
+
// different validators are used for $denyallow and $domain modifiers
|
|
236
|
+
// because of different requirements and restrictions
|
|
237
|
+
if (!isValidListItem(item.value)) {
|
|
238
|
+
invalidListItems.push(item.value);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
if (invalidListItems.length > 0) {
|
|
242
|
+
const itemsToStr = QuoteUtils.quoteAndJoinStrings(invalidListItems);
|
|
243
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.INVALID_LIST_VALUES}: '${modifierName}': ${itemsToStr}`);
|
|
244
|
+
}
|
|
245
|
+
// IMPORTANT: run custom validator after all other checks
|
|
246
|
+
// Some lists should be fully checked, not just the list items:
|
|
247
|
+
// e.g. Safari does not support allowed and disallowed domains for $domain in the same list
|
|
248
|
+
// or domains cannot be negated for $denyallow modifier
|
|
249
|
+
if (customListValidator) {
|
|
250
|
+
return customListValidator(modifierName, theList.children);
|
|
251
|
+
}
|
|
252
|
+
return { valid: true };
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* Validates 'pipe_separated_apps' custom value format.
|
|
256
|
+
* Used for $app modifier.
|
|
257
|
+
*
|
|
258
|
+
* @param modifier Modifier AST node.
|
|
259
|
+
*
|
|
260
|
+
* @returns Validation result.
|
|
261
|
+
*/
|
|
262
|
+
const validatePipeSeparatedApps = (modifier) => {
|
|
263
|
+
return validateListItemsModifier(modifier, (raw) => AppListParser.parse(raw), isValidAppModifierValue);
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Validates 'pipe_separated_denyallow_domains' custom value format.
|
|
267
|
+
* Used for $denyallow modifier.
|
|
268
|
+
*
|
|
269
|
+
* @param modifier Modifier AST node.
|
|
270
|
+
*
|
|
271
|
+
* @returns Validation result.
|
|
272
|
+
*/
|
|
273
|
+
const validatePipeSeparatedDenyAllowDomains = (modifier) => {
|
|
274
|
+
return validateListItemsModifier(modifier, DomainListParser.parse, isValidDenyAllowModifierValue, customNoNegatedListItemsValidator);
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* Validates 'pipe_separated_domains' custom value format.
|
|
278
|
+
* Used for $domains modifier.
|
|
279
|
+
*
|
|
280
|
+
* @param modifier Modifier AST node.
|
|
281
|
+
*
|
|
282
|
+
* @returns Validation result.
|
|
283
|
+
*/
|
|
284
|
+
const validatePipeSeparatedDomains = (modifier) => {
|
|
285
|
+
return validateListItemsModifier(modifier, DomainListParser.parse, isValidDomainModifierValue);
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Validates 'pipe_separated_methods' custom value format.
|
|
289
|
+
* Used for $method modifier.
|
|
290
|
+
*
|
|
291
|
+
* @param modifier Modifier AST node.
|
|
292
|
+
*
|
|
293
|
+
* @returns Validation result.
|
|
294
|
+
*/
|
|
295
|
+
const validatePipeSeparatedMethods = (modifier) => {
|
|
296
|
+
return validateListItemsModifier(modifier, (raw) => MethodListParser.parse(raw), isValidMethodModifierValue, customConsistentExceptionsValidator);
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* Validates 'pipe_separated_stealth_options' custom value format.
|
|
300
|
+
* Used for $stealth modifier.
|
|
301
|
+
*
|
|
302
|
+
* @param modifier Modifier AST node.
|
|
303
|
+
*
|
|
304
|
+
* @returns Validation result.
|
|
305
|
+
*/
|
|
306
|
+
const validatePipeSeparatedStealthOptions = (modifier) => {
|
|
307
|
+
return validateListItemsModifier(modifier, (raw) => StealthOptionListParser.parse(raw), isValidStealthModifierValue, customNoNegatedListItemsValidator);
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* Validates `csp_value` custom value format.
|
|
311
|
+
* Used for $csp modifier.
|
|
312
|
+
*
|
|
313
|
+
* @param modifier Modifier AST node.
|
|
314
|
+
*
|
|
315
|
+
* @returns Validation result.
|
|
316
|
+
*/
|
|
317
|
+
const validateCspValue = (modifier) => {
|
|
318
|
+
const modifierName = modifier.name.value;
|
|
319
|
+
if (!modifier.value?.value) {
|
|
320
|
+
return getValueRequiredValidationResult(modifierName);
|
|
321
|
+
}
|
|
322
|
+
// $csp modifier value may contain multiple directives
|
|
323
|
+
// e.g. "csp=child-src 'none'; frame-src 'self' *; worker-src 'none'"
|
|
324
|
+
const policyDirectives = modifier.value.value
|
|
325
|
+
.split(SEMICOLON)
|
|
326
|
+
// rule with $csp modifier may end with semicolon
|
|
327
|
+
// e.g. "$csp=sandbox allow-same-origin;"
|
|
328
|
+
// TODO: add predicate helper for `(i) => !!i`
|
|
329
|
+
.filter((i) => !!i);
|
|
330
|
+
const invalidValueValidationResult = getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.VALUE_INVALID}: '${modifierName}': "${modifier.value.value}"`);
|
|
331
|
+
if (policyDirectives.length === 0) {
|
|
332
|
+
return invalidValueValidationResult;
|
|
333
|
+
}
|
|
334
|
+
const invalidDirectives = [];
|
|
335
|
+
for (let i = 0; i < policyDirectives.length; i += 1) {
|
|
336
|
+
const policyDirective = policyDirectives[i].trim();
|
|
337
|
+
if (!policyDirective) {
|
|
338
|
+
return invalidValueValidationResult;
|
|
339
|
+
}
|
|
340
|
+
const chunks = policyDirective.split(SPACE);
|
|
341
|
+
const [directive, ...valueChunks] = chunks;
|
|
342
|
+
// e.g. "csp=child-src 'none'; ; worker-src 'none'"
|
|
343
|
+
// validator it here ↑
|
|
344
|
+
if (!directive) {
|
|
345
|
+
return invalidValueValidationResult;
|
|
346
|
+
}
|
|
347
|
+
if (!ALLOWED_CSP_DIRECTIVES.has(directive)) {
|
|
348
|
+
// e.g. "csp='child-src' 'none'"
|
|
349
|
+
if (ALLOWED_CSP_DIRECTIVES.has(QuoteUtils.removeQuotes(directive))) {
|
|
350
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.NO_CSP_DIRECTIVE_QUOTE}: '${modifierName}': ${directive}`);
|
|
351
|
+
}
|
|
352
|
+
invalidDirectives.push(directive);
|
|
353
|
+
continue;
|
|
354
|
+
}
|
|
355
|
+
if (valueChunks.length === 0) {
|
|
356
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.NO_CSP_VALUE}: '${modifierName}': '${directive}'`);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
if (invalidDirectives.length > 0) {
|
|
360
|
+
const directivesToStr = QuoteUtils.quoteAndJoinStrings(invalidDirectives, QuoteType.Double);
|
|
361
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.INVALID_CSP_DIRECTIVES}: '${modifierName}': ${directivesToStr}`);
|
|
362
|
+
}
|
|
363
|
+
return { valid: true };
|
|
364
|
+
};
|
|
365
|
+
/**
|
|
366
|
+
* Validates permission allowlist origins in the value of $permissions modifier.
|
|
367
|
+
*
|
|
368
|
+
* @see {@link https://w3c.github.io/webappsec-permissions-policy/#allowlists}
|
|
369
|
+
*
|
|
370
|
+
* @param allowlistChunks Array of allowlist chunks.
|
|
371
|
+
* @param directive Permission directive name.
|
|
372
|
+
* @param modifierName Modifier name.
|
|
373
|
+
*
|
|
374
|
+
* @returns Validation result.
|
|
375
|
+
*/
|
|
376
|
+
const validatePermissionAllowlistOrigins = (allowlistChunks, directive, modifierName) => {
|
|
377
|
+
const invalidOrigins = [];
|
|
378
|
+
for (let i = 0; i < allowlistChunks.length; i += 1) {
|
|
379
|
+
const chunk = allowlistChunks[i].trim();
|
|
380
|
+
// skip few spaces between origins (they were splitted by space)
|
|
381
|
+
// e.g. 'geolocation=("https://example.com" "https://*.example.com")'
|
|
382
|
+
if (chunk.length === 0) {
|
|
383
|
+
continue;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* 'self' should be checked case-insensitively
|
|
387
|
+
*
|
|
388
|
+
* @see {@link https://w3c.github.io/webappsec-permissions-policy/#algo-parse-policy-directive}
|
|
389
|
+
*
|
|
390
|
+
* @example 'geolocation=(self)'
|
|
391
|
+
*/
|
|
392
|
+
if (chunk.toLowerCase() === PERMISSIONS_TOKEN_SELF) {
|
|
393
|
+
continue;
|
|
394
|
+
}
|
|
395
|
+
if (QuoteUtils.getStringQuoteType(chunk) !== QuoteType.Double) {
|
|
396
|
+
return getInvalidValidationResult(
|
|
397
|
+
// eslint-disable-next-line max-len
|
|
398
|
+
`${VALIDATION_ERROR_PREFIX.INVALID_PERMISSION_ORIGIN_QUOTES}: '${modifierName}': '${directive}': '${QuoteUtils.removeQuotes(chunk)}'`);
|
|
399
|
+
}
|
|
400
|
+
if (!isValidPermissionsOrigin(chunk)) {
|
|
401
|
+
invalidOrigins.push(chunk);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
if (invalidOrigins.length > 0) {
|
|
405
|
+
const originsToStr = QuoteUtils.quoteAndJoinStrings(invalidOrigins);
|
|
406
|
+
return getInvalidValidationResult(
|
|
407
|
+
// eslint-disable-next-line max-len
|
|
408
|
+
`${VALIDATION_ERROR_PREFIX.INVALID_PERMISSION_ORIGINS}: '${modifierName}': '${directive}': ${originsToStr}`);
|
|
409
|
+
}
|
|
410
|
+
return { valid: true };
|
|
411
|
+
};
|
|
412
|
+
/**
|
|
413
|
+
* Validates permission allowlist in the modifier value.
|
|
414
|
+
*
|
|
415
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy#allowlists}
|
|
416
|
+
* @see {@link https://w3c.github.io/webappsec-permissions-policy/#allowlists}
|
|
417
|
+
*
|
|
418
|
+
* @param allowlist Allowlist value.
|
|
419
|
+
* @param directive Permission directive name.
|
|
420
|
+
* @param modifierName Modifier name.
|
|
421
|
+
*
|
|
422
|
+
* @returns Validation result.
|
|
423
|
+
*/
|
|
424
|
+
const validatePermissionAllowlist = (allowlist, directive, modifierName) => {
|
|
425
|
+
// `*` is one of available permissions tokens
|
|
426
|
+
// e.g. 'fullscreen=*'
|
|
427
|
+
// https://w3c.github.io/webappsec-permissions-policy/#structured-header-serialization
|
|
428
|
+
if (allowlist === WILDCARD
|
|
429
|
+
// e.g. 'autoplay=()'
|
|
430
|
+
|| allowlist === EMPTY_PERMISSIONS_ALLOWLIST) {
|
|
431
|
+
return { valid: true };
|
|
432
|
+
}
|
|
433
|
+
if (!(allowlist.startsWith(OPEN_PARENTHESIS) && allowlist.endsWith(CLOSE_PARENTHESIS))) {
|
|
434
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.VALUE_INVALID}: '${modifierName}'`);
|
|
435
|
+
}
|
|
436
|
+
const allowlistChunks = allowlist.slice(1, -1).split(SPACE);
|
|
437
|
+
return validatePermissionAllowlistOrigins(allowlistChunks, directive, modifierName);
|
|
438
|
+
};
|
|
439
|
+
/**
|
|
440
|
+
* Validates single permission in the modifier value.
|
|
441
|
+
*
|
|
442
|
+
* @param permission Single permission value.
|
|
443
|
+
* @param modifierName Modifier name.
|
|
444
|
+
* @param modifierValue Modifier value.
|
|
445
|
+
*
|
|
446
|
+
* @returns Validation result.
|
|
447
|
+
*/
|
|
448
|
+
const validateSinglePermission = (permission, modifierName, modifierValue) => {
|
|
449
|
+
// empty permission in the rule
|
|
450
|
+
// e.g. 'permissions=storage-access=()\\, \\, camera=()'
|
|
451
|
+
// the validator is here ↑
|
|
452
|
+
if (!permission) {
|
|
453
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.VALUE_INVALID}: '${modifierName}'`);
|
|
454
|
+
}
|
|
455
|
+
if (permission.includes(COMMA)) {
|
|
456
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.NO_UNESCAPED_PERMISSION_COMMA}: '${modifierName}': '${modifierValue}'`);
|
|
457
|
+
}
|
|
458
|
+
const [directive, allowlist] = permission.split(EQUALS);
|
|
459
|
+
if (!ALLOWED_PERMISSION_DIRECTIVES.has(directive)) {
|
|
460
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.INVALID_PERMISSION_DIRECTIVE}: '${modifierName}': '${directive}'`);
|
|
461
|
+
}
|
|
462
|
+
return validatePermissionAllowlist(allowlist, directive, modifierName);
|
|
463
|
+
};
|
|
464
|
+
/**
|
|
465
|
+
* Validates `permissions_value` custom value format.
|
|
466
|
+
* Used for $permissions modifier.
|
|
467
|
+
*
|
|
468
|
+
* @param modifier Modifier AST node.
|
|
469
|
+
*
|
|
470
|
+
* @returns Validation result.
|
|
471
|
+
*/
|
|
472
|
+
const validatePermissions = (modifier) => {
|
|
473
|
+
if (!modifier.value?.value) {
|
|
474
|
+
return getValueRequiredValidationResult(modifier.name.value);
|
|
475
|
+
}
|
|
476
|
+
const modifierName = modifier.name.value;
|
|
477
|
+
const modifierValue = modifier.value.value;
|
|
478
|
+
// multiple permissions may be separated by escaped commas
|
|
479
|
+
const permissions = modifier.value.value.split(`${BACKSLASH}${COMMA}`);
|
|
480
|
+
for (let i = 0; i < permissions.length; i += 1) {
|
|
481
|
+
const permission = permissions[i].trim();
|
|
482
|
+
const singlePermissionValidationResult = validateSinglePermission(permission, modifierName, modifierValue);
|
|
483
|
+
if (!singlePermissionValidationResult.valid) {
|
|
484
|
+
return singlePermissionValidationResult;
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
return { valid: true };
|
|
488
|
+
};
|
|
489
|
+
/**
|
|
490
|
+
* Validates `referrerpolicy_value` custom value format.
|
|
491
|
+
* Used for $referrerpolicy modifier.
|
|
492
|
+
*
|
|
493
|
+
* @param modifier Modifier AST node.
|
|
494
|
+
*
|
|
495
|
+
* @returns Validation result.
|
|
496
|
+
*/
|
|
497
|
+
const validateReferrerPolicy = (modifier) => {
|
|
498
|
+
if (!modifier.value?.value) {
|
|
499
|
+
return getValueRequiredValidationResult(modifier.name.value);
|
|
500
|
+
}
|
|
501
|
+
const modifierName = modifier.name.value;
|
|
502
|
+
const modifierValue = modifier.value.value;
|
|
503
|
+
if (!REFERRER_POLICY_DIRECTIVES.has(modifierValue)) {
|
|
504
|
+
// eslint-disable-next-line max-len
|
|
505
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.INVALID_REFERRER_POLICY_DIRECTIVE}: '${modifierName}': '${modifierValue}'`);
|
|
506
|
+
}
|
|
507
|
+
return { valid: true };
|
|
508
|
+
};
|
|
509
|
+
/**
|
|
510
|
+
* Map of all available pre-defined validators for modifiers with custom `value_format`.
|
|
511
|
+
*/
|
|
512
|
+
const CUSTOM_VALUE_FORMAT_MAP = {
|
|
513
|
+
[CustomValueFormatValidatorName.App]: validatePipeSeparatedApps,
|
|
514
|
+
[CustomValueFormatValidatorName.Csp]: validateCspValue,
|
|
515
|
+
[CustomValueFormatValidatorName.DenyAllow]: validatePipeSeparatedDenyAllowDomains,
|
|
516
|
+
[CustomValueFormatValidatorName.Domain]: validatePipeSeparatedDomains,
|
|
517
|
+
[CustomValueFormatValidatorName.Method]: validatePipeSeparatedMethods,
|
|
518
|
+
[CustomValueFormatValidatorName.Permissions]: validatePermissions,
|
|
519
|
+
[CustomValueFormatValidatorName.ReferrerPolicy]: validateReferrerPolicy,
|
|
520
|
+
[CustomValueFormatValidatorName.StealthOption]: validatePipeSeparatedStealthOptions,
|
|
521
|
+
};
|
|
522
|
+
/**
|
|
523
|
+
* Returns whether the given `valueFormat` is a valid custom value format validator name.
|
|
524
|
+
*
|
|
525
|
+
* @param valueFormat Value format for the modifier.
|
|
526
|
+
*
|
|
527
|
+
* @returns True if `valueFormat` is a supported pre-defined value format validator name, false otherwise.
|
|
528
|
+
*/
|
|
529
|
+
const isCustomValueFormatValidator = (valueFormat) => {
|
|
530
|
+
return Object.keys(CUSTOM_VALUE_FORMAT_MAP).includes(valueFormat);
|
|
531
|
+
};
|
|
532
|
+
/**
|
|
533
|
+
* Checks whether the value for given `modifier` is valid.
|
|
534
|
+
*
|
|
535
|
+
* @param modifier Modifier AST node.
|
|
536
|
+
* @param valueFormat Value format for the modifier.
|
|
537
|
+
*
|
|
538
|
+
* @returns Validation result.
|
|
539
|
+
*/
|
|
540
|
+
const validateValue = (modifier, valueFormat) => {
|
|
541
|
+
if (isCustomValueFormatValidator(valueFormat)) {
|
|
542
|
+
const validator = CUSTOM_VALUE_FORMAT_MAP[valueFormat];
|
|
543
|
+
return validator(modifier);
|
|
544
|
+
}
|
|
545
|
+
const modifierName = modifier.name.value;
|
|
546
|
+
if (!modifier.value?.value) {
|
|
547
|
+
return getValueRequiredValidationResult(modifierName);
|
|
548
|
+
}
|
|
549
|
+
let xRegExp;
|
|
550
|
+
try {
|
|
551
|
+
xRegExp = XRegExp(valueFormat);
|
|
552
|
+
}
|
|
553
|
+
catch (e) {
|
|
554
|
+
throw new Error(`${SOURCE_DATA_ERROR_PREFIX.INVALID_VALUE_FORMAT_REGEXP}: '${modifierName}'`);
|
|
555
|
+
}
|
|
556
|
+
const isValid = xRegExp.test(modifier.value?.value);
|
|
557
|
+
if (!isValid) {
|
|
558
|
+
return getInvalidValidationResult(`${VALIDATION_ERROR_PREFIX.VALUE_INVALID}: '${modifierName}'`);
|
|
559
|
+
}
|
|
560
|
+
return { valid: true };
|
|
561
|
+
};
|
|
562
|
+
|
|
563
|
+
export { validateValue };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { version } from './package.json.mjs';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @file AGTree version
|
|
11
|
+
*/
|
|
12
|
+
// ! Notice:
|
|
13
|
+
// Don't export version from package.json directly, because if you run
|
|
14
|
+
// `tsc` in the root directory, it will generate `dist/types/src/version.d.ts`
|
|
15
|
+
// with wrong relative path to `package.json`. So we need this little "hack"
|
|
16
|
+
const AGTREE_VERSION = version;
|
|
17
|
+
|
|
18
|
+
export { AGTREE_VERSION };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Custom clone functions for AST nodes, this is probably the most efficient way to clone AST nodes.
|
|
3
|
+
* @todo Maybe move them to parser classes as 'clone' methods
|
|
4
|
+
*/
|
|
5
|
+
import { type ParameterList, type DomainList, type ModifierList } from '../nodes';
|
|
6
|
+
/**
|
|
7
|
+
* Clones a scriptlet rule node.
|
|
8
|
+
*
|
|
9
|
+
* @param node Node to clone
|
|
10
|
+
* @returns Cloned node
|
|
11
|
+
*/
|
|
12
|
+
export declare function cloneScriptletRuleNode(node: ParameterList): ParameterList;
|
|
13
|
+
/**
|
|
14
|
+
* Clones a domain list node.
|
|
15
|
+
*
|
|
16
|
+
* @param node Node to clone
|
|
17
|
+
* @returns Cloned node
|
|
18
|
+
*/
|
|
19
|
+
export declare function cloneDomainListNode(node: DomainList): DomainList;
|
|
20
|
+
/**
|
|
21
|
+
* Clones a modifier list node.
|
|
22
|
+
*
|
|
23
|
+
* @param node Node to clone
|
|
24
|
+
* @returns Cloned node
|
|
25
|
+
*/
|
|
26
|
+
export declare function cloneModifierListNode(node: ModifierList): ModifierList;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Utility functions for working with filter list nodes
|
|
3
|
+
*/
|
|
4
|
+
import { type AnyRule, type FilterList } from '../nodes';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a filter list node
|
|
7
|
+
*
|
|
8
|
+
* @param rules Rules to put in the list (optional, defaults to an empty list)
|
|
9
|
+
* @returns Filter list node
|
|
10
|
+
*/
|
|
11
|
+
export declare function createFilterListNode(rules?: AnyRule[]): FilterList;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Utility functions for working with modifier nodes
|
|
3
|
+
*/
|
|
4
|
+
import { type Modifier, type ModifierList } from '../nodes';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a modifier node
|
|
7
|
+
*
|
|
8
|
+
* @param name Name of the modifier
|
|
9
|
+
* @param value Value of the modifier
|
|
10
|
+
* @param exception Whether the modifier is an exception
|
|
11
|
+
* @returns Modifier node
|
|
12
|
+
*/
|
|
13
|
+
export declare function createModifierNode(name: string, value?: string | undefined, exception?: boolean): Modifier;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a modifier list node
|
|
16
|
+
*
|
|
17
|
+
* @param modifiers Modifiers to put in the list (optional, defaults to an empty list)
|
|
18
|
+
* @returns Modifier list node
|
|
19
|
+
*/
|
|
20
|
+
export declare function createModifierListNode(modifiers?: Modifier[]): ModifierList;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Utility functions for working with network rule nodes
|
|
3
|
+
*/
|
|
4
|
+
import { type ModifierList, type NetworkRule } from '../nodes';
|
|
5
|
+
import { AdblockSyntax } from '../utils/adblockers';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a network rule node
|
|
8
|
+
*
|
|
9
|
+
* @param pattern Rule pattern
|
|
10
|
+
* @param modifiers Rule modifiers (optional, default: undefined)
|
|
11
|
+
* @param exception Exception rule flag (optional, default: false)
|
|
12
|
+
* @param syntax Adblock syntax (optional, default: Common)
|
|
13
|
+
* @returns Network rule node
|
|
14
|
+
*/
|
|
15
|
+
export declare function createNetworkRuleNode(pattern: string, modifiers?: ModifierList | undefined, exception?: boolean, syntax?: AdblockSyntax): NetworkRule;
|