@adguard/agtree 3.4.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ast-utils/clone.js +2 -2
- package/dist/ast-utils/modifiers.js +2 -2
- package/dist/ast-utils/network-rules.js +2 -2
- package/dist/ast-utils/scriptlets.js +2 -2
- package/dist/common/abp-snippet-injection-body-common.js +2 -2
- package/dist/common/agent-common.js +2 -2
- package/dist/common/ubo-html-filtering-body-common.js +40 -0
- package/dist/common/ubo-selector-common.js +2 -2
- package/dist/compatibility-tables/base.js +2 -2
- package/dist/compatibility-tables/compatibility-table-data.js +4 -4
- package/dist/compatibility-tables/modifiers.js +2 -2
- package/dist/compatibility-tables/platforms.js +2 -2
- package/dist/compatibility-tables/redirects.js +2 -2
- package/dist/compatibility-tables/schemas/base.js +2 -2
- package/dist/compatibility-tables/schemas/modifier.js +2 -2
- package/dist/compatibility-tables/schemas/platform.js +2 -2
- package/dist/compatibility-tables/schemas/redirect.js +2 -2
- package/dist/compatibility-tables/schemas/resource-type.js +2 -2
- package/dist/compatibility-tables/schemas/scriptlet.js +2 -2
- package/dist/compatibility-tables/scriptlets.js +2 -2
- package/dist/compatibility-tables/utils/platform-helpers.js +2 -2
- package/dist/compatibility-tables/utils/resource-type-helpers.js +2 -2
- package/dist/compatibility-tables/utils/zod-camelcase.js +2 -2
- package/dist/converter/base-interfaces/base-converter.js +2 -2
- package/dist/converter/base-interfaces/conversion-result.js +2 -2
- package/dist/converter/base-interfaces/rule-converter-base.js +2 -2
- package/dist/converter/comment/index.js +2 -2
- package/dist/converter/cosmetic/css.js +2 -2
- package/dist/converter/cosmetic/element-hiding.js +2 -2
- package/dist/converter/cosmetic/header-removal.js +24 -42
- package/dist/converter/cosmetic/html.js +580 -438
- package/dist/converter/cosmetic/index.js +3 -2
- package/dist/converter/cosmetic/rule-modifiers/adg.js +2 -2
- package/dist/converter/cosmetic/rule-modifiers/ubo.js +2 -2
- package/dist/converter/cosmetic/scriptlet.js +2 -2
- package/dist/converter/css/index.js +3 -2
- package/dist/converter/data/css.js +32 -54
- package/dist/converter/filter-list.js +2 -2
- package/dist/converter/index.js +2 -2
- package/dist/converter/misc/network-rule-modifier.js +2 -2
- package/dist/converter/network/index.js +2 -2
- package/dist/converter/raw-filter-list.js +2 -2
- package/dist/converter/raw-rule.js +6 -3
- package/dist/converter/rule.js +2 -2
- package/dist/errors/adblock-syntax-error.js +2 -2
- package/dist/errors/binary-schema-mismatch-error.js +2 -2
- package/dist/errors/not-implemented-error.js +2 -2
- package/dist/errors/rule-conversion-error.js +2 -2
- package/dist/generator/base-generator.js +2 -2
- package/dist/generator/comment/agent-comment-generator.js +2 -2
- package/dist/generator/comment/agent-generator.js +2 -2
- package/dist/generator/comment/comment-rule-generator.js +2 -2
- package/dist/generator/comment/config-comment-generator.js +2 -2
- package/dist/generator/comment/hint-comment-generator.js +2 -2
- package/dist/generator/comment/hint-generator.js +2 -2
- package/dist/generator/comment/metadata-comment-generator.js +2 -2
- package/dist/generator/comment/pre-processor-comment-generator.js +2 -2
- package/dist/generator/comment/simple-comment-generator.js +2 -2
- package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +21 -6
- package/dist/generator/cosmetic/cosmetic-rule-generator.js +2 -2
- package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +2 -2
- package/dist/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.js +38 -0
- package/dist/generator/cosmetic/html-filtering-body/html-filtering-body-generator.js +32 -0
- package/dist/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.js +65 -0
- package/dist/generator/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-generator.js +2 -2
- package/dist/generator/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-generator.js +2 -2
- package/dist/generator/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-generator.js +2 -2
- package/dist/generator/cosmetic/selector/attribute-selector-generator.js +42 -0
- package/dist/generator/cosmetic/selector/class-selector-generator.js +26 -0
- package/dist/generator/cosmetic/selector/complex-selector-generator.js +71 -0
- package/dist/generator/cosmetic/selector/id-selector-generator.js +26 -0
- package/dist/generator/cosmetic/selector/pseudo-class-selector-generator.js +35 -0
- package/dist/generator/cosmetic/selector/selector-combinator-generator.js +30 -0
- package/dist/generator/cosmetic/selector/selector-list-generator.js +41 -0
- package/dist/generator/cosmetic/selector/type-selector-generator.js +25 -0
- package/dist/generator/css/adg-css-injection-generator.js +5 -6
- package/dist/generator/filterlist-generator.js +2 -2
- package/dist/generator/index.js +2 -2
- package/dist/generator/misc/domain-list-generator.js +2 -2
- package/dist/generator/misc/list-items-generator.js +2 -2
- package/dist/generator/misc/logical-expression-generator.js +2 -2
- package/dist/generator/misc/modifier-generator.js +2 -2
- package/dist/generator/misc/modifier-list-generator.js +2 -2
- package/dist/generator/misc/parameter-list-generator.js +2 -2
- package/dist/generator/misc/value-generator.js +2 -2
- package/dist/generator/network/host-rule-generator.js +2 -2
- package/dist/generator/network/network-rule-generator.js +2 -2
- package/dist/generator/rule-generator.js +2 -2
- package/dist/index.js +4 -14
- package/dist/nodes/index.js +2 -2
- package/dist/package.json.js +3 -3
- package/dist/parser/base-parser.js +2 -2
- package/dist/parser/comment/agent-comment-parser.js +2 -2
- package/dist/parser/comment/agent-parser.js +2 -2
- package/dist/parser/comment/comment-parser.js +2 -2
- package/dist/parser/comment/config-comment-parser.js +2 -2
- package/dist/parser/comment/hint-comment-parser.js +2 -2
- package/dist/parser/comment/hint-parser.js +2 -2
- package/dist/parser/comment/metadata-comment-parser.js +2 -2
- package/dist/parser/comment/preprocessor-parser.js +2 -2
- package/dist/parser/comment/simple-comment-parser.js +2 -2
- package/dist/parser/cosmetic/cosmetic-rule-parser.js +10 -21
- package/dist/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.js +49 -0
- package/dist/parser/cosmetic/html-filtering-body/html-filtering-body-parser.js +70 -0
- package/dist/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.js +180 -0
- package/dist/parser/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-parser.js +2 -2
- package/dist/parser/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-parser.js +2 -2
- package/dist/parser/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-parser.js +2 -2
- package/dist/parser/cosmetic/selector/handlers/attribute-selector-handler.js +206 -0
- package/dist/parser/cosmetic/selector/handlers/class-selector-handler.js +48 -0
- package/dist/parser/cosmetic/selector/handlers/complex-selector-handler.js +67 -0
- package/dist/parser/cosmetic/selector/handlers/compound-selector-handler.js +97 -0
- package/dist/parser/cosmetic/selector/handlers/id-selector-handler.js +42 -0
- package/dist/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.js +128 -0
- package/dist/parser/cosmetic/selector/handlers/type-selector-handler.js +58 -0
- package/dist/parser/cosmetic/selector/selector-list-parser.js +164 -0
- package/dist/parser/css/adg-css-injection-parser.js +4 -5
- package/dist/parser/css/balancing.js +2 -2
- package/dist/parser/css/constants.js +2 -2
- package/dist/parser/css/css-token-stream.js +41 -4
- package/dist/parser/css/ubo-selector-parser.js +2 -2
- package/dist/parser/filterlist-parser.js +2 -2
- package/dist/parser/index.js +2 -2
- package/dist/parser/misc/app-list-parser.js +2 -2
- package/dist/parser/misc/domain-list-parser.js +2 -2
- package/dist/parser/misc/list-items-parser.js +2 -2
- package/dist/parser/misc/logical-expression-parser.js +2 -2
- package/dist/parser/misc/method-list-parser.js +2 -2
- package/dist/parser/misc/modifier-list.js +9 -3
- package/dist/parser/misc/modifier-parser.js +2 -2
- package/dist/parser/misc/parameter-list-parser.js +2 -2
- package/dist/parser/misc/stealth-option-list-parser.js +2 -2
- package/dist/parser/misc/ubo-parameter-list-parser.js +2 -2
- package/dist/parser/misc/value-parser.js +2 -2
- package/dist/parser/network/host-rule-parser.js +2 -2
- package/dist/parser/network/network-rule-parser.js +2 -2
- package/dist/parser/options.js +3 -2
- package/dist/parser/rule-parser.js +2 -2
- package/dist/types/common/ubo-html-filtering-body-common.d.ts +12 -0
- package/dist/types/compatibility-tables/compatibility-table-data.d.ts +3 -3
- package/dist/types/compatibility-tables/schemas/redirect.d.ts +1 -1
- package/dist/types/compatibility-tables/schemas/scriptlet.d.ts +2 -2
- package/dist/types/converter/cosmetic/html.d.ts +167 -42
- package/dist/types/converter/data/css.d.ts +18 -6
- package/dist/types/generator/cosmetic/html-filtering-body/adg-html-filtering-body-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/html-filtering-body/html-filtering-body-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/html-filtering-body/ubo-html-filtering-body-generator.d.ts +30 -0
- package/dist/types/generator/cosmetic/selector/attribute-selector-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/class-selector-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/complex-selector-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/selector/id-selector-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/pseudo-class-selector-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/selector-combinator-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/selector/selector-list-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/selector/type-selector-generator.d.ts +15 -0
- package/dist/types/generator/css/adg-css-injection-generator.d.ts +1 -1
- package/dist/types/index.d.ts +3 -13
- package/dist/types/nodes/index.d.ts +159 -3
- package/dist/types/parser/cosmetic/html-filtering-body/adg-html-filtering-body-parser.d.ts +35 -0
- package/dist/types/parser/cosmetic/html-filtering-body/html-filtering-body-parser.d.ts +39 -0
- package/dist/types/parser/cosmetic/html-filtering-body/ubo-html-filtering-body-parser.d.ts +63 -0
- package/dist/types/parser/cosmetic/selector/context.d.ts +42 -0
- package/dist/types/parser/cosmetic/selector/handlers/attribute-selector-handler.d.ts +35 -0
- package/dist/types/parser/cosmetic/selector/handlers/class-selector-handler.d.ts +15 -0
- package/dist/types/parser/cosmetic/selector/handlers/complex-selector-handler.d.ts +20 -0
- package/dist/types/parser/cosmetic/selector/handlers/compound-selector-handler.d.ts +25 -0
- package/dist/types/parser/cosmetic/selector/handlers/id-selector-handler.d.ts +15 -0
- package/dist/types/parser/cosmetic/selector/handlers/pseudo-class-selector-handler.d.ts +15 -0
- package/dist/types/parser/cosmetic/selector/handlers/type-selector-handler.d.ts +15 -0
- package/dist/types/parser/cosmetic/selector/selector-list-parser.d.ts +38 -0
- package/dist/types/parser/css/adg-css-injection-parser.d.ts +0 -2
- package/dist/types/parser/css/css-token-stream.d.ts +18 -0
- package/dist/types/parser/network/network-rule-parser.d.ts +1 -1
- package/dist/types/parser/options.d.ts +5 -0
- package/dist/types/utils/constants.d.ts +1 -0
- package/dist/types/utils/index.d.ts +0 -6
- package/dist/types/utils/quotes.d.ts +44 -0
- package/dist/types/utils/regexp.d.ts +24 -0
- package/dist/utils/adblockers.js +2 -2
- package/dist/utils/bit-count.js +2 -2
- package/dist/utils/categorizer.js +2 -2
- package/dist/utils/clone.js +2 -2
- package/dist/utils/constants.js +6 -9
- package/dist/utils/cosmetic-rule-separator.js +2 -2
- package/dist/utils/deep-freeze.js +2 -2
- package/dist/utils/domain.js +2 -2
- package/dist/utils/error.js +2 -2
- package/dist/utils/index.js +2 -8
- package/dist/utils/logical-expression.js +2 -2
- package/dist/utils/multi-value-map.js +2 -2
- package/dist/utils/noop-modifier.js +2 -2
- package/dist/utils/position-provider.js +2 -2
- package/dist/utils/quotes.js +163 -10
- package/dist/utils/regexp.js +31 -2
- package/dist/utils/string.js +2 -2
- package/dist/utils/type-guards.js +3 -13
- package/dist/validator/constants.js +2 -2
- package/dist/validator/helpers.js +2 -2
- package/dist/validator/index.js +2 -2
- package/dist/validator/value.js +2 -2
- package/dist/version.js +2 -2
- package/package.json +8 -16
- package/dist/deserializer/base-deserializer.js +0 -29
- package/dist/deserializer/comment/agent-comment-deserializer.js +0 -79
- package/dist/deserializer/comment/agent-deserializer.js +0 -65
- package/dist/deserializer/comment/comment-rule-deserializer.js +0 -54
- package/dist/deserializer/comment/config-comment-deserializer.js +0 -111
- package/dist/deserializer/comment/hint-comment-deserializer.js +0 -72
- package/dist/deserializer/comment/hint-deserializer.js +0 -85
- package/dist/deserializer/comment/metadata-comment-deserializer.js +0 -69
- package/dist/deserializer/comment/pre-processor-comment-deserializer.js +0 -112
- package/dist/deserializer/comment/simple-comment-deserializer.js +0 -65
- package/dist/deserializer/cosmetic/cosmetic-rule-deserializer.js +0 -131
- package/dist/deserializer/cosmetic/css-injection-body-deserializer.js +0 -56
- package/dist/deserializer/cosmetic/element-hiding-body-deserializer.js +0 -48
- package/dist/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +0 -39
- package/dist/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +0 -40
- package/dist/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +0 -54
- package/dist/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +0 -38
- package/dist/deserializer/empty-rule-deserializer.js +0 -48
- package/dist/deserializer/filterlist-deserializer.js +0 -85
- package/dist/deserializer/index.js +0 -8
- package/dist/deserializer/invalid-rule-deserializer.js +0 -50
- package/dist/deserializer/invalid-rule-error-node-deserializer.js +0 -50
- package/dist/deserializer/misc/domain-list-deserializer.js +0 -64
- package/dist/deserializer/misc/list-item-deserializer.js +0 -69
- package/dist/deserializer/misc/list-items-deserializer.js +0 -30
- package/dist/deserializer/misc/logical-expression-deserializer.js +0 -196
- package/dist/deserializer/misc/modifier-deserializer.js +0 -87
- package/dist/deserializer/misc/modifier-list-deserializer.js +0 -61
- package/dist/deserializer/misc/parameter-list-deserializer.js +0 -64
- package/dist/deserializer/misc/value-deserializer.js +0 -50
- package/dist/deserializer/network/host-rule-deserializer.js +0 -67
- package/dist/deserializer/network/hostname-list-deserializer.js +0 -56
- package/dist/deserializer/network/network-rule-deserializer.js +0 -65
- package/dist/deserializer/rule-deserializer.js +0 -65
- package/dist/deserializer/syntax-deserialization-map.js +0 -21
- package/dist/marshalling-utils/comment/agent-comment-common.js +0 -21
- package/dist/marshalling-utils/comment/agent-common.js +0 -40
- package/dist/marshalling-utils/comment/config-comment-common.js +0 -54
- package/dist/marshalling-utils/comment/hint-comment-common.js +0 -22
- package/dist/marshalling-utils/comment/hint-common.js +0 -56
- package/dist/marshalling-utils/comment/metadata-comment-common.js +0 -41
- package/dist/marshalling-utils/comment/pre-processor-comment-common.js +0 -59
- package/dist/marshalling-utils/comment/simple-comment-common.js +0 -22
- package/dist/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +0 -61
- package/dist/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +0 -66
- package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +0 -24
- package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +0 -21
- package/dist/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +0 -114
- package/dist/marshalling-utils/cosmetic/cosmetic-rule-common.js +0 -46
- package/dist/marshalling-utils/empty-rule-common.js +0 -20
- package/dist/marshalling-utils/filter-list-common.js +0 -21
- package/dist/marshalling-utils/invalid-rule-common.js +0 -21
- package/dist/marshalling-utils/invalid-rule-error-node-common.js +0 -22
- package/dist/marshalling-utils/misc/binary-type-common.js +0 -54
- package/dist/marshalling-utils/misc/domain-list-common.js +0 -36
- package/dist/marshalling-utils/misc/host-rule-common.js +0 -24
- package/dist/marshalling-utils/misc/hostname-list-common.js +0 -21
- package/dist/marshalling-utils/misc/list-item-common.js +0 -22
- package/dist/marshalling-utils/misc/logical-expression-common.js +0 -83
- package/dist/marshalling-utils/misc/modifier-common.js +0 -231
- package/dist/marshalling-utils/misc/modifier-list-common.js +0 -21
- package/dist/marshalling-utils/misc/parameter-list-common.js +0 -21
- package/dist/marshalling-utils/misc/value-common.js +0 -22
- package/dist/marshalling-utils/network/network-rule-common.js +0 -24
- package/dist/marshalling-utils/syntax-serialization-map.js +0 -30
- package/dist/serializer/base-serializer.js +0 -29
- package/dist/serializer/comment/agent-comment-serializer.js +0 -74
- package/dist/serializer/comment/agent-serializer.js +0 -59
- package/dist/serializer/comment/comment-rule-serializer.js +0 -105
- package/dist/serializer/comment/config-comment-serializer.js +0 -82
- package/dist/serializer/comment/hint-comment-serializer.js +0 -65
- package/dist/serializer/comment/hint-serializer.js +0 -54
- package/dist/serializer/comment/metadata-comment-serializer.js +0 -73
- package/dist/serializer/comment/pre-processor-comment-serializer.js +0 -71
- package/dist/serializer/comment/simple-comment-serializer.js +0 -52
- package/dist/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +0 -36
- package/dist/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +0 -36
- package/dist/serializer/cosmetic/body/scriptlet-body-serializer.js +0 -50
- package/dist/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +0 -36
- package/dist/serializer/cosmetic/cosmetic-rule-serializer.js +0 -120
- package/dist/serializer/cosmetic/css-injection-body-serializer.js +0 -51
- package/dist/serializer/cosmetic/element-hiding-body-serializer.js +0 -40
- package/dist/serializer/empty-rule-serializer.js +0 -37
- package/dist/serializer/filterlist-serializer.js +0 -45
- package/dist/serializer/index.js +0 -7
- package/dist/serializer/invalid-rule-error-node-serializer.js +0 -41
- package/dist/serializer/invalid-rule-serializer.js +0 -40
- package/dist/serializer/misc/domain-list-serializer.js +0 -64
- package/dist/serializer/misc/list-item-serializer.js +0 -58
- package/dist/serializer/misc/list-items-serializer.js +0 -29
- package/dist/serializer/misc/logical-expression-serializer.js +0 -136
- package/dist/serializer/misc/modifier-list-serializer.js +0 -58
- package/dist/serializer/misc/modifier-serializer.js +0 -49
- package/dist/serializer/misc/parameter-list-serializer.js +0 -52
- package/dist/serializer/misc/value-serializer.js +0 -50
- package/dist/serializer/network/host-rule-serializer.js +0 -70
- package/dist/serializer/network/hostname-list-serializer.js +0 -53
- package/dist/serializer/network/network-rule-serializer.js +0 -54
- package/dist/serializer/rule-serializer.js +0 -61
- package/dist/types/deserializer/base-deserializer.d.ts +0 -15
- package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +0 -34
- package/dist/types/deserializer/comment/agent-deserializer.d.ts +0 -25
- package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +0 -16
- package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +0 -27
- package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +0 -24
- package/dist/types/deserializer/comment/hint-deserializer.d.ts +0 -26
- package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +0 -26
- package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +0 -29
- package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +0 -26
- package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +0 -18
- package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +0 -15
- package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +0 -16
- package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +0 -17
- package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +0 -18
- package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +0 -19
- package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +0 -17
- package/dist/types/deserializer/empty-rule-deserializer.d.ts +0 -16
- package/dist/types/deserializer/filterlist-deserializer.d.ts +0 -34
- package/dist/types/deserializer/index.d.ts +0 -2
- package/dist/types/deserializer/invalid-rule-deserializer.d.ts +0 -16
- package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +0 -16
- package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +0 -15
- package/dist/types/deserializer/misc/list-item-deserializer.d.ts +0 -19
- package/dist/types/deserializer/misc/list-items-deserializer.d.ts +0 -16
- package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +0 -55
- package/dist/types/deserializer/misc/modifier-deserializer.d.ts +0 -18
- package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +0 -20
- package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +0 -18
- package/dist/types/deserializer/misc/value-deserializer.d.ts +0 -17
- package/dist/types/deserializer/network/host-rule-deserializer.d.ts +0 -18
- package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +0 -15
- package/dist/types/deserializer/network/network-rule-deserializer.d.ts +0 -18
- package/dist/types/deserializer/rule-deserializer.d.ts +0 -17
- package/dist/types/deserializer/syntax-deserialization-map.d.ts +0 -2
- package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +0 -14
- package/dist/types/marshalling-utils/comment/agent-common.d.ts +0 -20
- package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +0 -42
- package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +0 -15
- package/dist/types/marshalling-utils/comment/hint-common.d.ts +0 -33
- package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +0 -21
- package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +0 -37
- package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +0 -15
- package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +0 -23
- package/dist/types/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.d.ts +0 -9
- package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +0 -17
- package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +0 -14
- package/dist/types/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.d.ts +0 -9
- package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +0 -28
- package/dist/types/marshalling-utils/empty-rule-common.d.ts +0 -13
- package/dist/types/marshalling-utils/filter-list-common.d.ts +0 -14
- package/dist/types/marshalling-utils/invalid-rule-common.d.ts +0 -14
- package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +0 -15
- package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +0 -57
- package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +0 -24
- package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +0 -18
- package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +0 -14
- package/dist/types/marshalling-utils/misc/list-item-common.d.ts +0 -15
- package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +0 -47
- package/dist/types/marshalling-utils/misc/modifier-common.d.ts +0 -41
- package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +0 -14
- package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +0 -14
- package/dist/types/marshalling-utils/misc/value-common.d.ts +0 -15
- package/dist/types/marshalling-utils/network/network-rule-common.d.ts +0 -18
- package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +0 -2
- package/dist/types/serializer/base-serializer.d.ts +0 -15
- package/dist/types/serializer/comment/agent-comment-serializer.d.ts +0 -34
- package/dist/types/serializer/comment/agent-serializer.d.ts +0 -15
- package/dist/types/serializer/comment/comment-rule-serializer.d.ts +0 -68
- package/dist/types/serializer/comment/config-comment-serializer.d.ts +0 -25
- package/dist/types/serializer/comment/hint-comment-serializer.d.ts +0 -23
- package/dist/types/serializer/comment/hint-serializer.d.ts +0 -24
- package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +0 -25
- package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +0 -28
- package/dist/types/serializer/comment/simple-comment-serializer.d.ts +0 -24
- package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +0 -25
- package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +0 -25
- package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +0 -17
- package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +0 -25
- package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +0 -19
- package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +0 -15
- package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +0 -15
- package/dist/types/serializer/empty-rule-serializer.d.ts +0 -15
- package/dist/types/serializer/filterlist-serializer.d.ts +0 -15
- package/dist/types/serializer/index.d.ts +0 -1
- package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +0 -15
- package/dist/types/serializer/invalid-rule-serializer.d.ts +0 -15
- package/dist/types/serializer/misc/domain-list-serializer.d.ts +0 -21
- package/dist/types/serializer/misc/list-item-serializer.d.ts +0 -16
- package/dist/types/serializer/misc/list-items-serializer.d.ts +0 -15
- package/dist/types/serializer/misc/logical-expression-serializer.d.ts +0 -52
- package/dist/types/serializer/misc/modifier-list-serializer.d.ts +0 -20
- package/dist/types/serializer/misc/modifier-serializer.d.ts +0 -18
- package/dist/types/serializer/misc/parameter-list-serializer.d.ts +0 -17
- package/dist/types/serializer/misc/value-serializer.d.ts +0 -17
- package/dist/types/serializer/network/host-rule-serializer.d.ts +0 -30
- package/dist/types/serializer/network/hostname-list-serializer.d.ts +0 -15
- package/dist/types/serializer/network/network-rule-serializer.d.ts +0 -18
- package/dist/types/serializer/rule-serializer.d.ts +0 -17
- package/dist/types/utils/binary-schema-version.d.ts +0 -9
- package/dist/types/utils/byte-buffer.d.ts +0 -54
- package/dist/types/utils/input-byte-buffer.d.ts +0 -146
- package/dist/types/utils/is-chromium.d.ts +0 -7
- package/dist/types/utils/output-byte-buffer.d.ts +0 -132
- package/dist/types/utils/storage-interface.d.ts +0 -23
- package/dist/types/utils/text-decoder-polyfill.d.ts +0 -14
- package/dist/types/utils/text-encoder-polyfill.d.ts +0 -18
- package/dist/utils/binary-schema-version.js +0 -17
- package/dist/utils/byte-buffer.js +0 -91
- package/dist/utils/input-byte-buffer.js +0 -266
- package/dist/utils/is-chromium.js +0 -20
- package/dist/utils/output-byte-buffer.js +0 -231
- package/dist/utils/text-decoder-polyfill.js +0 -107
- package/dist/utils/text-encoder-polyfill.js +0 -78
- /package/dist/types/generator/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-generator.d.ts +0 -0
- /package/dist/types/generator/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-generator.d.ts +0 -0
- /package/dist/types/generator/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-generator.d.ts +0 -0
- /package/dist/types/parser/cosmetic/{body → scriptlet-body}/abp-snippet-injection-body-parser.d.ts +0 -0
- /package/dist/types/parser/cosmetic/{body → scriptlet-body}/adg-scriptlet-injection-body-parser.d.ts +0 -0
- /package/dist/types/parser/cosmetic/{body → scriptlet-body}/ubo-scriptlet-injection-body-parser.d.ts +0 -0
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ListItemDeserializer } from './list-item-deserializer.js';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Deserializes lists of items from binary format.
|
|
11
|
-
* Converts binary data to structured item nodes.
|
|
12
|
-
*/
|
|
13
|
-
class ListItemsDeserializer {
|
|
14
|
-
/**
|
|
15
|
-
* Deserializes a list of items from binary format.
|
|
16
|
-
*
|
|
17
|
-
* @param buffer Input byte buffer.
|
|
18
|
-
* @param items Partial list of items to deserialize.
|
|
19
|
-
* @template T Type of the list items.
|
|
20
|
-
*/
|
|
21
|
-
static deserialize = (buffer, items) => {
|
|
22
|
-
const length = buffer.readUint16();
|
|
23
|
-
items.length = length;
|
|
24
|
-
for (let i = 0; i < length; i += 1) {
|
|
25
|
-
ListItemDeserializer.deserialize(buffer, items[i] = {});
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export { ListItemsDeserializer };
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { VariableNodeBinaryPropMarshallingMap, ParenthesisNodeBinaryPropMarshallingMap, OperatorNodeBinaryPropMarshallingMap, KNOWN_VARIABLES_SERIALIZATION_MAP, LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP } from '../../marshalling-utils/misc/logical-expression-common.js';
|
|
8
|
-
import { NodeType } from '../../serializer/misc/logical-expression-serializer.js';
|
|
9
|
-
import { NULL } from '../../utils/constants.js';
|
|
10
|
-
import { isUndefined } from '../../utils/type-guards.js';
|
|
11
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
12
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
13
|
-
|
|
14
|
-
let logicalExpressionOperatorMarshallingMapReverse;
|
|
15
|
-
const getOperatorBinaryMapReverse = () => {
|
|
16
|
-
if (!logicalExpressionOperatorMarshallingMapReverse) {
|
|
17
|
-
logicalExpressionOperatorMarshallingMapReverse = new Map(Array.from(LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP).map(([key, value]) => [value, key]));
|
|
18
|
-
}
|
|
19
|
-
return logicalExpressionOperatorMarshallingMapReverse;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Gets the string representation of the operator from the binary representation.
|
|
23
|
-
*
|
|
24
|
-
* @param binary Binary representation of the operator
|
|
25
|
-
* @returns String representation of the operator
|
|
26
|
-
* @throws If the operator is unknown
|
|
27
|
-
*/
|
|
28
|
-
const getOperatorOrFail = (binary) => {
|
|
29
|
-
const operator = getOperatorBinaryMapReverse().get(binary);
|
|
30
|
-
if (isUndefined(operator)) {
|
|
31
|
-
throw new Error(`Unknown operator: ${binary}`);
|
|
32
|
-
}
|
|
33
|
-
return operator;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Deserialization map for known variables.
|
|
37
|
-
*/
|
|
38
|
-
let knownVariablesMapReverse;
|
|
39
|
-
const getKnownVariablesMapReverse = () => {
|
|
40
|
-
if (!knownVariablesMapReverse) {
|
|
41
|
-
knownVariablesMapReverse = new Map(Array.from(KNOWN_VARIABLES_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
42
|
-
}
|
|
43
|
-
return knownVariablesMapReverse;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* Gets the frequent name of the variable from the binary representation.
|
|
47
|
-
*
|
|
48
|
-
* @param binary Binary representation of the variable
|
|
49
|
-
* @returns Frequent name of the variable
|
|
50
|
-
* @throws If the variable is unknown
|
|
51
|
-
*/
|
|
52
|
-
const getFrequentNameOrFail = (binary) => {
|
|
53
|
-
const name = getKnownVariablesMapReverse().get(binary);
|
|
54
|
-
if (isUndefined(name)) {
|
|
55
|
-
throw new Error(`Unknown frequent name: ${binary}`);
|
|
56
|
-
}
|
|
57
|
-
return name;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* `LogicalExpressionDeserializer` is responsible for deserializing logical expressions.
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* From the following rule:
|
|
64
|
-
* ```adblock
|
|
65
|
-
* !#if (adguard_ext_android_cb || adguard_ext_safari)
|
|
66
|
-
* ```
|
|
67
|
-
* this parser will parse the expression `(adguard_ext_android_cb || adguard_ext_safari)`.
|
|
68
|
-
*/
|
|
69
|
-
// TODO: Refactor this class
|
|
70
|
-
class LogicalExpressionDeserializer extends BaseDeserializer {
|
|
71
|
-
/**
|
|
72
|
-
* Deserializes a variable node from binary format.
|
|
73
|
-
*
|
|
74
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
75
|
-
* @param node Destination node.
|
|
76
|
-
* @throws If the binary data is malformed.
|
|
77
|
-
*/
|
|
78
|
-
static deserializeVariableNode(buffer, node) {
|
|
79
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ExpressionVariableNode);
|
|
80
|
-
node.type = NodeType.Variable;
|
|
81
|
-
let prop = buffer.readUint8();
|
|
82
|
-
while (prop !== NULL) {
|
|
83
|
-
switch (prop) {
|
|
84
|
-
case VariableNodeBinaryPropMarshallingMap.Name:
|
|
85
|
-
node.name = buffer.readString();
|
|
86
|
-
break;
|
|
87
|
-
case VariableNodeBinaryPropMarshallingMap.FrequentName:
|
|
88
|
-
node.name = getFrequentNameOrFail(buffer.readUint8());
|
|
89
|
-
break;
|
|
90
|
-
case VariableNodeBinaryPropMarshallingMap.Start:
|
|
91
|
-
node.start = buffer.readUint32();
|
|
92
|
-
break;
|
|
93
|
-
case VariableNodeBinaryPropMarshallingMap.End:
|
|
94
|
-
node.end = buffer.readUint32();
|
|
95
|
-
break;
|
|
96
|
-
default:
|
|
97
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
98
|
-
}
|
|
99
|
-
prop = buffer.readUint8();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Deserializes a parenthesis node from binary format.
|
|
104
|
-
*
|
|
105
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
106
|
-
* @param node Destination node.
|
|
107
|
-
* @throws If the binary data is malformed.
|
|
108
|
-
*/
|
|
109
|
-
static deserializeParenthesisNode(buffer, node) {
|
|
110
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ExpressionParenthesisNode);
|
|
111
|
-
node.type = NodeType.Parenthesis;
|
|
112
|
-
let prop = buffer.readUint8();
|
|
113
|
-
while (prop !== NULL) {
|
|
114
|
-
switch (prop) {
|
|
115
|
-
case ParenthesisNodeBinaryPropMarshallingMap.Expression:
|
|
116
|
-
LogicalExpressionDeserializer.deserialize(buffer, node.expression = {});
|
|
117
|
-
break;
|
|
118
|
-
case ParenthesisNodeBinaryPropMarshallingMap.Start:
|
|
119
|
-
node.start = buffer.readUint32();
|
|
120
|
-
break;
|
|
121
|
-
case ParenthesisNodeBinaryPropMarshallingMap.End:
|
|
122
|
-
node.end = buffer.readUint32();
|
|
123
|
-
break;
|
|
124
|
-
default:
|
|
125
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
126
|
-
}
|
|
127
|
-
prop = buffer.readUint8();
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Deserializes an operator node from binary format.
|
|
132
|
-
*
|
|
133
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
134
|
-
* @param node Destination node.
|
|
135
|
-
* @throws If the binary data is malformed.
|
|
136
|
-
*/
|
|
137
|
-
static deserializeOperatorNode(buffer, node) {
|
|
138
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ExpressionOperatorNode);
|
|
139
|
-
node.type = NodeType.Operator;
|
|
140
|
-
let prop = buffer.readUint8();
|
|
141
|
-
while (prop !== NULL) {
|
|
142
|
-
switch (prop) {
|
|
143
|
-
case OperatorNodeBinaryPropMarshallingMap.Operator:
|
|
144
|
-
node.operator = getOperatorOrFail(buffer.readUint8());
|
|
145
|
-
break;
|
|
146
|
-
case OperatorNodeBinaryPropMarshallingMap.Left:
|
|
147
|
-
LogicalExpressionDeserializer.deserialize(buffer, node.left = {});
|
|
148
|
-
break;
|
|
149
|
-
case OperatorNodeBinaryPropMarshallingMap.Right:
|
|
150
|
-
LogicalExpressionDeserializer.deserialize(buffer, node.right = {});
|
|
151
|
-
break;
|
|
152
|
-
case OperatorNodeBinaryPropMarshallingMap.Start:
|
|
153
|
-
node.start = buffer.readUint32();
|
|
154
|
-
break;
|
|
155
|
-
case OperatorNodeBinaryPropMarshallingMap.End:
|
|
156
|
-
node.end = buffer.readUint32();
|
|
157
|
-
break;
|
|
158
|
-
default:
|
|
159
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
160
|
-
}
|
|
161
|
-
prop = buffer.readUint8();
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Deserializes a logical expression node from binary format.
|
|
166
|
-
*
|
|
167
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
168
|
-
* @param node Destination node.
|
|
169
|
-
* @throws If the binary data is malformed.
|
|
170
|
-
*/
|
|
171
|
-
static deserialize(buffer, node) {
|
|
172
|
-
// note: we just do a simple lookahead here, because advancing the buffer is done in the
|
|
173
|
-
// 'sub-deserialize' methods
|
|
174
|
-
let type = buffer.peekUint8();
|
|
175
|
-
while (type !== NULL) {
|
|
176
|
-
switch (type) {
|
|
177
|
-
case BinaryTypeMarshallingMap.ExpressionVariableNode:
|
|
178
|
-
LogicalExpressionDeserializer.deserializeVariableNode(buffer, node);
|
|
179
|
-
break;
|
|
180
|
-
case BinaryTypeMarshallingMap.ExpressionOperatorNode:
|
|
181
|
-
LogicalExpressionDeserializer.deserializeOperatorNode(buffer, node);
|
|
182
|
-
break;
|
|
183
|
-
case BinaryTypeMarshallingMap.ExpressionParenthesisNode:
|
|
184
|
-
LogicalExpressionDeserializer.deserializeParenthesisNode(buffer, node);
|
|
185
|
-
break;
|
|
186
|
-
default:
|
|
187
|
-
throw new Error(`Unexpected node type: ${type}`);
|
|
188
|
-
}
|
|
189
|
-
type = buffer.peekUint8();
|
|
190
|
-
}
|
|
191
|
-
// consume NULL
|
|
192
|
-
buffer.readUint8();
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
export { LogicalExpressionDeserializer, getFrequentNameOrFail };
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ValueDeserializer } from './value-deserializer.js';
|
|
9
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
10
|
-
import { ModifierNodeMarshallingMap, FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP, FREQUENT_MODIFIERS_SERIALIZATION_MAP } from '../../marshalling-utils/misc/modifier-common.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/* eslint-disable no-param-reassign */
|
|
14
|
-
/**
|
|
15
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
16
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
17
|
-
*
|
|
18
|
-
* @note Only 256 values can be represented this way.
|
|
19
|
-
*/
|
|
20
|
-
let frequentModifiersDeserializationMap;
|
|
21
|
-
const getFrequentModifiersDeserializationMap = () => {
|
|
22
|
-
if (!frequentModifiersDeserializationMap) {
|
|
23
|
-
frequentModifiersDeserializationMap = new Map(Array.from(FREQUENT_MODIFIERS_SERIALIZATION_MAP).map(([key, value]) => [value, key]));
|
|
24
|
-
}
|
|
25
|
-
return frequentModifiersDeserializationMap;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
29
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
30
|
-
*/
|
|
31
|
-
let frequentValuesDeserializationMaps;
|
|
32
|
-
const getFrequentValuesDeserializationMaps = () => {
|
|
33
|
-
if (!frequentValuesDeserializationMaps) {
|
|
34
|
-
frequentValuesDeserializationMaps = new Map(Array.from(FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP, ([modifier, valueMap]) => [modifier, new Map(Array.from(valueMap, ([key, value]) => [value, key]))]));
|
|
35
|
-
}
|
|
36
|
-
return frequentValuesDeserializationMaps;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* `ModifierDeserializer` is responsible for deserializing modifiers.
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* `match-case`, `~third-party`, `domain=example.com|~example.org`
|
|
43
|
-
*/
|
|
44
|
-
class ModifierDeserializer extends BaseDeserializer {
|
|
45
|
-
/**
|
|
46
|
-
* Deserializes a modifier node from binary format.
|
|
47
|
-
*
|
|
48
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
49
|
-
* @param node Destination node.
|
|
50
|
-
*/
|
|
51
|
-
static deserialize(buffer, node) {
|
|
52
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ModifierNode);
|
|
53
|
-
node.type = 'Modifier';
|
|
54
|
-
let prop = buffer.readUint8();
|
|
55
|
-
while (prop !== NULL) {
|
|
56
|
-
switch (prop) {
|
|
57
|
-
case ModifierNodeMarshallingMap.Name:
|
|
58
|
-
// eslint-disable-next-line max-len
|
|
59
|
-
ValueDeserializer.deserialize(buffer, node.name = {}, getFrequentModifiersDeserializationMap());
|
|
60
|
-
break;
|
|
61
|
-
case ModifierNodeMarshallingMap.Value:
|
|
62
|
-
if (node.name) {
|
|
63
|
-
// eslint-disable-next-line max-len
|
|
64
|
-
ValueDeserializer.deserialize(buffer, node.value = {}, getFrequentValuesDeserializationMaps().get(node.name.value));
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
ValueDeserializer.deserialize(buffer, node.value = {});
|
|
68
|
-
}
|
|
69
|
-
break;
|
|
70
|
-
case ModifierNodeMarshallingMap.Exception:
|
|
71
|
-
node.exception = buffer.readUint8() === 1;
|
|
72
|
-
break;
|
|
73
|
-
case ModifierNodeMarshallingMap.Start:
|
|
74
|
-
node.start = buffer.readUint32();
|
|
75
|
-
break;
|
|
76
|
-
case ModifierNodeMarshallingMap.End:
|
|
77
|
-
node.end = buffer.readUint32();
|
|
78
|
-
break;
|
|
79
|
-
default:
|
|
80
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
81
|
-
}
|
|
82
|
-
prop = buffer.readUint8();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export { ModifierDeserializer };
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ModifierDeserializer } from './modifier-deserializer.js';
|
|
10
|
-
import { ModifierListNodeMarshallingMap } from '../../marshalling-utils/misc/modifier-list-common.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/* eslint-disable no-param-reassign */
|
|
14
|
-
/**
|
|
15
|
-
* `ModifierListDeserializer` is responsible for deserializing 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 ModifierListDeserializer extends BaseDeserializer {
|
|
23
|
-
/**
|
|
24
|
-
* Deserializes a modifier list node from binary format.
|
|
25
|
-
*
|
|
26
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
27
|
-
* @param node Destination node.
|
|
28
|
-
*/
|
|
29
|
-
static deserialize(buffer, node) {
|
|
30
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ModifierListNode);
|
|
31
|
-
node.type = 'ModifierList';
|
|
32
|
-
let prop = buffer.readUint8();
|
|
33
|
-
while (prop !== NULL) {
|
|
34
|
-
switch (prop) {
|
|
35
|
-
case ModifierListNodeMarshallingMap.Children:
|
|
36
|
-
node.children = new Array(buffer.readUint16());
|
|
37
|
-
// read children
|
|
38
|
-
for (let i = 0; i < node.children.length; i += 1) {
|
|
39
|
-
ModifierDeserializer.deserialize(buffer, node.children[i] = {});
|
|
40
|
-
}
|
|
41
|
-
break;
|
|
42
|
-
case ModifierListNodeMarshallingMap.Start:
|
|
43
|
-
node.start = buffer.readUint32();
|
|
44
|
-
break;
|
|
45
|
-
case ModifierListNodeMarshallingMap.End:
|
|
46
|
-
node.end = buffer.readUint32();
|
|
47
|
-
break;
|
|
48
|
-
default:
|
|
49
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
50
|
-
}
|
|
51
|
-
prop = buffer.readUint8();
|
|
52
|
-
}
|
|
53
|
-
// Maybe children are not present in the binary data,
|
|
54
|
-
// in this case, we should initialize it as an empty array.
|
|
55
|
-
if (!node.children) {
|
|
56
|
-
node.children = [];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export { ModifierListDeserializer };
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { ValueDeserializer } from './value-deserializer.js';
|
|
9
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
10
|
-
import { ParameterListNodeMarshallingMap } from '../../marshalling-utils/misc/parameter-list-common.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Deserializes binary data into parameter list nodes.
|
|
15
|
-
* Optionally uses a map of frequent values for optimization.
|
|
16
|
-
*/
|
|
17
|
-
class ParameterListDeserializer extends BaseDeserializer {
|
|
18
|
-
/**
|
|
19
|
-
* Deserializes a parameter list node from binary format.
|
|
20
|
-
*
|
|
21
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
22
|
-
* @param node Destination node.
|
|
23
|
-
* @param frequentValuesMap Optional map of frequent values.
|
|
24
|
-
* @throws If the binary data is malformed.
|
|
25
|
-
*/
|
|
26
|
-
static deserialize(buffer, node, frequentValuesMap) {
|
|
27
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ParameterListNode);
|
|
28
|
-
node.type = 'ParameterList';
|
|
29
|
-
let prop = buffer.readUint8();
|
|
30
|
-
while (prop !== NULL) {
|
|
31
|
-
switch (prop) {
|
|
32
|
-
case ParameterListNodeMarshallingMap.Children:
|
|
33
|
-
node.children = new Array(buffer.readUint32());
|
|
34
|
-
// read children
|
|
35
|
-
for (let i = 0; i < node.children.length; i += 1) {
|
|
36
|
-
switch (buffer.peekUint8()) {
|
|
37
|
-
case BinaryTypeMarshallingMap.Null:
|
|
38
|
-
buffer.readUint8();
|
|
39
|
-
node.children[i] = null;
|
|
40
|
-
break;
|
|
41
|
-
case BinaryTypeMarshallingMap.ValueNode:
|
|
42
|
-
// eslint-disable-next-line max-len
|
|
43
|
-
ValueDeserializer.deserialize(buffer, node.children[i] = {}, frequentValuesMap);
|
|
44
|
-
break;
|
|
45
|
-
default:
|
|
46
|
-
throw new Error(`Invalid child type: ${buffer.peekUint8()}`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
break;
|
|
50
|
-
case ParameterListNodeMarshallingMap.Start:
|
|
51
|
-
node.start = buffer.readUint32();
|
|
52
|
-
break;
|
|
53
|
-
case ParameterListNodeMarshallingMap.End:
|
|
54
|
-
node.end = buffer.readUint32();
|
|
55
|
-
break;
|
|
56
|
-
default:
|
|
57
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
58
|
-
}
|
|
59
|
-
prop = buffer.readUint8();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export { ParameterListDeserializer };
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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, EMPTY } from '../../utils/constants.js';
|
|
8
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
9
|
-
import { ValueNodeMarshallingMap } from '../../marshalling-utils/misc/value-common.js';
|
|
10
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Value deserializer.
|
|
14
|
-
*/
|
|
15
|
-
class ValueDeserializer extends BaseDeserializer {
|
|
16
|
-
/**
|
|
17
|
-
* Deserializes a value node from binary format.
|
|
18
|
-
*
|
|
19
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
20
|
-
* @param node Destination node.
|
|
21
|
-
* @param frequentValuesMap Optional map of frequent values.
|
|
22
|
-
* @throws If the binary data is malformed.
|
|
23
|
-
*/
|
|
24
|
-
static deserialize(buffer, node, frequentValuesMap) {
|
|
25
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.ValueNode);
|
|
26
|
-
node.type = 'Value';
|
|
27
|
-
let prop = buffer.readUint8();
|
|
28
|
-
while (prop !== NULL) {
|
|
29
|
-
switch (prop) {
|
|
30
|
-
case ValueNodeMarshallingMap.Value:
|
|
31
|
-
node.value = buffer.readString();
|
|
32
|
-
break;
|
|
33
|
-
case ValueNodeMarshallingMap.FrequentValue:
|
|
34
|
-
node.value = frequentValuesMap?.get(buffer.readUint8()) ?? EMPTY;
|
|
35
|
-
break;
|
|
36
|
-
case ValueNodeMarshallingMap.Start:
|
|
37
|
-
node.start = buffer.readUint32();
|
|
38
|
-
break;
|
|
39
|
-
case ValueNodeMarshallingMap.End:
|
|
40
|
-
node.end = buffer.readUint32();
|
|
41
|
-
break;
|
|
42
|
-
default:
|
|
43
|
-
throw new Error(`Invalid property: ${prop}`);
|
|
44
|
-
}
|
|
45
|
-
prop = buffer.readUint8();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export { ValueDeserializer };
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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, NetworkRuleType } from '../../nodes/index.js';
|
|
9
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
10
|
-
import { HostnameListDeserializer } from './hostname-list-deserializer.js';
|
|
11
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
12
|
-
import { HostRuleMarshallingMap } from '../../marshalling-utils/misc/host-rule-common.js';
|
|
13
|
-
import { AdblockSyntax } from '../../utils/adblockers.js';
|
|
14
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
15
|
-
import { getSyntaxDeserializationMap } from '../syntax-deserialization-map.js';
|
|
16
|
-
|
|
17
|
-
/* eslint-disable no-param-reassign */
|
|
18
|
-
/**
|
|
19
|
-
* `HostRuleDeserializer` is responsible for deserializing hosts-like rules.
|
|
20
|
-
*
|
|
21
|
-
* HostRule is a structure for simple host-level rules (i.e. /etc/hosts syntax).
|
|
22
|
-
* It also supports "just domain" syntax. In this case, the IP will be set to 0.0.0.0.
|
|
23
|
-
*/
|
|
24
|
-
class HostRuleDeserializer extends BaseDeserializer {
|
|
25
|
-
/**
|
|
26
|
-
* Deserializes a host rule node from binary format.
|
|
27
|
-
*
|
|
28
|
-
* @param buffer Input byte buffer to read from.
|
|
29
|
-
* @param node Destination node to write to.
|
|
30
|
-
*/
|
|
31
|
-
static deserialize(buffer, node) {
|
|
32
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.HostRuleNode);
|
|
33
|
-
node.category = RuleCategory.Network;
|
|
34
|
-
node.type = NetworkRuleType.HostRule;
|
|
35
|
-
let prop = buffer.readUint8();
|
|
36
|
-
while (prop !== NULL) {
|
|
37
|
-
switch (prop) {
|
|
38
|
-
case HostRuleMarshallingMap.Syntax:
|
|
39
|
-
node.syntax = getSyntaxDeserializationMap().get(buffer.readUint8()) ?? AdblockSyntax.Common;
|
|
40
|
-
break;
|
|
41
|
-
case HostRuleMarshallingMap.Ip:
|
|
42
|
-
node.ip = {};
|
|
43
|
-
ValueDeserializer.deserialize(buffer, node.ip);
|
|
44
|
-
break;
|
|
45
|
-
case HostRuleMarshallingMap.HostnameList:
|
|
46
|
-
node.hostnames = {};
|
|
47
|
-
HostnameListDeserializer.deserialize(buffer, node.hostnames);
|
|
48
|
-
break;
|
|
49
|
-
case HostRuleMarshallingMap.Comment:
|
|
50
|
-
node.comment = {};
|
|
51
|
-
ValueDeserializer.deserialize(buffer, node.comment);
|
|
52
|
-
break;
|
|
53
|
-
case HostRuleMarshallingMap.Start:
|
|
54
|
-
node.start = buffer.readUint32();
|
|
55
|
-
break;
|
|
56
|
-
case HostRuleMarshallingMap.End:
|
|
57
|
-
node.end = buffer.readUint32();
|
|
58
|
-
break;
|
|
59
|
-
default:
|
|
60
|
-
throw new Error(`Invalid property: ${prop}.`);
|
|
61
|
-
}
|
|
62
|
-
prop = buffer.readUint8();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export { HostRuleDeserializer };
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 GMT)
|
|
3
|
-
* (c) 2025 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
8
|
-
import { NULL } from '../../utils/constants.js';
|
|
9
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
10
|
-
import { HostnameListNodeMarshallingMap } from '../../marshalling-utils/misc/hostname-list-common.js';
|
|
11
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
12
|
-
|
|
13
|
-
/* eslint-disable no-param-reassign */
|
|
14
|
-
/**
|
|
15
|
-
* Deserializes hostname list nodes from binary format.
|
|
16
|
-
*/
|
|
17
|
-
class HostnameListDeserializer extends BaseDeserializer {
|
|
18
|
-
/**
|
|
19
|
-
* Deserializes a hostname list node from binary format.
|
|
20
|
-
*
|
|
21
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
22
|
-
* @param node Destination node.
|
|
23
|
-
*/
|
|
24
|
-
static deserialize(buffer, node) {
|
|
25
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.HostnameListNode);
|
|
26
|
-
node.type = 'HostnameList';
|
|
27
|
-
let prop = buffer.readUint8();
|
|
28
|
-
while (prop !== NULL) {
|
|
29
|
-
switch (prop) {
|
|
30
|
-
case HostnameListNodeMarshallingMap.Children:
|
|
31
|
-
node.children = new Array(buffer.readUint16());
|
|
32
|
-
// read children
|
|
33
|
-
for (let i = 0; i < node.children.length; i += 1) {
|
|
34
|
-
ValueDeserializer.deserialize(buffer, node.children[i] = {});
|
|
35
|
-
}
|
|
36
|
-
break;
|
|
37
|
-
case HostnameListNodeMarshallingMap.Start:
|
|
38
|
-
node.start = buffer.readUint32();
|
|
39
|
-
break;
|
|
40
|
-
case HostnameListNodeMarshallingMap.End:
|
|
41
|
-
node.end = buffer.readUint32();
|
|
42
|
-
break;
|
|
43
|
-
default:
|
|
44
|
-
throw new Error(`Unknown property: ${prop}`);
|
|
45
|
-
}
|
|
46
|
-
prop = buffer.readUint8();
|
|
47
|
-
}
|
|
48
|
-
// Maybe children are not present in the binary data,
|
|
49
|
-
// in this case, we should initialize it as an empty array.
|
|
50
|
-
if (!node.children) {
|
|
51
|
-
node.children = [];
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export { HostnameListDeserializer };
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.4.1 (build date: Fri, 28 Nov 2025 11:48:53 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 { NetworkRuleType, RuleCategory } from '../../nodes/index.js';
|
|
9
|
-
import { ValueDeserializer } from '../misc/value-deserializer.js';
|
|
10
|
-
import { BaseDeserializer } from '../base-deserializer.js';
|
|
11
|
-
import { ModifierListDeserializer } from '../misc/modifier-list-deserializer.js';
|
|
12
|
-
import { NetworkRuleMarshallingMap } from '../../marshalling-utils/network/network-rule-common.js';
|
|
13
|
-
import { AdblockSyntax } from '../../utils/adblockers.js';
|
|
14
|
-
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.js';
|
|
15
|
-
import { getSyntaxDeserializationMap } from '../syntax-deserialization-map.js';
|
|
16
|
-
|
|
17
|
-
/* eslint-disable no-param-reassign */
|
|
18
|
-
/**
|
|
19
|
-
* `NetworkRuleDeserializer` is responsible for deserializing network rules.
|
|
20
|
-
*
|
|
21
|
-
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules}
|
|
22
|
-
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#basic}
|
|
23
|
-
*/
|
|
24
|
-
class NetworkRuleDeserializer extends BaseDeserializer {
|
|
25
|
-
/**
|
|
26
|
-
* Deserializes a network rule node from binary format.
|
|
27
|
-
*
|
|
28
|
-
* @param buffer ByteBuffer for reading binary data.
|
|
29
|
-
* @param node Destination node.
|
|
30
|
-
*/
|
|
31
|
-
static deserialize(buffer, node) {
|
|
32
|
-
buffer.assertUint8(BinaryTypeMarshallingMap.NetworkRuleNode);
|
|
33
|
-
node.type = NetworkRuleType.NetworkRule;
|
|
34
|
-
node.category = RuleCategory.Network;
|
|
35
|
-
node.modifiers = undefined;
|
|
36
|
-
let prop = buffer.readUint8();
|
|
37
|
-
while (prop !== NULL) {
|
|
38
|
-
switch (prop) {
|
|
39
|
-
case NetworkRuleMarshallingMap.Syntax:
|
|
40
|
-
node.syntax = getSyntaxDeserializationMap().get(buffer.readUint8()) ?? AdblockSyntax.Common;
|
|
41
|
-
break;
|
|
42
|
-
case NetworkRuleMarshallingMap.Exception:
|
|
43
|
-
node.exception = buffer.readUint8() === 1;
|
|
44
|
-
break;
|
|
45
|
-
case NetworkRuleMarshallingMap.Pattern:
|
|
46
|
-
ValueDeserializer.deserialize(buffer, node.pattern = {});
|
|
47
|
-
break;
|
|
48
|
-
case NetworkRuleMarshallingMap.ModifierList:
|
|
49
|
-
ModifierListDeserializer.deserialize(buffer, node.modifiers = {});
|
|
50
|
-
break;
|
|
51
|
-
case NetworkRuleMarshallingMap.Start:
|
|
52
|
-
node.start = buffer.readUint32();
|
|
53
|
-
break;
|
|
54
|
-
case NetworkRuleMarshallingMap.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 { NetworkRuleDeserializer };
|