@adguard/agtree 2.1.2 → 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 -15710
- package/dist/agtree.mjs +0 -15611
- package/dist/compatibility-table-data.js +0 -12634
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseSerializer } from '../base-serializer';
|
|
2
|
+
import { type ListItem, ListItemNodeType } from '../../nodes';
|
|
3
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
4
|
+
export declare class ListItemSerializer extends BaseSerializer {
|
|
5
|
+
/**
|
|
6
|
+
* Serializes a list item to binary format.
|
|
7
|
+
*
|
|
8
|
+
* @param item List item to serialize.
|
|
9
|
+
* @param buffer Output byte buffer.
|
|
10
|
+
* @template T Type of the list item.
|
|
11
|
+
*/
|
|
12
|
+
static serialize<T extends ListItemNodeType>(item: ListItem<T>, buffer: OutputByteBuffer): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ListItem, type ListItemNodeType } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
export declare class ListItemsSerializer {
|
|
4
|
+
/**
|
|
5
|
+
* Serializes a list of items to binary format.
|
|
6
|
+
*
|
|
7
|
+
* @param items List of items to serialize.
|
|
8
|
+
* @param buffer Output byte buffer.
|
|
9
|
+
* @template T Type of the list items.
|
|
10
|
+
*/
|
|
11
|
+
static serialize<T extends ListItemNodeType>(items: ListItem<T>[], buffer: OutputByteBuffer): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type AnyExpressionNode } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* Possible node types in the logical expression.
|
|
6
|
+
*/
|
|
7
|
+
export declare const enum NodeType {
|
|
8
|
+
Variable = "Variable",
|
|
9
|
+
Operator = "Operator",
|
|
10
|
+
Parenthesis = "Parenthesis"
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* `LogicalExpressionParser` is responsible for parsing logical expressions.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* From the following rule:
|
|
17
|
+
* ```adblock
|
|
18
|
+
* !#if (adguard_ext_android_cb || adguard_ext_safari)
|
|
19
|
+
* ```
|
|
20
|
+
* this parser will parse the expression `(adguard_ext_android_cb || adguard_ext_safari)`.
|
|
21
|
+
*/
|
|
22
|
+
export declare class LogicalExpressionSerializer extends BaseSerializer {
|
|
23
|
+
/**
|
|
24
|
+
* Serializes a variable node to binary format.
|
|
25
|
+
*
|
|
26
|
+
* @param node Node to serialize.
|
|
27
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
28
|
+
*/
|
|
29
|
+
private static serializeVariableNode;
|
|
30
|
+
/**
|
|
31
|
+
* Serializes a parenthesis node to binary format.
|
|
32
|
+
*
|
|
33
|
+
* @param node Node to serialize.
|
|
34
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
35
|
+
*/
|
|
36
|
+
private static serializeParenthesisNode;
|
|
37
|
+
/**
|
|
38
|
+
* Serializes an operator node to binary format.
|
|
39
|
+
*
|
|
40
|
+
* @param node Node to serialize.
|
|
41
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
42
|
+
*/
|
|
43
|
+
private static serializeOperatorNode;
|
|
44
|
+
/**
|
|
45
|
+
* Serializes a logical expression node to binary format.
|
|
46
|
+
*
|
|
47
|
+
* @param node Node to serialize.
|
|
48
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
49
|
+
*/
|
|
50
|
+
static serialize(node: AnyExpressionNode, buffer: OutputByteBuffer): void;
|
|
51
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
2
|
+
import { type ModifierList } from '../../nodes';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `ModifierListSerializer` is responsible for serializing modifier lists. Please note that the name is not
|
|
6
|
+
* uniform, "modifiers" are also known as "options".
|
|
7
|
+
*
|
|
8
|
+
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules-modifiers}
|
|
9
|
+
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#non-basic-rules-modifiers}
|
|
10
|
+
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#options}
|
|
11
|
+
*/
|
|
12
|
+
export declare class ModifierListSerializer extends BaseSerializer {
|
|
13
|
+
/**
|
|
14
|
+
* Serializes a modifier list node to binary format.
|
|
15
|
+
*
|
|
16
|
+
* @param node Node to serialize.
|
|
17
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
18
|
+
*/
|
|
19
|
+
static serialize(node: ModifierList, buffer: OutputByteBuffer): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Modifier } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `ModifierSerializer` is responsible for serializing modifiers.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* `match-case`, `~third-party`, `domain=example.com|~example.org`
|
|
9
|
+
*/
|
|
10
|
+
export declare class ModifierSerializer extends BaseSerializer {
|
|
11
|
+
/**
|
|
12
|
+
* Serializes a modifier node to binary format.
|
|
13
|
+
*
|
|
14
|
+
* @param node Node to serialize.
|
|
15
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
16
|
+
*/
|
|
17
|
+
static serialize(node: Modifier, buffer: OutputByteBuffer): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ParameterList } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
export declare class ParameterListSerializer extends BaseSerializer {
|
|
5
|
+
/**
|
|
6
|
+
* Serializes a parameter list node to binary format.
|
|
7
|
+
*
|
|
8
|
+
* @param node Node to serialize.
|
|
9
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
10
|
+
* @param frequentValuesMap Optional map of frequent values.
|
|
11
|
+
* @param toLower Whether to lowercase the value before the frequent value match (defaults to `false`).
|
|
12
|
+
*/
|
|
13
|
+
static serialize(node: ParameterList, buffer: OutputByteBuffer, frequentValuesMap?: Map<string, number>, toLower?: boolean): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Value } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* Value serializer.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ValueSerializer extends BaseSerializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes a value node to binary format.
|
|
10
|
+
*
|
|
11
|
+
* @param node Node to serialize.
|
|
12
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
13
|
+
* @param frequentValuesMap Optional map of frequent values.
|
|
14
|
+
* @param toLower Whether to lowercase the value before the frequent value match (defaults to `false`).
|
|
15
|
+
*/
|
|
16
|
+
static serialize(node: Value, buffer: OutputByteBuffer, frequentValuesMap?: Map<string, number>, toLower?: boolean): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type HostRule } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `HostRuleSerializer` is responsible for serializing hosts-like rules.
|
|
6
|
+
*
|
|
7
|
+
* HostRule is a structure for simple host-level rules (i.e. /etc/hosts syntax).
|
|
8
|
+
* It also supports "just domain" syntax. In this case, the IP will be set to 0.0.0.0.
|
|
9
|
+
*
|
|
10
|
+
* Rules syntax looks like this:
|
|
11
|
+
* ```text
|
|
12
|
+
* IP_address canonical_hostname [aliases...]
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* `192.168.1.13 bar.mydomain.org bar` -- ipv4
|
|
17
|
+
* `ff02::1 ip6-allnodes` -- ipv6
|
|
18
|
+
* `::1 localhost ip6-localhost ip6-loopback` -- ipv6 aliases
|
|
19
|
+
* `example.org` -- "just domain" syntax
|
|
20
|
+
* @see {@link http://man7.org/linux/man-pages/man5/hosts.5.html}
|
|
21
|
+
*/
|
|
22
|
+
export declare class HostRuleSerializer extends BaseSerializer {
|
|
23
|
+
/**
|
|
24
|
+
* Serializes a host rule node to binary format.
|
|
25
|
+
*
|
|
26
|
+
* @param node Node to serialize.
|
|
27
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
28
|
+
*/
|
|
29
|
+
static serialize(node: HostRule, buffer: OutputByteBuffer): void;
|
|
30
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseSerializer } from '../base-serializer';
|
|
2
|
+
import { type HostnameList } from '../../nodes';
|
|
3
|
+
import type { OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
4
|
+
export declare class HostnameListSerializer extends BaseSerializer {
|
|
5
|
+
/**
|
|
6
|
+
* Serializes a hostname list node to binary format.
|
|
7
|
+
*
|
|
8
|
+
* @param node Node to serialize.
|
|
9
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
10
|
+
*/
|
|
11
|
+
static serialize(node: HostnameList, buffer: OutputByteBuffer): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type NetworkRule } from '../../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from '../base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `NetworkRuleSerializer` is responsible for serializing network rules.
|
|
6
|
+
*
|
|
7
|
+
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules}
|
|
8
|
+
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#basic}
|
|
9
|
+
*/
|
|
10
|
+
export declare class NetworkRuleSerializer extends BaseSerializer {
|
|
11
|
+
/**
|
|
12
|
+
* Serializes a network rule node to binary format.
|
|
13
|
+
*
|
|
14
|
+
* @param node Node to serialize.
|
|
15
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
16
|
+
*/
|
|
17
|
+
static serialize(node: NetworkRule, buffer: OutputByteBuffer): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type AnyRule } from '../nodes';
|
|
2
|
+
import { type OutputByteBuffer } from '../utils/output-byte-buffer';
|
|
3
|
+
import { BaseSerializer } from './base-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* `RuleSerializer` is responsible for serializing the rules.
|
|
6
|
+
*
|
|
7
|
+
* It automatically determines the category and syntax of the rule, so you can pass any kind of rule to it.
|
|
8
|
+
*/
|
|
9
|
+
export declare class RuleSerializer extends BaseSerializer {
|
|
10
|
+
/**
|
|
11
|
+
* Serializes a rule node to binary format.
|
|
12
|
+
*
|
|
13
|
+
* @param node Node to serialize.
|
|
14
|
+
* @param buffer ByteBuffer for writing binary data.
|
|
15
|
+
*/
|
|
16
|
+
static serialize(node: AnyRule, buffer: OutputByteBuffer): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Possible adblock syntaxes are listed here.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Possible adblock syntaxes (supported by this library)
|
|
6
|
+
*/
|
|
7
|
+
export declare enum AdblockSyntax {
|
|
8
|
+
/**
|
|
9
|
+
* Common syntax, which is supported by more than one adblocker (or by all adblockers).
|
|
10
|
+
*
|
|
11
|
+
* We typically use this syntax when we cannot determine the concrete syntax of the rule,
|
|
12
|
+
* because the syntax is used by more than one adblocker natively.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* - `||example.org^$important` is a common syntax, since it is used by all adblockers natively, and
|
|
16
|
+
* we cannot determine at parsing level whether `important` is a valid option or not, and if it is valid,
|
|
17
|
+
* then which adblocker supports it.
|
|
18
|
+
*/
|
|
19
|
+
Common = "Common",
|
|
20
|
+
/**
|
|
21
|
+
* Adblock Plus syntax.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* - `example.org#$#abort-on-property-read alert` is an Adblock Plus syntax, since it is not used by any other
|
|
25
|
+
* adblockers directly (probably supported by some on-the-fly conversion, but this is not the native syntax).
|
|
26
|
+
* @see {@link https://adblockplus.org/}
|
|
27
|
+
*/
|
|
28
|
+
Abp = "AdblockPlus",
|
|
29
|
+
/**
|
|
30
|
+
* uBlock Origin syntax.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* - `example.com##+js(set, atob, noopFunc)` is an uBlock Origin syntax, since it is not used by any other
|
|
34
|
+
* adblockers directly (probably supported by some on-the-fly conversion, but this is not the native syntax).
|
|
35
|
+
* @see {@link https://github.com/gorhill/uBlock}
|
|
36
|
+
*/
|
|
37
|
+
Ubo = "UblockOrigin",
|
|
38
|
+
/**
|
|
39
|
+
* AdGuard syntax.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* - `example.org#%#//scriptlet("abort-on-property-read", "alert")` is an AdGuard syntax, since it is not used
|
|
43
|
+
* by any other adblockers directly (probably supported by some on-the-fly conversion, but this is not the native
|
|
44
|
+
* syntax).
|
|
45
|
+
* @see {@link https://adguard.com/}
|
|
46
|
+
*/
|
|
47
|
+
Adg = "AdGuard"
|
|
48
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Binary schema version.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Binary schema version.
|
|
6
|
+
* This version number is used to ensure that the binary format is compatible with the current library version.
|
|
7
|
+
* We increment this number if the serialized format changes in a way that is not backwards-compatible.
|
|
8
|
+
*/
|
|
9
|
+
export declare const BINARY_SCHEMA_VERSION = 1;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Core ByteBuffer implementation for handling binary data in chunks.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Core ByteBuffer implementation for handling binary data in chunks.
|
|
6
|
+
* This class allows for efficient byte storage and manipulation by organizing data into chunks
|
|
7
|
+
* and providing methods to read and write bytes.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ByteBuffer {
|
|
10
|
+
/**
|
|
11
|
+
* The size of each chunk in bytes (32 KB).
|
|
12
|
+
*/
|
|
13
|
+
static readonly CHUNK_SIZE = 32768;
|
|
14
|
+
/**
|
|
15
|
+
* An array of Uint8Array chunks that make up the buffer.
|
|
16
|
+
*/
|
|
17
|
+
protected chunks: Uint8Array[];
|
|
18
|
+
/**
|
|
19
|
+
* The total number of chunks in the buffer.
|
|
20
|
+
*/
|
|
21
|
+
protected chunksLength: number;
|
|
22
|
+
/**
|
|
23
|
+
* Constructs a new ByteBuffer instance.
|
|
24
|
+
*
|
|
25
|
+
* @param chunks Optional array of chunks to initialize the ByteBuffer with.
|
|
26
|
+
* @param cloneChunks Flag indicating if the chunks should be cloned. For performance reasons,
|
|
27
|
+
* its default value is `false`. If the original chunks are guaranteed not to change,
|
|
28
|
+
* leave this flag as `false` to avoid unnecessary copying.
|
|
29
|
+
*/
|
|
30
|
+
constructor(chunks?: Uint8Array[], cloneChunks?: boolean);
|
|
31
|
+
/**
|
|
32
|
+
* Ensures that the buffer has enough capacity to accommodate a given position.
|
|
33
|
+
* This method adjusts the `chunks` array size to ensure it can hold the specified position.
|
|
34
|
+
*
|
|
35
|
+
* @param position The position to ensure capacity for.
|
|
36
|
+
*/
|
|
37
|
+
protected ensureCapacity(position: number): void;
|
|
38
|
+
/**
|
|
39
|
+
* Writes a byte to the buffer at the specified position.
|
|
40
|
+
* If the position is outside of the buffer's current size, the buffer is resized to accommodate it.
|
|
41
|
+
*
|
|
42
|
+
* @param position The position at which to write the byte.
|
|
43
|
+
* @param value The byte value to write (0-255).
|
|
44
|
+
*/
|
|
45
|
+
protected writeByte(position: number, value: number): void;
|
|
46
|
+
/**
|
|
47
|
+
* Reads a byte from the specified position in the buffer.
|
|
48
|
+
* Returns `undefined` if the position is outside of the buffer's current size.
|
|
49
|
+
*
|
|
50
|
+
* @param position The position from which to read the byte.
|
|
51
|
+
* @returns The read byte value, or `undefined` if the position is out of bounds.
|
|
52
|
+
*/
|
|
53
|
+
protected readByte(position: number): number | undefined;
|
|
54
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type CosmeticRuleType } from '../nodes';
|
|
2
|
+
/**
|
|
3
|
+
* Utility functions for categorizing rules.
|
|
4
|
+
*/
|
|
5
|
+
export declare class RuleCategorizer {
|
|
6
|
+
/**
|
|
7
|
+
* Determines the type of a given raw cosmetic rule.
|
|
8
|
+
*
|
|
9
|
+
* @param rawRule Raw rule to check.
|
|
10
|
+
*
|
|
11
|
+
* @returns Type of the cosmetic rule or `null` if the rule is cannot be parsed as a cosmetic rule.
|
|
12
|
+
*/
|
|
13
|
+
static getCosmeticRuleType(rawRule: string): CosmeticRuleType | null;
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Clone related utilities
|
|
3
|
+
*
|
|
4
|
+
* We should keep clone related functions in this file. Thus, we just provide
|
|
5
|
+
* a simple interface for cloning values, we use it across the AGTree project,
|
|
6
|
+
* and the implementation "under the hood" can be improved later, if needed.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Clones an input value to avoid side effects. Use it only in justified cases,
|
|
10
|
+
* because it can impact performance negatively.
|
|
11
|
+
*
|
|
12
|
+
* @param value Value to clone
|
|
13
|
+
* @returns Cloned value
|
|
14
|
+
*/
|
|
15
|
+
export declare function clone<T>(value: T): T;
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Constant values used by all parts of the library
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Empty string.
|
|
6
|
+
*/
|
|
7
|
+
export declare const EMPTY = "";
|
|
8
|
+
export declare const SPACE = " ";
|
|
9
|
+
export declare const TAB = "\t";
|
|
10
|
+
export declare const COLON = ":";
|
|
11
|
+
export declare const COMMA = ",";
|
|
12
|
+
export declare const DOT = ".";
|
|
13
|
+
export declare const SEMICOLON = ";";
|
|
14
|
+
export declare const AMPERSAND = "&";
|
|
15
|
+
export declare const ASTERISK = "*";
|
|
16
|
+
export declare const AT_SIGN = "@";
|
|
17
|
+
export declare const BACKTICK = "`";
|
|
18
|
+
export declare const CARET = "^";
|
|
19
|
+
export declare const DOLLAR_SIGN = "$";
|
|
20
|
+
export declare const EQUALS = "=";
|
|
21
|
+
export declare const EXCLAMATION_MARK = "!";
|
|
22
|
+
export declare const GREATER_THAN = ">";
|
|
23
|
+
export declare const HASHMARK = "#";
|
|
24
|
+
export declare const LESS_THAN = "<";
|
|
25
|
+
export declare const MINUS = "-";
|
|
26
|
+
export declare const PERCENT = "%";
|
|
27
|
+
export declare const PIPE = "|";
|
|
28
|
+
export declare const PLUS = "+";
|
|
29
|
+
export declare const QUESTION_MARK = "?";
|
|
30
|
+
export declare const SLASH = "/";
|
|
31
|
+
export declare const TILDE = "~";
|
|
32
|
+
export declare const UNDERSCORE = "_";
|
|
33
|
+
export declare const BACKSLASH = "\\";
|
|
34
|
+
export declare const ESCAPE_CHARACTER = "\\";
|
|
35
|
+
export declare const CR = "\r";
|
|
36
|
+
export declare const FF = "\f";
|
|
37
|
+
export declare const LF = "\n";
|
|
38
|
+
export declare const CRLF: string;
|
|
39
|
+
export declare const DOUBLE_NEWLINE = "\n\n";
|
|
40
|
+
export declare const NEWLINE = "\n";
|
|
41
|
+
export declare const BACKTICK_QUOTE = "`";
|
|
42
|
+
export declare const DOUBLE_QUOTE = "\"";
|
|
43
|
+
export declare const SINGLE_QUOTE = "'";
|
|
44
|
+
export declare const OPEN_PARENTHESIS = "(";
|
|
45
|
+
export declare const CLOSE_PARENTHESIS = ")";
|
|
46
|
+
export declare const OPEN_SQUARE_BRACKET = "[";
|
|
47
|
+
export declare const CLOSE_SQUARE_BRACKET = "]";
|
|
48
|
+
export declare const OPEN_CURLY_BRACKET = "{";
|
|
49
|
+
export declare const CLOSE_CURLY_BRACKET = "}";
|
|
50
|
+
export declare const ASSIGN_OPERATOR = "=";
|
|
51
|
+
export declare const SMALL_LETTER_A = "a";
|
|
52
|
+
export declare const SMALL_LETTER_B = "b";
|
|
53
|
+
export declare const SMALL_LETTER_C = "c";
|
|
54
|
+
export declare const SMALL_LETTER_D = "d";
|
|
55
|
+
export declare const SMALL_LETTER_E = "e";
|
|
56
|
+
export declare const SMALL_LETTER_F = "f";
|
|
57
|
+
export declare const SMALL_LETTER_G = "g";
|
|
58
|
+
export declare const SMALL_LETTER_H = "h";
|
|
59
|
+
export declare const SMALL_LETTER_I = "i";
|
|
60
|
+
export declare const SMALL_LETTER_J = "j";
|
|
61
|
+
export declare const SMALL_LETTER_K = "k";
|
|
62
|
+
export declare const SMALL_LETTER_L = "l";
|
|
63
|
+
export declare const SMALL_LETTER_M = "m";
|
|
64
|
+
export declare const SMALL_LETTER_N = "n";
|
|
65
|
+
export declare const SMALL_LETTER_O = "o";
|
|
66
|
+
export declare const SMALL_LETTER_P = "p";
|
|
67
|
+
export declare const SMALL_LETTER_Q = "q";
|
|
68
|
+
export declare const SMALL_LETTER_R = "r";
|
|
69
|
+
export declare const SMALL_LETTER_S = "s";
|
|
70
|
+
export declare const SMALL_LETTER_T = "t";
|
|
71
|
+
export declare const SMALL_LETTER_U = "u";
|
|
72
|
+
export declare const SMALL_LETTER_V = "v";
|
|
73
|
+
export declare const SMALL_LETTER_W = "w";
|
|
74
|
+
export declare const SMALL_LETTER_X = "x";
|
|
75
|
+
export declare const SMALL_LETTER_Y = "y";
|
|
76
|
+
export declare const SMALL_LETTER_Z = "z";
|
|
77
|
+
/**
|
|
78
|
+
* Set of all small letters.
|
|
79
|
+
*/
|
|
80
|
+
export declare const SMALL_LETTERS: Set<string>;
|
|
81
|
+
export declare const CAPITAL_LETTER_A = "A";
|
|
82
|
+
export declare const CAPITAL_LETTER_B = "B";
|
|
83
|
+
export declare const CAPITAL_LETTER_C = "C";
|
|
84
|
+
export declare const CAPITAL_LETTER_D = "D";
|
|
85
|
+
export declare const CAPITAL_LETTER_E = "E";
|
|
86
|
+
export declare const CAPITAL_LETTER_F = "F";
|
|
87
|
+
export declare const CAPITAL_LETTER_G = "G";
|
|
88
|
+
export declare const CAPITAL_LETTER_H = "H";
|
|
89
|
+
export declare const CAPITAL_LETTER_I = "I";
|
|
90
|
+
export declare const CAPITAL_LETTER_J = "J";
|
|
91
|
+
export declare const CAPITAL_LETTER_K = "K";
|
|
92
|
+
export declare const CAPITAL_LETTER_L = "L";
|
|
93
|
+
export declare const CAPITAL_LETTER_M = "M";
|
|
94
|
+
export declare const CAPITAL_LETTER_N = "N";
|
|
95
|
+
export declare const CAPITAL_LETTER_O = "O";
|
|
96
|
+
export declare const CAPITAL_LETTER_P = "P";
|
|
97
|
+
export declare const CAPITAL_LETTER_Q = "Q";
|
|
98
|
+
export declare const CAPITAL_LETTER_R = "R";
|
|
99
|
+
export declare const CAPITAL_LETTER_S = "S";
|
|
100
|
+
export declare const CAPITAL_LETTER_T = "T";
|
|
101
|
+
export declare const CAPITAL_LETTER_U = "U";
|
|
102
|
+
export declare const CAPITAL_LETTER_V = "V";
|
|
103
|
+
export declare const CAPITAL_LETTER_W = "W";
|
|
104
|
+
export declare const CAPITAL_LETTER_X = "X";
|
|
105
|
+
export declare const CAPITAL_LETTER_Y = "Y";
|
|
106
|
+
export declare const CAPITAL_LETTER_Z = "Z";
|
|
107
|
+
/**
|
|
108
|
+
* Set of all capital letters.
|
|
109
|
+
*/
|
|
110
|
+
export declare const CAPITAL_LETTERS: Set<string>;
|
|
111
|
+
export declare const NUMBER_0 = "0";
|
|
112
|
+
export declare const NUMBER_1 = "1";
|
|
113
|
+
export declare const NUMBER_2 = "2";
|
|
114
|
+
export declare const NUMBER_3 = "3";
|
|
115
|
+
export declare const NUMBER_4 = "4";
|
|
116
|
+
export declare const NUMBER_5 = "5";
|
|
117
|
+
export declare const NUMBER_6 = "6";
|
|
118
|
+
export declare const NUMBER_7 = "7";
|
|
119
|
+
export declare const NUMBER_8 = "8";
|
|
120
|
+
export declare const NUMBER_9 = "9";
|
|
121
|
+
/**
|
|
122
|
+
* Set of all numbers as strings.
|
|
123
|
+
*/
|
|
124
|
+
export declare const NUMBERS: Set<string>;
|
|
125
|
+
export declare const REGEX_MARKER = "/";
|
|
126
|
+
export declare const ADG_SCRIPTLET_MASK = "//scriptlet";
|
|
127
|
+
export declare const UBO_SCRIPTLET_MASK = "+js";
|
|
128
|
+
export declare const UBO_SCRIPTLET_MASK_LEGACY = "script:inject";
|
|
129
|
+
export declare const UBO_HTML_MASK = "^";
|
|
130
|
+
export declare const MODIFIERS_SEPARATOR = ",";
|
|
131
|
+
export declare const MODIFIER_ASSIGN_OPERATOR = "=";
|
|
132
|
+
export declare const NEGATION_MARKER = "~";
|
|
133
|
+
/**
|
|
134
|
+
* The wildcard symbol — `*`.
|
|
135
|
+
*/
|
|
136
|
+
export declare const WILDCARD = "*";
|
|
137
|
+
/**
|
|
138
|
+
* Classic domain separator.
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```adblock
|
|
142
|
+
* ! Domains are separated by ",":
|
|
143
|
+
* example.com,~example.org##.ads
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
export declare const COMMA_DOMAIN_LIST_SEPARATOR = ",";
|
|
147
|
+
/**
|
|
148
|
+
* Modifier separator for $app, $denyallow, $domain, $method.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```adblock
|
|
152
|
+
* ! Domains are separated by "|":
|
|
153
|
+
* ads.js^$script,domains=example.com|~example.org
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export declare const PIPE_MODIFIER_SEPARATOR = "|";
|
|
157
|
+
export declare const CSS_CLASS_MARKER = ".";
|
|
158
|
+
export declare const CSS_ID_MARKER = "#";
|
|
159
|
+
export declare const CSS_SELECTORS_SEPARATOR = ",";
|
|
160
|
+
export declare const CSS_MEDIA_MARKER = "@media";
|
|
161
|
+
export declare const CSS_PSEUDO_MARKER = ":";
|
|
162
|
+
export declare const CSS_PSEUDO_OPEN = "(";
|
|
163
|
+
export declare const CSS_PSEUDO_CLOSE = ")";
|
|
164
|
+
export declare const CSS_NOT_PSEUDO = "not";
|
|
165
|
+
export declare const CSS_BLOCK_OPEN = "{";
|
|
166
|
+
export declare const CSS_BLOCK_CLOSE = "}";
|
|
167
|
+
export declare const CSS_ATTRIBUTE_SELECTOR_OPEN = "[";
|
|
168
|
+
export declare const CSS_ATTRIBUTE_SELECTOR_CLOSE = "]";
|
|
169
|
+
export declare const CSS_IMPORTANT = "!important";
|
|
170
|
+
export declare const CSS_DECLARATION_END = ";";
|
|
171
|
+
export declare const CSS_DECLARATION_SEPARATOR = ":";
|
|
172
|
+
export declare const HINT_MARKER = "!+";
|
|
173
|
+
export declare const HINT_MARKER_LEN: number;
|
|
174
|
+
export declare const NETWORK_RULE_EXCEPTION_MARKER = "@@";
|
|
175
|
+
export declare const NETWORK_RULE_EXCEPTION_MARKER_LEN: number;
|
|
176
|
+
export declare const NETWORK_RULE_SEPARATOR = "$";
|
|
177
|
+
export declare const AGLINT_COMMAND_PREFIX = "aglint";
|
|
178
|
+
export declare const AGLINT_CONFIG_COMMENT_MARKER = "--";
|
|
179
|
+
export declare const PREPROCESSOR_MARKER = "!#";
|
|
180
|
+
export declare const PREPROCESSOR_MARKER_LEN: number;
|
|
181
|
+
export declare const PREPROCESSOR_SEPARATOR = " ";
|
|
182
|
+
export declare const SAFARI_CB_AFFINITY = "safari_cb_affinity";
|
|
183
|
+
export declare const IF = "if";
|
|
184
|
+
export declare const INCLUDE = "include";
|
|
185
|
+
export declare const NULL = 0;
|
|
186
|
+
export declare const UINT8_MAX = 255;
|
|
187
|
+
export declare const UINT16_MAX = 65535;
|
|
188
|
+
export declare const UINT32_MAX = 4294967295;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Cosmetic rule separator finder and categorizer
|
|
3
|
+
*/
|
|
4
|
+
import { CosmeticRuleSeparator } from '../nodes';
|
|
5
|
+
export interface CosmeticRuleSeparatorFinderResult {
|
|
6
|
+
/**
|
|
7
|
+
* Separator type
|
|
8
|
+
*/
|
|
9
|
+
separator: CosmeticRuleSeparator;
|
|
10
|
+
/**
|
|
11
|
+
* Separator start position
|
|
12
|
+
*/
|
|
13
|
+
start: number;
|
|
14
|
+
/**
|
|
15
|
+
* Separator end position
|
|
16
|
+
*/
|
|
17
|
+
end: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Utility class for cosmetic rule separators.
|
|
21
|
+
*/
|
|
22
|
+
export declare class CosmeticRuleSeparatorUtils {
|
|
23
|
+
/**
|
|
24
|
+
* Checks whether the specified separator is an exception.
|
|
25
|
+
*
|
|
26
|
+
* @param separator Separator to check
|
|
27
|
+
* @returns `true` if the separator is an exception, `false` otherwise
|
|
28
|
+
*/
|
|
29
|
+
static isException(separator: CosmeticRuleSeparator): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Checks whether the specified separator is marks an Extended CSS cosmetic rule.
|
|
32
|
+
*
|
|
33
|
+
* @param separator Separator to check
|
|
34
|
+
* @returns `true` if the separator is marks an Extended CSS cosmetic rule, `false` otherwise
|
|
35
|
+
*/
|
|
36
|
+
static isExtendedCssMarker(separator: CosmeticRuleSeparator): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Looks for the cosmetic rule separator in the rule. This is a simplified version that
|
|
39
|
+
* masks the recursive function.
|
|
40
|
+
*
|
|
41
|
+
* @param rule Raw rule
|
|
42
|
+
* @returns Separator result or null if no separator was found
|
|
43
|
+
*/
|
|
44
|
+
static find(rule: string): CosmeticRuleSeparatorFinderResult | null;
|
|
45
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple deep freeze implementation.
|
|
3
|
+
* It freezes the object and all its properties recursively.
|
|
4
|
+
*
|
|
5
|
+
* @param object Object to freeze.
|
|
6
|
+
*
|
|
7
|
+
* @returns Frozen object.
|
|
8
|
+
*
|
|
9
|
+
* @template T Type of the object to freeze.
|
|
10
|
+
*
|
|
11
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze#deep_freezing}
|
|
12
|
+
*/
|
|
13
|
+
export declare const deepFreeze: <T extends object>(object: T) => Readonly<T>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Utility functions for domain and hostname validation.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Marker for a wildcard top-level domain — `.*`.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* `example.*` — matches with any TLD, e.g. `example.org`, `example.com`, etc.
|
|
9
|
+
*/
|
|
10
|
+
export declare const WILDCARD_TLD: string;
|
|
11
|
+
/**
|
|
12
|
+
* Marker for a wildcard subdomain — `*.`.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* `*.example.org` — matches with any subdomain, e.g. `foo.example.org` or `bar.example.org`
|
|
16
|
+
*/
|
|
17
|
+
export declare const WILDCARD_SUBDOMAIN: string;
|
|
18
|
+
export declare class DomainUtils {
|
|
19
|
+
/**
|
|
20
|
+
* Check if the input is a valid domain or hostname.
|
|
21
|
+
*
|
|
22
|
+
* @param domain Domain to check
|
|
23
|
+
* @returns `true` if the domain is valid, `false` otherwise
|
|
24
|
+
*/
|
|
25
|
+
static isValidDomainOrHostname(domain: string): boolean;
|
|
26
|
+
}
|