@adguard/agtree 3.4.3 → 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 +2 -2
- 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 +2 -2
- 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 +6 -14
- 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
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
8
|
-
import { NULL } from '../../utils/constants.js';
|
|
9
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
10
|
-
import { CssInjectionRuleMarshallingMap } from '../../marshalling-utils/cosmetic/body/css-injection-body-common.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Deserializes CSS injection rule body nodes from binary format.
|
|
15
|
-
*/
|
|
16
|
-
class CssInjectionBodyDeserializer extends BaseDeserializer {
|
|
17
|
-
/**
|
|
18
|
-
* Deserializes CSS injection rule body node from binary format.
|
|
19
|
-
*
|
|
20
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
21
|
-
* @param node Destination node.
|
|
22
|
-
*/
|
|
23
|
-
static deserialize(buffer, node) {
|
|
24
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.CssInjectionRuleBody);
|
|
25
|
-
node.type = 'CssInjectionRuleBody';
|
|
26
|
-
node.remove = false;
|
|
27
|
-
let prop = buffer.readUint8();
|
|
28
|
-
while (prop !== NULL) {
|
|
29
|
-
switch (prop) {
|
|
30
|
-
case CssInjectionRuleMarshallingMap.MediaQueryList:
|
|
31
|
-
ValueDeserializer.deserialize(buffer, node.mediaQueryList = {});
|
|
32
|
-
break;
|
|
33
|
-
case CssInjectionRuleMarshallingMap.SelectorList:
|
|
34
|
-
ValueDeserializer.deserialize(buffer, node.selectorList = {});
|
|
35
|
-
break;
|
|
36
|
-
case CssInjectionRuleMarshallingMap.DeclarationList:
|
|
37
|
-
ValueDeserializer.deserialize(buffer, node.declarationList = {});
|
|
38
|
-
break;
|
|
39
|
-
case CssInjectionRuleMarshallingMap.Remove:
|
|
40
|
-
node.remove = true;
|
|
41
|
-
break;
|
|
42
|
-
case CssInjectionRuleMarshallingMap.Start:
|
|
43
|
-
node.start = buffer.readUint32();
|
|
44
|
-
break;
|
|
45
|
-
case CssInjectionRuleMarshallingMap.End:
|
|
46
|
-
node.end = buffer.readUint32();
|
|
47
|
-
break;
|
|
48
|
-
default:
|
|
49
|
-
throw new Error(`Unknown property: ${prop}`);
|
|
50
|
-
}
|
|
51
|
-
prop = buffer.readUint8();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export { CssInjectionBodyDeserializer };
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
8
|
-
import { NULL } from '../../utils/constants.js';
|
|
9
|
-
import { ElementHidingRuleMarshallingMap } from '../../marshalling-utils/cosmetic/body/element-hiding-body-common.js';
|
|
10
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/* eslint-disable no-param-reassign */
|
|
14
|
-
/**
|
|
15
|
-
* Deserializes element hiding rule body nodes from binary data.
|
|
16
|
-
* Populates the provided node with the deserialized data.
|
|
17
|
-
*/
|
|
18
|
-
class ElementHidingBodyDeserializer extends BaseDeserializer {
|
|
19
|
-
/**
|
|
20
|
-
* Deserializes an element hiding rule body node from binary format.
|
|
21
|
-
*
|
|
22
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
23
|
-
* @param node Destination node.
|
|
24
|
-
*/
|
|
25
|
-
static deserializeElementHidingBody(buffer, node) {
|
|
26
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ElementHidingRuleBody);
|
|
27
|
-
node.type = 'ElementHidingRuleBody';
|
|
28
|
-
let prop = buffer.readUint8();
|
|
29
|
-
while (prop !== NULL) {
|
|
30
|
-
switch (prop) {
|
|
31
|
-
case ElementHidingRuleMarshallingMap.SelectorList:
|
|
32
|
-
ValueDeserializer.deserialize(buffer, node.selectorList = {});
|
|
33
|
-
break;
|
|
34
|
-
case ElementHidingRuleMarshallingMap.Start:
|
|
35
|
-
node.start = buffer.readUint32();
|
|
36
|
-
break;
|
|
37
|
-
case ElementHidingRuleMarshallingMap.End:
|
|
38
|
-
node.end = buffer.readUint32();
|
|
39
|
-
break;
|
|
40
|
-
default:
|
|
41
|
-
throw new Error(`Unknown property: ${prop}`);
|
|
42
|
-
}
|
|
43
|
-
prop = buffer.readUint8();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export { ElementHidingBodyDeserializer };
|
package/dist/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { BaseDeserializer } from '../../base-deserializer.js';
|
|
8
|
-
import { ScriptletBodyDeserializer } from './scriptlet-body-deserializer.js';
|
|
9
|
-
import { FREQUENT_ABP_SNIPPET_ARGS_SERIALIZATION_MAP } from '../../../marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
13
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
14
|
-
*/
|
|
15
|
-
let frequentAbpSnippetArgsDeserializationMap;
|
|
16
|
-
const getFrequentAbpSnippetArgsDeserializationMap = () => {
|
|
17
|
-
if (!frequentAbpSnippetArgsDeserializationMap) {
|
|
18
|
-
frequentAbpSnippetArgsDeserializationMap = new Map(Array.from(FREQUENT_ABP_SNIPPET_ARGS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
19
|
-
}
|
|
20
|
-
return frequentAbpSnippetArgsDeserializationMap;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Deserializer for ABP snippet injection rule body nodes.
|
|
24
|
-
* Converts binary data into a structured format using a map of frequently used arguments.
|
|
25
|
-
*/
|
|
26
|
-
class AbpSnippetInjectionBodyDeserializer extends BaseDeserializer {
|
|
27
|
-
/**
|
|
28
|
-
* Deserializes a scriptlet call body node from binary format.
|
|
29
|
-
*
|
|
30
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
31
|
-
* @param node Destination node.
|
|
32
|
-
* @throws If the binary data is malformed.
|
|
33
|
-
*/
|
|
34
|
-
static deserialize(buffer, node) {
|
|
35
|
-
ScriptletBodyDeserializer.deserialize(buffer, node, getFrequentAbpSnippetArgsDeserializationMap());
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export { AbpSnippetInjectionBodyDeserializer };
|
package/dist/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { BaseDeserializer } from '../../base-deserializer.js';
|
|
8
|
-
import { ScriptletBodyDeserializer } from './scriptlet-body-deserializer.js';
|
|
9
|
-
import { FREQUENT_ADG_SCRIPTLET_ARGS_SERIALIZATION_MAP } from '../../../marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
13
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
14
|
-
*/
|
|
15
|
-
let frequentAdgScriptletArgsDeserializationMap;
|
|
16
|
-
const getFrequentAdgScriptletArgsDeserializationMap = () => {
|
|
17
|
-
if (!frequentAdgScriptletArgsDeserializationMap) {
|
|
18
|
-
frequentAdgScriptletArgsDeserializationMap = new Map(Array.from(FREQUENT_ADG_SCRIPTLET_ARGS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
19
|
-
}
|
|
20
|
-
return frequentAdgScriptletArgsDeserializationMap;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Deserializer for AdGuard scriptlet injection body nodes.
|
|
24
|
-
* Converts binary data into a structured scriptlet call body node specific to AdGuard,
|
|
25
|
-
* using a predefined deserialization map for frequently used scriptlet arguments.
|
|
26
|
-
*/
|
|
27
|
-
class AdgScriptletInjectionBodyDeserializer extends BaseDeserializer {
|
|
28
|
-
/**
|
|
29
|
-
* Deserializes a scriptlet call body node from binary format.
|
|
30
|
-
*
|
|
31
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
32
|
-
* @param node Destination node.
|
|
33
|
-
* @throws If the binary data is malformed.
|
|
34
|
-
*/
|
|
35
|
-
static deserialize(buffer, node) {
|
|
36
|
-
ScriptletBodyDeserializer.deserialize(buffer, node, getFrequentAdgScriptletArgsDeserializationMap());
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export { AdgScriptletInjectionBodyDeserializer };
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { NULL } from '../../../utils/constants.js';
|
|
8
|
-
import { ParameterListDeserializer } from '../../misc/parameter-list-deserializer.js';
|
|
9
|
-
import { BaseDeserializer } from '../../base-deserializer.js';
|
|
10
|
-
import { AbpSnippetBodyMarshallingMap } from '../../../marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../../../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Deserializes binary data into scriptlet body nodes.
|
|
15
|
-
* Optionally uses a map of frequently used scriptlet arguments.
|
|
16
|
-
*/
|
|
17
|
-
class ScriptletBodyDeserializer extends BaseDeserializer {
|
|
18
|
-
/**
|
|
19
|
-
* Deserializes a hint rule node from binary format.
|
|
20
|
-
*
|
|
21
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
22
|
-
* @param node Destination node.
|
|
23
|
-
* @param frequentScriptletArgs Map of frequently used scriptlet names / arguments
|
|
24
|
-
* and their serialization index (optional).
|
|
25
|
-
* @throws If the binary data is malformed.
|
|
26
|
-
*/
|
|
27
|
-
static deserialize = (buffer, node, frequentScriptletArgs) => {
|
|
28
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ScriptletInjectionRuleBodyNode);
|
|
29
|
-
node.type = 'ScriptletInjectionRuleBody';
|
|
30
|
-
let prop = buffer.readUint8();
|
|
31
|
-
while (prop !== NULL) {
|
|
32
|
-
switch (prop) {
|
|
33
|
-
case AbpSnippetBodyMarshallingMap.Children:
|
|
34
|
-
node.children = new Array(buffer.readUint8());
|
|
35
|
-
// read children
|
|
36
|
-
for (let i = 0; i < node.children.length; i += 1) {
|
|
37
|
-
ParameterListDeserializer.deserialize(buffer, node.children[i] = {}, frequentScriptletArgs);
|
|
38
|
-
}
|
|
39
|
-
break;
|
|
40
|
-
case AbpSnippetBodyMarshallingMap.Start:
|
|
41
|
-
node.start = buffer.readUint32();
|
|
42
|
-
break;
|
|
43
|
-
case AbpSnippetBodyMarshallingMap.End:
|
|
44
|
-
node.end = buffer.readUint32();
|
|
45
|
-
break;
|
|
46
|
-
default:
|
|
47
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
48
|
-
}
|
|
49
|
-
prop = buffer.readUint8();
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export { ScriptletBodyDeserializer };
|
package/dist/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { BaseDeserializer } from '../../base-deserializer.js';
|
|
8
|
-
import { ScriptletBodyDeserializer } from './scriptlet-body-deserializer.js';
|
|
9
|
-
import { FREQUENT_UBO_SCRIPTLET_ARGS_SERIALIZATION_MAP } from '../../../marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
13
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
14
|
-
*/
|
|
15
|
-
let frequentUboScriptletArgsDeserializationMap;
|
|
16
|
-
const getFrequentPlatformsDeserializationMap = () => {
|
|
17
|
-
if (!frequentUboScriptletArgsDeserializationMap) {
|
|
18
|
-
frequentUboScriptletArgsDeserializationMap = new Map(Array.from(FREQUENT_UBO_SCRIPTLET_ARGS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
19
|
-
}
|
|
20
|
-
return frequentUboScriptletArgsDeserializationMap;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Deserializes uBlock Origin scriptlet injection body nodes from binary data.
|
|
24
|
-
*/
|
|
25
|
-
class UboScriptletInjectionBodyDeserializer extends BaseDeserializer {
|
|
26
|
-
/**
|
|
27
|
-
* Deserializes a scriptlet call body node from binary format.
|
|
28
|
-
*
|
|
29
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
30
|
-
* @param node Destination node to populate with deserialized data.
|
|
31
|
-
* @throws If the binary data is malformed.
|
|
32
|
-
*/
|
|
33
|
-
static deserialize(buffer, node) {
|
|
34
|
-
ScriptletBodyDeserializer.deserialize(buffer, node, getFrequentPlatformsDeserializationMap());
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export { UboScriptletInjectionBodyDeserializer, getFrequentPlatformsDeserializationMap };
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { BaseDeserializer } from './base-deserializer.js';
|
|
8
|
-
import { RuleCategory } from '../nodes/index.js';
|
|
9
|
-
import { NULL } from '../utils/constants.js';
|
|
10
|
-
import { EmptyRuleMarshallingMap } from '../marshalling-utils/empty-rule-common.js';
|
|
11
|
-
import { AdblockSyntax } from '../utils/adblockers.js';
|
|
12
|
-
import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
|
|
13
|
-
|
|
14
|
-
/* eslint-disable no-param-reassign */
|
|
15
|
-
/**
|
|
16
|
-
* Deserializer for empty rule nodes.
|
|
17
|
-
* This class handles the deserialization of empty rule nodes from binary format.
|
|
18
|
-
*/
|
|
19
|
-
class EmptyRuleDeserializer extends BaseDeserializer {
|
|
20
|
-
/**
|
|
21
|
-
* Deserializes an empty rule node from binary format.
|
|
22
|
-
*
|
|
23
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
24
|
-
* @param node Destination node.
|
|
25
|
-
*/
|
|
26
|
-
static deserialize(buffer, node) {
|
|
27
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.EmptyRule);
|
|
28
|
-
node.type = 'EmptyRule';
|
|
29
|
-
node.category = RuleCategory.Empty;
|
|
30
|
-
node.syntax = AdblockSyntax.Common;
|
|
31
|
-
let prop = buffer.readUint8();
|
|
32
|
-
while (prop !== NULL) {
|
|
33
|
-
switch (prop) {
|
|
34
|
-
case EmptyRuleMarshallingMap.Start:
|
|
35
|
-
node.start = buffer.readUint32();
|
|
36
|
-
break;
|
|
37
|
-
case EmptyRuleMarshallingMap.End:
|
|
38
|
-
node.end = buffer.readUint32();
|
|
39
|
-
break;
|
|
40
|
-
default:
|
|
41
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
42
|
-
}
|
|
43
|
-
prop = buffer.readUint8();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export { EmptyRuleDeserializer };
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { NULL } from '../utils/constants.js';
|
|
8
|
-
import { BaseDeserializer } from './base-deserializer.js';
|
|
9
|
-
import { RuleDeserializer } from './rule-deserializer.js';
|
|
10
|
-
import { FilterListNodeMarshallingMap } from '../marshalling-utils/filter-list-common.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Deserializer for filter lists.
|
|
15
|
-
* Converts binary data into filter list nodes.
|
|
16
|
-
*/
|
|
17
|
-
class FilterListDeserializer extends BaseDeserializer {
|
|
18
|
-
/**
|
|
19
|
-
* Deserializes a filter list node from binary format.
|
|
20
|
-
*
|
|
21
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
22
|
-
* @param node Destination node.
|
|
23
|
-
*/
|
|
24
|
-
static deserialize(buffer, node) {
|
|
25
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.FilterListNode);
|
|
26
|
-
node.type = 'FilterList';
|
|
27
|
-
let prop = buffer.readUint8();
|
|
28
|
-
while (prop !== NULL) {
|
|
29
|
-
switch (prop) {
|
|
30
|
-
case FilterListNodeMarshallingMap.Children:
|
|
31
|
-
node.children = new Array(buffer.readUint32());
|
|
32
|
-
for (let i = 0; i < node.children.length; i += 1) {
|
|
33
|
-
RuleDeserializer.deserialize(buffer, node.children[i] = {});
|
|
34
|
-
}
|
|
35
|
-
break;
|
|
36
|
-
case FilterListNodeMarshallingMap.Start:
|
|
37
|
-
node.start = buffer.readUint32();
|
|
38
|
-
break;
|
|
39
|
-
case FilterListNodeMarshallingMap.End:
|
|
40
|
-
node.end = buffer.readUint32();
|
|
41
|
-
break;
|
|
42
|
-
default:
|
|
43
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
44
|
-
}
|
|
45
|
-
prop = buffer.readUint8();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Helper method to jump to the children of the filter list node.
|
|
50
|
-
*
|
|
51
|
-
* Filter lists serialized in binary format are structured as follows:
|
|
52
|
-
* - `FilterListNode` filter list node indicator (1 byte)
|
|
53
|
-
* - Properties:
|
|
54
|
-
* - `Children` (1 byte) - children count, followed by children nodes
|
|
55
|
-
* - `Start` (1 byte) - start offset, if present, followed by the value
|
|
56
|
-
* - `End` (1 byte) - end offset, if present, followed by the value
|
|
57
|
-
* - `NULL` (1 byte) - closing indicator
|
|
58
|
-
*
|
|
59
|
-
* This method skips indicators, reads the children count and returns it.
|
|
60
|
-
* This way the buffer is positioned at the beginning of the children nodes.
|
|
61
|
-
*
|
|
62
|
-
* @param buffer Reference to the input byte buffer.
|
|
63
|
-
* @returns Number of children nodes.
|
|
64
|
-
*/
|
|
65
|
-
static jumpToChildren(buffer) {
|
|
66
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.FilterListNode); // filter list indicator
|
|
67
|
-
let prop = buffer.readUint8();
|
|
68
|
-
while (prop) {
|
|
69
|
-
switch (prop) {
|
|
70
|
-
case FilterListNodeMarshallingMap.Children:
|
|
71
|
-
return buffer.readUint32();
|
|
72
|
-
case FilterListNodeMarshallingMap.Start:
|
|
73
|
-
case FilterListNodeMarshallingMap.End:
|
|
74
|
-
buffer.readUint32(); // ignore value
|
|
75
|
-
break;
|
|
76
|
-
default:
|
|
77
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
78
|
-
}
|
|
79
|
-
prop = buffer.readUint8();
|
|
80
|
-
}
|
|
81
|
-
return 0;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export { FilterListDeserializer };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
export { RuleDeserializer } from './rule-deserializer.js';
|
|
8
|
-
export { getSyntaxDeserializationMap } from './syntax-deserialization-map.js';
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { BaseDeserializer } from './base-deserializer.js';
|
|
8
|
-
import { RuleCategory } from '../nodes/index.js';
|
|
9
|
-
import { NULL } from '../utils/constants.js';
|
|
10
|
-
import { InvalidRuleErrorNodeDeserializer } from './invalid-rule-error-node-deserializer.js';
|
|
11
|
-
import { InvalidRuleMarshallingMap } from '../marshalling-utils/invalid-rule-common.js';
|
|
12
|
-
import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
|
|
13
|
-
|
|
14
|
-
/* eslint-disable no-param-reassign */
|
|
15
|
-
/**
|
|
16
|
-
* Deserializer for invalid rule nodes.
|
|
17
|
-
* Converts binary data into invalid rule nodes.
|
|
18
|
-
*/
|
|
19
|
-
class InvalidRuleDeserializer extends BaseDeserializer {
|
|
20
|
-
/**
|
|
21
|
-
* Deserializes an invalid rule node from binary format.
|
|
22
|
-
*
|
|
23
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
24
|
-
* @param node Destination node.
|
|
25
|
-
*/
|
|
26
|
-
static deserialize(buffer, node) {
|
|
27
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.InvalidRule);
|
|
28
|
-
node.type = 'InvalidRule';
|
|
29
|
-
node.category = RuleCategory.Invalid;
|
|
30
|
-
let prop = buffer.readUint8();
|
|
31
|
-
while (prop !== NULL) {
|
|
32
|
-
switch (prop) {
|
|
33
|
-
case InvalidRuleMarshallingMap.Error:
|
|
34
|
-
InvalidRuleErrorNodeDeserializer.deserialize(buffer, node.error = {});
|
|
35
|
-
break;
|
|
36
|
-
case InvalidRuleMarshallingMap.Start:
|
|
37
|
-
node.start = buffer.readUint32();
|
|
38
|
-
break;
|
|
39
|
-
case InvalidRuleMarshallingMap.End:
|
|
40
|
-
node.end = buffer.readUint32();
|
|
41
|
-
break;
|
|
42
|
-
default:
|
|
43
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
44
|
-
}
|
|
45
|
-
prop = buffer.readUint8();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export { InvalidRuleDeserializer };
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { BaseDeserializer } from './base-deserializer.js';
|
|
8
|
-
import { NULL } from '../utils/constants.js';
|
|
9
|
-
import { InvalidRuleErrorNodeMarshallingMap } from '../marshalling-utils/invalid-rule-error-node-common.js';
|
|
10
|
-
import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.js';
|
|
11
|
-
|
|
12
|
-
/* eslint-disable no-param-reassign */
|
|
13
|
-
/**
|
|
14
|
-
* Deserializer for invalid rule error nodes.
|
|
15
|
-
* Converts binary data into invalid rule error nodes.
|
|
16
|
-
*/
|
|
17
|
-
class InvalidRuleErrorNodeDeserializer extends BaseDeserializer {
|
|
18
|
-
/**
|
|
19
|
-
* Deserializes an invalid rule error node from binary format.
|
|
20
|
-
*
|
|
21
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
22
|
-
* @param node Destination node.
|
|
23
|
-
*/
|
|
24
|
-
static deserialize(buffer, node) {
|
|
25
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.InvalidRuleErrorNode);
|
|
26
|
-
node.type = 'InvalidRuleError';
|
|
27
|
-
let prop = buffer.readUint8();
|
|
28
|
-
while (prop !== NULL) {
|
|
29
|
-
switch (prop) {
|
|
30
|
-
case InvalidRuleErrorNodeMarshallingMap.Name:
|
|
31
|
-
node.name = buffer.readString();
|
|
32
|
-
break;
|
|
33
|
-
case InvalidRuleErrorNodeMarshallingMap.Message:
|
|
34
|
-
node.message = buffer.readString();
|
|
35
|
-
break;
|
|
36
|
-
case InvalidRuleErrorNodeMarshallingMap.Start:
|
|
37
|
-
node.start = buffer.readUint32();
|
|
38
|
-
break;
|
|
39
|
-
case InvalidRuleErrorNodeMarshallingMap.End:
|
|
40
|
-
node.end = buffer.readUint32();
|
|
41
|
-
break;
|
|
42
|
-
default:
|
|
43
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
44
|
-
}
|
|
45
|
-
prop = buffer.readUint8();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export { InvalidRuleErrorNodeDeserializer };
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { NULL, COMMA } from '../../utils/constants.js';
|
|
8
|
-
import { ListNodeType } from '../../nodes/index.js';
|
|
9
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
10
|
-
import { DomainListMarshallingMap, SEPARATOR_SERIALIZATION_MAP } from '../../marshalling-utils/misc/domain-list-common.js';
|
|
11
|
-
import { ListItemsDeserializer } from './list-items-deserializer.js';
|
|
12
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
13
|
-
|
|
14
|
-
/* eslint-disable no-param-reassign */
|
|
15
|
-
/**
|
|
16
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
17
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
18
|
-
*/
|
|
19
|
-
let separatorDeserializationMap;
|
|
20
|
-
const getSeparatorDeserializationMap = () => {
|
|
21
|
-
if (!separatorDeserializationMap) {
|
|
22
|
-
separatorDeserializationMap = new Map(Array.from(SEPARATOR_SERIALIZATION_MAP)
|
|
23
|
-
.map(([key, value]) => [value, key]));
|
|
24
|
-
}
|
|
25
|
-
return separatorDeserializationMap;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* `DomainListDeserializer` is responsible for deserializing a domain list.
|
|
29
|
-
*/
|
|
30
|
-
class DomainListDeserializer extends BaseDeserializer {
|
|
31
|
-
/**
|
|
32
|
-
* Deserializes a modifier list node from binary format.
|
|
33
|
-
*
|
|
34
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
35
|
-
* @param node Destination node.
|
|
36
|
-
*/
|
|
37
|
-
static deserialize(buffer, node) {
|
|
38
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.DomainListNode);
|
|
39
|
-
node.type = ListNodeType.DomainList;
|
|
40
|
-
let prop = buffer.readUint8();
|
|
41
|
-
while (prop !== NULL) {
|
|
42
|
-
switch (prop) {
|
|
43
|
-
case DomainListMarshallingMap.Separator:
|
|
44
|
-
// eslint-disable-next-line max-len
|
|
45
|
-
node.separator = (getSeparatorDeserializationMap().get(buffer.readUint8()) ?? COMMA);
|
|
46
|
-
break;
|
|
47
|
-
case DomainListMarshallingMap.Children:
|
|
48
|
-
ListItemsDeserializer.deserialize(buffer, node.children = []);
|
|
49
|
-
break;
|
|
50
|
-
case DomainListMarshallingMap.Start:
|
|
51
|
-
node.start = buffer.readUint32();
|
|
52
|
-
break;
|
|
53
|
-
case DomainListMarshallingMap.End:
|
|
54
|
-
node.end = buffer.readUint32();
|
|
55
|
-
break;
|
|
56
|
-
default:
|
|
57
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
58
|
-
}
|
|
59
|
-
prop = buffer.readUint8();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export { DomainListDeserializer };
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.3 (build date: Thu, 11 Dec 2025 13:43:19 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
8
|
-
import { ListItemNodeType } from '../../nodes/index.js';
|
|
9
|
-
import { NULL } from '../../utils/constants.js';
|
|
10
|
-
import { ListItemMarshallingMap } from '../../marshalling-utils/misc/list-item-common.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/* eslint-disable no-param-reassign */
|
|
14
|
-
/**
|
|
15
|
-
* `ListItemDeserializer` is responsible for deserializing list item nodes from binary format.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* `app`, `domain`, `method`, `stealth-option`
|
|
19
|
-
*/
|
|
20
|
-
class ListItemDeserializer extends BaseDeserializer {
|
|
21
|
-
/**
|
|
22
|
-
* Deserializes a list item from binary format.
|
|
23
|
-
*
|
|
24
|
-
* @param buffer Input byte buffer.
|
|
25
|
-
* @param node Partial list item to deserialize.
|
|
26
|
-
* @template T Type of the list item.
|
|
27
|
-
*/
|
|
28
|
-
static deserialize = (buffer, node) => {
|
|
29
|
-
const type = buffer.readUint8();
|
|
30
|
-
switch (type) {
|
|
31
|
-
case BinaryTypeMarshallingMap.AppNode:
|
|
32
|
-
node.type = ListItemNodeType.App;
|
|
33
|
-
break;
|
|
34
|
-
case BinaryTypeMarshallingMap.DomainNode:
|
|
35
|
-
node.type = ListItemNodeType.Domain;
|
|
36
|
-
break;
|
|
37
|
-
case BinaryTypeMarshallingMap.MethodNode:
|
|
38
|
-
node.type = ListItemNodeType.Method;
|
|
39
|
-
break;
|
|
40
|
-
case BinaryTypeMarshallingMap.StealthOptionNode:
|
|
41
|
-
node.type = ListItemNodeType.StealthOption;
|
|
42
|
-
break;
|
|
43
|
-
default:
|
|
44
|
-
throw new Error(`Invalid list item type: ${type}`);
|
|
45
|
-
}
|
|
46
|
-
let prop = buffer.readUint8();
|
|
47
|
-
while (prop !== NULL) {
|
|
48
|
-
switch (prop) {
|
|
49
|
-
case ListItemMarshallingMap.Exception:
|
|
50
|
-
node.exception = buffer.readUint8() === 1;
|
|
51
|
-
break;
|
|
52
|
-
case ListItemMarshallingMap.Value:
|
|
53
|
-
node.value = buffer.readString();
|
|
54
|
-
break;
|
|
55
|
-
case ListItemMarshallingMap.Start:
|
|
56
|
-
node.start = buffer.readUint32();
|
|
57
|
-
break;
|
|
58
|
-
case ListItemMarshallingMap.End:
|
|
59
|
-
node.end = buffer.readUint32();
|
|
60
|
-
break;
|
|
61
|
-
default:
|
|
62
|
-
throw new Error(`Invalid property: ${type}`);
|
|
63
|
-
}
|
|
64
|
-
prop = buffer.readUint8();
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export { ListItemDeserializer };
|