@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,111 +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 { CommentRuleType, RuleCategory } from '../../nodes/index.js';
|
|
9
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
10
|
-
import { ConfigNodeMarshallingMap, ConfigCommentRuleMarshallingMap, FREQUENT_COMMANDS_SERIALIZATION_MAP } from '../../marshalling-utils/comment/config-comment-common.js';
|
|
11
|
-
import { AdblockSyntax } from '../../utils/adblockers.js';
|
|
12
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
13
|
-
import { ParameterListDeserializer } from '../misc/parameter-list-deserializer.js';
|
|
14
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
15
|
-
|
|
16
|
-
/* eslint-disable no-param-reassign */
|
|
17
|
-
/**
|
|
18
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
19
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
20
|
-
*/
|
|
21
|
-
let frequentCommandsDeserializationMap;
|
|
22
|
-
const getFrequentCommandsDeserializationMap = () => {
|
|
23
|
-
if (!frequentCommandsDeserializationMap) {
|
|
24
|
-
frequentCommandsDeserializationMap = new Map(Array.from(FREQUENT_COMMANDS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
25
|
-
}
|
|
26
|
-
return frequentCommandsDeserializationMap;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* `ConfigCommentDeserializer` is responsible for deserializing inline AGLint configuration rules.
|
|
30
|
-
* Generally, the idea is inspired by ESLint inline configuration comments.
|
|
31
|
-
*
|
|
32
|
-
* @see {@link https://eslint.org/docs/latest/user-guide/configuring/rules#using-configuration-comments}
|
|
33
|
-
*/
|
|
34
|
-
class ConfigCommentDeserializer extends BaseDeserializer {
|
|
35
|
-
/**
|
|
36
|
-
* Deserializes a metadata comment node from binary format.
|
|
37
|
-
*
|
|
38
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
39
|
-
* @param node Destination node.
|
|
40
|
-
* @throws If the binary data is malformed.
|
|
41
|
-
*/
|
|
42
|
-
static deserializeConfigNode(buffer, node) {
|
|
43
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ConfigNode);
|
|
44
|
-
node.type = 'ConfigNode';
|
|
45
|
-
let prop = buffer.readUint8();
|
|
46
|
-
while (prop !== NULL) {
|
|
47
|
-
switch (prop) {
|
|
48
|
-
case ConfigNodeMarshallingMap.Value:
|
|
49
|
-
// note: it is safe to use JSON.parse here, because we serialized it with JSON.stringify
|
|
50
|
-
node.value = JSON.parse(buffer.readString());
|
|
51
|
-
break;
|
|
52
|
-
case ConfigNodeMarshallingMap.Start:
|
|
53
|
-
node.start = buffer.readUint32();
|
|
54
|
-
break;
|
|
55
|
-
case ConfigNodeMarshallingMap.End:
|
|
56
|
-
node.end = buffer.readUint32();
|
|
57
|
-
break;
|
|
58
|
-
default:
|
|
59
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
60
|
-
}
|
|
61
|
-
prop = buffer.readUint8();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Deserializes a metadata comment node from binary format.
|
|
66
|
-
*
|
|
67
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
68
|
-
* @param node Destination node.
|
|
69
|
-
* @throws If the binary data is malformed.
|
|
70
|
-
*/
|
|
71
|
-
static deserialize(buffer, node) {
|
|
72
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ConfigCommentRuleNode);
|
|
73
|
-
node.type = CommentRuleType.ConfigCommentRule;
|
|
74
|
-
node.category = RuleCategory.Comment;
|
|
75
|
-
node.syntax = AdblockSyntax.Common;
|
|
76
|
-
let prop = buffer.readUint8();
|
|
77
|
-
while (prop !== NULL) {
|
|
78
|
-
switch (prop) {
|
|
79
|
-
case ConfigCommentRuleMarshallingMap.Marker:
|
|
80
|
-
ValueDeserializer.deserialize(buffer, node.marker = {});
|
|
81
|
-
break;
|
|
82
|
-
case ConfigCommentRuleMarshallingMap.Command:
|
|
83
|
-
// eslint-disable-next-line max-len
|
|
84
|
-
ValueDeserializer.deserialize(buffer, node.command = {}, getFrequentCommandsDeserializationMap());
|
|
85
|
-
break;
|
|
86
|
-
case ConfigCommentRuleMarshallingMap.Params:
|
|
87
|
-
if (buffer.peekUint8() === BinaryTypeMarshallingMap.ConfigNode) {
|
|
88
|
-
ConfigCommentDeserializer.deserializeConfigNode(buffer, node.params = {});
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
ParameterListDeserializer.deserialize(buffer, node.params = {});
|
|
92
|
-
}
|
|
93
|
-
break;
|
|
94
|
-
case ConfigCommentRuleMarshallingMap.Comment:
|
|
95
|
-
ValueDeserializer.deserialize(buffer, node.comment = {});
|
|
96
|
-
break;
|
|
97
|
-
case ConfigCommentRuleMarshallingMap.Start:
|
|
98
|
-
node.start = buffer.readUint32();
|
|
99
|
-
break;
|
|
100
|
-
case ConfigCommentRuleMarshallingMap.End:
|
|
101
|
-
node.end = buffer.readUint32();
|
|
102
|
-
break;
|
|
103
|
-
default:
|
|
104
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
105
|
-
}
|
|
106
|
-
prop = buffer.readUint8();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export { ConfigCommentDeserializer };
|
|
@@ -1,72 +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 { RuleCategory, CommentRuleType } from '../../nodes/index.js';
|
|
9
|
-
import { HintDeserializer } from './hint-deserializer.js';
|
|
10
|
-
import { AdblockSyntax } from '../../utils/adblockers.js';
|
|
11
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
12
|
-
import { HintCommentMarshallingMap } from '../../marshalling-utils/comment/hint-comment-common.js';
|
|
13
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
14
|
-
import { getSyntaxDeserializationMap } from '../syntax-deserialization-map.js';
|
|
15
|
-
|
|
16
|
-
/* eslint-disable no-param-reassign */
|
|
17
|
-
/**
|
|
18
|
-
* `HintCommentDeserializer` is responsible for deserializing AdGuard hint rules.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* The following hint rule
|
|
22
|
-
* ```adblock
|
|
23
|
-
* !+ NOT_OPTIMIZED PLATFORM(windows)
|
|
24
|
-
* ```
|
|
25
|
-
* contains two hints: `NOT_OPTIMIZED` and `PLATFORM`.
|
|
26
|
-
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#hints}
|
|
27
|
-
*/
|
|
28
|
-
class HintCommentDeserializer extends BaseDeserializer {
|
|
29
|
-
/**
|
|
30
|
-
* Deserializes a hint rule node from binary format.
|
|
31
|
-
*
|
|
32
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
33
|
-
* @param node Destination node.
|
|
34
|
-
* @throws If the binary data is malformed.
|
|
35
|
-
*/
|
|
36
|
-
static deserialize(buffer, node) {
|
|
37
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.HintRuleNode);
|
|
38
|
-
node.category = RuleCategory.Comment;
|
|
39
|
-
node.type = CommentRuleType.HintCommentRule;
|
|
40
|
-
let prop = buffer.readUint8();
|
|
41
|
-
while (prop !== NULL) {
|
|
42
|
-
switch (prop) {
|
|
43
|
-
case HintCommentMarshallingMap.Syntax:
|
|
44
|
-
node.syntax = getSyntaxDeserializationMap().get(buffer.readUint8()) ?? AdblockSyntax.Common;
|
|
45
|
-
break;
|
|
46
|
-
case HintCommentMarshallingMap.Children:
|
|
47
|
-
node.children = new Array(buffer.readUint8());
|
|
48
|
-
// read children
|
|
49
|
-
for (let i = 0; i < node.children.length; i += 1) {
|
|
50
|
-
HintDeserializer.deserialize(buffer, node.children[i] = {});
|
|
51
|
-
}
|
|
52
|
-
break;
|
|
53
|
-
case HintCommentMarshallingMap.Start:
|
|
54
|
-
node.start = buffer.readUint32();
|
|
55
|
-
break;
|
|
56
|
-
case HintCommentMarshallingMap.End:
|
|
57
|
-
node.end = buffer.readUint32();
|
|
58
|
-
break;
|
|
59
|
-
default:
|
|
60
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
61
|
-
}
|
|
62
|
-
prop = buffer.readUint8();
|
|
63
|
-
}
|
|
64
|
-
// Maybe children are not present in the binary data,
|
|
65
|
-
// in this case, we should initialize it as an empty array.
|
|
66
|
-
if (!node.children) {
|
|
67
|
-
node.children = [];
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export { HintCommentDeserializer };
|
|
@@ -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 { HintNodeMarshallingMap, FREQUENT_PLATFORMS_SERIALIZATION_MAP, FREQUENT_HINTS_SERIALIZATION_MAP } from '../../marshalling-utils/comment/hint-common.js';
|
|
10
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
11
|
-
import { ParameterListDeserializer } from '../misc/parameter-list-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 frequentHintsDeserializationMap;
|
|
20
|
-
const getFrequentHintsDeserializationMap = () => {
|
|
21
|
-
if (!frequentHintsDeserializationMap) {
|
|
22
|
-
frequentHintsDeserializationMap = new Map(Array.from(FREQUENT_HINTS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
23
|
-
}
|
|
24
|
-
return frequentHintsDeserializationMap;
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
28
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
29
|
-
*/
|
|
30
|
-
let frequentPlatformsDeserializationMap;
|
|
31
|
-
const getFrequentPlatformsDeserializationMap = () => {
|
|
32
|
-
if (!frequentPlatformsDeserializationMap) {
|
|
33
|
-
frequentPlatformsDeserializationMap = new Map(Array.from(FREQUENT_PLATFORMS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
34
|
-
}
|
|
35
|
-
return frequentPlatformsDeserializationMap;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* `HintDeserializer` is responsible for deserializing AdGuard hints.
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* If the hint rule is
|
|
42
|
-
* ```adblock
|
|
43
|
-
* !+ NOT_OPTIMIZED PLATFORM(windows)
|
|
44
|
-
* ```
|
|
45
|
-
* then the hints are `NOT_OPTIMIZED` and `PLATFORM(windows)`, and this
|
|
46
|
-
* class is responsible for parsing them. The rule itself is parsed by
|
|
47
|
-
* the `HintRuleParser`, which uses this class to parse single hints.
|
|
48
|
-
*/
|
|
49
|
-
class HintDeserializer extends BaseDeserializer {
|
|
50
|
-
/**
|
|
51
|
-
* Deserializes a hint node from binary format.
|
|
52
|
-
*
|
|
53
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
54
|
-
* @param node Destination node.
|
|
55
|
-
* @throws If the binary data is malformed.
|
|
56
|
-
*/
|
|
57
|
-
static deserialize(buffer, node) {
|
|
58
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.HintNode);
|
|
59
|
-
node.type = 'Hint';
|
|
60
|
-
let prop = buffer.readUint8();
|
|
61
|
-
while (prop !== NULL) {
|
|
62
|
-
switch (prop) {
|
|
63
|
-
case HintNodeMarshallingMap.Name:
|
|
64
|
-
// eslint-disable-next-line max-len
|
|
65
|
-
ValueDeserializer.deserialize(buffer, node.name = {}, getFrequentHintsDeserializationMap());
|
|
66
|
-
break;
|
|
67
|
-
case HintNodeMarshallingMap.Params:
|
|
68
|
-
// eslint-disable-next-line max-len
|
|
69
|
-
ParameterListDeserializer.deserialize(buffer, node.params = {}, getFrequentPlatformsDeserializationMap());
|
|
70
|
-
break;
|
|
71
|
-
case HintNodeMarshallingMap.Start:
|
|
72
|
-
node.start = buffer.readUint32();
|
|
73
|
-
break;
|
|
74
|
-
case HintNodeMarshallingMap.End:
|
|
75
|
-
node.end = buffer.readUint32();
|
|
76
|
-
break;
|
|
77
|
-
default:
|
|
78
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
79
|
-
}
|
|
80
|
-
prop = buffer.readUint8();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export { HintDeserializer, getFrequentPlatformsDeserializationMap };
|
|
@@ -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 { NULL } from '../../utils/constants.js';
|
|
8
|
-
import { CommentRuleType, RuleCategory } from '../../nodes/index.js';
|
|
9
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
10
|
-
import { MetadataCommentMarshallingMap, FREQUENT_HEADERS_DESERIALIZATION_MAP } from '../../marshalling-utils/comment/metadata-comment-common.js';
|
|
11
|
-
import { AdblockSyntax } from '../../utils/adblockers.js';
|
|
12
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
13
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
14
|
-
|
|
15
|
-
/* eslint-disable no-param-reassign */
|
|
16
|
-
/**
|
|
17
|
-
* `MetadataCommentDeserializer` is responsible for deserializing metadata comments.
|
|
18
|
-
* Metadata comments are special comments that specify some properties of the list.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* For example, in the case of
|
|
22
|
-
* ```adblock
|
|
23
|
-
* ! Title: My List
|
|
24
|
-
* ```
|
|
25
|
-
* the name of the header is `Title`, and the value is `My List`, which means that
|
|
26
|
-
* the list title is `My List`, and it can be used in the adblocker UI.
|
|
27
|
-
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#special-comments}
|
|
28
|
-
*/
|
|
29
|
-
class MetadataCommentDeserializer extends BaseDeserializer {
|
|
30
|
-
/**
|
|
31
|
-
* Deserializes a metadata comment node from binary format.
|
|
32
|
-
*
|
|
33
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
34
|
-
* @param node Destination node.
|
|
35
|
-
* @throws If the binary data is malformed.
|
|
36
|
-
*/
|
|
37
|
-
static deserialize(buffer, node) {
|
|
38
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.MetadataCommentRuleNode);
|
|
39
|
-
node.type = CommentRuleType.MetadataCommentRule;
|
|
40
|
-
node.category = RuleCategory.Comment;
|
|
41
|
-
node.syntax = AdblockSyntax.Common;
|
|
42
|
-
let prop = buffer.readUint8();
|
|
43
|
-
while (prop !== NULL) {
|
|
44
|
-
switch (prop) {
|
|
45
|
-
case MetadataCommentMarshallingMap.Marker:
|
|
46
|
-
ValueDeserializer.deserialize(buffer, node.marker = {});
|
|
47
|
-
break;
|
|
48
|
-
case MetadataCommentMarshallingMap.Header:
|
|
49
|
-
// eslint-disable-next-line max-len
|
|
50
|
-
ValueDeserializer.deserialize(buffer, node.header = {}, FREQUENT_HEADERS_DESERIALIZATION_MAP);
|
|
51
|
-
break;
|
|
52
|
-
case MetadataCommentMarshallingMap.Value:
|
|
53
|
-
ValueDeserializer.deserialize(buffer, node.value = {});
|
|
54
|
-
break;
|
|
55
|
-
case MetadataCommentMarshallingMap.Start:
|
|
56
|
-
node.start = buffer.readUint32();
|
|
57
|
-
break;
|
|
58
|
-
case MetadataCommentMarshallingMap.End:
|
|
59
|
-
node.end = buffer.readUint32();
|
|
60
|
-
break;
|
|
61
|
-
default:
|
|
62
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
63
|
-
}
|
|
64
|
-
prop = buffer.readUint8();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export { MetadataCommentDeserializer };
|
|
@@ -1,112 +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 { CommentRuleType, RuleCategory } from '../../nodes/index.js';
|
|
9
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
10
|
-
import { PreProcessorRuleMarshallingMap, FREQUENT_PARAMS_SERIALIZATION_MAP, FREQUENT_DIRECTIVES_SERIALIZATION_MAP } from '../../marshalling-utils/comment/pre-processor-comment-common.js';
|
|
11
|
-
import { AdblockSyntax } from '../../utils/adblockers.js';
|
|
12
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
13
|
-
import { LogicalExpressionDeserializer } from '../misc/logical-expression-deserializer.js';
|
|
14
|
-
import { ParameterListDeserializer } from '../misc/parameter-list-deserializer.js';
|
|
15
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
16
|
-
import { getSyntaxDeserializationMap } from '../syntax-deserialization-map.js';
|
|
17
|
-
|
|
18
|
-
/* eslint-disable no-param-reassign */
|
|
19
|
-
/**
|
|
20
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
21
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
22
|
-
*/
|
|
23
|
-
let frequentDirectivesDeserializationMap;
|
|
24
|
-
const getFrequentDirectivesDeserializationMap = () => {
|
|
25
|
-
if (!frequentDirectivesDeserializationMap) {
|
|
26
|
-
frequentDirectivesDeserializationMap = new Map(Array.from(FREQUENT_DIRECTIVES_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
27
|
-
}
|
|
28
|
-
return frequentDirectivesDeserializationMap;
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
32
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
33
|
-
*/
|
|
34
|
-
let frequentParamsDeserializationMap;
|
|
35
|
-
const getFrequentParamsDeserializationMap = () => {
|
|
36
|
-
if (!frequentParamsDeserializationMap) {
|
|
37
|
-
frequentParamsDeserializationMap = new Map(Array.from(FREQUENT_PARAMS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
38
|
-
}
|
|
39
|
-
return frequentParamsDeserializationMap;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* `PreProcessorCommentDeserializer` is responsible for deserializing preprocessor rules.
|
|
43
|
-
* Pre-processor comments are special comments that are used to control the behavior of the filter list processor.
|
|
44
|
-
* Please note that this parser only handles general syntax for now, and does not validate the parameters at
|
|
45
|
-
* the parsing stage.
|
|
46
|
-
*
|
|
47
|
-
* @example
|
|
48
|
-
* If your rule is
|
|
49
|
-
* ```adblock
|
|
50
|
-
* !#if (adguard)
|
|
51
|
-
* ```
|
|
52
|
-
* then the directive's name is `if` and its value is `(adguard)`, but the parameter list
|
|
53
|
-
* is not parsed / validated further.
|
|
54
|
-
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#pre-processor-directives}
|
|
55
|
-
* @see {@link https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#pre-parsing-directives}
|
|
56
|
-
*/
|
|
57
|
-
class PreProcessorCommentDeserializer extends BaseDeserializer {
|
|
58
|
-
/**
|
|
59
|
-
* Deserializes a pre-processor comment node from binary format.
|
|
60
|
-
*
|
|
61
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
62
|
-
* @param node Destination node.
|
|
63
|
-
* @throws If the binary data is malformed.
|
|
64
|
-
*/
|
|
65
|
-
static deserialize(buffer, node) {
|
|
66
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.PreProcessorCommentRuleNode);
|
|
67
|
-
node.type = CommentRuleType.PreProcessorCommentRule;
|
|
68
|
-
node.category = RuleCategory.Comment;
|
|
69
|
-
node.syntax = AdblockSyntax.Common;
|
|
70
|
-
let prop = buffer.readUint8();
|
|
71
|
-
while (prop !== NULL) {
|
|
72
|
-
switch (prop) {
|
|
73
|
-
case PreProcessorRuleMarshallingMap.Name:
|
|
74
|
-
// eslint-disable-next-line max-len
|
|
75
|
-
ValueDeserializer.deserialize(buffer, node.name = {}, getFrequentDirectivesDeserializationMap());
|
|
76
|
-
break;
|
|
77
|
-
case PreProcessorRuleMarshallingMap.Syntax:
|
|
78
|
-
node.syntax = getSyntaxDeserializationMap().get(buffer.readUint8()) ?? AdblockSyntax.Common;
|
|
79
|
-
break;
|
|
80
|
-
case PreProcessorRuleMarshallingMap.Params:
|
|
81
|
-
switch (buffer.peekUint8()) {
|
|
82
|
-
case BinaryTypeMarshallingMap.ValueNode:
|
|
83
|
-
ValueDeserializer.deserialize(buffer, node.params = {});
|
|
84
|
-
break;
|
|
85
|
-
case BinaryTypeMarshallingMap.ParameterListNode:
|
|
86
|
-
// eslint-disable-next-line max-len
|
|
87
|
-
ParameterListDeserializer.deserialize(buffer, node.params = {}, getFrequentParamsDeserializationMap());
|
|
88
|
-
break;
|
|
89
|
-
case BinaryTypeMarshallingMap.ExpressionOperatorNode:
|
|
90
|
-
case BinaryTypeMarshallingMap.ExpressionParenthesisNode:
|
|
91
|
-
case BinaryTypeMarshallingMap.ExpressionVariableNode:
|
|
92
|
-
LogicalExpressionDeserializer.deserialize(buffer, node.params = {});
|
|
93
|
-
break;
|
|
94
|
-
default:
|
|
95
|
-
throw new Error(`Invalid binary type: ${prop}`);
|
|
96
|
-
}
|
|
97
|
-
break;
|
|
98
|
-
case PreProcessorRuleMarshallingMap.Start:
|
|
99
|
-
node.start = buffer.readUint32();
|
|
100
|
-
break;
|
|
101
|
-
case PreProcessorRuleMarshallingMap.End:
|
|
102
|
-
node.end = buffer.readUint32();
|
|
103
|
-
break;
|
|
104
|
-
default:
|
|
105
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
106
|
-
}
|
|
107
|
-
prop = buffer.readUint8();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export { PreProcessorCommentDeserializer };
|
|
@@ -1,65 +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 { CommentRuleType, RuleCategory } from '../../nodes/index.js';
|
|
9
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
10
|
-
import { AdblockSyntax } from '../../utils/adblockers.js';
|
|
11
|
-
import { SimpleCommentMarshallingMap } from '../../marshalling-utils/comment/simple-comment-common.js';
|
|
12
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
13
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
14
|
-
|
|
15
|
-
/* eslint-disable no-param-reassign */
|
|
16
|
-
/**
|
|
17
|
-
* `SimpleCommentDeserializer` is responsible for deserializing simple comments.
|
|
18
|
-
*
|
|
19
|
-
* Some comments have a special meaning in adblock syntax, like agent comments or hints,
|
|
20
|
-
* but this parser is only responsible for parsing regular comments,
|
|
21
|
-
* whose only purpose is to provide some human-readable information.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```adblock
|
|
25
|
-
* ! This is a simple comment
|
|
26
|
-
* # This is a simple comment, but in host-like syntax
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
class SimpleCommentDeserializer extends BaseDeserializer {
|
|
30
|
-
/**
|
|
31
|
-
* Deserializes a simple comment node from binary format.
|
|
32
|
-
*
|
|
33
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
34
|
-
* @param node Destination node.
|
|
35
|
-
* @throws If the binary data is malformed.
|
|
36
|
-
*/
|
|
37
|
-
static deserialize(buffer, node) {
|
|
38
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.CommentRuleNode);
|
|
39
|
-
node.type = CommentRuleType.CommentRule;
|
|
40
|
-
node.category = RuleCategory.Comment;
|
|
41
|
-
node.syntax = AdblockSyntax.Common;
|
|
42
|
-
let prop = buffer.readUint8();
|
|
43
|
-
while (prop !== NULL) {
|
|
44
|
-
switch (prop) {
|
|
45
|
-
case SimpleCommentMarshallingMap.Marker:
|
|
46
|
-
ValueDeserializer.deserialize(buffer, node.marker = {});
|
|
47
|
-
break;
|
|
48
|
-
case SimpleCommentMarshallingMap.Text:
|
|
49
|
-
ValueDeserializer.deserialize(buffer, node.text = {});
|
|
50
|
-
break;
|
|
51
|
-
case SimpleCommentMarshallingMap.Start:
|
|
52
|
-
node.start = buffer.readUint32();
|
|
53
|
-
break;
|
|
54
|
-
case SimpleCommentMarshallingMap.End:
|
|
55
|
-
node.end = buffer.readUint32();
|
|
56
|
-
break;
|
|
57
|
-
default:
|
|
58
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
59
|
-
}
|
|
60
|
-
prop = buffer.readUint8();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export { SimpleCommentDeserializer };
|
|
@@ -1,131 +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 { AdblockSyntax } from '../../utils/adblockers.js';
|
|
8
|
-
import { DomainListDeserializer } from '../misc/domain-list-deserializer.js';
|
|
9
|
-
import { NULL } from '../../utils/constants.js';
|
|
10
|
-
import { RuleCategory, CosmeticRuleType } from '../../nodes/index.js';
|
|
11
|
-
import { AbpSnippetInjectionBodyDeserializer } from './scriptlet-body/abp-snippet-injection-body-deserializer.js';
|
|
12
|
-
import { UboScriptletInjectionBodyDeserializer } from './scriptlet-body/ubo-scriptlet-injection-body-deserializer.js';
|
|
13
|
-
import { AdgScriptletInjectionBodyDeserializer } from './scriptlet-body/adg-scriptlet-injection-body-deserializer.js';
|
|
14
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
15
|
-
import { isUndefined } from '../../utils/type-guards.js';
|
|
16
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
17
|
-
import { ElementHidingBodyDeserializer } from './element-hiding-body-deserializer.js';
|
|
18
|
-
import { CssInjectionBodyDeserializer } from './css-injection-body-deserializer.js';
|
|
19
|
-
import { ModifierListDeserializer } from '../misc/modifier-list-deserializer.js';
|
|
20
|
-
import { CosmeticRuleMarshallingMap, COSMETIC_RULE_SEPARATOR_SERIALIZATION_MAP } from '../../marshalling-utils/cosmetic/cosmetic-rule-common.js';
|
|
21
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
22
|
-
import { getSyntaxDeserializationMap } from '../syntax-deserialization-map.js';
|
|
23
|
-
|
|
24
|
-
/* eslint-disable no-param-reassign */
|
|
25
|
-
/**
|
|
26
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
27
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
28
|
-
*/
|
|
29
|
-
let cosmeticRuleSeparatorDeserializationMap;
|
|
30
|
-
const getCosmeticRuleSeparatorDeserializationMap = () => {
|
|
31
|
-
if (!cosmeticRuleSeparatorDeserializationMap) {
|
|
32
|
-
cosmeticRuleSeparatorDeserializationMap = new Map(Array.from(COSMETIC_RULE_SEPARATOR_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
33
|
-
}
|
|
34
|
-
return cosmeticRuleSeparatorDeserializationMap;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
38
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
39
|
-
*/
|
|
40
|
-
const COSMETIC_RULE_TYPE_DESERIALIZATION_MAP = new Map([
|
|
41
|
-
[BinaryTypeMarshallingMap.ElementHidingRule, CosmeticRuleType.ElementHidingRule],
|
|
42
|
-
[BinaryTypeMarshallingMap.CssInjectionRule, CosmeticRuleType.CssInjectionRule],
|
|
43
|
-
[BinaryTypeMarshallingMap.ScriptletInjectionRule, CosmeticRuleType.ScriptletInjectionRule],
|
|
44
|
-
[BinaryTypeMarshallingMap.JsInjectionRule, CosmeticRuleType.JsInjectionRule],
|
|
45
|
-
[BinaryTypeMarshallingMap.HtmlFilteringRule, CosmeticRuleType.HtmlFilteringRule],
|
|
46
|
-
]);
|
|
47
|
-
/**
|
|
48
|
-
* Deserializer for cosmetic rules.
|
|
49
|
-
* Converts binary data into structured cosmetic rule nodes, supporting various types
|
|
50
|
-
* like element hiding, CSS injection, scriptlet injection, JavaScript injection, and HTML filtering.
|
|
51
|
-
* Handles rule type, syntax, exceptions, separators, modifiers, and domain lists.
|
|
52
|
-
*/
|
|
53
|
-
class CosmeticRuleDeserializer extends BaseDeserializer {
|
|
54
|
-
/**
|
|
55
|
-
* Deserializes a cosmetic rule node from binary format.
|
|
56
|
-
*
|
|
57
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
58
|
-
* @param node Destination node.
|
|
59
|
-
*/
|
|
60
|
-
static deserialize(buffer, node) {
|
|
61
|
-
const type = COSMETIC_RULE_TYPE_DESERIALIZATION_MAP.get(buffer.readUint8());
|
|
62
|
-
if (isUndefined(type)) {
|
|
63
|
-
throw new Error(`Unknown rule type: ${type}`);
|
|
64
|
-
}
|
|
65
|
-
node.type = type;
|
|
66
|
-
node.category = RuleCategory.Cosmetic;
|
|
67
|
-
const syntax = getSyntaxDeserializationMap().get(buffer.readUint8()) ?? AdblockSyntax.Common;
|
|
68
|
-
node.syntax = syntax;
|
|
69
|
-
node.modifiers = undefined;
|
|
70
|
-
switch (type) {
|
|
71
|
-
case CosmeticRuleType.ElementHidingRule:
|
|
72
|
-
ElementHidingBodyDeserializer.deserializeElementHidingBody(buffer, node.body = {});
|
|
73
|
-
break;
|
|
74
|
-
case CosmeticRuleType.CssInjectionRule:
|
|
75
|
-
CssInjectionBodyDeserializer.deserialize(buffer, node.body = {});
|
|
76
|
-
break;
|
|
77
|
-
case CosmeticRuleType.JsInjectionRule:
|
|
78
|
-
ValueDeserializer.deserialize(buffer, node.body = {});
|
|
79
|
-
break;
|
|
80
|
-
case CosmeticRuleType.HtmlFilteringRule:
|
|
81
|
-
ValueDeserializer.deserialize(buffer, node.body = {});
|
|
82
|
-
break;
|
|
83
|
-
case CosmeticRuleType.ScriptletInjectionRule:
|
|
84
|
-
switch (syntax) {
|
|
85
|
-
case AdblockSyntax.Adg:
|
|
86
|
-
AdgScriptletInjectionBodyDeserializer.deserialize(buffer, node.body = {});
|
|
87
|
-
break;
|
|
88
|
-
case AdblockSyntax.Abp:
|
|
89
|
-
AbpSnippetInjectionBodyDeserializer.deserialize(buffer, node.body = {});
|
|
90
|
-
break;
|
|
91
|
-
case AdblockSyntax.Ubo:
|
|
92
|
-
UboScriptletInjectionBodyDeserializer.deserialize(buffer, node.body = {});
|
|
93
|
-
break;
|
|
94
|
-
default:
|
|
95
|
-
throw new Error('Scriptlet rule should have an explicit syntax');
|
|
96
|
-
}
|
|
97
|
-
break;
|
|
98
|
-
default:
|
|
99
|
-
throw new Error('Unknown cosmetic rule type');
|
|
100
|
-
}
|
|
101
|
-
let prop = buffer.readUint8();
|
|
102
|
-
while (prop !== NULL) {
|
|
103
|
-
switch (prop) {
|
|
104
|
-
case CosmeticRuleMarshallingMap.Exception:
|
|
105
|
-
node.exception = buffer.readUint8() === 1;
|
|
106
|
-
break;
|
|
107
|
-
case CosmeticRuleMarshallingMap.Separator:
|
|
108
|
-
ValueDeserializer.deserialize(buffer, node.separator = {}, getCosmeticRuleSeparatorDeserializationMap());
|
|
109
|
-
break;
|
|
110
|
-
case CosmeticRuleMarshallingMap.Modifiers:
|
|
111
|
-
node.modifiers = {};
|
|
112
|
-
ModifierListDeserializer.deserialize(buffer, node.modifiers);
|
|
113
|
-
break;
|
|
114
|
-
case CosmeticRuleMarshallingMap.Domains:
|
|
115
|
-
DomainListDeserializer.deserialize(buffer, node.domains = {});
|
|
116
|
-
break;
|
|
117
|
-
case CosmeticRuleMarshallingMap.Start:
|
|
118
|
-
node.start = buffer.readUint32();
|
|
119
|
-
break;
|
|
120
|
-
case CosmeticRuleMarshallingMap.End:
|
|
121
|
-
node.end = buffer.readUint32();
|
|
122
|
-
break;
|
|
123
|
-
default:
|
|
124
|
-
throw new Error(`Unknown property: ${prop}`);
|
|
125
|
-
}
|
|
126
|
-
prop = buffer.readUint8();
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export { CosmeticRuleDeserializer };
|