@adguard/agtree 3.4.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ast-utils/clone.js +2 -2
- package/dist/ast-utils/modifiers.js +2 -2
- package/dist/ast-utils/network-rules.js +2 -2
- package/dist/ast-utils/scriptlets.js +2 -2
- package/dist/common/abp-snippet-injection-body-common.js +2 -2
- package/dist/common/agent-common.js +2 -2
- package/dist/common/ubo-html-filtering-body-common.js +40 -0
- package/dist/common/ubo-selector-common.js +2 -2
- package/dist/compatibility-tables/base.js +2 -2
- package/dist/compatibility-tables/compatibility-table-data.js +4 -4
- package/dist/compatibility-tables/modifiers.js +2 -2
- package/dist/compatibility-tables/platforms.js +2 -2
- package/dist/compatibility-tables/redirects.js +2 -2
- package/dist/compatibility-tables/schemas/base.js +2 -2
- package/dist/compatibility-tables/schemas/modifier.js +2 -2
- package/dist/compatibility-tables/schemas/platform.js +2 -2
- package/dist/compatibility-tables/schemas/redirect.js +2 -2
- package/dist/compatibility-tables/schemas/resource-type.js +2 -2
- package/dist/compatibility-tables/schemas/scriptlet.js +2 -2
- package/dist/compatibility-tables/scriptlets.js +2 -2
- package/dist/compatibility-tables/utils/platform-helpers.js +2 -2
- package/dist/compatibility-tables/utils/resource-type-helpers.js +2 -2
- package/dist/compatibility-tables/utils/zod-camelcase.js +2 -2
- package/dist/converter/base-interfaces/base-converter.js +2 -2
- package/dist/converter/base-interfaces/conversion-result.js +2 -2
- package/dist/converter/base-interfaces/rule-converter-base.js +2 -2
- package/dist/converter/comment/index.js +2 -2
- package/dist/converter/cosmetic/css.js +2 -2
- package/dist/converter/cosmetic/element-hiding.js +2 -2
- package/dist/converter/cosmetic/header-removal.js +24 -42
- package/dist/converter/cosmetic/html.js +580 -438
- package/dist/converter/cosmetic/index.js +3 -2
- package/dist/converter/cosmetic/rule-modifiers/adg.js +2 -2
- package/dist/converter/cosmetic/rule-modifiers/ubo.js +2 -2
- package/dist/converter/cosmetic/scriptlet.js +2 -2
- package/dist/converter/css/index.js +3 -2
- package/dist/converter/data/css.js +32 -54
- package/dist/converter/filter-list.js +2 -2
- package/dist/converter/index.js +2 -2
- package/dist/converter/misc/network-rule-modifier.js +2 -2
- package/dist/converter/network/index.js +2 -2
- package/dist/converter/raw-filter-list.js +2 -2
- package/dist/converter/raw-rule.js +6 -3
- package/dist/converter/rule.js +2 -2
- package/dist/errors/adblock-syntax-error.js +2 -2
- package/dist/errors/binary-schema-mismatch-error.js +2 -2
- package/dist/errors/not-implemented-error.js +2 -2
- package/dist/errors/rule-conversion-error.js +2 -2
- package/dist/generator/base-generator.js +2 -2
- package/dist/generator/comment/agent-comment-generator.js +2 -2
- package/dist/generator/comment/agent-generator.js +2 -2
- package/dist/generator/comment/comment-rule-generator.js +2 -2
- package/dist/generator/comment/config-comment-generator.js +2 -2
- package/dist/generator/comment/hint-comment-generator.js +2 -2
- package/dist/generator/comment/hint-generator.js +2 -2
- package/dist/generator/comment/metadata-comment-generator.js +2 -2
- package/dist/generator/comment/pre-processor-comment-generator.js +2 -2
- package/dist/generator/comment/simple-comment-generator.js +2 -2
- package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +21 -6
- package/dist/generator/cosmetic/cosmetic-rule-generator.js +2 -2
- package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +2 -2
- package/dist/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.js +38 -0
- package/dist/generator/cosmetic/html-filtering-body/html-filtering-body-generator.js +32 -0
- package/dist/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.js +65 -0
- package/dist/generator/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-generator.js +2 -2
- package/dist/generator/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-generator.js +2 -2
- package/dist/generator/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-generator.js +2 -2
- package/dist/generator/cosmetic/selector/attribute-selector-generator.js +42 -0
- package/dist/generator/cosmetic/selector/class-selector-generator.js +26 -0
- package/dist/generator/cosmetic/selector/complex-selector-generator.js +71 -0
- package/dist/generator/cosmetic/selector/id-selector-generator.js +26 -0
- package/dist/generator/cosmetic/selector/pseudo-class-selector-generator.js +35 -0
- package/dist/generator/cosmetic/selector/selector-combinator-generator.js +30 -0
- package/dist/generator/cosmetic/selector/selector-list-generator.js +41 -0
- package/dist/generator/cosmetic/selector/type-selector-generator.js +25 -0
- package/dist/generator/css/adg-css-injection-generator.js +5 -6
- package/dist/generator/filterlist-generator.js +2 -2
- package/dist/generator/index.js +2 -2
- package/dist/generator/misc/domain-list-generator.js +2 -2
- package/dist/generator/misc/list-items-generator.js +2 -2
- package/dist/generator/misc/logical-expression-generator.js +2 -2
- package/dist/generator/misc/modifier-generator.js +2 -2
- package/dist/generator/misc/modifier-list-generator.js +2 -2
- package/dist/generator/misc/parameter-list-generator.js +2 -2
- package/dist/generator/misc/value-generator.js +2 -2
- package/dist/generator/network/host-rule-generator.js +2 -2
- package/dist/generator/network/network-rule-generator.js +2 -2
- package/dist/generator/rule-generator.js +2 -2
- package/dist/index.js +4 -14
- package/dist/nodes/index.js +2 -2
- package/dist/package.json.js +3 -3
- package/dist/parser/base-parser.js +2 -2
- package/dist/parser/comment/agent-comment-parser.js +2 -2
- package/dist/parser/comment/agent-parser.js +2 -2
- package/dist/parser/comment/comment-parser.js +2 -2
- package/dist/parser/comment/config-comment-parser.js +2 -2
- package/dist/parser/comment/hint-comment-parser.js +2 -2
- package/dist/parser/comment/hint-parser.js +2 -2
- package/dist/parser/comment/metadata-comment-parser.js +2 -2
- package/dist/parser/comment/preprocessor-parser.js +2 -2
- package/dist/parser/comment/simple-comment-parser.js +2 -2
- package/dist/parser/cosmetic/cosmetic-rule-parser.js +10 -21
- package/dist/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.js +49 -0
- package/dist/parser/cosmetic/html-filtering-body/html-filtering-body-parser.js +70 -0
- package/dist/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.js +180 -0
- package/dist/parser/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-parser.js +2 -2
- package/dist/parser/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-parser.js +2 -2
- package/dist/parser/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-parser.js +2 -2
- package/dist/parser/cosmetic/selector/handlers/attribute-selector-handler.js +206 -0
- package/dist/parser/cosmetic/selector/handlers/class-selector-handler.js +48 -0
- package/dist/parser/cosmetic/selector/handlers/complex-selector-handler.js +67 -0
- package/dist/parser/cosmetic/selector/handlers/compound-selector-handler.js +97 -0
- package/dist/parser/cosmetic/selector/handlers/id-selector-handler.js +42 -0
- package/dist/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.js +128 -0
- package/dist/parser/cosmetic/selector/handlers/type-selector-handler.js +58 -0
- package/dist/parser/cosmetic/selector/selector-list-parser.js +164 -0
- package/dist/parser/css/adg-css-injection-parser.js +4 -5
- package/dist/parser/css/balancing.js +2 -2
- package/dist/parser/css/constants.js +2 -2
- package/dist/parser/css/css-token-stream.js +41 -4
- package/dist/parser/css/ubo-selector-parser.js +2 -2
- package/dist/parser/filterlist-parser.js +2 -2
- package/dist/parser/index.js +2 -2
- package/dist/parser/misc/app-list-parser.js +2 -2
- package/dist/parser/misc/domain-list-parser.js +2 -2
- package/dist/parser/misc/list-items-parser.js +2 -2
- package/dist/parser/misc/logical-expression-parser.js +2 -2
- package/dist/parser/misc/method-list-parser.js +2 -2
- package/dist/parser/misc/modifier-list.js +9 -3
- package/dist/parser/misc/modifier-parser.js +2 -2
- package/dist/parser/misc/parameter-list-parser.js +2 -2
- package/dist/parser/misc/stealth-option-list-parser.js +2 -2
- package/dist/parser/misc/ubo-parameter-list-parser.js +2 -2
- package/dist/parser/misc/value-parser.js +2 -2
- package/dist/parser/network/host-rule-parser.js +2 -2
- package/dist/parser/network/network-rule-parser.js +2 -2
- package/dist/parser/options.js +3 -2
- package/dist/parser/rule-parser.js +2 -2
- package/dist/types/common/ubo-html-filtering-body-common.d.ts +12 -0
- package/dist/types/compatibility-tables/compatibility-table-data.d.ts +3 -3
- package/dist/types/compatibility-tables/schemas/redirect.d.ts +1 -1
- package/dist/types/compatibility-tables/schemas/scriptlet.d.ts +2 -2
- package/dist/types/converter/cosmetic/html.d.ts +167 -42
- package/dist/types/converter/data/css.d.ts +18 -6
- package/dist/types/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/html-filtering-body/html-filtering-body-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.d.ts +30 -0
- package/dist/types/generator/cosmetic/selector/attribute-selector-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/class-selector-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/complex-selector-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/selector/id-selector-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/pseudo-class-selector-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/selector-combinator-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/selector-list-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/selector/type-selector-generator.d.ts +15 -0
- package/dist/types/generator/css/adg-css-injection-generator.d.ts +1 -1
- package/dist/types/index.d.ts +3 -13
- package/dist/types/nodes/index.d.ts +159 -3
- package/dist/types/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.d.ts +35 -0
- package/dist/types/parser/cosmetic/html-filtering-body/html-filtering-body-parser.d.ts +39 -0
- package/dist/types/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.d.ts +63 -0
- package/dist/types/parser/cosmetic/selector/context.d.ts +42 -0
- package/dist/types/parser/cosmetic/selector/handlers/attribute-selector-handler.d.ts +35 -0
- package/dist/types/parser/cosmetic/selector/handlers/class-selector-handler.d.ts +15 -0
- package/dist/types/parser/cosmetic/selector/handlers/complex-selector-handler.d.ts +20 -0
- package/dist/types/parser/cosmetic/selector/handlers/compound-selector-handler.d.ts +25 -0
- package/dist/types/parser/cosmetic/selector/handlers/id-selector-handler.d.ts +15 -0
- package/dist/types/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.d.ts +15 -0
- package/dist/types/parser/cosmetic/selector/handlers/type-selector-handler.d.ts +15 -0
- package/dist/types/parser/cosmetic/selector/selector-list-parser.d.ts +38 -0
- package/dist/types/parser/css/adg-css-injection-parser.d.ts +0 -2
- package/dist/types/parser/css/css-token-stream.d.ts +18 -0
- package/dist/types/parser/network/network-rule-parser.d.ts +1 -1
- package/dist/types/parser/options.d.ts +5 -0
- package/dist/types/utils/constants.d.ts +1 -0
- package/dist/types/utils/index.d.ts +0 -6
- package/dist/types/utils/quotes.d.ts +44 -0
- package/dist/types/utils/regexp.d.ts +24 -0
- package/dist/utils/adblockers.js +2 -2
- package/dist/utils/bit-count.js +2 -2
- package/dist/utils/categorizer.js +2 -2
- package/dist/utils/clone.js +2 -2
- package/dist/utils/constants.js +6 -9
- package/dist/utils/cosmetic-rule-separator.js +2 -2
- package/dist/utils/deep-freeze.js +2 -2
- package/dist/utils/domain.js +2 -2
- package/dist/utils/error.js +2 -2
- package/dist/utils/index.js +2 -8
- package/dist/utils/logical-expression.js +2 -2
- package/dist/utils/multi-value-map.js +2 -2
- package/dist/utils/noop-modifier.js +2 -2
- package/dist/utils/position-provider.js +2 -2
- package/dist/utils/quotes.js +163 -10
- package/dist/utils/regexp.js +31 -2
- package/dist/utils/string.js +2 -2
- package/dist/utils/type-guards.js +3 -13
- package/dist/validator/constants.js +2 -2
- package/dist/validator/helpers.js +2 -2
- package/dist/validator/index.js +2 -2
- package/dist/validator/value.js +2 -2
- package/dist/version.js +2 -2
- package/package.json +8 -16
- package/dist/deserializer/base-deserializer.js +0 -29
- package/dist/deserializer/comment/agent-comment-deserializer.js +0 -79
- package/dist/deserializer/comment/agent-deserializer.js +0 -65
- package/dist/deserializer/comment/comment-rule-deserializer.js +0 -54
- package/dist/deserializer/comment/config-comment-deserializer.js +0 -111
- package/dist/deserializer/comment/hint-comment-deserializer.js +0 -72
- package/dist/deserializer/comment/hint-deserializer.js +0 -85
- package/dist/deserializer/comment/metadata-comment-deserializer.js +0 -69
- package/dist/deserializer/comment/pre-processor-comment-deserializer.js +0 -112
- package/dist/deserializer/comment/simple-comment-deserializer.js +0 -65
- package/dist/deserializer/cosmetic/cosmetic-rule-deserializer.js +0 -131
- package/dist/deserializer/cosmetic/css-injection-body-deserializer.js +0 -56
- package/dist/deserializer/cosmetic/element-hiding-body-deserializer.js +0 -48
- package/dist/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +0 -39
- package/dist/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +0 -40
- package/dist/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +0 -54
- package/dist/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +0 -38
- package/dist/deserializer/empty-rule-deserializer.js +0 -48
- package/dist/deserializer/filterlist-deserializer.js +0 -85
- package/dist/deserializer/index.js +0 -8
- package/dist/deserializer/invalid-rule-deserializer.js +0 -50
- package/dist/deserializer/invalid-rule-error-node-deserializer.js +0 -50
- package/dist/deserializer/misc/domain-list-deserializer.js +0 -64
- package/dist/deserializer/misc/list-item-deserializer.js +0 -69
- package/dist/deserializer/misc/list-items-deserializer.js +0 -30
- package/dist/deserializer/misc/logical-expression-deserializer.js +0 -196
- package/dist/deserializer/misc/modifier-deserializer.js +0 -87
- package/dist/deserializer/misc/modifier-list-deserializer.js +0 -61
- package/dist/deserializer/misc/parameter-list-deserializer.js +0 -64
- package/dist/deserializer/misc/value-deserializer.js +0 -50
- package/dist/deserializer/network/host-rule-deserializer.js +0 -67
- package/dist/deserializer/network/hostname-list-deserializer.js +0 -56
- package/dist/deserializer/network/network-rule-deserializer.js +0 -65
- package/dist/deserializer/rule-deserializer.js +0 -65
- package/dist/deserializer/syntax-deserialization-map.js +0 -21
- package/dist/marshalling-utils/comment/agent-comment-common.js +0 -21
- package/dist/marshalling-utils/comment/agent-common.js +0 -40
- package/dist/marshalling-utils/comment/config-comment-common.js +0 -54
- package/dist/marshalling-utils/comment/hint-comment-common.js +0 -22
- package/dist/marshalling-utils/comment/hint-common.js +0 -56
- package/dist/marshalling-utils/comment/metadata-comment-common.js +0 -41
- package/dist/marshalling-utils/comment/pre-processor-comment-common.js +0 -59
- package/dist/marshalling-utils/comment/simple-comment-common.js +0 -22
- package/dist/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +0 -61
- package/dist/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +0 -66
- package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +0 -24
- package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +0 -21
- package/dist/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +0 -114
- package/dist/marshalling-utils/cosmetic/cosmetic-rule-common.js +0 -46
- package/dist/marshalling-utils/empty-rule-common.js +0 -20
- package/dist/marshalling-utils/filter-list-common.js +0 -21
- package/dist/marshalling-utils/invalid-rule-common.js +0 -21
- package/dist/marshalling-utils/invalid-rule-error-node-common.js +0 -22
- package/dist/marshalling-utils/misc/binary-type-common.js +0 -54
- package/dist/marshalling-utils/misc/domain-list-common.js +0 -36
- package/dist/marshalling-utils/misc/host-rule-common.js +0 -24
- package/dist/marshalling-utils/misc/hostname-list-common.js +0 -21
- package/dist/marshalling-utils/misc/list-item-common.js +0 -22
- package/dist/marshalling-utils/misc/logical-expression-common.js +0 -83
- package/dist/marshalling-utils/misc/modifier-common.js +0 -231
- package/dist/marshalling-utils/misc/modifier-list-common.js +0 -21
- package/dist/marshalling-utils/misc/parameter-list-common.js +0 -21
- package/dist/marshalling-utils/misc/value-common.js +0 -22
- package/dist/marshalling-utils/network/network-rule-common.js +0 -24
- package/dist/marshalling-utils/syntax-serialization-map.js +0 -30
- package/dist/serializer/base-serializer.js +0 -29
- package/dist/serializer/comment/agent-comment-serializer.js +0 -74
- package/dist/serializer/comment/agent-serializer.js +0 -59
- package/dist/serializer/comment/comment-rule-serializer.js +0 -105
- package/dist/serializer/comment/config-comment-serializer.js +0 -82
- package/dist/serializer/comment/hint-comment-serializer.js +0 -65
- package/dist/serializer/comment/hint-serializer.js +0 -54
- package/dist/serializer/comment/metadata-comment-serializer.js +0 -73
- package/dist/serializer/comment/pre-processor-comment-serializer.js +0 -71
- package/dist/serializer/comment/simple-comment-serializer.js +0 -52
- package/dist/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +0 -36
- package/dist/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +0 -36
- package/dist/serializer/cosmetic/body/scriptlet-body-serializer.js +0 -50
- package/dist/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +0 -36
- package/dist/serializer/cosmetic/cosmetic-rule-serializer.js +0 -120
- package/dist/serializer/cosmetic/css-injection-body-serializer.js +0 -51
- package/dist/serializer/cosmetic/element-hiding-body-serializer.js +0 -40
- package/dist/serializer/empty-rule-serializer.js +0 -37
- package/dist/serializer/filterlist-serializer.js +0 -45
- package/dist/serializer/index.js +0 -7
- package/dist/serializer/invalid-rule-error-node-serializer.js +0 -41
- package/dist/serializer/invalid-rule-serializer.js +0 -40
- package/dist/serializer/misc/domain-list-serializer.js +0 -64
- package/dist/serializer/misc/list-item-serializer.js +0 -58
- package/dist/serializer/misc/list-items-serializer.js +0 -29
- package/dist/serializer/misc/logical-expression-serializer.js +0 -136
- package/dist/serializer/misc/modifier-list-serializer.js +0 -58
- package/dist/serializer/misc/modifier-serializer.js +0 -49
- package/dist/serializer/misc/parameter-list-serializer.js +0 -52
- package/dist/serializer/misc/value-serializer.js +0 -50
- package/dist/serializer/network/host-rule-serializer.js +0 -70
- package/dist/serializer/network/hostname-list-serializer.js +0 -53
- package/dist/serializer/network/network-rule-serializer.js +0 -54
- package/dist/serializer/rule-serializer.js +0 -61
- package/dist/types/deserializer/base-deserializer.d.ts +0 -15
- package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +0 -34
- package/dist/types/deserializer/comment/agent-deserializer.d.ts +0 -25
- package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +0 -16
- package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +0 -27
- package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +0 -24
- package/dist/types/deserializer/comment/hint-deserializer.d.ts +0 -26
- package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +0 -26
- package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +0 -29
- package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +0 -26
- package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +0 -18
- package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +0 -15
- package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +0 -16
- package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +0 -17
- package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +0 -18
- package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +0 -19
- package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +0 -17
- package/dist/types/deserializer/empty-rule-deserializer.d.ts +0 -16
- package/dist/types/deserializer/filterlist-deserializer.d.ts +0 -34
- package/dist/types/deserializer/index.d.ts +0 -2
- package/dist/types/deserializer/invalid-rule-deserializer.d.ts +0 -16
- package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +0 -16
- package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +0 -15
- package/dist/types/deserializer/misc/list-item-deserializer.d.ts +0 -19
- package/dist/types/deserializer/misc/list-items-deserializer.d.ts +0 -16
- package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +0 -55
- package/dist/types/deserializer/misc/modifier-deserializer.d.ts +0 -18
- package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +0 -20
- package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +0 -18
- package/dist/types/deserializer/misc/value-deserializer.d.ts +0 -17
- package/dist/types/deserializer/network/host-rule-deserializer.d.ts +0 -18
- package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +0 -15
- package/dist/types/deserializer/network/network-rule-deserializer.d.ts +0 -18
- package/dist/types/deserializer/rule-deserializer.d.ts +0 -17
- package/dist/types/deserializer/syntax-deserialization-map.d.ts +0 -2
- package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +0 -14
- package/dist/types/marshalling-utils/comment/agent-common.d.ts +0 -20
- package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +0 -42
- package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +0 -15
- package/dist/types/marshalling-utils/comment/hint-common.d.ts +0 -33
- package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +0 -21
- package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +0 -37
- package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +0 -15
- package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +0 -23
- package/dist/types/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.d.ts +0 -9
- package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +0 -17
- package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +0 -14
- package/dist/types/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.d.ts +0 -9
- package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +0 -28
- package/dist/types/marshalling-utils/empty-rule-common.d.ts +0 -13
- package/dist/types/marshalling-utils/filter-list-common.d.ts +0 -14
- package/dist/types/marshalling-utils/invalid-rule-common.d.ts +0 -14
- package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +0 -15
- package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +0 -57
- package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +0 -24
- package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +0 -18
- package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +0 -14
- package/dist/types/marshalling-utils/misc/list-item-common.d.ts +0 -15
- package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +0 -47
- package/dist/types/marshalling-utils/misc/modifier-common.d.ts +0 -41
- package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +0 -14
- package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +0 -14
- package/dist/types/marshalling-utils/misc/value-common.d.ts +0 -15
- package/dist/types/marshalling-utils/network/network-rule-common.d.ts +0 -18
- package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +0 -2
- package/dist/types/serializer/base-serializer.d.ts +0 -15
- package/dist/types/serializer/comment/agent-comment-serializer.d.ts +0 -34
- package/dist/types/serializer/comment/agent-serializer.d.ts +0 -15
- package/dist/types/serializer/comment/comment-rule-serializer.d.ts +0 -68
- package/dist/types/serializer/comment/config-comment-serializer.d.ts +0 -25
- package/dist/types/serializer/comment/hint-comment-serializer.d.ts +0 -23
- package/dist/types/serializer/comment/hint-serializer.d.ts +0 -24
- package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +0 -25
- package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +0 -28
- package/dist/types/serializer/comment/simple-comment-serializer.d.ts +0 -24
- package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +0 -25
- package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +0 -25
- package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +0 -17
- package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +0 -25
- package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +0 -19
- package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +0 -15
- package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +0 -15
- package/dist/types/serializer/empty-rule-serializer.d.ts +0 -15
- package/dist/types/serializer/filterlist-serializer.d.ts +0 -15
- package/dist/types/serializer/index.d.ts +0 -1
- package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +0 -15
- package/dist/types/serializer/invalid-rule-serializer.d.ts +0 -15
- package/dist/types/serializer/misc/domain-list-serializer.d.ts +0 -21
- package/dist/types/serializer/misc/list-item-serializer.d.ts +0 -16
- package/dist/types/serializer/misc/list-items-serializer.d.ts +0 -15
- package/dist/types/serializer/misc/logical-expression-serializer.d.ts +0 -52
- package/dist/types/serializer/misc/modifier-list-serializer.d.ts +0 -20
- package/dist/types/serializer/misc/modifier-serializer.d.ts +0 -18
- package/dist/types/serializer/misc/parameter-list-serializer.d.ts +0 -17
- package/dist/types/serializer/misc/value-serializer.d.ts +0 -17
- package/dist/types/serializer/network/host-rule-serializer.d.ts +0 -30
- package/dist/types/serializer/network/hostname-list-serializer.d.ts +0 -15
- package/dist/types/serializer/network/network-rule-serializer.d.ts +0 -18
- package/dist/types/serializer/rule-serializer.d.ts +0 -17
- package/dist/types/utils/binary-schema-version.d.ts +0 -9
- package/dist/types/utils/byte-buffer.d.ts +0 -54
- package/dist/types/utils/input-byte-buffer.d.ts +0 -146
- package/dist/types/utils/is-chromium.d.ts +0 -7
- package/dist/types/utils/output-byte-buffer.d.ts +0 -132
- package/dist/types/utils/storage-interface.d.ts +0 -23
- package/dist/types/utils/text-decoder-polyfill.d.ts +0 -14
- package/dist/types/utils/text-encoder-polyfill.d.ts +0 -18
- package/dist/utils/binary-schema-version.js +0 -17
- package/dist/utils/byte-buffer.js +0 -91
- package/dist/utils/input-byte-buffer.js +0 -266
- package/dist/utils/is-chromium.js +0 -20
- package/dist/utils/output-byte-buffer.js +0 -231
- package/dist/utils/text-decoder-polyfill.js +0 -107
- package/dist/utils/text-encoder-polyfill.js +0 -78
- /package/dist/types/generator/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-generator.d.ts +0 -0
- /package/dist/types/generator/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-generator.d.ts +0 -0
- /package/dist/types/generator/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-generator.d.ts +0 -0
- /package/dist/types/parser/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-parser.d.ts +0 -0
- /package/dist/types/parser/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-parser.d.ts +0 -0
- /package/dist/types/parser/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-parser.d.ts +0 -0
package/dist/types/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* AdGuard HTML Filtering body generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class AdgHtmlFilteringBodyGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the AdGuard HTML filtering rule body.
|
|
9
|
+
*
|
|
10
|
+
* @param node HTML filtering rule body.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the rule body.
|
|
13
|
+
*
|
|
14
|
+
* @throws Error if the rule body is invalid.
|
|
15
|
+
*/
|
|
16
|
+
static generate(node: Value | HtmlFilteringRuleBody): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* HTML Filtering body generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class HtmlFilteringBodyGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the HTML filtering rule body.
|
|
9
|
+
*
|
|
10
|
+
* @param node HTML filtering rule body.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the rule body.
|
|
13
|
+
*
|
|
14
|
+
* @throws Error if the rule body is invalid.
|
|
15
|
+
*/
|
|
16
|
+
static generate(node: Value | HtmlFilteringRuleBody): string;
|
|
17
|
+
}
|
package/dist/types/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* uBlock HTML Filtering body generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class UboHtmlFilteringBodyGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the uBlock HTML filtering rule body
|
|
9
|
+
* and also uBlock-style response header removal rules.
|
|
10
|
+
*
|
|
11
|
+
* @param node HTML filtering rule body.
|
|
12
|
+
*
|
|
13
|
+
* @returns String representation of the rule body.
|
|
14
|
+
*
|
|
15
|
+
* @throws Error if the rule body is invalid.
|
|
16
|
+
*/
|
|
17
|
+
static generate(node: Value | HtmlFilteringRuleBody): string;
|
|
18
|
+
/**
|
|
19
|
+
* Generates a string representation of the uBlock-style response header removal rule.
|
|
20
|
+
*
|
|
21
|
+
* @param node Potential response header removal rule node.
|
|
22
|
+
*
|
|
23
|
+
* @returns String representation of the response header removal rule,
|
|
24
|
+
* or `null` if the node is not a response header removal rule.
|
|
25
|
+
*
|
|
26
|
+
* @note This method accepts `HtmlFilteringRuleBody` as `node` because,
|
|
27
|
+
* response header removal rule syntax is same as uBlock-style HTML filtering rule syntax.
|
|
28
|
+
*/
|
|
29
|
+
private static generateResponseHeaderRule;
|
|
30
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type AttributeSelector } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Attribute selector generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class AttributeSelectorGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the attribute selector.
|
|
9
|
+
*
|
|
10
|
+
* @param node Attribute selector node.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the attribute selector.
|
|
13
|
+
*/
|
|
14
|
+
static generate(node: AttributeSelector): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ClassSelector } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Class selector generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ClassSelectorGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the class selector.
|
|
9
|
+
*
|
|
10
|
+
* @param node Class selector node.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the class selector.
|
|
13
|
+
*/
|
|
14
|
+
static generate(node: ClassSelector): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ComplexSelector } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Complex selector generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ComplexSelectorGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the complex selector.
|
|
9
|
+
*
|
|
10
|
+
* @param node Complex selector node.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the complex selector.
|
|
13
|
+
*
|
|
14
|
+
* @throws Error if the `node` is invalid.
|
|
15
|
+
*/
|
|
16
|
+
static generate(node: ComplexSelector): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type IdSelector } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* ID selector generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class IdSelectorGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the ID selector.
|
|
9
|
+
*
|
|
10
|
+
* @param node ID selector node.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the ID selector.
|
|
13
|
+
*/
|
|
14
|
+
static generate(node: IdSelector): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type PseudoClassSelector } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Pseudo-class selector generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class PseudoClassSelectorGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the pseudo-class selector.
|
|
9
|
+
*
|
|
10
|
+
* @param node Pseudo-class selector node.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the pseudo-class selector.
|
|
13
|
+
*/
|
|
14
|
+
static generate(node: PseudoClassSelector): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type SelectorCombinator } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Selector combinator generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SelectorCombinatorGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the selector combinator.
|
|
9
|
+
*
|
|
10
|
+
* @param node Selector combinator node.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the selector combinator.
|
|
13
|
+
*/
|
|
14
|
+
static generate(node: SelectorCombinator): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type SelectorList } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Selector list generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SelectorListGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the selector list.
|
|
9
|
+
*
|
|
10
|
+
* @param node Selector list node.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the selector list.
|
|
13
|
+
*
|
|
14
|
+
* @throws Error if the `node` is invalid.
|
|
15
|
+
*/
|
|
16
|
+
static generate(node: SelectorList): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type TypeSelector } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseGenerator } from '../../base-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Type selector generator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class TypeSelectorGenerator extends BaseGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Generates a string representation of the type selector.
|
|
9
|
+
*
|
|
10
|
+
* @param node Type selector node.
|
|
11
|
+
*
|
|
12
|
+
* @returns String representation of the type selector.
|
|
13
|
+
*/
|
|
14
|
+
static generate(node: TypeSelector): string;
|
|
15
|
+
}
|
|
@@ -4,7 +4,7 @@ import { BaseGenerator } from '../base-generator.js';
|
|
|
4
4
|
* AdGuard CSS injection generator.
|
|
5
5
|
*/
|
|
6
6
|
export declare class AdgCssInjectionGenerator extends BaseGenerator {
|
|
7
|
-
private static
|
|
7
|
+
private static REMOVE_DECLARATION;
|
|
8
8
|
/**
|
|
9
9
|
* Serializes an AdGuard CSS injection node into a raw string.
|
|
10
10
|
*
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
* @file AGTree entry point
|
|
3
3
|
*/
|
|
4
4
|
export { RuleParser } from './parser/rule-parser.js';
|
|
5
|
-
export { RuleSerializer } from './serializer/rule-serializer.js';
|
|
6
|
-
export { RuleDeserializer } from './deserializer/rule-deserializer.js';
|
|
7
5
|
export { RuleGenerator } from './generator/rule-generator.js';
|
|
8
6
|
export { type OnParseError, defaultParserOptions, type ParserOptions } from './parser/options.js';
|
|
9
|
-
export { type Agent, type AgentCommentRule, type AnyCommentRule, type AnyCosmeticRule, type AnyExpressionNode, type AnyRule, type CommentBase, CommentMarker, type CommentRule, CommentRuleType, type ConfigCommentRule, type CosmeticRule, CosmeticRuleSeparator, CosmeticRuleType, type CssInjectionRule, type CssInjectionRuleBody, type Domain, type DomainList, type DomainListSeparator, type ElementHidingRule, type ElementHidingRuleBody, type EmptyRule, type ExpressionOperatorNode, type ExpressionParenthesisNode, type ExpressionVariableNode, type FilterList, type Hint, type HintCommentRule, type HtmlFilteringRule, type HtmlFilteringRuleBody, type JsInjectionRule, type Location, type LocationRange, type MetadataCommentRule, type Modifier, type ModifierList, type NetworkRule, type Node, type ParameterList, type PreProcessorCommentRule, type RuleBase, RuleCategory, type ScriptletInjectionRule, type ScriptletInjectionRuleBody, type Value, NetworkRuleType, type HostnameList, type HostRule, type AnyNetworkRule, } from './nodes/index.js';
|
|
7
|
+
export { type Agent, type AgentCommentRule, type AnyCommentRule, type AnyCosmeticRule, type AnyExpressionNode, type AnyRule, type CommentBase, CommentMarker, type CommentRule, CommentRuleType, type ConfigCommentRule, type CosmeticRule, CosmeticRuleSeparator, CosmeticRuleType, type CssInjectionRule, type CssInjectionRuleBody, type Domain, type DomainList, type DomainListSeparator, type ElementHidingRule, type ElementHidingRuleBody, type EmptyRule, type ExpressionOperatorNode, type ExpressionParenthesisNode, type ExpressionVariableNode, type FilterList, type Hint, type HintCommentRule, type HtmlFilteringRule, type HtmlFilteringRuleBody, type SelectorList, type SelectorCombinatorValue, type JsInjectionRule, type Location, type LocationRange, type MetadataCommentRule, type Modifier, type ModifierList, type NetworkRule, type Node, type ParameterList, type PreProcessorCommentRule, type RuleBase, RuleCategory, type ScriptletInjectionRule, type ScriptletInjectionRuleBody, type Value, NetworkRuleType, type HostnameList, type HostRule, type AnyNetworkRule, } from './nodes/index.js';
|
|
10
8
|
export { AdblockSyntaxError } from './errors/adblock-syntax-error.js';
|
|
11
9
|
export { AgentCommentParser } from './parser/comment/agent-comment-parser.js';
|
|
12
10
|
export { AgentParser } from './parser/comment/agent-parser.js';
|
|
@@ -18,8 +16,6 @@ export { DomainListParser } from './parser/misc/domain-list-parser.js';
|
|
|
18
16
|
export { MethodListParser } from './parser/misc/method-list-parser.js';
|
|
19
17
|
export { StealthOptionListParser } from './parser/misc/stealth-option-list-parser.js';
|
|
20
18
|
export { FilterListParser } from './parser/filterlist-parser.js';
|
|
21
|
-
export { FilterListSerializer } from './serializer/filterlist-serializer.js';
|
|
22
|
-
export { FilterListDeserializer } from './deserializer/filterlist-deserializer.js';
|
|
23
19
|
export { HintCommentParser } from './parser/comment/hint-comment-parser.js';
|
|
24
20
|
export { HintParser } from './parser/comment/hint-parser.js';
|
|
25
21
|
export { LogicalExpressionParser } from './parser/misc/logical-expression-parser.js';
|
|
@@ -36,7 +32,6 @@ export { BinarySchemaMismatchError } from './errors/binary-schema-mismatch-error
|
|
|
36
32
|
export { modifierValidator } from './validator/index.js';
|
|
37
33
|
export * from './converter/index.js';
|
|
38
34
|
export { ADG_SCRIPTLET_MASK, AGLINT_COMMAND_PREFIX, COMMA_DOMAIN_LIST_SEPARATOR, NEGATION_MARKER, HINT_MARKER, IF, INCLUDE, MODIFIERS_SEPARATOR, MODIFIER_ASSIGN_OPERATOR, PIPE_MODIFIER_SEPARATOR, NETWORK_RULE_EXCEPTION_MARKER, NETWORK_RULE_SEPARATOR, PREPROCESSOR_MARKER, SAFARI_CB_AFFINITY, UBO_SCRIPTLET_MASK, } from './utils/constants.js';
|
|
39
|
-
export { BINARY_SCHEMA_VERSION } from './utils/binary-schema-version.js';
|
|
40
35
|
export { AdblockSyntax, AdblockProduct, getHumanReadableProductName } from './utils/adblockers.js';
|
|
41
36
|
export { type CosmeticRuleSeparatorFinderResult, CosmeticRuleSeparatorUtils } from './utils/cosmetic-rule-separator.js';
|
|
42
37
|
export { DomainUtils } from './utils/domain.js';
|
|
@@ -44,13 +39,8 @@ export { type VariableTable, LogicalExpressionUtils } from './utils/logical-expr
|
|
|
44
39
|
export { ADBLOCK_URL_START, ADBLOCK_URL_START_REGEX, ADBLOCK_URL_SEPARATOR, ADBLOCK_URL_SEPARATOR_REGEX, ADBLOCK_WILDCARD, ADBLOCK_WILDCARD_REGEX, SPECIAL_REGEX_SYMBOLS, RegExpUtils, } from './utils/regexp.js';
|
|
45
40
|
export { QuoteType, QuoteUtils, } from './utils/quotes.js';
|
|
46
41
|
export { type Position, PositionProvider } from './utils/position-provider.js';
|
|
47
|
-
export { OutputByteBuffer } from './utils/output-byte-buffer.js';
|
|
48
|
-
export { InputByteBuffer } from './utils/input-byte-buffer.js';
|
|
49
|
-
export { ByteBuffer } from './utils/byte-buffer.js';
|
|
50
|
-
export { encodeIntoPolyfill, type TextEncoderPolyfillResult } from './utils/text-encoder-polyfill.js';
|
|
51
|
-
export { decodeTextPolyfill } from './utils/text-decoder-polyfill.js';
|
|
52
42
|
export { RuleCategorizer } from './utils/categorizer.js';
|
|
53
|
-
export {
|
|
43
|
+
export { NATIVE_CSS_PSEUDO_CLASSES, REMOVE_PROPERTY, } from './converter/data/css.js';
|
|
44
|
+
export { CssTokenStream } from './parser/css/css-token-stream.js';
|
|
54
45
|
export { GenericPlatform, SpecificPlatform, modifiersCompatibilityTable, redirectsCompatibilityTable, scriptletsCompatibilityTable, parseRawPlatforms, type CompatibilityTable, type CompatibilityTableRow, type ProductRecords, type RowByProduct, type RowsByProduct, isGenericPlatform, getPlatformId, getSpecificPlatformName, hasPlatformMultipleProducts, getProductGenericPlatforms, getProductSpecificPlatforms, platformToAdblockProduct, getPlatformsByProduct, getHumanReadablePlatformName, getAllPlatformNames, ResourceType, getResourceTypeModifier, isValidResourceType, stringifyPlatforms, type PlatformsByProduct, type AnyPlatform, PLATFORM_NEGATION, PLATFORM_SEPARATOR, } from './compatibility-tables/index.js';
|
|
55
46
|
export { AGTREE_VERSION } from './version.js';
|
|
56
|
-
export { getSyntaxSerializationMap } from './marshalling-utils/syntax-serialization-map.js';
|
|
@@ -860,15 +860,171 @@ export interface ScriptletInjectionRuleBody extends Node {
|
|
|
860
860
|
*/
|
|
861
861
|
children: ParameterList[];
|
|
862
862
|
}
|
|
863
|
+
/**
|
|
864
|
+
* Represents a type selector.
|
|
865
|
+
*
|
|
866
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#type-selectors}
|
|
867
|
+
*/
|
|
868
|
+
export interface TypeSelector extends Node {
|
|
869
|
+
type: 'TypeSelector';
|
|
870
|
+
/**
|
|
871
|
+
* Value of the type selector.
|
|
872
|
+
*/
|
|
873
|
+
value: string;
|
|
874
|
+
}
|
|
875
|
+
/**
|
|
876
|
+
* Represents a class selector.
|
|
877
|
+
*
|
|
878
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#class-html}
|
|
879
|
+
*/
|
|
880
|
+
export interface ClassSelector extends Node {
|
|
881
|
+
type: 'ClassSelector';
|
|
882
|
+
/**
|
|
883
|
+
* Value of the class selector (without dot).
|
|
884
|
+
*/
|
|
885
|
+
value: string;
|
|
886
|
+
}
|
|
887
|
+
/**
|
|
888
|
+
* Represents an ID selector.
|
|
889
|
+
*
|
|
890
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#id-selectors}
|
|
891
|
+
*/
|
|
892
|
+
export interface IdSelector extends Node {
|
|
893
|
+
type: 'IdSelector';
|
|
894
|
+
/**
|
|
895
|
+
* Value of the ID selector (without hash).
|
|
896
|
+
*/
|
|
897
|
+
value: string;
|
|
898
|
+
}
|
|
899
|
+
/**
|
|
900
|
+
* Represents an attribute selector without value.
|
|
901
|
+
*
|
|
902
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
|
|
903
|
+
*/
|
|
904
|
+
export interface AttributeSelectorWithoutValue extends Node {
|
|
905
|
+
type: 'AttributeSelector';
|
|
906
|
+
/**
|
|
907
|
+
* Name of the attribute selector.
|
|
908
|
+
*/
|
|
909
|
+
name: Value;
|
|
910
|
+
}
|
|
911
|
+
/**
|
|
912
|
+
* Represents CSS attribute selector operator values.
|
|
913
|
+
*
|
|
914
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
|
|
915
|
+
*/
|
|
916
|
+
export type AttributeSelectorOperatorValue = '=' | '~=' | '|=' | '^=' | '$=' | '*=';
|
|
917
|
+
/**
|
|
918
|
+
* Represents CSS attribute selector flag values.
|
|
919
|
+
*
|
|
920
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
|
|
921
|
+
*/
|
|
922
|
+
export type AttributeSelectorFlagValue = 'i' | 's';
|
|
923
|
+
/**
|
|
924
|
+
* Represents an attribute selector with value.
|
|
925
|
+
*
|
|
926
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
|
|
927
|
+
*/
|
|
928
|
+
export interface AttributeSelectorWithValue extends Node {
|
|
929
|
+
type: 'AttributeSelector';
|
|
930
|
+
/**
|
|
931
|
+
* Name of the attribute selector.
|
|
932
|
+
*/
|
|
933
|
+
name: Value;
|
|
934
|
+
/**
|
|
935
|
+
* Operator of the attribute selector.
|
|
936
|
+
*/
|
|
937
|
+
operator: Value<AttributeSelectorOperatorValue>;
|
|
938
|
+
/**
|
|
939
|
+
* Value of the attribute selector.
|
|
940
|
+
*/
|
|
941
|
+
value: Value;
|
|
942
|
+
/**
|
|
943
|
+
* Optional flag of the attribute selector.
|
|
944
|
+
*/
|
|
945
|
+
flag?: Value<AttributeSelectorFlagValue>;
|
|
946
|
+
}
|
|
947
|
+
/**
|
|
948
|
+
* Represents an attribute selector.
|
|
949
|
+
*
|
|
950
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#attribute-selectors}
|
|
951
|
+
*/
|
|
952
|
+
export type AttributeSelector = AttributeSelectorWithoutValue | AttributeSelectorWithValue;
|
|
953
|
+
/**
|
|
954
|
+
* Represents a pseudo-class selector.
|
|
955
|
+
*
|
|
956
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#pseudo-classes}
|
|
957
|
+
*/
|
|
958
|
+
export interface PseudoClassSelector extends Node {
|
|
959
|
+
type: 'PseudoClassSelector';
|
|
960
|
+
/**
|
|
961
|
+
* Name of the pseudo-class selector.
|
|
962
|
+
*/
|
|
963
|
+
name: Value;
|
|
964
|
+
/**
|
|
965
|
+
* Optional argument of the pseudo-class selector.
|
|
966
|
+
* If not specified, the pseudo-class is not callable (e.g., `:hover`).
|
|
967
|
+
* If specified, the pseudo-class is callable (e.g., `:nth-child(2n+1)`).
|
|
968
|
+
*/
|
|
969
|
+
argument?: Value;
|
|
970
|
+
}
|
|
971
|
+
/**
|
|
972
|
+
* Represents a simple CSS selector.
|
|
973
|
+
*
|
|
974
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#simple}
|
|
975
|
+
*/
|
|
976
|
+
export type SimpleSelector = TypeSelector | ClassSelector | IdSelector | AttributeSelector | PseudoClassSelector;
|
|
977
|
+
/**
|
|
978
|
+
* Represents selector combinator values.
|
|
979
|
+
*
|
|
980
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#combinators}
|
|
981
|
+
*/
|
|
982
|
+
export type SelectorCombinatorValue = ' ' | '>' | '+' | '~';
|
|
983
|
+
/**
|
|
984
|
+
* Represents selector combinators.
|
|
985
|
+
*
|
|
986
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#combinators}
|
|
987
|
+
*/
|
|
988
|
+
export interface SelectorCombinator extends Node {
|
|
989
|
+
type: 'SelectorCombinator';
|
|
990
|
+
/**
|
|
991
|
+
* Value of the combinator.
|
|
992
|
+
*/
|
|
993
|
+
value: SelectorCombinatorValue;
|
|
994
|
+
}
|
|
995
|
+
/**
|
|
996
|
+
* Represents a complex selector.
|
|
997
|
+
*
|
|
998
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#complex}
|
|
999
|
+
*/
|
|
1000
|
+
export interface ComplexSelector extends Node {
|
|
1001
|
+
type: 'ComplexSelector';
|
|
1002
|
+
/**
|
|
1003
|
+
* List of simple selectors and combinators that form a complex selector.
|
|
1004
|
+
*/
|
|
1005
|
+
children: (SimpleSelector | SelectorCombinator)[];
|
|
1006
|
+
}
|
|
1007
|
+
/**
|
|
1008
|
+
* Represents a selector list.
|
|
1009
|
+
*
|
|
1010
|
+
* @see {@link https://www.w3.org/TR/selectors-4/#selector-list}
|
|
1011
|
+
*/
|
|
1012
|
+
export interface SelectorList extends Node {
|
|
1013
|
+
type: 'SelectorList';
|
|
1014
|
+
/**
|
|
1015
|
+
* List of complex selectors separated by commas.
|
|
1016
|
+
*/
|
|
1017
|
+
children: ComplexSelector[];
|
|
1018
|
+
}
|
|
863
1019
|
/**
|
|
864
1020
|
* Represents an HTML filtering rule body.
|
|
865
1021
|
*/
|
|
866
1022
|
export interface HtmlFilteringRuleBody extends Node {
|
|
867
1023
|
type: 'HtmlFilteringRuleBody';
|
|
868
1024
|
/**
|
|
869
|
-
*
|
|
1025
|
+
* CSS selector list.
|
|
870
1026
|
*/
|
|
871
|
-
|
|
1027
|
+
selectorList: SelectorList;
|
|
872
1028
|
}
|
|
873
1029
|
/**
|
|
874
1030
|
* A generic representation of a cosmetic rule.
|
|
@@ -1013,7 +1169,7 @@ export interface ScriptletInjectionRule extends CosmeticRule {
|
|
|
1013
1169
|
*/
|
|
1014
1170
|
export interface HtmlFilteringRule extends CosmeticRule {
|
|
1015
1171
|
type: typeof CosmeticRuleType.HtmlFilteringRule;
|
|
1016
|
-
body: Value;
|
|
1172
|
+
body: Value | HtmlFilteringRuleBody;
|
|
1017
1173
|
}
|
|
1018
1174
|
/**
|
|
1019
1175
|
* Representation of a JS injection rule.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseParser } from '../../base-parser.js';
|
|
3
|
+
/**
|
|
4
|
+
* `AdgHtmlFilteringBodyParser` is responsible for parsing the body of an AdGuard-style HTML filtering rule.
|
|
5
|
+
*
|
|
6
|
+
* Please note that the parser will parse any HTML filtering rule if it is syntactically correct.
|
|
7
|
+
* For example, it will parse this:
|
|
8
|
+
* ```adblock
|
|
9
|
+
* example.com$$div[special-attr="value"]
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* but it didn't check if the attribute `special-attr` actually supported by any adblocker.
|
|
13
|
+
*
|
|
14
|
+
* @see {@link https://www.w3.org/TR/selectors-4}
|
|
15
|
+
* @see {@link https://adguard.com/kb/general/ad-filtering/create-own-filters/#html-filtering-rules}
|
|
16
|
+
*/
|
|
17
|
+
export declare class AdgHtmlFilteringBodyParser extends BaseParser {
|
|
18
|
+
/**
|
|
19
|
+
* Parses the body of an AdGuard-style HTML filtering rule.
|
|
20
|
+
*
|
|
21
|
+
* @param raw Raw input to parse.
|
|
22
|
+
* @param options Global parser options.
|
|
23
|
+
* @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
|
|
24
|
+
*
|
|
25
|
+
* @returns Node of the parsed HTML filtering rule body.
|
|
26
|
+
*
|
|
27
|
+
* @throws If the body is syntactically incorrect.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```
|
|
31
|
+
* div[some_attribute="some_value"]
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
static parse(raw: string, options?: import("../../index.js").ParserOptions, baseOffset?: number): Value | HtmlFilteringRuleBody;
|
|
35
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseParser } from '../../base-parser.js';
|
|
3
|
+
/**
|
|
4
|
+
* Class responsible for parsing HTML filtering rule body.
|
|
5
|
+
*
|
|
6
|
+
* Please note that the parser will parse any HTML filtering rule body if it is syntactically correct.
|
|
7
|
+
* For example, it will parse this:
|
|
8
|
+
* ```adblock
|
|
9
|
+
* span[special-attr="Example"]
|
|
10
|
+
* div:special-pseudo(Example)
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* but it didn't check if the pseudo selector `special-pseudo` or if
|
|
14
|
+
* the attribute selector `special-attr` actually supported by any adblocker.
|
|
15
|
+
*
|
|
16
|
+
* @see {@link https://www.w3.org/TR/selectors-4}
|
|
17
|
+
* @see {@link https://adguard.com/kb/general/ad-filtering/create-own-filters/#html-filtering-rules}
|
|
18
|
+
* @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#html-filters}
|
|
19
|
+
*/
|
|
20
|
+
export declare class HtmlFilteringBodyParser extends BaseParser {
|
|
21
|
+
/**
|
|
22
|
+
* Parses a HTML filtering rule body.
|
|
23
|
+
*
|
|
24
|
+
* @param raw Raw input to parse.
|
|
25
|
+
* @param options Global parser options.
|
|
26
|
+
* @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
|
|
27
|
+
*
|
|
28
|
+
* @returns Node of the parsed HTML filtering rule body.
|
|
29
|
+
*
|
|
30
|
+
* @throws If the body is syntactically incorrect.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```
|
|
34
|
+
* span[tag-content="Example"]
|
|
35
|
+
* div:has-text(Example)
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
static parse(raw: string, options?: import("../../index.js").ParserOptions, baseOffset?: number): Value | HtmlFilteringRuleBody;
|
|
39
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type Value, type HtmlFilteringRuleBody } from '../../../nodes/index.js';
|
|
2
|
+
import { BaseParser } from '../../base-parser.js';
|
|
3
|
+
/**
|
|
4
|
+
* `UboHtmlFilteringBodyParser` is responsible for parsing the body of
|
|
5
|
+
* an uBlock-style HTML filtering rule, and also uBlock-style response header removal rule.
|
|
6
|
+
*
|
|
7
|
+
* Please note that the parser will parse any HTML filtering rule if it is syntactically correct.
|
|
8
|
+
* For example, it will parse this:
|
|
9
|
+
* ```adblock
|
|
10
|
+
* example.com##^script:pseudo(content)
|
|
11
|
+
* example.com##^responseheader(header-name)
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* but it didn't check if the pseudo selector `pseudo` or if
|
|
15
|
+
* the header name `header-name` actually supported by any adblocker.
|
|
16
|
+
*
|
|
17
|
+
* @see {@link https://www.w3.org/TR/selectors-4}
|
|
18
|
+
* @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#html-filters}
|
|
19
|
+
* @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#response-header-filtering}
|
|
20
|
+
*/
|
|
21
|
+
export declare class UboHtmlFilteringBodyParser extends BaseParser {
|
|
22
|
+
/**
|
|
23
|
+
* Parses the body of an uBlock-style HTML filtering rule
|
|
24
|
+
* and also uBlock-style response header removal rule.
|
|
25
|
+
*
|
|
26
|
+
* @param raw Raw input to parse.
|
|
27
|
+
* @param options Global parser options.
|
|
28
|
+
* @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
|
|
29
|
+
*
|
|
30
|
+
* @returns Node of the parsed HTML filtering rule body.
|
|
31
|
+
*
|
|
32
|
+
* @throws If the body is syntactically incorrect.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```
|
|
36
|
+
* div:has-text(Example)
|
|
37
|
+
* responseheader(header-name)
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
static parse(raw: string, options?: import("../../index.js").ParserOptions, baseOffset?: number): Value | HtmlFilteringRuleBody;
|
|
41
|
+
/**
|
|
42
|
+
* Parses uBlock-style response header removal rule body.
|
|
43
|
+
*
|
|
44
|
+
* @param raw Raw input to parse.
|
|
45
|
+
* @param options Global parser options.
|
|
46
|
+
* @param baseOffset Starting offset of the input. Node locations are calculated relative to this offset.
|
|
47
|
+
*
|
|
48
|
+
* @returns Node of the parsed response header removal rule body
|
|
49
|
+
* or `null` if the body is not a response header removal rule.
|
|
50
|
+
*
|
|
51
|
+
* @throws If the body is syntactically incorrect.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```
|
|
55
|
+
* responseheader(header-name)
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @note This method returns `HtmlFilteringRuleBody` because,
|
|
59
|
+
* response header removal rule syntax is same as uBlock-style
|
|
60
|
+
* HTML filtering rule syntax.
|
|
61
|
+
*/
|
|
62
|
+
static parseResponseHeaderRule(raw: string, options?: import("../../index.js").ParserOptions, baseOffset?: number): HtmlFilteringRuleBody | null;
|
|
63
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type ParserOptions } from '../../options.js';
|
|
2
|
+
import { type TokenData, type CssTokenStream } from '../../css/css-token-stream.js';
|
|
3
|
+
import { type SelectorList, type ComplexSelector } from '../../../nodes/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Interface that represents current selector list parser context.
|
|
6
|
+
*/
|
|
7
|
+
export interface SelectorListParserContext {
|
|
8
|
+
/**
|
|
9
|
+
* Raw input string being parsed.
|
|
10
|
+
*
|
|
11
|
+
* Note: This is the full raw string, not just the part being currently parsed.
|
|
12
|
+
*/
|
|
13
|
+
raw: string;
|
|
14
|
+
/**
|
|
15
|
+
* Global parser options.
|
|
16
|
+
*/
|
|
17
|
+
options: ParserOptions;
|
|
18
|
+
/**
|
|
19
|
+
* Starting offset of the input. Node locations are calculated relative to this offset.
|
|
20
|
+
*/
|
|
21
|
+
baseOffset: number;
|
|
22
|
+
/**
|
|
23
|
+
* CSS token stream used for parsing.
|
|
24
|
+
*/
|
|
25
|
+
stream: CssTokenStream;
|
|
26
|
+
/**
|
|
27
|
+
* Current token being processed.
|
|
28
|
+
*/
|
|
29
|
+
token: TokenData;
|
|
30
|
+
/**
|
|
31
|
+
* Resulting selector list node.
|
|
32
|
+
*/
|
|
33
|
+
result: SelectorList;
|
|
34
|
+
/**
|
|
35
|
+
* Currently processed complex selector node.
|
|
36
|
+
*/
|
|
37
|
+
complexSelector: ComplexSelector;
|
|
38
|
+
/**
|
|
39
|
+
* Indicates whether the type selector is already set for `complexSelector`.
|
|
40
|
+
*/
|
|
41
|
+
isTypeSelectorSet: boolean;
|
|
42
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type SelectorListParserContext } from '../context.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handles attribute selector parsing in selector list.
|
|
4
|
+
*/
|
|
5
|
+
export declare class AttributeSelectorHandler {
|
|
6
|
+
/**
|
|
7
|
+
* Set of attribute equality prefixes.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link AttributeSelectorOperatorValue}
|
|
10
|
+
*/
|
|
11
|
+
private static readonly ATTR_EQUALITY_PREFIXES;
|
|
12
|
+
/**
|
|
13
|
+
* Set of valid flags for attribute selector values.
|
|
14
|
+
*
|
|
15
|
+
* @see {@link AttributeSelectorFlagValue}
|
|
16
|
+
*/
|
|
17
|
+
private static readonly ALLOWED_ATTRIBUTE_FLAGS;
|
|
18
|
+
/**
|
|
19
|
+
* Handles attribute selector parsing by creating an attribute selector node
|
|
20
|
+
* and appending it to the current complex selector node.
|
|
21
|
+
*
|
|
22
|
+
* @param context Selector list parser context.
|
|
23
|
+
*
|
|
24
|
+
* @throws If the attribute selector is syntactically incorrect.
|
|
25
|
+
*/
|
|
26
|
+
static handle(context: SelectorListParserContext): void;
|
|
27
|
+
/**
|
|
28
|
+
* Validates attribute selector flag.
|
|
29
|
+
*
|
|
30
|
+
* @param flag Attribute selector flag.
|
|
31
|
+
*
|
|
32
|
+
* @returns `true` if the flag is valid, otherwise `false`.
|
|
33
|
+
*/
|
|
34
|
+
private static isValidFlag;
|
|
35
|
+
}
|