@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,58 @@
|
|
|
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
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var conversionResult = require('./base-interfaces/conversion-result.js');
|
|
10
|
+
var baseConverter = require('./base-interfaces/base-converter.js');
|
|
11
|
+
var filterlistParser = require('../parser/filterlist-parser.js');
|
|
12
|
+
var filterList = require('./filter-list.js');
|
|
13
|
+
var options = require('../parser/options.js');
|
|
14
|
+
var filterlistGenerator = require('../generator/filterlist-generator.js');
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @file Filter list converter for raw filter lists
|
|
18
|
+
*
|
|
19
|
+
* Technically, this is a wrapper around `FilterListConverter` that works with nodes instead of strings.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Adblock filter list converter class.
|
|
23
|
+
*
|
|
24
|
+
* You can use this class to convert string-based filter lists, since most of the converters work with nodes.
|
|
25
|
+
* This class just provides an extra layer on top of the {@link FilterListConverter} and calls the parser/serializer
|
|
26
|
+
* before/after the conversion internally.
|
|
27
|
+
*
|
|
28
|
+
* @todo Implement `convertToUbo` and `convertToAbp`
|
|
29
|
+
*/
|
|
30
|
+
class RawFilterListConverter extends baseConverter.BaseConverter {
|
|
31
|
+
/**
|
|
32
|
+
* Converts an adblock filter list text to AdGuard format, if possible.
|
|
33
|
+
*
|
|
34
|
+
* @param rawFilterList Raw filter list text to convert
|
|
35
|
+
* @param tolerant Indicates whether the converter should be tolerant to invalid rules. If enabled and a rule is
|
|
36
|
+
* invalid, it will be left as is. If disabled and a rule is invalid, the whole filter list will be failed.
|
|
37
|
+
* Defaults to `true`.
|
|
38
|
+
* @returns An object which follows the {@link ConversionResult} interface. Its `result` property contains
|
|
39
|
+
* the array of converted filter list text, and its `isConverted` flag indicates whether the original rule was
|
|
40
|
+
* converted. If the rule was not converted, the original filter list text will be returned
|
|
41
|
+
* @throws If the filter list is invalid or cannot be converted (if the tolerant mode is disabled)
|
|
42
|
+
*/
|
|
43
|
+
static convertToAdg(rawFilterList, tolerant = true) {
|
|
44
|
+
const conversionResult$1 = filterList.FilterListConverter.convertToAdg(filterlistParser.FilterListParser.parse(rawFilterList, {
|
|
45
|
+
...options.defaultParserOptions,
|
|
46
|
+
isLocIncluded: false,
|
|
47
|
+
tolerant,
|
|
48
|
+
}), tolerant);
|
|
49
|
+
// If the filter list was not converted, return the original text
|
|
50
|
+
if (!conversionResult$1.isConverted) {
|
|
51
|
+
return conversionResult.createConversionResult(rawFilterList, false);
|
|
52
|
+
}
|
|
53
|
+
// Otherwise, serialize the filter list and return the result
|
|
54
|
+
return conversionResult.createConversionResult(filterlistGenerator.FilterListGenerator.generate(conversionResult$1.result), true);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
exports.RawFilterListConverter = RawFilterListConverter;
|
|
@@ -0,0 +1,83 @@
|
|
|
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
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var index = require('../nodes/index.js');
|
|
10
|
+
var index$3 = require('./comment/index.js');
|
|
11
|
+
var index$2 = require('./cosmetic/index.js');
|
|
12
|
+
var index$1 = require('./network/index.js');
|
|
13
|
+
var ruleConversionError = require('../errors/rule-conversion-error.js');
|
|
14
|
+
var ruleConverterBase = require('./base-interfaces/rule-converter-base.js');
|
|
15
|
+
var conversionResult = require('./base-interfaces/conversion-result.js');
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @file Adblock rule converter
|
|
19
|
+
*
|
|
20
|
+
* This file is the entry point for all rule converters
|
|
21
|
+
* which automatically detects the rule type and calls
|
|
22
|
+
* the corresponding "sub-converter".
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Adblock filtering rule converter class
|
|
26
|
+
*
|
|
27
|
+
* @todo Implement `convertToUbo` and `convertToAbp`
|
|
28
|
+
*/
|
|
29
|
+
class RuleConverter extends ruleConverterBase.RuleConverterBase {
|
|
30
|
+
/**
|
|
31
|
+
* Converts an adblock filtering rule to AdGuard format, if possible.
|
|
32
|
+
*
|
|
33
|
+
* @param rule Rule node to convert
|
|
34
|
+
* @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
|
|
35
|
+
* the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
|
|
36
|
+
* If the rule was not converted, the result array will contain the original node with the same object reference
|
|
37
|
+
* @throws If the rule is invalid or cannot be converted
|
|
38
|
+
*/
|
|
39
|
+
static convertToAdg(rule) {
|
|
40
|
+
// Delegate conversion to the corresponding sub-converter
|
|
41
|
+
// based on the rule category
|
|
42
|
+
switch (rule.category) {
|
|
43
|
+
case index.RuleCategory.Comment:
|
|
44
|
+
return index$3.CommentRuleConverter.convertToAdg(rule);
|
|
45
|
+
case index.RuleCategory.Cosmetic:
|
|
46
|
+
return index$2.CosmeticRuleConverter.convertToAdg(rule);
|
|
47
|
+
case index.RuleCategory.Network:
|
|
48
|
+
// TODO: Handle hosts rules later
|
|
49
|
+
if (rule.type === index.NetworkRuleType.HostRule) {
|
|
50
|
+
return conversionResult.createConversionResult([rule], false);
|
|
51
|
+
}
|
|
52
|
+
return index$1.NetworkRuleConverter.convertToAdg(rule);
|
|
53
|
+
case index.RuleCategory.Invalid:
|
|
54
|
+
case index.RuleCategory.Empty:
|
|
55
|
+
// Just forward the rule as is
|
|
56
|
+
return conversionResult.createConversionResult([rule], false);
|
|
57
|
+
default:
|
|
58
|
+
// Never happens during normal operation
|
|
59
|
+
throw new ruleConversionError.RuleConversionError('Unknown rule category');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Converts an adblock filtering rule to uBlock Origin format, if possible.
|
|
64
|
+
*
|
|
65
|
+
* @param rule Rule node to convert
|
|
66
|
+
* @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
|
|
67
|
+
* the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
|
|
68
|
+
* If the rule was not converted, the result array will contain the original node with the same object reference
|
|
69
|
+
* @throws If the rule is invalid or cannot be converted
|
|
70
|
+
*/
|
|
71
|
+
// TODO: Add support for other rule types
|
|
72
|
+
static convertToUbo(rule) {
|
|
73
|
+
if (rule.category === index.RuleCategory.Cosmetic) {
|
|
74
|
+
return index$2.CosmeticRuleConverter.convertToUbo(rule);
|
|
75
|
+
}
|
|
76
|
+
if (rule.category === index.RuleCategory.Network) {
|
|
77
|
+
return index$1.NetworkRuleConverter.convertToUbo(rule);
|
|
78
|
+
}
|
|
79
|
+
return conversionResult.createConversionResult([rule], false);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
exports.RuleConverter = RuleConverter;
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var notImplementedError = require('../errors/not-implemented-error.js');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @file Base serializer class.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Base class for deserializers. Each deserializer should extend this class.
|
|
16
|
+
*/
|
|
17
|
+
class BaseDeserializer {
|
|
18
|
+
/**
|
|
19
|
+
* Deserializes the AST node from a byte buffer.
|
|
20
|
+
*
|
|
21
|
+
* @param buffer Input byte buffer to read from.
|
|
22
|
+
* @param node Destination node to write to.
|
|
23
|
+
* @param args Additional, parser-specific arguments, if needed.
|
|
24
|
+
*/
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
26
|
+
static deserialize(buffer, node, ...args) {
|
|
27
|
+
throw new notImplementedError.NotImplementedError();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
exports.BaseDeserializer = BaseDeserializer;
|
|
@@ -0,0 +1,76 @@
|
|
|
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
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var constants = require('../../utils/constants.js');
|
|
10
|
+
var index = require('../../nodes/index.js');
|
|
11
|
+
var adblockers = require('../../utils/adblockers.js');
|
|
12
|
+
var baseDeserializer = require('../base-deserializer.js');
|
|
13
|
+
var agentCommentCommon = require('../../marshalling-utils/comment/agent-comment-common.js');
|
|
14
|
+
var agentDeserializer = require('./agent-deserializer.js');
|
|
15
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
16
|
+
|
|
17
|
+
/* eslint-disable no-param-reassign */
|
|
18
|
+
/**
|
|
19
|
+
* `AgentCommentDeserializer` is responsible for deserializing an Adblock agent comments.
|
|
20
|
+
* Adblock agent comment marks that the filter list is supposed to
|
|
21
|
+
* be used by the specified ad blockers.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* - ```adblock
|
|
25
|
+
* [AdGuard]
|
|
26
|
+
* ```
|
|
27
|
+
* - ```adblock
|
|
28
|
+
* [Adblock Plus 2.0]
|
|
29
|
+
* ```
|
|
30
|
+
* - ```adblock
|
|
31
|
+
* [uBlock Origin]
|
|
32
|
+
* ```
|
|
33
|
+
* - ```adblock
|
|
34
|
+
* [uBlock Origin 1.45.3]
|
|
35
|
+
* ```
|
|
36
|
+
* - ```adblock
|
|
37
|
+
* [Adblock Plus 2.0; AdGuard]
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
class AgentCommentDeserializer extends baseDeserializer.BaseDeserializer {
|
|
41
|
+
/**
|
|
42
|
+
* Deserializes an agent list node from binary format.
|
|
43
|
+
*
|
|
44
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
45
|
+
* @param node Destination node.
|
|
46
|
+
*/
|
|
47
|
+
static deserialize(buffer, node) {
|
|
48
|
+
buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.AgentRuleNode);
|
|
49
|
+
node.type = index.CommentRuleType.AgentCommentRule;
|
|
50
|
+
node.syntax = adblockers.AdblockSyntax.Common;
|
|
51
|
+
node.category = index.RuleCategory.Comment;
|
|
52
|
+
let prop = buffer.readUint8();
|
|
53
|
+
while (prop !== constants.NULL) {
|
|
54
|
+
switch (prop) {
|
|
55
|
+
case agentCommentCommon.AgentCommentMarshallingMap.Children:
|
|
56
|
+
node.children = new Array(buffer.readUint8());
|
|
57
|
+
// read children
|
|
58
|
+
for (let i = 0; i < node.children.length; i += 1) {
|
|
59
|
+
agentDeserializer.AgentDeserializer.deserialize(buffer, node.children[i] = {});
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
case agentCommentCommon.AgentCommentMarshallingMap.Start:
|
|
63
|
+
node.start = buffer.readUint32();
|
|
64
|
+
break;
|
|
65
|
+
case agentCommentCommon.AgentCommentMarshallingMap.End:
|
|
66
|
+
node.end = buffer.readUint32();
|
|
67
|
+
break;
|
|
68
|
+
default:
|
|
69
|
+
throw new Error(`Invalid property: ${prop}`);
|
|
70
|
+
}
|
|
71
|
+
prop = buffer.readUint8();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
exports.AgentCommentDeserializer = AgentCommentDeserializer;
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var constants = require('../../utils/constants.js');
|
|
10
|
+
var baseDeserializer = require('../base-deserializer.js');
|
|
11
|
+
var agentCommon = require('../../marshalling-utils/comment/agent-common.js');
|
|
12
|
+
var agentCommon$1 = require('../../common/agent-common.js');
|
|
13
|
+
var valueDeserializer = require('../misc/value-deserializer.js');
|
|
14
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
+
|
|
16
|
+
/* eslint-disable no-param-reassign */
|
|
17
|
+
/**
|
|
18
|
+
* `AgentDeserializer` is responsible for deserializing single adblock agent elements.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* If the adblock agent rule is
|
|
22
|
+
* ```adblock
|
|
23
|
+
* [Adblock Plus 2.0; AdGuard]
|
|
24
|
+
* ```
|
|
25
|
+
* then the adblock agents are `Adblock Plus 2.0` and `AdGuard`, and this
|
|
26
|
+
* class is responsible for parsing them. The rule itself is parsed by
|
|
27
|
+
* `AgentCommentSerializer`, which uses this class to parse single agents.
|
|
28
|
+
*/
|
|
29
|
+
class AgentDeserializer extends baseDeserializer.BaseDeserializer {
|
|
30
|
+
/**
|
|
31
|
+
* Deserializes an agent node from binary format.
|
|
32
|
+
*
|
|
33
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
34
|
+
* @param node Destination node.
|
|
35
|
+
* @throws If the binary data is malformed.
|
|
36
|
+
*/
|
|
37
|
+
static deserialize(buffer, node) {
|
|
38
|
+
buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.AgentNode);
|
|
39
|
+
node.type = 'Agent';
|
|
40
|
+
let prop = buffer.readUint8();
|
|
41
|
+
while (prop !== constants.NULL) {
|
|
42
|
+
switch (prop) {
|
|
43
|
+
case agentCommon.AgentNodeMarshallingMap.Adblock:
|
|
44
|
+
// eslint-disable-next-line max-len
|
|
45
|
+
valueDeserializer.ValueDeserializer.deserialize(buffer, node.adblock = {}, agentCommon.FREQUENT_AGENTS_DESERIALIZATION_MAP);
|
|
46
|
+
if (node.adblock) {
|
|
47
|
+
node.syntax = agentCommon$1.getAdblockSyntax(node.adblock.value);
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
case agentCommon.AgentNodeMarshallingMap.Version:
|
|
51
|
+
valueDeserializer.ValueDeserializer.deserialize(buffer, node.version = {});
|
|
52
|
+
break;
|
|
53
|
+
case agentCommon.AgentNodeMarshallingMap.Start:
|
|
54
|
+
node.start = buffer.readUint32();
|
|
55
|
+
break;
|
|
56
|
+
case agentCommon.AgentNodeMarshallingMap.End:
|
|
57
|
+
node.end = buffer.readUint32();
|
|
58
|
+
break;
|
|
59
|
+
default:
|
|
60
|
+
throw new Error(`Invalid property: ${prop}`);
|
|
61
|
+
}
|
|
62
|
+
prop = buffer.readUint8();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
exports.AgentDeserializer = AgentDeserializer;
|
|
@@ -0,0 +1,109 @@
|
|
|
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
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var agentCommentDeserializer = require('./agent-comment-deserializer.js');
|
|
10
|
+
var configCommentDeserializer = require('./config-comment-deserializer.js');
|
|
11
|
+
var hintCommentDeserializer = require('./hint-comment-deserializer.js');
|
|
12
|
+
var metadataCommentDeserializer = require('./metadata-comment-deserializer.js');
|
|
13
|
+
var preProcessorCommentDeserializer = require('./pre-processor-comment-deserializer.js');
|
|
14
|
+
var simpleCommentDeserializer = require('./simple-comment-deserializer.js');
|
|
15
|
+
var baseDeserializer = require('../base-deserializer.js');
|
|
16
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* `CommentRuleSerializer` is responsible for serializing any comment-like adblock rules.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* Example rules:
|
|
23
|
+
* - Adblock agent rules:
|
|
24
|
+
* - ```adblock
|
|
25
|
+
* [AdGuard]
|
|
26
|
+
* ```
|
|
27
|
+
* - ```adblock
|
|
28
|
+
* [Adblock Plus 2.0]
|
|
29
|
+
* ```
|
|
30
|
+
* - etc.
|
|
31
|
+
* - AdGuard hint rules:
|
|
32
|
+
* - ```adblock
|
|
33
|
+
* !+ NOT_OPTIMIZED
|
|
34
|
+
* ```
|
|
35
|
+
* - ```adblock
|
|
36
|
+
* !+ NOT_OPTIMIZED PLATFORM(windows)
|
|
37
|
+
* ```
|
|
38
|
+
* - etc.
|
|
39
|
+
* - Pre-processor rules:
|
|
40
|
+
* - ```adblock
|
|
41
|
+
* !#if (adguard)
|
|
42
|
+
* ```
|
|
43
|
+
* - ```adblock
|
|
44
|
+
* !#endif
|
|
45
|
+
* ```
|
|
46
|
+
* - etc.
|
|
47
|
+
* - Metadata rules:
|
|
48
|
+
* - ```adblock
|
|
49
|
+
* ! Title: My List
|
|
50
|
+
* ```
|
|
51
|
+
* - ```adblock
|
|
52
|
+
* ! Version: 2.0.150
|
|
53
|
+
* ```
|
|
54
|
+
* - etc.
|
|
55
|
+
* - AGLint inline config rules:
|
|
56
|
+
* - ```adblock
|
|
57
|
+
* ! aglint-enable some-rule
|
|
58
|
+
* ```
|
|
59
|
+
* - ```adblock
|
|
60
|
+
* ! aglint-disable some-rule
|
|
61
|
+
* ```
|
|
62
|
+
* - etc.
|
|
63
|
+
* - Simple comments:
|
|
64
|
+
* - Regular version:
|
|
65
|
+
* ```adblock
|
|
66
|
+
* ! This is just a comment
|
|
67
|
+
* ```
|
|
68
|
+
* - uBlock Origin / "hostlist" version:
|
|
69
|
+
* ```adblock
|
|
70
|
+
* # This is just a comment
|
|
71
|
+
* ```
|
|
72
|
+
* - etc.
|
|
73
|
+
*/
|
|
74
|
+
class CommentRuleDeserializer extends baseDeserializer.BaseDeserializer {
|
|
75
|
+
/**
|
|
76
|
+
* Deserializes a comment rule node from binary format.
|
|
77
|
+
*
|
|
78
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
79
|
+
* @param node Destination node.
|
|
80
|
+
* @throws If the binary data is malformed.
|
|
81
|
+
*/
|
|
82
|
+
static deserialize(buffer, node) {
|
|
83
|
+
const type = buffer.peekUint8();
|
|
84
|
+
switch (type) {
|
|
85
|
+
case binaryTypeCommon.BinaryTypeMarshallingMap.AgentRuleNode:
|
|
86
|
+
agentCommentDeserializer.AgentCommentDeserializer.deserialize(buffer, node);
|
|
87
|
+
return;
|
|
88
|
+
case binaryTypeCommon.BinaryTypeMarshallingMap.HintRuleNode:
|
|
89
|
+
hintCommentDeserializer.HintCommentDeserializer.deserialize(buffer, node);
|
|
90
|
+
return;
|
|
91
|
+
case binaryTypeCommon.BinaryTypeMarshallingMap.PreProcessorCommentRuleNode:
|
|
92
|
+
preProcessorCommentDeserializer.PreProcessorCommentDeserializer.deserialize(buffer, node);
|
|
93
|
+
return;
|
|
94
|
+
case binaryTypeCommon.BinaryTypeMarshallingMap.MetadataCommentRuleNode:
|
|
95
|
+
metadataCommentDeserializer.MetadataCommentDeserializer.deserialize(buffer, node);
|
|
96
|
+
return;
|
|
97
|
+
case binaryTypeCommon.BinaryTypeMarshallingMap.ConfigCommentRuleNode:
|
|
98
|
+
configCommentDeserializer.ConfigCommentDeserializer.deserialize(buffer, node);
|
|
99
|
+
return;
|
|
100
|
+
case binaryTypeCommon.BinaryTypeMarshallingMap.CommentRuleNode:
|
|
101
|
+
simpleCommentDeserializer.SimpleCommentDeserializer.deserialize(buffer, node);
|
|
102
|
+
return;
|
|
103
|
+
default:
|
|
104
|
+
throw new Error(`Unknown comment rule type: ${type}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
exports.CommentRuleDeserializer = CommentRuleDeserializer;
|
|
@@ -0,0 +1,113 @@
|
|
|
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
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var constants = require('../../utils/constants.js');
|
|
10
|
+
var index = require('../../nodes/index.js');
|
|
11
|
+
var baseDeserializer = require('../base-deserializer.js');
|
|
12
|
+
var configCommentCommon = require('../../marshalling-utils/comment/config-comment-common.js');
|
|
13
|
+
var adblockers = require('../../utils/adblockers.js');
|
|
14
|
+
var valueDeserializer = require('../misc/value-deserializer.js');
|
|
15
|
+
var parameterListDeserializer = require('../misc/parameter-list-deserializer.js');
|
|
16
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
17
|
+
|
|
18
|
+
/* eslint-disable no-param-reassign */
|
|
19
|
+
/**
|
|
20
|
+
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
21
|
+
* as it allows us to use a single byte to represent frequently used values.
|
|
22
|
+
*/
|
|
23
|
+
let frequentCommandsDeserializationMap;
|
|
24
|
+
const getFrequentCommandsDeserializationMap = () => {
|
|
25
|
+
if (!frequentCommandsDeserializationMap) {
|
|
26
|
+
frequentCommandsDeserializationMap = new Map(Array.from(configCommentCommon.FREQUENT_COMMANDS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
27
|
+
}
|
|
28
|
+
return frequentCommandsDeserializationMap;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* `ConfigCommentDeserializer` is responsible for deserializing inline AGLint configuration rules.
|
|
32
|
+
* Generally, the idea is inspired by ESLint inline configuration comments.
|
|
33
|
+
*
|
|
34
|
+
* @see {@link https://eslint.org/docs/latest/user-guide/configuring/rules#using-configuration-comments}
|
|
35
|
+
*/
|
|
36
|
+
class ConfigCommentDeserializer extends baseDeserializer.BaseDeserializer {
|
|
37
|
+
/**
|
|
38
|
+
* Deserializes a metadata comment node from binary format.
|
|
39
|
+
*
|
|
40
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
41
|
+
* @param node Destination node.
|
|
42
|
+
* @throws If the binary data is malformed.
|
|
43
|
+
*/
|
|
44
|
+
static deserializeConfigNode(buffer, node) {
|
|
45
|
+
buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ConfigNode);
|
|
46
|
+
node.type = 'ConfigNode';
|
|
47
|
+
let prop = buffer.readUint8();
|
|
48
|
+
while (prop !== constants.NULL) {
|
|
49
|
+
switch (prop) {
|
|
50
|
+
case configCommentCommon.ConfigNodeMarshallingMap.Value:
|
|
51
|
+
// note: it is safe to use JSON.parse here, because we serialized it with JSON.stringify
|
|
52
|
+
node.value = JSON.parse(buffer.readString());
|
|
53
|
+
break;
|
|
54
|
+
case configCommentCommon.ConfigNodeMarshallingMap.Start:
|
|
55
|
+
node.start = buffer.readUint32();
|
|
56
|
+
break;
|
|
57
|
+
case configCommentCommon.ConfigNodeMarshallingMap.End:
|
|
58
|
+
node.end = buffer.readUint32();
|
|
59
|
+
break;
|
|
60
|
+
default:
|
|
61
|
+
throw new Error(`Invalid property: ${prop}.`);
|
|
62
|
+
}
|
|
63
|
+
prop = buffer.readUint8();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Deserializes a metadata comment node from binary format.
|
|
68
|
+
*
|
|
69
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
70
|
+
* @param node Destination node.
|
|
71
|
+
* @throws If the binary data is malformed.
|
|
72
|
+
*/
|
|
73
|
+
static deserialize(buffer, node) {
|
|
74
|
+
buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ConfigCommentRuleNode);
|
|
75
|
+
node.type = index.CommentRuleType.ConfigCommentRule;
|
|
76
|
+
node.category = index.RuleCategory.Comment;
|
|
77
|
+
node.syntax = adblockers.AdblockSyntax.Common;
|
|
78
|
+
let prop = buffer.readUint8();
|
|
79
|
+
while (prop !== constants.NULL) {
|
|
80
|
+
switch (prop) {
|
|
81
|
+
case configCommentCommon.ConfigCommentRuleMarshallingMap.Marker:
|
|
82
|
+
valueDeserializer.ValueDeserializer.deserialize(buffer, node.marker = {});
|
|
83
|
+
break;
|
|
84
|
+
case configCommentCommon.ConfigCommentRuleMarshallingMap.Command:
|
|
85
|
+
// eslint-disable-next-line max-len
|
|
86
|
+
valueDeserializer.ValueDeserializer.deserialize(buffer, node.command = {}, getFrequentCommandsDeserializationMap());
|
|
87
|
+
break;
|
|
88
|
+
case configCommentCommon.ConfigCommentRuleMarshallingMap.Params:
|
|
89
|
+
if (buffer.peekUint8() === binaryTypeCommon.BinaryTypeMarshallingMap.ConfigNode) {
|
|
90
|
+
ConfigCommentDeserializer.deserializeConfigNode(buffer, node.params = {});
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
parameterListDeserializer.ParameterListDeserializer.deserialize(buffer, node.params = {});
|
|
94
|
+
}
|
|
95
|
+
break;
|
|
96
|
+
case configCommentCommon.ConfigCommentRuleMarshallingMap.Comment:
|
|
97
|
+
valueDeserializer.ValueDeserializer.deserialize(buffer, node.comment = {});
|
|
98
|
+
break;
|
|
99
|
+
case configCommentCommon.ConfigCommentRuleMarshallingMap.Start:
|
|
100
|
+
node.start = buffer.readUint32();
|
|
101
|
+
break;
|
|
102
|
+
case configCommentCommon.ConfigCommentRuleMarshallingMap.End:
|
|
103
|
+
node.end = buffer.readUint32();
|
|
104
|
+
break;
|
|
105
|
+
default:
|
|
106
|
+
throw new Error(`Invalid property: ${prop}`);
|
|
107
|
+
}
|
|
108
|
+
prop = buffer.readUint8();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
exports.ConfigCommentDeserializer = ConfigCommentDeserializer;
|
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var constants = require('../../utils/constants.js');
|
|
10
|
+
var index = require('../../nodes/index.js');
|
|
11
|
+
var hintDeserializer = require('./hint-deserializer.js');
|
|
12
|
+
var adblockers = require('../../utils/adblockers.js');
|
|
13
|
+
var baseDeserializer = require('../base-deserializer.js');
|
|
14
|
+
var hintCommentCommon = require('../../marshalling-utils/comment/hint-comment-common.js');
|
|
15
|
+
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
16
|
+
var syntaxDeserializationMap = require('../syntax-deserialization-map.js');
|
|
17
|
+
|
|
18
|
+
/* eslint-disable no-param-reassign */
|
|
19
|
+
/**
|
|
20
|
+
* `HintCommentDeserializer` is responsible for deserializing AdGuard hint rules.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* The following hint rule
|
|
24
|
+
* ```adblock
|
|
25
|
+
* !+ NOT_OPTIMIZED PLATFORM(windows)
|
|
26
|
+
* ```
|
|
27
|
+
* contains two hints: `NOT_OPTIMIZED` and `PLATFORM`.
|
|
28
|
+
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#hints}
|
|
29
|
+
*/
|
|
30
|
+
class HintCommentDeserializer extends baseDeserializer.BaseDeserializer {
|
|
31
|
+
/**
|
|
32
|
+
* Deserializes a hint rule node from binary format.
|
|
33
|
+
*
|
|
34
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
35
|
+
* @param node Destination node.
|
|
36
|
+
* @throws If the binary data is malformed.
|
|
37
|
+
*/
|
|
38
|
+
static deserialize(buffer, node) {
|
|
39
|
+
buffer.assertUint8(binaryTypeCommon.BinaryTypeMarshallingMap.HintRuleNode);
|
|
40
|
+
node.category = index.RuleCategory.Comment;
|
|
41
|
+
node.type = index.CommentRuleType.HintCommentRule;
|
|
42
|
+
let prop = buffer.readUint8();
|
|
43
|
+
while (prop !== constants.NULL) {
|
|
44
|
+
switch (prop) {
|
|
45
|
+
case hintCommentCommon.HintCommentMarshallingMap.Syntax:
|
|
46
|
+
node.syntax = syntaxDeserializationMap.getSyntaxDeserializationMap().get(buffer.readUint8()) ?? adblockers.AdblockSyntax.Common;
|
|
47
|
+
break;
|
|
48
|
+
case hintCommentCommon.HintCommentMarshallingMap.Children:
|
|
49
|
+
node.children = new Array(buffer.readUint8());
|
|
50
|
+
// read children
|
|
51
|
+
for (let i = 0; i < node.children.length; i += 1) {
|
|
52
|
+
hintDeserializer.HintDeserializer.deserialize(buffer, node.children[i] = {});
|
|
53
|
+
}
|
|
54
|
+
break;
|
|
55
|
+
case hintCommentCommon.HintCommentMarshallingMap.Start:
|
|
56
|
+
node.start = buffer.readUint32();
|
|
57
|
+
break;
|
|
58
|
+
case hintCommentCommon.HintCommentMarshallingMap.End:
|
|
59
|
+
node.end = buffer.readUint32();
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
throw new Error(`Invalid property: ${prop}`);
|
|
63
|
+
}
|
|
64
|
+
prop = buffer.readUint8();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
exports.HintCommentDeserializer = HintCommentDeserializer;
|