@adguard/agtree 3.4.3 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ast-utils/clone.js +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,58 +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 { UINT16_MAX, NULL } from '../../utils/constants.js';
|
|
8
|
-
import { isUndefined } from '../../utils/type-guards.js';
|
|
9
|
-
import { BaseSerializer } from '../base-serializer.js';
|
|
10
|
-
import { ModifierSerializer } from './modifier-serializer.js';
|
|
11
|
-
import { ModifierListNodeMarshallingMap } from '../../marshalling-utils/misc/modifier-list-common.js';
|
|
12
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* `ModifierListSerializer` is responsible for serializing modifier lists. Please note that the name is not
|
|
16
|
-
* uniform, "modifiers" are also known as "options".
|
|
17
|
-
*
|
|
18
|
-
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules-modifiers}
|
|
19
|
-
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#non-basic-rules-modifiers}
|
|
20
|
-
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#options}
|
|
21
|
-
*/
|
|
22
|
-
class ModifierListSerializer extends BaseSerializer {
|
|
23
|
-
/**
|
|
24
|
-
* Serializes a modifier list node to binary format.
|
|
25
|
-
*
|
|
26
|
-
* @param node Node to serialize.
|
|
27
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
28
|
-
*/
|
|
29
|
-
static serialize(node, buffer) {
|
|
30
|
-
buffer.writeUint8(BinaryTypeMarshallingMap.ModifierListNode);
|
|
31
|
-
const count = node.children.length;
|
|
32
|
-
// If there are no children, we do not write any data related to them, to avoid using unnecessary storage,
|
|
33
|
-
// but children is a required field, so during deserialization we should initialize it as an empty array,
|
|
34
|
-
// if there are no children in the binary data.
|
|
35
|
-
if (count) {
|
|
36
|
-
buffer.writeUint8(ModifierListNodeMarshallingMap.Children);
|
|
37
|
-
// note: we store the count, because re-construction of the array is faster if we know the length
|
|
38
|
-
if (count > UINT16_MAX) {
|
|
39
|
-
throw new Error(`Too many modifiers: ${count}, the limit is ${UINT16_MAX}`);
|
|
40
|
-
}
|
|
41
|
-
buffer.writeUint16(count);
|
|
42
|
-
for (let i = 0; i < count; i += 1) {
|
|
43
|
-
ModifierSerializer.serialize(node.children[i], buffer);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (!isUndefined(node.start)) {
|
|
47
|
-
buffer.writeUint8(ModifierListNodeMarshallingMap.Start);
|
|
48
|
-
buffer.writeUint32(node.start);
|
|
49
|
-
}
|
|
50
|
-
if (!isUndefined(node.end)) {
|
|
51
|
-
buffer.writeUint8(ModifierListNodeMarshallingMap.End);
|
|
52
|
-
buffer.writeUint32(node.end);
|
|
53
|
-
}
|
|
54
|
-
buffer.writeUint8(NULL);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export { ModifierListSerializer };
|
|
@@ -1,49 +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 { ValueSerializer } from './value-serializer.js';
|
|
9
|
-
import { isUndefined } from '../../utils/type-guards.js';
|
|
10
|
-
import { BaseSerializer } from '../base-serializer.js';
|
|
11
|
-
import { ModifierNodeMarshallingMap, FREQUENT_MODIFIERS_SERIALIZATION_MAP, FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP } from '../../marshalling-utils/misc/modifier-common.js';
|
|
12
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* `ModifierSerializer` is responsible for serializing modifiers.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* `match-case`, `~third-party`, `domain=example.com|~example.org`
|
|
19
|
-
*/
|
|
20
|
-
class ModifierSerializer extends BaseSerializer {
|
|
21
|
-
/**
|
|
22
|
-
* Serializes a modifier node to binary format.
|
|
23
|
-
*
|
|
24
|
-
* @param node Node to serialize.
|
|
25
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
26
|
-
*/
|
|
27
|
-
static serialize(node, buffer) {
|
|
28
|
-
buffer.writeUint8(BinaryTypeMarshallingMap.ModifierNode);
|
|
29
|
-
buffer.writeUint8(ModifierNodeMarshallingMap.Name);
|
|
30
|
-
ValueSerializer.serialize(node.name, buffer, FREQUENT_MODIFIERS_SERIALIZATION_MAP);
|
|
31
|
-
if (!isUndefined(node.value)) {
|
|
32
|
-
buffer.writeUint8(ModifierNodeMarshallingMap.Value);
|
|
33
|
-
ValueSerializer.serialize(node.value, buffer, FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP.get(node.name.value));
|
|
34
|
-
}
|
|
35
|
-
buffer.writeUint8(ModifierNodeMarshallingMap.Exception);
|
|
36
|
-
buffer.writeUint8(node.exception ? 1 : 0);
|
|
37
|
-
if (!isUndefined(node.start)) {
|
|
38
|
-
buffer.writeUint8(ModifierNodeMarshallingMap.Start);
|
|
39
|
-
buffer.writeUint32(node.start);
|
|
40
|
-
}
|
|
41
|
-
if (!isUndefined(node.end)) {
|
|
42
|
-
buffer.writeUint8(ModifierNodeMarshallingMap.End);
|
|
43
|
-
buffer.writeUint32(node.end);
|
|
44
|
-
}
|
|
45
|
-
buffer.writeUint8(NULL);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export { ModifierSerializer };
|
|
@@ -1,52 +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 { ValueSerializer } from './value-serializer.js';
|
|
9
|
-
import { isNull, isUndefined } from '../../utils/type-guards.js';
|
|
10
|
-
import { BaseSerializer } from '../base-serializer.js';
|
|
11
|
-
import { ParameterListNodeMarshallingMap } from '../../marshalling-utils/misc/parameter-list-common.js';
|
|
12
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Serializer for parameter list nodes.
|
|
16
|
-
*/
|
|
17
|
-
class ParameterListSerializer extends BaseSerializer {
|
|
18
|
-
/**
|
|
19
|
-
* Serializes a parameter list node to binary format.
|
|
20
|
-
*
|
|
21
|
-
* @param node Node to serialize.
|
|
22
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
23
|
-
* @param frequentValuesMap Optional map of frequent values.
|
|
24
|
-
* @param toLower Whether to lowercase the value before the frequent value match (defaults to `false`).
|
|
25
|
-
*/
|
|
26
|
-
static serialize(node, buffer, frequentValuesMap, toLower = false) {
|
|
27
|
-
buffer.writeUint8(BinaryTypeMarshallingMap.ParameterListNode);
|
|
28
|
-
const count = node.children.length;
|
|
29
|
-
buffer.writeUint8(ParameterListNodeMarshallingMap.Children);
|
|
30
|
-
// note: we store the count, because re-construction of the array is faster if we know the length
|
|
31
|
-
buffer.writeUint32(count);
|
|
32
|
-
for (let i = 0; i < count; i += 1) {
|
|
33
|
-
const child = node.children[i];
|
|
34
|
-
if (isNull(child)) {
|
|
35
|
-
buffer.writeUint8(BinaryTypeMarshallingMap.Null);
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
ValueSerializer.serialize(child, buffer, frequentValuesMap, toLower);
|
|
39
|
-
}
|
|
40
|
-
if (!isUndefined(node.start)) {
|
|
41
|
-
buffer.writeUint8(ParameterListNodeMarshallingMap.Start);
|
|
42
|
-
buffer.writeUint32(node.start);
|
|
43
|
-
}
|
|
44
|
-
if (!isUndefined(node.end)) {
|
|
45
|
-
buffer.writeUint8(ParameterListNodeMarshallingMap.End);
|
|
46
|
-
buffer.writeUint32(node.end);
|
|
47
|
-
}
|
|
48
|
-
buffer.writeUint8(NULL);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export { ParameterListSerializer };
|
|
@@ -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 { NULL } from '../../utils/constants.js';
|
|
8
|
-
import { isUndefined } from '../../utils/type-guards.js';
|
|
9
|
-
import { BaseSerializer } from '../base-serializer.js';
|
|
10
|
-
import { ValueNodeMarshallingMap } from '../../marshalling-utils/misc/value-common.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Value serializer.
|
|
15
|
-
*/
|
|
16
|
-
class ValueSerializer extends BaseSerializer {
|
|
17
|
-
/**
|
|
18
|
-
* Serializes a value node to binary format.
|
|
19
|
-
*
|
|
20
|
-
* @param node Node to serialize.
|
|
21
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
22
|
-
* @param frequentValuesMap Optional map of frequent values.
|
|
23
|
-
* @param toLower Whether to lowercase the value before the frequent value match (defaults to `false`).
|
|
24
|
-
*/
|
|
25
|
-
static serialize(node, buffer, frequentValuesMap, toLower = false) {
|
|
26
|
-
buffer.writeUint8(BinaryTypeMarshallingMap.ValueNode);
|
|
27
|
-
const frequentValue = frequentValuesMap?.get(toLower ? node.value.toLowerCase() : node.value);
|
|
28
|
-
// note: do not use just `if (frequentValue)` because it can be 0
|
|
29
|
-
if (!isUndefined(frequentValue)) {
|
|
30
|
-
buffer.writeUint8(ValueNodeMarshallingMap.FrequentValue);
|
|
31
|
-
buffer.writeUint8(frequentValue);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
buffer.writeUint8(ValueNodeMarshallingMap.Value);
|
|
35
|
-
buffer.writeString(node.value);
|
|
36
|
-
}
|
|
37
|
-
// note: do not use just `if (node.start)` because it can be 0
|
|
38
|
-
if (!isUndefined(node.start)) {
|
|
39
|
-
buffer.writeUint8(ValueNodeMarshallingMap.Start);
|
|
40
|
-
buffer.writeUint32(node.start);
|
|
41
|
-
}
|
|
42
|
-
if (!isUndefined(node.end)) {
|
|
43
|
-
buffer.writeUint8(ValueNodeMarshallingMap.End);
|
|
44
|
-
buffer.writeUint32(node.end);
|
|
45
|
-
}
|
|
46
|
-
buffer.writeUint8(NULL);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export { ValueSerializer };
|
|
@@ -1,70 +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 { ValueSerializer } from '../misc/value-serializer.js';
|
|
9
|
-
import { isUndefined } from '../../utils/type-guards.js';
|
|
10
|
-
import { HostnameListSerializer } from './hostname-list-serializer.js';
|
|
11
|
-
import { BaseSerializer } from '../base-serializer.js';
|
|
12
|
-
import { HostRuleMarshallingMap } from '../../marshalling-utils/misc/host-rule-common.js';
|
|
13
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
14
|
-
import { getSyntaxSerializationMap } from '../../marshalling-utils/syntax-serialization-map.js';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* `HostRuleSerializer` is responsible for serializing hosts-like rules.
|
|
18
|
-
*
|
|
19
|
-
* HostRule is a structure for simple host-level rules (i.e. /etc/hosts syntax).
|
|
20
|
-
* It also supports "just domain" syntax. In this case, the IP will be set to 0.0.0.0.
|
|
21
|
-
*
|
|
22
|
-
* Rules syntax looks like this:
|
|
23
|
-
* ```text
|
|
24
|
-
* IP_address canonical_hostname [aliases...]
|
|
25
|
-
* ```
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* `192.168.1.13 bar.mydomain.org bar` -- ipv4
|
|
29
|
-
* `ff02::1 ip6-allnodes` -- ipv6
|
|
30
|
-
* `::1 localhost ip6-localhost ip6-loopback` -- ipv6 aliases
|
|
31
|
-
* `example.org` -- "just domain" syntax
|
|
32
|
-
* @see {@link http://man7.org/linux/man-pages/man5/hosts.5.html}
|
|
33
|
-
*/
|
|
34
|
-
class HostRuleSerializer extends BaseSerializer {
|
|
35
|
-
/**
|
|
36
|
-
* Serializes a host rule node to binary format.
|
|
37
|
-
*
|
|
38
|
-
* @param node Node to serialize.
|
|
39
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
40
|
-
*/
|
|
41
|
-
// TODO: add support for raws, if ever needed
|
|
42
|
-
static serialize(node, buffer) {
|
|
43
|
-
buffer.writeUint8(BinaryTypeMarshallingMap.HostRuleNode);
|
|
44
|
-
buffer.writeUint8(HostRuleMarshallingMap.Syntax);
|
|
45
|
-
buffer.writeUint8(getSyntaxSerializationMap().get(node.syntax) ?? 0);
|
|
46
|
-
if (node.ip) {
|
|
47
|
-
buffer.writeUint8(HostRuleMarshallingMap.Ip);
|
|
48
|
-
ValueSerializer.serialize(node.ip, buffer);
|
|
49
|
-
}
|
|
50
|
-
if (node.hostnames) {
|
|
51
|
-
buffer.writeUint8(HostRuleMarshallingMap.HostnameList);
|
|
52
|
-
HostnameListSerializer.serialize(node.hostnames, buffer);
|
|
53
|
-
}
|
|
54
|
-
if (node.comment) {
|
|
55
|
-
buffer.writeUint8(HostRuleMarshallingMap.Comment);
|
|
56
|
-
ValueSerializer.serialize(node.comment, buffer);
|
|
57
|
-
}
|
|
58
|
-
if (!isUndefined(node.start)) {
|
|
59
|
-
buffer.writeUint8(HostRuleMarshallingMap.Start);
|
|
60
|
-
buffer.writeUint32(node.start);
|
|
61
|
-
}
|
|
62
|
-
if (!isUndefined(node.end)) {
|
|
63
|
-
buffer.writeUint8(HostRuleMarshallingMap.End);
|
|
64
|
-
buffer.writeUint32(node.end);
|
|
65
|
-
}
|
|
66
|
-
buffer.writeUint8(NULL);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export { HostRuleSerializer };
|
|
@@ -1,53 +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 { BaseSerializer } from '../base-serializer.js';
|
|
8
|
-
import { isUndefined } from '../../utils/type-guards.js';
|
|
9
|
-
import { UINT16_MAX, NULL } from '../../utils/constants.js';
|
|
10
|
-
import { ValueSerializer } from '../misc/value-serializer.js';
|
|
11
|
-
import { HostnameListNodeMarshallingMap } from '../../marshalling-utils/misc/hostname-list-common.js';
|
|
12
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Serializer for hostname list nodes.
|
|
16
|
-
*/
|
|
17
|
-
class HostnameListSerializer extends BaseSerializer {
|
|
18
|
-
/**
|
|
19
|
-
* Serializes a hostname list node to binary format.
|
|
20
|
-
*
|
|
21
|
-
* @param node Node to serialize.
|
|
22
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
23
|
-
*/
|
|
24
|
-
static serialize(node, buffer) {
|
|
25
|
-
buffer.writeUint8(BinaryTypeMarshallingMap.HostnameListNode);
|
|
26
|
-
if (!isUndefined(node.start)) {
|
|
27
|
-
buffer.writeUint8(HostnameListNodeMarshallingMap.Start);
|
|
28
|
-
buffer.writeUint32(node.start);
|
|
29
|
-
}
|
|
30
|
-
if (!isUndefined(node.end)) {
|
|
31
|
-
buffer.writeUint8(HostnameListNodeMarshallingMap.End);
|
|
32
|
-
buffer.writeUint32(node.end);
|
|
33
|
-
}
|
|
34
|
-
const count = node.children.length;
|
|
35
|
-
// If there are no children, we do not write any data related to them, to avoid using unnecessary storage,
|
|
36
|
-
// but children is a required field, so during deserialization we should initialize it as an empty array,
|
|
37
|
-
// if there are no children in the binary data.
|
|
38
|
-
if (count) {
|
|
39
|
-
// note: we store the count, because re-construction of the array is faster if we know the length
|
|
40
|
-
if (count > UINT16_MAX) {
|
|
41
|
-
throw new Error(`Too many children: ${count}, the limit is ${UINT16_MAX}`);
|
|
42
|
-
}
|
|
43
|
-
buffer.writeUint8(HostnameListNodeMarshallingMap.Children);
|
|
44
|
-
buffer.writeUint16(count);
|
|
45
|
-
for (let i = 0; i < count; i += 1) {
|
|
46
|
-
ValueSerializer.serialize(node.children[i], buffer);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
buffer.writeUint8(NULL);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export { HostnameListSerializer };
|
|
@@ -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 { isUndefined } from '../../utils/type-guards.js';
|
|
9
|
-
import { ValueSerializer } from '../misc/value-serializer.js';
|
|
10
|
-
import { BaseSerializer } from '../base-serializer.js';
|
|
11
|
-
import { ModifierListSerializer } from '../misc/modifier-list-serializer.js';
|
|
12
|
-
import { NetworkRuleMarshallingMap } from '../../marshalling-utils/network/network-rule-common.js';
|
|
13
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
14
|
-
import { getSyntaxSerializationMap } from '../../marshalling-utils/syntax-serialization-map.js';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* `NetworkRuleSerializer` is responsible for serializing network rules.
|
|
18
|
-
*
|
|
19
|
-
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules}
|
|
20
|
-
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#basic}
|
|
21
|
-
*/
|
|
22
|
-
class NetworkRuleSerializer extends BaseSerializer {
|
|
23
|
-
/**
|
|
24
|
-
* Serializes a network rule node to binary format.
|
|
25
|
-
*
|
|
26
|
-
* @param node Node to serialize.
|
|
27
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
28
|
-
*/
|
|
29
|
-
// TODO: add support for raws, if ever needed
|
|
30
|
-
static serialize(node, buffer) {
|
|
31
|
-
buffer.writeUint8(BinaryTypeMarshallingMap.NetworkRuleNode);
|
|
32
|
-
buffer.writeUint8(NetworkRuleMarshallingMap.Syntax);
|
|
33
|
-
buffer.writeUint8(getSyntaxSerializationMap().get(node.syntax) ?? 0);
|
|
34
|
-
buffer.writeUint8(NetworkRuleMarshallingMap.Exception);
|
|
35
|
-
buffer.writeUint8(node.exception ? 1 : 0);
|
|
36
|
-
buffer.writeUint8(NetworkRuleMarshallingMap.Pattern);
|
|
37
|
-
ValueSerializer.serialize(node.pattern, buffer);
|
|
38
|
-
if (!isUndefined(node.modifiers)) {
|
|
39
|
-
buffer.writeUint8(NetworkRuleMarshallingMap.ModifierList);
|
|
40
|
-
ModifierListSerializer.serialize(node.modifiers, buffer);
|
|
41
|
-
}
|
|
42
|
-
if (!isUndefined(node.start)) {
|
|
43
|
-
buffer.writeUint8(NetworkRuleMarshallingMap.Start);
|
|
44
|
-
buffer.writeUint32(node.start);
|
|
45
|
-
}
|
|
46
|
-
if (!isUndefined(node.end)) {
|
|
47
|
-
buffer.writeUint8(NetworkRuleMarshallingMap.End);
|
|
48
|
-
buffer.writeUint32(node.end);
|
|
49
|
-
}
|
|
50
|
-
buffer.writeUint8(NULL);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export { NetworkRuleSerializer };
|
|
@@ -1,61 +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 { RuleCategory, NetworkRuleType } from '../nodes/index.js';
|
|
8
|
-
import { BaseSerializer } from './base-serializer.js';
|
|
9
|
-
import { CommentRuleSerializer } from './comment/comment-rule-serializer.js';
|
|
10
|
-
import { CosmeticRuleSerializer } from './cosmetic/cosmetic-rule-serializer.js';
|
|
11
|
-
import { HostRuleSerializer } from './network/host-rule-serializer.js';
|
|
12
|
-
import { NetworkRuleSerializer } from './network/network-rule-serializer.js';
|
|
13
|
-
import { EmptyRuleSerializer } from './empty-rule-serializer.js';
|
|
14
|
-
import { InvalidRuleSerializer } from './invalid-rule-serializer.js';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* `RuleSerializer` is responsible for serializing the rules.
|
|
18
|
-
*
|
|
19
|
-
* It automatically determines the category and syntax of the rule, so you can pass any kind of rule to it.
|
|
20
|
-
*/
|
|
21
|
-
class RuleSerializer extends BaseSerializer {
|
|
22
|
-
/**
|
|
23
|
-
* Serializes a rule node to binary format.
|
|
24
|
-
*
|
|
25
|
-
* @param node Node to serialize.
|
|
26
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
27
|
-
*/
|
|
28
|
-
// TODO: add support for raws, if ever needed
|
|
29
|
-
static serialize(node, buffer) {
|
|
30
|
-
switch (node.category) {
|
|
31
|
-
case RuleCategory.Comment:
|
|
32
|
-
CommentRuleSerializer.serialize(node, buffer);
|
|
33
|
-
break;
|
|
34
|
-
case RuleCategory.Cosmetic:
|
|
35
|
-
CosmeticRuleSerializer.serialize(node, buffer);
|
|
36
|
-
break;
|
|
37
|
-
case RuleCategory.Network:
|
|
38
|
-
switch (node.type) {
|
|
39
|
-
case NetworkRuleType.HostRule:
|
|
40
|
-
HostRuleSerializer.serialize(node, buffer);
|
|
41
|
-
break;
|
|
42
|
-
case NetworkRuleType.NetworkRule:
|
|
43
|
-
NetworkRuleSerializer.serialize(node, buffer);
|
|
44
|
-
break;
|
|
45
|
-
default:
|
|
46
|
-
throw new Error('Unknown network rule type');
|
|
47
|
-
}
|
|
48
|
-
break;
|
|
49
|
-
case RuleCategory.Empty:
|
|
50
|
-
EmptyRuleSerializer.serialize(node, buffer);
|
|
51
|
-
break;
|
|
52
|
-
case RuleCategory.Invalid:
|
|
53
|
-
InvalidRuleSerializer.serialize(node, buffer);
|
|
54
|
-
break;
|
|
55
|
-
default:
|
|
56
|
-
throw new Error('Unknown rule category');
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export { RuleSerializer };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type Node } from '../nodes/index.js';
|
|
2
|
-
import { type InputByteBuffer } from '../utils/input-byte-buffer.js';
|
|
3
|
-
/**
|
|
4
|
-
* Base class for deserializers. Each deserializer should extend this class.
|
|
5
|
-
*/
|
|
6
|
-
export declare class BaseDeserializer {
|
|
7
|
-
/**
|
|
8
|
-
* Deserializes the AST node from a byte buffer.
|
|
9
|
-
*
|
|
10
|
-
* @param buffer Input byte buffer to read from.
|
|
11
|
-
* @param node Destination node to write to.
|
|
12
|
-
* @param args Additional, parser-specific arguments, if needed.
|
|
13
|
-
*/
|
|
14
|
-
static deserialize(buffer: InputByteBuffer, node: Partial<Node>, ...args: unknown[]): void;
|
|
15
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { type AgentCommentRule } from '../../nodes/index.js';
|
|
2
|
-
import { type InputByteBuffer } from '../../utils/input-byte-buffer.js';
|
|
3
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
4
|
-
/**
|
|
5
|
-
* `AgentCommentDeserializer` is responsible for deserializing an Adblock agent comments.
|
|
6
|
-
* Adblock agent comment marks that the filter list is supposed to
|
|
7
|
-
* be used by the specified ad blockers.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* - ```adblock
|
|
11
|
-
* [AdGuard]
|
|
12
|
-
* ```
|
|
13
|
-
* - ```adblock
|
|
14
|
-
* [Adblock Plus 2.0]
|
|
15
|
-
* ```
|
|
16
|
-
* - ```adblock
|
|
17
|
-
* [uBlock Origin]
|
|
18
|
-
* ```
|
|
19
|
-
* - ```adblock
|
|
20
|
-
* [uBlock Origin 1.45.3]
|
|
21
|
-
* ```
|
|
22
|
-
* - ```adblock
|
|
23
|
-
* [Adblock Plus 2.0; AdGuard]
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export declare class AgentCommentDeserializer extends BaseDeserializer {
|
|
27
|
-
/**
|
|
28
|
-
* Deserializes an agent list node from binary format.
|
|
29
|
-
*
|
|
30
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
31
|
-
* @param node Destination node.
|
|
32
|
-
*/
|
|
33
|
-
static deserialize(buffer: InputByteBuffer, node: Partial<AgentCommentRule>): void;
|
|
34
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type Agent } from '../../nodes/index.js';
|
|
2
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
3
|
-
import { type InputByteBuffer } from '../../utils/input-byte-buffer.js';
|
|
4
|
-
/**
|
|
5
|
-
* `AgentDeserializer` is responsible for deserializing single adblock agent elements.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* If the adblock agent rule is
|
|
9
|
-
* ```adblock
|
|
10
|
-
* [Adblock Plus 2.0; AdGuard]
|
|
11
|
-
* ```
|
|
12
|
-
* then the adblock agents are `Adblock Plus 2.0` and `AdGuard`, and this
|
|
13
|
-
* class is responsible for parsing them. The rule itself is parsed by
|
|
14
|
-
* `AgentCommentSerializer`, which uses this class to parse single agents.
|
|
15
|
-
*/
|
|
16
|
-
export declare class AgentDeserializer extends BaseDeserializer {
|
|
17
|
-
/**
|
|
18
|
-
* Deserializes an agent node from binary format.
|
|
19
|
-
*
|
|
20
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
21
|
-
* @param node Destination node.
|
|
22
|
-
* @throws If the binary data is malformed.
|
|
23
|
-
*/
|
|
24
|
-
static deserialize(buffer: InputByteBuffer, node: Partial<Agent>): void;
|
|
25
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { type AnyCommentRule } from '../../nodes/index.js';
|
|
2
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
3
|
-
import { type InputByteBuffer } from '../../utils/input-byte-buffer.js';
|
|
4
|
-
/**
|
|
5
|
-
* `CommentRuleDeserializer` is responsible for deserializing any comment-like adblock rules.
|
|
6
|
-
*/
|
|
7
|
-
export declare class CommentRuleDeserializer extends BaseDeserializer {
|
|
8
|
-
/**
|
|
9
|
-
* Deserializes a comment rule node from binary format.
|
|
10
|
-
*
|
|
11
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
12
|
-
* @param node Destination node.
|
|
13
|
-
* @throws If the binary data is malformed.
|
|
14
|
-
*/
|
|
15
|
-
static deserialize(buffer: InputByteBuffer, node: Partial<AnyCommentRule>): void;
|
|
16
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { type ConfigCommentRule } from '../../nodes/index.js';
|
|
2
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
3
|
-
import { type InputByteBuffer } from '../../utils/input-byte-buffer.js';
|
|
4
|
-
/**
|
|
5
|
-
* `ConfigCommentDeserializer` is responsible for deserializing inline AGLint configuration rules.
|
|
6
|
-
* Generally, the idea is inspired by ESLint inline configuration comments.
|
|
7
|
-
*
|
|
8
|
-
* @see {@link https://eslint.org/docs/latest/user-guide/configuring/rules#using-configuration-comments}
|
|
9
|
-
*/
|
|
10
|
-
export declare class ConfigCommentDeserializer extends BaseDeserializer {
|
|
11
|
-
/**
|
|
12
|
-
* Deserializes a metadata comment node from binary format.
|
|
13
|
-
*
|
|
14
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
15
|
-
* @param node Destination node.
|
|
16
|
-
* @throws If the binary data is malformed.
|
|
17
|
-
*/
|
|
18
|
-
private static deserializeConfigNode;
|
|
19
|
-
/**
|
|
20
|
-
* Deserializes a metadata comment node from binary format.
|
|
21
|
-
*
|
|
22
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
23
|
-
* @param node Destination node.
|
|
24
|
-
* @throws If the binary data is malformed.
|
|
25
|
-
*/
|
|
26
|
-
static deserialize(buffer: InputByteBuffer, node: Partial<ConfigCommentRule>): void;
|
|
27
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { type HintCommentRule } from '../../nodes/index.js';
|
|
2
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
3
|
-
import { type InputByteBuffer } from '../../utils/input-byte-buffer.js';
|
|
4
|
-
/**
|
|
5
|
-
* `HintCommentDeserializer` is responsible for deserializing AdGuard hint rules.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* The following hint rule
|
|
9
|
-
* ```adblock
|
|
10
|
-
* !+ NOT_OPTIMIZED PLATFORM(windows)
|
|
11
|
-
* ```
|
|
12
|
-
* contains two hints: `NOT_OPTIMIZED` and `PLATFORM`.
|
|
13
|
-
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#hints}
|
|
14
|
-
*/
|
|
15
|
-
export declare class HintCommentDeserializer extends BaseDeserializer {
|
|
16
|
-
/**
|
|
17
|
-
* Deserializes a hint rule node from binary format.
|
|
18
|
-
*
|
|
19
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
20
|
-
* @param node Destination node.
|
|
21
|
-
* @throws If the binary data is malformed.
|
|
22
|
-
*/
|
|
23
|
-
static deserialize(buffer: InputByteBuffer, node: Partial<HintCommentRule>): void;
|
|
24
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { type Hint } from '../../nodes/index.js';
|
|
2
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
3
|
-
import { type InputByteBuffer } from '../../utils/input-byte-buffer.js';
|
|
4
|
-
export declare const getFrequentPlatformsDeserializationMap: () => Map<number, string>;
|
|
5
|
-
/**
|
|
6
|
-
* `HintDeserializer` is responsible for deserializing AdGuard hints.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* If the hint rule is
|
|
10
|
-
* ```adblock
|
|
11
|
-
* !+ NOT_OPTIMIZED PLATFORM(windows)
|
|
12
|
-
* ```
|
|
13
|
-
* then the hints are `NOT_OPTIMIZED` and `PLATFORM(windows)`, and this
|
|
14
|
-
* class is responsible for parsing them. The rule itself is parsed by
|
|
15
|
-
* the `HintRuleParser`, which uses this class to parse single hints.
|
|
16
|
-
*/
|
|
17
|
-
export declare class HintDeserializer extends BaseDeserializer {
|
|
18
|
-
/**
|
|
19
|
-
* Deserializes a hint node from binary format.
|
|
20
|
-
*
|
|
21
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
22
|
-
* @param node Destination node.
|
|
23
|
-
* @throws If the binary data is malformed.
|
|
24
|
-
*/
|
|
25
|
-
static deserialize(buffer: InputByteBuffer, node: Partial<Hint>): void;
|
|
26
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { type MetadataCommentRule } from '../../nodes/index.js';
|
|
2
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
3
|
-
import { type InputByteBuffer } from '../../utils/input-byte-buffer.js';
|
|
4
|
-
/**
|
|
5
|
-
* `MetadataCommentDeserializer` is responsible for deserializing metadata comments.
|
|
6
|
-
* Metadata comments are special comments that specify some properties of the list.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* For example, in the case of
|
|
10
|
-
* ```adblock
|
|
11
|
-
* ! Title: My List
|
|
12
|
-
* ```
|
|
13
|
-
* the name of the header is `Title`, and the value is `My List`, which means that
|
|
14
|
-
* the list title is `My List`, and it can be used in the adblocker UI.
|
|
15
|
-
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#special-comments}
|
|
16
|
-
*/
|
|
17
|
-
export declare class MetadataCommentDeserializer extends BaseDeserializer {
|
|
18
|
-
/**
|
|
19
|
-
* Deserializes a metadata comment node from binary format.
|
|
20
|
-
*
|
|
21
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
22
|
-
* @param node Destination node.
|
|
23
|
-
* @throws If the binary data is malformed.
|
|
24
|
-
*/
|
|
25
|
-
static deserialize(buffer: InputByteBuffer, node: Partial<MetadataCommentRule>): void;
|
|
26
|
-
}
|