@adguard/agtree 3.1.5 → 3.2.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/ast-utils/clone.js +1 -1
- package/dist/ast-utils/modifiers.js +1 -1
- package/dist/ast-utils/network-rules.js +1 -1
- package/dist/ast-utils/scriptlets.js +1 -1
- package/dist/common/abp-snippet-injection-body-common.js +1 -1
- package/dist/common/agent-common.js +1 -1
- package/dist/common/ubo-selector-common.js +1 -1
- package/dist/compatibility-tables/base.js +1 -1
- package/dist/compatibility-tables/compatibility-table-data.js +1 -1
- package/dist/compatibility-tables/modifiers.js +1 -1
- package/dist/compatibility-tables/platforms.js +1 -1
- package/dist/compatibility-tables/redirects.js +1 -1
- package/dist/compatibility-tables/schemas/base.js +1 -1
- package/dist/compatibility-tables/schemas/modifier.js +1 -1
- package/dist/compatibility-tables/schemas/platform.js +1 -1
- package/dist/compatibility-tables/schemas/redirect.js +1 -1
- package/dist/compatibility-tables/schemas/resource-type.js +1 -1
- package/dist/compatibility-tables/schemas/scriptlet.js +1 -1
- package/dist/compatibility-tables/scriptlets.js +1 -1
- package/dist/compatibility-tables/utils/platform-helpers.js +1 -1
- package/dist/compatibility-tables/utils/resource-type-helpers.js +1 -1
- package/dist/compatibility-tables/utils/zod-camelcase.js +1 -1
- package/dist/converter/base-interfaces/base-converter.js +1 -1
- package/dist/converter/base-interfaces/conversion-result.js +1 -1
- package/dist/converter/base-interfaces/rule-converter-base.js +1 -1
- package/dist/converter/comment/index.js +1 -1
- package/dist/converter/cosmetic/css.js +1 -1
- package/dist/converter/cosmetic/element-hiding.js +1 -1
- package/dist/converter/cosmetic/header-removal.js +1 -1
- package/dist/converter/cosmetic/html.js +162 -2
- package/dist/converter/cosmetic/index.js +18 -16
- package/dist/converter/cosmetic/rule-modifiers/adg.js +1 -1
- package/dist/converter/cosmetic/rule-modifiers/ubo.js +1 -1
- package/dist/converter/cosmetic/scriptlet.js +40 -6
- package/dist/converter/css/index.js +1 -1
- package/dist/converter/data/css.js +1 -1
- package/dist/converter/filter-list.js +1 -1
- package/dist/converter/index.js +1 -1
- package/dist/converter/misc/network-rule-modifier.js +1 -1
- package/dist/converter/network/index.js +1 -1
- package/dist/converter/raw-filter-list.js +1 -1
- package/dist/converter/raw-rule.js +1 -1
- package/dist/converter/rule.js +1 -1
- package/dist/deserializer/base-deserializer.js +1 -1
- package/dist/deserializer/comment/agent-comment-deserializer.js +1 -1
- package/dist/deserializer/comment/agent-deserializer.js +1 -1
- package/dist/deserializer/comment/comment-rule-deserializer.js +1 -1
- package/dist/deserializer/comment/config-comment-deserializer.js +1 -1
- package/dist/deserializer/comment/hint-comment-deserializer.js +1 -1
- package/dist/deserializer/comment/hint-deserializer.js +1 -1
- package/dist/deserializer/comment/metadata-comment-deserializer.js +1 -1
- package/dist/deserializer/comment/pre-processor-comment-deserializer.js +1 -1
- package/dist/deserializer/comment/simple-comment-deserializer.js +1 -1
- package/dist/deserializer/cosmetic/cosmetic-rule-deserializer.js +1 -1
- package/dist/deserializer/cosmetic/css-injection-body-deserializer.js +1 -1
- package/dist/deserializer/cosmetic/element-hiding-body-deserializer.js +1 -1
- package/dist/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +1 -1
- package/dist/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +1 -1
- package/dist/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +1 -1
- package/dist/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +1 -1
- package/dist/deserializer/empty-rule-deserializer.js +1 -1
- package/dist/deserializer/filterlist-deserializer.js +1 -1
- package/dist/deserializer/index.js +1 -1
- package/dist/deserializer/invalid-rule-deserializer.js +1 -1
- package/dist/deserializer/invalid-rule-error-node-deserializer.js +1 -1
- package/dist/deserializer/misc/domain-list-deserializer.js +1 -1
- package/dist/deserializer/misc/list-item-deserializer.js +1 -1
- package/dist/deserializer/misc/list-items-deserializer.js +1 -1
- package/dist/deserializer/misc/logical-expression-deserializer.js +1 -1
- package/dist/deserializer/misc/modifier-deserializer.js +1 -1
- package/dist/deserializer/misc/modifier-list-deserializer.js +1 -1
- package/dist/deserializer/misc/parameter-list-deserializer.js +1 -1
- package/dist/deserializer/misc/value-deserializer.js +1 -1
- package/dist/deserializer/network/host-rule-deserializer.js +1 -1
- package/dist/deserializer/network/hostname-list-deserializer.js +1 -1
- package/dist/deserializer/network/network-rule-deserializer.js +1 -1
- package/dist/deserializer/rule-deserializer.js +1 -1
- package/dist/deserializer/syntax-deserialization-map.js +1 -1
- package/dist/errors/adblock-syntax-error.js +1 -1
- package/dist/errors/binary-schema-mismatch-error.js +1 -1
- package/dist/errors/not-implemented-error.js +1 -1
- package/dist/errors/rule-conversion-error.js +1 -1
- package/dist/generator/base-generator.js +1 -1
- package/dist/generator/comment/agent-comment-generator.js +1 -1
- package/dist/generator/comment/agent-generator.js +1 -1
- package/dist/generator/comment/comment-rule-generator.js +1 -1
- package/dist/generator/comment/config-comment-generator.js +1 -1
- package/dist/generator/comment/hint-comment-generator.js +1 -1
- package/dist/generator/comment/hint-generator.js +1 -1
- package/dist/generator/comment/metadata-comment-generator.js +1 -1
- package/dist/generator/comment/pre-processor-comment-generator.js +1 -1
- package/dist/generator/comment/simple-comment-generator.js +1 -1
- package/dist/generator/cosmetic/body/abp-snippet-injection-body-generator.js +1 -1
- package/dist/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +1 -1
- package/dist/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +1 -1
- package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +1 -1
- package/dist/generator/cosmetic/cosmetic-rule-generator.js +1 -1
- package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +1 -1
- package/dist/generator/css/adg-css-injection-generator.js +1 -1
- package/dist/generator/filterlist-generator.js +1 -1
- package/dist/generator/index.js +1 -1
- package/dist/generator/misc/domain-list-generator.js +1 -1
- package/dist/generator/misc/list-items-generator.js +1 -1
- package/dist/generator/misc/logical-expression-generator.js +1 -1
- package/dist/generator/misc/modifier-generator.js +1 -1
- package/dist/generator/misc/modifier-list-generator.js +1 -1
- package/dist/generator/misc/parameter-list-generator.js +1 -1
- package/dist/generator/misc/value-generator.js +1 -1
- package/dist/generator/network/host-rule-generator.js +1 -1
- package/dist/generator/network/network-rule-generator.js +1 -1
- package/dist/generator/rule-generator.js +1 -1
- package/dist/index.js +1 -1
- package/dist/marshalling-utils/comment/agent-comment-common.js +1 -1
- package/dist/marshalling-utils/comment/agent-common.js +1 -1
- package/dist/marshalling-utils/comment/config-comment-common.js +1 -1
- package/dist/marshalling-utils/comment/hint-comment-common.js +1 -1
- package/dist/marshalling-utils/comment/hint-common.js +1 -1
- package/dist/marshalling-utils/comment/metadata-comment-common.js +1 -1
- package/dist/marshalling-utils/comment/pre-processor-comment-common.js +1 -1
- package/dist/marshalling-utils/comment/simple-comment-common.js +1 -1
- package/dist/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +1 -1
- package/dist/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +1 -1
- package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +1 -1
- package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +1 -1
- package/dist/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +1 -1
- package/dist/marshalling-utils/cosmetic/cosmetic-rule-common.js +1 -1
- package/dist/marshalling-utils/empty-rule-common.js +1 -1
- package/dist/marshalling-utils/filter-list-common.js +1 -1
- package/dist/marshalling-utils/invalid-rule-common.js +1 -1
- package/dist/marshalling-utils/invalid-rule-error-node-common.js +1 -1
- package/dist/marshalling-utils/misc/binary-type-common.js +1 -1
- package/dist/marshalling-utils/misc/domain-list-common.js +1 -1
- package/dist/marshalling-utils/misc/host-rule-common.js +1 -1
- package/dist/marshalling-utils/misc/hostname-list-common.js +1 -1
- package/dist/marshalling-utils/misc/list-item-common.js +1 -1
- package/dist/marshalling-utils/misc/logical-expression-common.js +1 -1
- package/dist/marshalling-utils/misc/modifier-common.js +1 -1
- package/dist/marshalling-utils/misc/modifier-list-common.js +1 -1
- package/dist/marshalling-utils/misc/parameter-list-common.js +1 -1
- package/dist/marshalling-utils/misc/value-common.js +1 -1
- package/dist/marshalling-utils/network/network-rule-common.js +1 -1
- package/dist/marshalling-utils/syntax-serialization-map.js +1 -1
- package/dist/nodes/index.js +1 -1
- package/dist/package.json.js +2 -2
- package/dist/parser/base-parser.js +1 -1
- package/dist/parser/comment/agent-comment-parser.js +1 -1
- package/dist/parser/comment/agent-parser.js +1 -1
- package/dist/parser/comment/comment-parser.js +1 -1
- package/dist/parser/comment/config-comment-parser.js +1 -1
- package/dist/parser/comment/hint-comment-parser.js +1 -1
- package/dist/parser/comment/hint-parser.js +1 -1
- package/dist/parser/comment/metadata-comment-parser.js +1 -1
- package/dist/parser/comment/preprocessor-parser.js +1 -1
- package/dist/parser/comment/simple-comment-parser.js +1 -1
- package/dist/parser/cosmetic/body/abp-snippet-injection-body-parser.js +1 -1
- package/dist/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +1 -1
- package/dist/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +1 -1
- package/dist/parser/cosmetic/cosmetic-rule-parser.js +1 -1
- package/dist/parser/css/adg-css-injection-parser.js +1 -1
- package/dist/parser/css/balancing.js +1 -1
- package/dist/parser/css/constants.js +1 -1
- package/dist/parser/css/css-token-stream.js +1 -1
- package/dist/parser/css/ubo-selector-parser.js +1 -1
- package/dist/parser/filterlist-parser.js +1 -1
- package/dist/parser/index.js +1 -1
- package/dist/parser/misc/app-list-parser.js +1 -1
- package/dist/parser/misc/domain-list-parser.js +1 -1
- package/dist/parser/misc/list-items-parser.js +1 -1
- package/dist/parser/misc/logical-expression-parser.js +1 -1
- package/dist/parser/misc/method-list-parser.js +1 -1
- package/dist/parser/misc/modifier-list.js +1 -1
- package/dist/parser/misc/modifier-parser.js +1 -1
- package/dist/parser/misc/parameter-list-parser.js +1 -1
- package/dist/parser/misc/stealth-option-list-parser.js +1 -1
- package/dist/parser/misc/ubo-parameter-list-parser.js +1 -1
- package/dist/parser/misc/value-parser.js +1 -1
- package/dist/parser/network/host-rule-parser.js +1 -1
- package/dist/parser/network/network-rule-parser.js +1 -1
- package/dist/parser/options.js +1 -1
- package/dist/parser/rule-parser.js +1 -1
- package/dist/serializer/base-serializer.js +1 -1
- package/dist/serializer/comment/agent-comment-serializer.js +1 -1
- package/dist/serializer/comment/agent-serializer.js +1 -1
- package/dist/serializer/comment/comment-rule-serializer.js +1 -1
- package/dist/serializer/comment/config-comment-serializer.js +1 -1
- package/dist/serializer/comment/hint-comment-serializer.js +1 -1
- package/dist/serializer/comment/hint-serializer.js +1 -1
- package/dist/serializer/comment/metadata-comment-serializer.js +1 -1
- package/dist/serializer/comment/pre-processor-comment-serializer.js +1 -1
- package/dist/serializer/comment/simple-comment-serializer.js +1 -1
- package/dist/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +1 -1
- package/dist/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +1 -1
- package/dist/serializer/cosmetic/body/scriptlet-body-serializer.js +1 -1
- package/dist/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +1 -1
- package/dist/serializer/cosmetic/cosmetic-rule-serializer.js +1 -1
- package/dist/serializer/cosmetic/css-injection-body-serializer.js +1 -1
- package/dist/serializer/cosmetic/element-hiding-body-serializer.js +1 -1
- package/dist/serializer/empty-rule-serializer.js +1 -1
- package/dist/serializer/filterlist-serializer.js +1 -1
- package/dist/serializer/index.js +1 -1
- package/dist/serializer/invalid-rule-error-node-serializer.js +1 -1
- package/dist/serializer/invalid-rule-serializer.js +1 -1
- package/dist/serializer/misc/domain-list-serializer.js +1 -1
- package/dist/serializer/misc/list-item-serializer.js +1 -1
- package/dist/serializer/misc/list-items-serializer.js +1 -1
- package/dist/serializer/misc/logical-expression-serializer.js +1 -1
- package/dist/serializer/misc/modifier-list-serializer.js +1 -1
- package/dist/serializer/misc/modifier-serializer.js +1 -1
- package/dist/serializer/misc/parameter-list-serializer.js +1 -1
- package/dist/serializer/misc/value-serializer.js +1 -1
- package/dist/serializer/network/host-rule-serializer.js +1 -1
- package/dist/serializer/network/hostname-list-serializer.js +1 -1
- package/dist/serializer/network/network-rule-serializer.js +1 -1
- package/dist/serializer/rule-serializer.js +1 -1
- package/dist/types/ast-utils/clone.d.ts +1 -1
- package/dist/types/ast-utils/filter-list.d.ts +1 -1
- package/dist/types/ast-utils/modifiers.d.ts +1 -1
- package/dist/types/ast-utils/network-rules.d.ts +2 -2
- package/dist/types/ast-utils/scriptlets.d.ts +2 -2
- package/dist/types/common/agent-common.d.ts +1 -1
- package/dist/types/compatibility-tables/base.d.ts +4 -4
- package/dist/types/compatibility-tables/compatibility-table-data.d.ts +1 -1
- package/dist/types/compatibility-tables/index.d.ts +10 -10
- package/dist/types/compatibility-tables/modifiers.d.ts +3 -3
- package/dist/types/compatibility-tables/redirects.d.ts +4 -4
- package/dist/types/compatibility-tables/schemas/index.d.ts +5 -5
- package/dist/types/compatibility-tables/scriptlets.d.ts +2 -2
- package/dist/types/compatibility-tables/utils/platform-helpers.d.ts +1 -1
- package/dist/types/compatibility-tables/utils/resource-type-helpers.d.ts +2 -2
- package/dist/types/converter/base-interfaces/base-converter.d.ts +1 -1
- package/dist/types/converter/base-interfaces/conversion-result.d.ts +1 -1
- package/dist/types/converter/base-interfaces/rule-converter-base.d.ts +3 -3
- package/dist/types/converter/comment/index.d.ts +3 -3
- package/dist/types/converter/cosmetic/css.d.ts +3 -3
- package/dist/types/converter/cosmetic/element-hiding.d.ts +3 -3
- package/dist/types/converter/cosmetic/header-removal.d.ts +3 -3
- package/dist/types/converter/cosmetic/html.d.ts +18 -3
- package/dist/types/converter/cosmetic/index.d.ts +3 -3
- package/dist/types/converter/cosmetic/rule-modifiers/adg.d.ts +2 -2
- package/dist/types/converter/cosmetic/rule-modifiers/ubo.d.ts +2 -2
- package/dist/types/converter/cosmetic/scriptlet.d.ts +3 -3
- package/dist/types/converter/css/index.d.ts +3 -3
- package/dist/types/converter/filter-list.d.ts +3 -3
- package/dist/types/converter/index.d.ts +4 -4
- package/dist/types/converter/misc/network-rule-modifier.d.ts +3 -3
- package/dist/types/converter/network/index.d.ts +3 -3
- package/dist/types/converter/raw-filter-list.d.ts +2 -2
- package/dist/types/converter/raw-rule.d.ts +2 -2
- package/dist/types/converter/rule.d.ts +3 -3
- package/dist/types/deserializer/base-deserializer.d.ts +2 -2
- package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +3 -3
- package/dist/types/deserializer/comment/agent-deserializer.d.ts +3 -3
- package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +3 -3
- package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +3 -3
- package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +3 -3
- package/dist/types/deserializer/comment/hint-deserializer.d.ts +3 -3
- package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +3 -3
- package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +3 -3
- package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +3 -3
- package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +3 -3
- package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +3 -3
- package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +3 -3
- package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +3 -3
- package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +3 -3
- package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +3 -3
- package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +3 -3
- package/dist/types/deserializer/empty-rule-deserializer.d.ts +3 -3
- package/dist/types/deserializer/filterlist-deserializer.d.ts +3 -3
- package/dist/types/deserializer/index.d.ts +2 -2
- package/dist/types/deserializer/invalid-rule-deserializer.d.ts +3 -3
- package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +3 -3
- package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +3 -3
- package/dist/types/deserializer/misc/list-item-deserializer.d.ts +3 -3
- package/dist/types/deserializer/misc/list-items-deserializer.d.ts +2 -2
- package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +3 -3
- package/dist/types/deserializer/misc/modifier-deserializer.d.ts +3 -3
- package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +3 -3
- package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +3 -3
- package/dist/types/deserializer/misc/value-deserializer.d.ts +3 -3
- package/dist/types/deserializer/network/host-rule-deserializer.d.ts +3 -3
- package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +3 -3
- package/dist/types/deserializer/network/network-rule-deserializer.d.ts +3 -3
- package/dist/types/deserializer/rule-deserializer.d.ts +3 -3
- package/dist/types/deserializer/syntax-deserialization-map.d.ts +1 -1
- package/dist/types/generator/base-generator.d.ts +1 -1
- package/dist/types/generator/comment/agent-comment-generator.d.ts +2 -2
- package/dist/types/generator/comment/agent-generator.d.ts +2 -2
- package/dist/types/generator/comment/comment-rule-generator.d.ts +2 -2
- package/dist/types/generator/comment/config-comment-generator.d.ts +2 -2
- package/dist/types/generator/comment/hint-comment-generator.d.ts +2 -2
- package/dist/types/generator/comment/hint-generator.d.ts +2 -2
- package/dist/types/generator/comment/index.d.ts +1 -1
- package/dist/types/generator/comment/metadata-comment-generator.d.ts +2 -2
- package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +2 -2
- package/dist/types/generator/comment/simple-comment-generator.d.ts +2 -2
- package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +2 -2
- package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +2 -2
- package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +2 -2
- package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +2 -2
- package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +2 -2
- package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +2 -2
- package/dist/types/generator/cosmetic/index.d.ts +1 -1
- package/dist/types/generator/css/adg-css-injection-generator.d.ts +2 -2
- package/dist/types/generator/css/ubo-selector-generator.d.ts +2 -2
- package/dist/types/generator/filterlist-generator.d.ts +2 -2
- package/dist/types/generator/index.d.ts +4 -4
- package/dist/types/generator/misc/domain-list-generator.d.ts +2 -2
- package/dist/types/generator/misc/list-items-generator.d.ts +1 -1
- package/dist/types/generator/misc/logical-expression-generator.d.ts +2 -2
- package/dist/types/generator/misc/modifier-generator.d.ts +2 -2
- package/dist/types/generator/misc/modifier-list-generator.d.ts +2 -2
- package/dist/types/generator/misc/parameter-list-generator.d.ts +2 -2
- package/dist/types/generator/misc/value-generator.d.ts +2 -2
- package/dist/types/generator/network/host-rule-generator.d.ts +2 -2
- package/dist/types/generator/network/index.d.ts +2 -2
- package/dist/types/generator/network/network-rule-generator.d.ts +2 -2
- package/dist/types/generator/rule-generator.d.ts +2 -2
- package/dist/types/index.d.ts +52 -52
- package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +1 -1
- package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +1 -1
- package/dist/types/nodes/index.d.ts +2 -2
- package/dist/types/parser/base-parser.d.ts +2 -2
- package/dist/types/parser/comment/agent-comment-parser.d.ts +3 -3
- package/dist/types/parser/comment/agent-parser.d.ts +3 -3
- package/dist/types/parser/comment/comment-parser.d.ts +3 -3
- package/dist/types/parser/comment/config-comment-parser.d.ts +3 -3
- package/dist/types/parser/comment/hint-comment-parser.d.ts +3 -3
- package/dist/types/parser/comment/hint-parser.d.ts +3 -3
- package/dist/types/parser/comment/metadata-comment-parser.d.ts +3 -3
- package/dist/types/parser/comment/preprocessor-parser.d.ts +3 -3
- package/dist/types/parser/comment/simple-comment-parser.d.ts +3 -3
- package/dist/types/parser/cosmetic/body/abp-snippet-injection-body-parser.d.ts +3 -3
- package/dist/types/parser/cosmetic/body/adg-scriptlet-injection-body-parser.d.ts +3 -3
- package/dist/types/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.d.ts +3 -3
- package/dist/types/parser/cosmetic/cosmetic-rule-parser.d.ts +3 -3
- package/dist/types/parser/css/adg-css-injection-parser.d.ts +3 -3
- package/dist/types/parser/css/ubo-selector-parser.d.ts +3 -3
- package/dist/types/parser/filterlist-parser.d.ts +3 -3
- package/dist/types/parser/index.d.ts +6 -6
- package/dist/types/parser/misc/app-list-parser.d.ts +3 -3
- package/dist/types/parser/misc/domain-list-parser.d.ts +3 -3
- package/dist/types/parser/misc/list-items-parser.d.ts +2 -2
- package/dist/types/parser/misc/logical-expression-parser.d.ts +3 -3
- package/dist/types/parser/misc/method-list-parser.d.ts +3 -3
- package/dist/types/parser/misc/modifier-list.d.ts +3 -3
- package/dist/types/parser/misc/modifier-parser.d.ts +3 -3
- package/dist/types/parser/misc/parameter-list-parser.d.ts +3 -3
- package/dist/types/parser/misc/stealth-option-list-parser.d.ts +3 -3
- package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +3 -3
- package/dist/types/parser/misc/value-parser.d.ts +3 -3
- package/dist/types/parser/network/host-rule-parser.d.ts +3 -3
- package/dist/types/parser/network/network-rule-parser.d.ts +3 -3
- package/dist/types/parser/rule-parser.d.ts +3 -3
- package/dist/types/serializer/base-serializer.d.ts +2 -2
- package/dist/types/serializer/comment/agent-comment-serializer.d.ts +3 -3
- package/dist/types/serializer/comment/agent-serializer.d.ts +3 -3
- package/dist/types/serializer/comment/comment-rule-serializer.d.ts +3 -3
- package/dist/types/serializer/comment/config-comment-serializer.d.ts +3 -3
- package/dist/types/serializer/comment/hint-comment-serializer.d.ts +3 -3
- package/dist/types/serializer/comment/hint-serializer.d.ts +3 -3
- package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +3 -3
- package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +3 -3
- package/dist/types/serializer/comment/simple-comment-serializer.d.ts +3 -3
- package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +3 -3
- package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +3 -3
- package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +3 -3
- package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +3 -3
- package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +3 -3
- package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +3 -3
- package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +3 -3
- package/dist/types/serializer/empty-rule-serializer.d.ts +3 -3
- package/dist/types/serializer/filterlist-serializer.d.ts +3 -3
- package/dist/types/serializer/index.d.ts +1 -1
- package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +3 -3
- package/dist/types/serializer/invalid-rule-serializer.d.ts +3 -3
- package/dist/types/serializer/misc/domain-list-serializer.d.ts +3 -3
- package/dist/types/serializer/misc/list-item-serializer.d.ts +3 -3
- package/dist/types/serializer/misc/list-items-serializer.d.ts +2 -2
- package/dist/types/serializer/misc/logical-expression-serializer.d.ts +3 -3
- package/dist/types/serializer/misc/modifier-list-serializer.d.ts +3 -3
- package/dist/types/serializer/misc/modifier-serializer.d.ts +3 -3
- package/dist/types/serializer/misc/parameter-list-serializer.d.ts +3 -3
- package/dist/types/serializer/misc/value-serializer.d.ts +3 -3
- package/dist/types/serializer/network/host-rule-serializer.d.ts +3 -3
- package/dist/types/serializer/network/hostname-list-serializer.d.ts +3 -3
- package/dist/types/serializer/network/network-rule-serializer.d.ts +3 -3
- package/dist/types/serializer/rule-serializer.d.ts +3 -3
- package/dist/types/utils/categorizer.d.ts +1 -1
- package/dist/types/utils/cosmetic-rule-separator.d.ts +1 -1
- package/dist/types/utils/index.d.ts +15 -15
- package/dist/types/utils/input-byte-buffer.d.ts +2 -2
- package/dist/types/utils/logical-expression.d.ts +1 -1
- package/dist/types/utils/output-byte-buffer.d.ts +2 -2
- package/dist/types/validator/index.d.ts +3 -3
- package/dist/types/validator/value.d.ts +2 -2
- package/dist/utils/adblockers.js +1 -1
- package/dist/utils/binary-schema-version.js +1 -1
- package/dist/utils/byte-buffer.js +1 -1
- package/dist/utils/categorizer.js +1 -1
- package/dist/utils/clone.js +1 -1
- package/dist/utils/constants.js +5 -2
- package/dist/utils/cosmetic-rule-separator.js +1 -1
- package/dist/utils/deep-freeze.js +1 -1
- package/dist/utils/domain.js +1 -1
- package/dist/utils/error.js +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/input-byte-buffer.js +1 -1
- package/dist/utils/is-chromium.js +1 -1
- package/dist/utils/logical-expression.js +1 -1
- package/dist/utils/multi-value-map.js +1 -1
- package/dist/utils/output-byte-buffer.js +1 -1
- package/dist/utils/position-provider.js +1 -1
- package/dist/utils/quotes.js +1 -1
- package/dist/utils/regexp.js +1 -1
- package/dist/utils/string.js +1 -1
- package/dist/utils/text-decoder-polyfill.js +1 -1
- package/dist/utils/text-encoder-polyfill.js +1 -1
- package/dist/utils/type-guards.js +1 -1
- package/dist/validator/constants.js +1 -1
- package/dist/validator/helpers.js +1 -1
- package/dist/validator/index.js +1 -1
- package/dist/validator/value.js +1 -1
- package/dist/version.js +1 -1
- package/package.json +9 -8
package/dist/ast-utils/clone.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -14,8 +14,12 @@ import { RegExpUtils } from '../../utils/regexp.js';
|
|
|
14
14
|
import { createNodeConversionResult } from '../base-interfaces/conversion-result.js';
|
|
15
15
|
import { cloneDomainListNode } from '../../ast-utils/clone.js';
|
|
16
16
|
import { CssTokenStream } from '../../parser/css/css-token-stream.js';
|
|
17
|
-
import { UBO_HTML_MASK, EQUALS, EMPTY, ESCAPE_CHARACTER, OPEN_SQUARE_BRACKET, CLOSE_SQUARE_BRACKET } from '../../utils/constants.js';
|
|
17
|
+
import { UBO_HTML_MASK, EQUALS, EMPTY, ESCAPE_CHARACTER, CSS_PSEUDO_MARKER, CSS_PSEUDO_OPEN, CSS_PSEUDO_CLOSE, OPEN_SQUARE_BRACKET, CLOSE_SQUARE_BRACKET } from '../../utils/constants.js';
|
|
18
18
|
import { StringUtils, DOUBLE_QUOTE_MARKER } from '../../utils/string.js';
|
|
19
|
+
import 'tldts';
|
|
20
|
+
import { QuoteUtils } from '../../utils/quotes.js';
|
|
21
|
+
import 'json5';
|
|
22
|
+
import '../../parser/css/balancing.js';
|
|
19
23
|
|
|
20
24
|
/**
|
|
21
25
|
* @file HTML filtering rule converter
|
|
@@ -37,6 +41,16 @@ const PseudoClasses = {
|
|
|
37
41
|
HasText: 'has-text',
|
|
38
42
|
MinTextLength: 'min-text-length',
|
|
39
43
|
};
|
|
44
|
+
/**
|
|
45
|
+
* Constructs a pseudo-class string with a specified value for use in CSS selectors.
|
|
46
|
+
*
|
|
47
|
+
* @param pseudo - The pseudo-class name.
|
|
48
|
+
* @param value - The value of the pseudo-class.
|
|
49
|
+
* @returns pseudo-class string, including pseudo-class name, value and delimiters.
|
|
50
|
+
*/
|
|
51
|
+
const addPseudoClassWithValue = (pseudo, value) => {
|
|
52
|
+
return `${CSS_PSEUDO_MARKER}${pseudo}${CSS_PSEUDO_OPEN}${value}${CSS_PSEUDO_CLOSE}`;
|
|
53
|
+
};
|
|
40
54
|
const AttributeSelectors = {
|
|
41
55
|
MaxLength: 'max-length',
|
|
42
56
|
MinLength: 'min-length',
|
|
@@ -59,6 +73,7 @@ const ERROR_MESSAGES = {
|
|
|
59
73
|
REGEXP_NOT_SUPPORTED: "Cannot convert RegExp parameter '%s' from '%s' pseudo class, because converting RegExp patterns are not supported yet",
|
|
60
74
|
ATTRIBUTE_SELECTOR_REQUIRES_VALUE: "Attribute selector '%s' requires a value",
|
|
61
75
|
VALUE_SHOULD_BE_SPECIFIED: 'Value should be specified if operator is specified',
|
|
76
|
+
VALUE_SHOULD_BE_POSITIVE: 'Value should be positive',
|
|
62
77
|
UNEXPECTED_TOKEN_WITH_VALUE: "Unexpected token '%s' with value '%s'",
|
|
63
78
|
FLAGS_NOT_SUPPORTED: 'Flags are not supported for attribute selectors',
|
|
64
79
|
};
|
|
@@ -94,6 +109,25 @@ function escapeDoubleQuotes(selector) {
|
|
|
94
109
|
}
|
|
95
110
|
return buffer.join(EMPTY);
|
|
96
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Safely parses length values from attribute selectors, like `"262144"` from `[max-length="262144"]`
|
|
114
|
+
*
|
|
115
|
+
* @param value The string value to parse
|
|
116
|
+
* @param attrName The attribute name for error messages
|
|
117
|
+
* @returns Parsed number
|
|
118
|
+
* @throws A {@link RuleConversionError} if parsing fails
|
|
119
|
+
*/
|
|
120
|
+
function parseLengthValue(value, attrName) {
|
|
121
|
+
const cleanValue = QuoteUtils.removeQuotes(value);
|
|
122
|
+
const parsed = Number(cleanValue);
|
|
123
|
+
if (Number.isNaN(parsed)) {
|
|
124
|
+
throw new RuleConversionError(sprintf(ERROR_MESSAGES.VALUE_FOR_ATTR_SHOULD_BE_INT, attrName, value));
|
|
125
|
+
}
|
|
126
|
+
if (parsed < 0) {
|
|
127
|
+
throw new RuleConversionError(sprintf(ERROR_MESSAGES.VALUE_SHOULD_BE_POSITIVE, attrName, value));
|
|
128
|
+
}
|
|
129
|
+
return parsed;
|
|
130
|
+
}
|
|
97
131
|
/**
|
|
98
132
|
* Convert escaped double quotes `\"` to `""` within strings.
|
|
99
133
|
*
|
|
@@ -367,6 +401,132 @@ class HtmlRuleConverter extends RuleConverterBase {
|
|
|
367
401
|
},
|
|
368
402
|
})), true);
|
|
369
403
|
}
|
|
404
|
+
/**
|
|
405
|
+
* Converts a HTML rule to uBlock Origin syntax, if possible.
|
|
406
|
+
*
|
|
407
|
+
* @note AdGuard rules are often more specific than uBlock Origin rules, so some information
|
|
408
|
+
* may be lost in conversion. AdGuard's `[max-length]` and `[tag-content]` attributes will be converted to
|
|
409
|
+
* uBlock's `:min-text-length()` and `:has-text()` pseudo-classes when possible.
|
|
410
|
+
*
|
|
411
|
+
* @param rule Rule node to convert
|
|
412
|
+
* @returns An object which follows the {@link NodeConversionResult} interface. Its `result` property contains
|
|
413
|
+
* the array of converted rule nodes, and its `isConverted` flag indicates whether the original rule was converted.
|
|
414
|
+
* If the rule was not converted, the result array will contain the original node with the same object reference
|
|
415
|
+
* @throws Error if the rule is invalid or cannot be converted
|
|
416
|
+
*/
|
|
417
|
+
static convertToUbo(rule) {
|
|
418
|
+
// Ignore uBlock Origin rules
|
|
419
|
+
if (rule.syntax === AdblockSyntax.Ubo) {
|
|
420
|
+
return createNodeConversionResult([rule], false);
|
|
421
|
+
}
|
|
422
|
+
if (rule.syntax === AdblockSyntax.Abp) {
|
|
423
|
+
throw new RuleConversionError(ERROR_MESSAGES.ABP_NOT_SUPPORTED);
|
|
424
|
+
}
|
|
425
|
+
const source = escapeDoubleQuotes(rule.body.value);
|
|
426
|
+
const stream = new CssTokenStream(source);
|
|
427
|
+
const convertedSelector = [];
|
|
428
|
+
let minTextLength;
|
|
429
|
+
// Skip leading whitespace
|
|
430
|
+
stream.skipWhitespace();
|
|
431
|
+
while (!stream.isEof()) {
|
|
432
|
+
const token = stream.getOrFail();
|
|
433
|
+
if (token.type === TokenType.Ident) {
|
|
434
|
+
convertedSelector.push(source.slice(token.start, token.end));
|
|
435
|
+
stream.advance();
|
|
436
|
+
}
|
|
437
|
+
else if (token.type === TokenType.OpenSquareBracket) {
|
|
438
|
+
// Attribute selectors
|
|
439
|
+
const { start } = token;
|
|
440
|
+
let tempToken;
|
|
441
|
+
// Advance opening square bracket
|
|
442
|
+
stream.advance();
|
|
443
|
+
// Skip optional whitespace
|
|
444
|
+
stream.skipWhitespace();
|
|
445
|
+
// Parse attribute name
|
|
446
|
+
tempToken = stream.getOrFail();
|
|
447
|
+
if (tempToken.type !== TokenType.Ident) {
|
|
448
|
+
throw new RuleConversionError(sprintf(ERROR_MESSAGES.INVALID_ATTRIBUTE_NAME, getFormattedTokenName(tempToken.type), source.slice(tempToken.start, tempToken.end)));
|
|
449
|
+
}
|
|
450
|
+
const attr = source.slice(tempToken.start, tempToken.end);
|
|
451
|
+
stream.advance();
|
|
452
|
+
// Skip optional whitespace
|
|
453
|
+
stream.skipWhitespace();
|
|
454
|
+
// Check if this is a standalone attribute (like [disabled])
|
|
455
|
+
tempToken = stream.getOrFail();
|
|
456
|
+
if (tempToken.type === TokenType.CloseSquareBracket) {
|
|
457
|
+
const { end } = tempToken;
|
|
458
|
+
stream.advance();
|
|
459
|
+
convertedSelector.push(source.slice(start, end));
|
|
460
|
+
continue;
|
|
461
|
+
}
|
|
462
|
+
// Expect equals operator
|
|
463
|
+
stream.expect(TokenType.Delim, { value: EQUALS });
|
|
464
|
+
stream.advance();
|
|
465
|
+
// Skip optional whitespace
|
|
466
|
+
stream.skipWhitespace();
|
|
467
|
+
// Parse attribute value
|
|
468
|
+
tempToken = stream.getOrFail();
|
|
469
|
+
if (tempToken.type !== TokenType.Ident && tempToken.type !== TokenType.String) {
|
|
470
|
+
throw new RuleConversionError(sprintf(ERROR_MESSAGES.INVALID_ATTRIBUTE_VALUE, getFormattedTokenName(tempToken.type), source.slice(tempToken.start, tempToken.end)));
|
|
471
|
+
}
|
|
472
|
+
const value = source.slice(tempToken.start, tempToken.end);
|
|
473
|
+
stream.advance();
|
|
474
|
+
// Skip optional whitespace
|
|
475
|
+
stream.skipWhitespace();
|
|
476
|
+
// Check for closing bracket
|
|
477
|
+
tempToken = stream.getOrFail();
|
|
478
|
+
if (tempToken.type !== TokenType.CloseSquareBracket) {
|
|
479
|
+
throw new RuleConversionError(sprintf(ERROR_MESSAGES.FLAGS_NOT_SUPPORTED));
|
|
480
|
+
}
|
|
481
|
+
const { end } = stream.getOrFail();
|
|
482
|
+
stream.advance();
|
|
483
|
+
// Handle special attributes with improved number parsing
|
|
484
|
+
if (attr === AttributeSelectors.MinLength || attr === AttributeSelectors.MaxLength) {
|
|
485
|
+
const parsedValue = parseLengthValue(value, attr);
|
|
486
|
+
if (attr === AttributeSelectors.MinLength) {
|
|
487
|
+
minTextLength = parsedValue;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
else if (attr === AttributeSelectors.TagContent) {
|
|
491
|
+
const unescapedValue = unescapeDoubleQuotes(value);
|
|
492
|
+
const valueWithoutQuotes = QuoteUtils.removeQuotes(unescapedValue);
|
|
493
|
+
convertedSelector.push(addPseudoClassWithValue(PseudoClasses.HasText, valueWithoutQuotes));
|
|
494
|
+
}
|
|
495
|
+
else {
|
|
496
|
+
convertedSelector.push(source.slice(start, end));
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
else if (token.type === TokenType.Whitespace) {
|
|
500
|
+
stream.advance();
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
throw new RuleConversionError(sprintf(ERROR_MESSAGES.UNEXPECTED_TOKEN_WITH_VALUE, getFormattedTokenName(token.type), source.slice(token.start, token.end)));
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
// Handle min length conversions
|
|
507
|
+
if (minTextLength !== undefined) {
|
|
508
|
+
convertedSelector.push(addPseudoClassWithValue(PseudoClasses.MinTextLength, minTextLength));
|
|
509
|
+
}
|
|
510
|
+
// Combine all selectors
|
|
511
|
+
const uboSelector = `${convertedSelector.join(EMPTY)}`;
|
|
512
|
+
return createNodeConversionResult([{
|
|
513
|
+
category: RuleCategory.Cosmetic,
|
|
514
|
+
type: CosmeticRuleType.HtmlFilteringRule,
|
|
515
|
+
syntax: AdblockSyntax.Ubo,
|
|
516
|
+
exception: rule.exception,
|
|
517
|
+
domains: cloneDomainListNode(rule.domains),
|
|
518
|
+
separator: {
|
|
519
|
+
type: 'Value',
|
|
520
|
+
value: rule.exception
|
|
521
|
+
? `${CosmeticRuleSeparator.ElementHidingException}${UBO_HTML_MASK}`
|
|
522
|
+
: `${CosmeticRuleSeparator.ElementHiding}${UBO_HTML_MASK}`,
|
|
523
|
+
},
|
|
524
|
+
body: {
|
|
525
|
+
type: 'Value',
|
|
526
|
+
value: unescapeDoubleQuotes(uboSelector),
|
|
527
|
+
},
|
|
528
|
+
}], true);
|
|
529
|
+
}
|
|
370
530
|
}
|
|
371
531
|
|
|
372
532
|
export { ERROR_MESSAGES, HtmlRuleConverter };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -110,27 +110,29 @@ class CosmeticRuleConverter extends RuleConverterBase {
|
|
|
110
110
|
* If the rule was not converted, the result array will contain the original node with the same object reference
|
|
111
111
|
* @throws If the rule is invalid or cannot be converted
|
|
112
112
|
*/
|
|
113
|
-
// TODO: Add support for other cosmetic rule types
|
|
114
113
|
static convertToUbo(rule) {
|
|
115
114
|
// Skip conversation if the rule is already in uBO format
|
|
116
115
|
if (rule.syntax === AdblockSyntax.Ubo) {
|
|
117
116
|
return createNodeConversionResult([rule], false);
|
|
118
117
|
}
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
118
|
+
// TODO: Add support for other cosmetic rule types
|
|
119
|
+
switch (rule.type) {
|
|
120
|
+
case CosmeticRuleType.HtmlFilteringRule:
|
|
121
|
+
return HtmlRuleConverter.convertToUbo(rule);
|
|
122
|
+
case CosmeticRuleType.ElementHidingRule: {
|
|
123
|
+
// Check if the rule is a simple hiding rule
|
|
124
|
+
// TODO: Handle elemhide rules with extended CSS pseudos even if type is not marked explicitly
|
|
125
|
+
const isElementHidingRule = (rule.separator.value === CosmeticRuleSeparator.ElementHidingException
|
|
126
|
+
|| rule.separator.value === CosmeticRuleSeparator.ElementHiding);
|
|
127
|
+
if (isElementHidingRule && !rule.modifiers) {
|
|
128
|
+
return createNodeConversionResult([rule], false);
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
132
131
|
}
|
|
133
|
-
|
|
132
|
+
case CosmeticRuleType.ScriptletInjectionRule:
|
|
133
|
+
return ScriptletRuleConverter.convertToUbo(rule);
|
|
134
|
+
case CosmeticRuleType.JsInjectionRule:
|
|
135
|
+
throw new RuleConversionError('uBO does not support JS injection rules');
|
|
134
136
|
}
|
|
135
137
|
let convertedModifiers;
|
|
136
138
|
// Convert cosmetic rule modifiers, if any
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -8,7 +8,7 @@ import { CosmeticRuleSeparator } from '../../nodes/index.js';
|
|
|
8
8
|
import { RuleConverterBase } from '../base-interfaces/rule-converter-base.js';
|
|
9
9
|
import { AdblockSyntax } from '../../utils/adblockers.js';
|
|
10
10
|
import { QuoteUtils, QuoteType } from '../../utils/quotes.js';
|
|
11
|
-
import { EMPTY, SPACE } from '../../utils/constants.js';
|
|
11
|
+
import { EMPTY, ADG_DOMAINS_MODIFIER, PIPE_MODIFIER_SEPARATOR, SPACE } from '../../utils/constants.js';
|
|
12
12
|
import { getScriptletName, setScriptletName, transformAllScriptletArguments, setScriptletQuoteType, transformNthScriptletArgument } from '../../ast-utils/scriptlets.js';
|
|
13
13
|
import { RuleConversionError } from '../../errors/rule-conversion-error.js';
|
|
14
14
|
import { createNodeConversionResult } from '../base-interfaces/conversion-result.js';
|
|
@@ -26,6 +26,14 @@ import '../../compatibility-tables/utils/platform-helpers.js';
|
|
|
26
26
|
import '../../compatibility-tables/schemas/resource-type.js';
|
|
27
27
|
import '../../compatibility-tables/utils/resource-type-helpers.js';
|
|
28
28
|
import { isUndefined, isNull } from '../../utils/type-guards.js';
|
|
29
|
+
import 'json5';
|
|
30
|
+
import 'sprintf-js';
|
|
31
|
+
import '@adguard/css-tokenizer';
|
|
32
|
+
import { DomainListParser } from '../../parser/misc/domain-list-parser.js';
|
|
33
|
+
import '../../parser/css/balancing.js';
|
|
34
|
+
import '../data/css.js';
|
|
35
|
+
import 'tldts';
|
|
36
|
+
import 'is-ip';
|
|
29
37
|
|
|
30
38
|
/**
|
|
31
39
|
* @file Scriptlet injection rule converter
|
|
@@ -229,6 +237,35 @@ class ScriptletRuleConverter extends RuleConverterBase {
|
|
|
229
237
|
if (rule.syntax === AdblockSyntax.Ubo) {
|
|
230
238
|
return createNodeConversionResult([rule], false);
|
|
231
239
|
}
|
|
240
|
+
let ruleDomainsList = cloneDomainListNode(rule.domains);
|
|
241
|
+
if (rule.syntax === AdblockSyntax.Adg && rule.modifiers?.children.length) {
|
|
242
|
+
const { modifiers } = rule;
|
|
243
|
+
// Validate modifiers structure
|
|
244
|
+
if (!modifiers || !modifiers.children || modifiers.children.length === 0) {
|
|
245
|
+
throw new RuleConversionError('Invalid modifiers in AdGuard rule.');
|
|
246
|
+
}
|
|
247
|
+
// Check for single domain modifier
|
|
248
|
+
const [domainModifier] = modifiers.children;
|
|
249
|
+
const hasSingleDomainModifier = (modifiers.children.length === 1
|
|
250
|
+
&& domainModifier.name?.value === ADG_DOMAINS_MODIFIER
|
|
251
|
+
&& domainModifier.value?.value);
|
|
252
|
+
if (!hasSingleDomainModifier) {
|
|
253
|
+
throw new RuleConversionError('uBlock Origin scriptlet injection rules do not support cosmetic rule modifiers.');
|
|
254
|
+
}
|
|
255
|
+
// Validate domain modifier
|
|
256
|
+
if (!domainModifier.value?.value) {
|
|
257
|
+
throw new RuleConversionError('Invalid domain modifier in AdGuard rule.');
|
|
258
|
+
}
|
|
259
|
+
// Parse domain list
|
|
260
|
+
const parsedDomainList = DomainListParser.parse(domainModifier.value.value, {}, domainModifier.start, PIPE_MODIFIER_SEPARATOR);
|
|
261
|
+
// Merge domain lists
|
|
262
|
+
if (ruleDomainsList) {
|
|
263
|
+
ruleDomainsList.children.push(...parsedDomainList.children);
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
ruleDomainsList = parsedDomainList;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
232
269
|
const separator = rule.separator.value;
|
|
233
270
|
let convertedSeparator = separator;
|
|
234
271
|
convertedSeparator = rule.exception
|
|
@@ -337,7 +374,7 @@ class ScriptletRuleConverter extends RuleConverterBase {
|
|
|
337
374
|
type: rule.type,
|
|
338
375
|
syntax: AdblockSyntax.Ubo,
|
|
339
376
|
exception: rule.exception,
|
|
340
|
-
domains:
|
|
377
|
+
domains: ruleDomainsList,
|
|
341
378
|
separator: {
|
|
342
379
|
type: 'Value',
|
|
343
380
|
value: convertedSeparator,
|
|
@@ -347,9 +384,6 @@ class ScriptletRuleConverter extends RuleConverterBase {
|
|
|
347
384
|
children: [scriptlet],
|
|
348
385
|
},
|
|
349
386
|
};
|
|
350
|
-
if (rule.modifiers) {
|
|
351
|
-
res.modifiers = cloneModifierListNode(rule.modifiers);
|
|
352
|
-
}
|
|
353
387
|
return res;
|
|
354
388
|
}), true);
|
|
355
389
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
package/dist/converter/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* AGTree v3.1
|
|
2
|
+
* AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT)
|
|
3
3
|
* (c) 2025 Adguard Software Ltd.
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|